84 คะแนน โดย GN⁺ 2025-11-03 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • ใช้งาน Claude Code อย่างกว้างขวางทั้งในโปรเจกต์ส่วนตัวและสภาพแวดล้อมโมโนรีโปสำหรับองค์กร พร้อมสรุปองค์ประกอบหลักและวิธีใช้ฟีเจอร์ขั้นสูงในงานจริง
  • หัวใจสำคัญของการใช้งานเอเจนต์อย่างมีประสิทธิภาพอยู่ที่ คุณภาพของ PR สุดท้าย ไม่ใช่สไตล์ผลลัพธ์หรือ UI โดยมีเป้าหมายคือการมอบหมายงานแบบ "ตั้งค่าแล้วปล่อยทำงาน (shoot and forget)"
  • ศูนย์กลางของโค้ดเบสคือไฟล์ CLAUDE.md ซึ่งทำหน้าที่เป็น “รัฐธรรมนูญ” ที่กำหนดกฎพฤติกรรมและวิธีใช้เครื่องมือของเอเจนต์
  • ยกระดับการทำงานร่วมกันและระบบอัตโนมัติผ่านฟีเจอร์หลากหลาย เช่น การจัดการคอนเท็กซ์, คำสั่งสแลช, subagent, Hooks, และ GitHub Action(GHA)
  • แยกความสัมพันธ์ระหว่าง Skills และ MCP(Model Context Protocol) เพื่อเน้นสถาปัตยกรรมเอเจนต์ที่ยืดหยุ่นและยึดสคริปต์เป็นศูนย์กลาง
  • นำเสนอคู่มือเชิงปฏิบัติที่ช่วยขยาย Claude Code จากเครื่องมือ CLI ธรรมดาไปสู่ โครงสร้างพื้นฐาน AI สำหรับการพัฒนาระดับองค์กร

  • ใช้ Claude Code หนักมาก
    • โปรเจกต์งานอดิเรก: รันบน VM หลายครั้งต่อสัปดาห์ และใช้ --dangerously-skip-permissions เพื่อเปลี่ยนไอเดียที่ผุดขึ้นมาให้เป็นโค้ดได้ทันที
    • ในงานจริง: ภายในทีมสร้างกฎและเครื่องมือสำหรับ AI-IDE และทีมวิศวกรรมของเรา ใช้โทเค็นหลายพันล้านต่อเดือนแค่กับการสร้างโค้ด
  • ตลาดเอเจนต์แบบ CLI แน่นไปด้วย Claude Code, Gemini CLI, Cursor, Codex CLI แต่ การแข่งขันที่แท้จริงคือระหว่าง Anthropic กับ OpenAI
    • แต่พอคุยกับนักพัฒนา จะพบว่าการเลือกเครื่องมือมัก พึ่งพาปัจจัยผิวเผิน
      • เช่นการได้ฟีเจอร์ที่ “โชคดี” ใช้งานได้ หรือ “vibe” ของ system prompt ที่ชอบ
    • ณ ตอนนี้ เครื่องมือเหล่านี้ล้วนอยู่ในระดับที่ดีมากแล้ว
  • บางคน โฟกัสกับสไตล์ผลลัพธ์หรือ UI มากเกินไป
    • คำประจบอย่าง "you're absolutely right!" ไม่ใช่บั๊กที่น่ากังวลอะไร
    • กลับกัน มันคือ สัญญาณว่าผู้ใช้เข้าไปมีส่วนร่วมในลูปมากเกินไป
  • ปรัชญาการใช้งานหลักของฉันคือ "Shoot and Forget"
    • เดินตามลำดับ มอบหมายงาน, ตั้งค่าคอนเท็กซ์, ลงมือทำงาน
    • ตัดสินเครื่องมือจาก PR สุดท้าย และประเมินจากผลลัพธ์ ไม่ใช่เส้นทางที่ใช้ไปถึงตรงนั้น
  • บทความนี้คือ การทบทวนระบบนิเวศทั้งหมด จากประสบการณ์ใช้งาน Claude Code ตลอดหลายเดือนที่ผ่านมา
    • ฟีเจอร์แทบทั้งหมดที่ฉันใช้ (รวมถึงที่ไม่ได้ใช้)
    • ไฟล์ CLAUDE.md พื้นฐาน
    • คำสั่งสแลชแบบกำหนดเอง
    • โลกอันทรงพลังของ Subagent, Hook และ GitHub Actions
  • เนื้อหาค่อนข้างยาว จึง แนะนำให้ใช้เป็นเอกสารอ้างอิงมากกว่าอ่านรวดเดียวทั้งหมด

CLAUDE.md: รัฐธรรมนูญของเอเจนต์

  • CLAUDE.md ที่ระดับ root คือ แหล่งความจริงหลักของเอเจนต์เกี่ยวกับวิธีการทำงานของรีโปซิทอรี
    • โปรเจกต์งานอดิเรก: ให้ Claude เขียนได้อย่างอิสระตามต้องการ
    • โมโนรีโปองค์กร: ควบคุมอย่างเข้มงวดที่ขนาด 13KB (ขยายได้ถึง 25KB)
    • เอกสารจะครอบคลุมเฉพาะเครื่องมือที่วิศวกรมากกว่า 30% ใช้งาน
    • จัดสรรจำนวนโทเค็นสูงสุดให้เอกสารของแต่ละเครื่องมือภายใน (เหมือนขาย “พื้นที่โฆษณา”)
    • ถ้ายังอธิบายเครื่องมือให้กระชับไม่ได้ ก็แปลว่ายังเตรียม CLAUDE.md ไม่เสร็จ
  • เคล็ดลับและ anti-pattern ทั่วไป

    • เริ่มจาก guardrail ไม่ใช่คู่มือ: เริ่มเขียนเอกสารขนาดเล็กจากจุดที่ Claude มักทำผิด
    • ห้ามทำเอกสารด้วยไฟล์ @
      • หาก @-อ้างถึงเอกสารขนาดใหญ่จากที่อื่น เนื้อหาทั้งไฟล์จะถูกฝังเข้า context window ทุกครั้งที่รันจนบวมเกินจำเป็น
      • ถ้าแค่ระบุพาธอย่างเดียว Claude ก็มักจะเมิน
      • ต้อง "แนะนำ" ให้เอเจนต์รู้ว่าทำไมและเมื่อไรควรอ่านไฟล์นั้น
      • ตัวอย่าง: "สำหรับการใช้งานที่ซับซ้อนหรือเมื่อเกิด FooBarError ให้ดู path/to/docs.md เพื่อการแก้ปัญหาขั้นสูง"
    • อย่าบอกแค่ว่า "ห้ามเด็ดขาด"
      • เลี่ยงข้อจำกัดเชิงปฏิเสธอย่าง "ห้ามใช้แฟล็ก --foo-bar เด็ดขาด"
      • เพราะเมื่อเอเจนต์คิดว่าจำเป็นต้องใช้แฟล็กนั้น มันจะไปต่อไม่ได้
      • ควรมีทางเลือกให้เสมอ
    • ใช้ CLAUDE.md เป็น forcing function
      • หากคำสั่ง CLI ซับซ้อนและยืดยาว อย่าแก้ปัญหาแบบมนุษย์ด้วยการเขียนย่อหน้าอธิบาย
      • ให้ เขียน bash wrapper แบบง่ายที่มี API ชัดเจนและเข้าใจง่าย แล้วค่อยเขียนเอกสารให้ wrapper นั้น
      • การทำให้ CLAUDE.md สั้นที่สุดเท่าที่ทำได้คือ forcing function ที่ยอดเยี่ยมสำหรับทำให้โค้ดเบสและเครื่องมือภายในเรียบง่ายขึ้น
  • โครงสร้างตัวอย่าง

    # Monorepo  
    
    ## Python  
    - Always ...  
    - Test with <command>  
    ... 10개 항목 ...  
    
    ## <Internal CLI Tool>  
    ... 80% 사용 사례에 집중한 10개 불릿 ...  
    - <usage example>  
    - Always ...  
    - Never <x>, prefer <Y>  
    
    복잡한 사용법이나 오류 시 path/to/<tool>_docs.md 참조  
    
  • ซิงก์กับไฟล์ AGENTS.md เพื่อให้เข้ากันได้กับ AI IDE อื่นที่วิศวกรใช้งาน
  • เคล็ดลับเพิ่มเติม: ดู "AI Can't Read Your Docs", "AI-powered Software Engineering", "How Cursor (AI IDE) Works"

Compact, Context, Clear: การจัดการ context window

  • ใช้คำสั่ง /context เพื่อตรวจสอบสถานะการใช้หน้าต่าง 200k โทเค็น
    • แม้ใน Sonnet-1M ก็ยังไม่ชัดเจนว่า context window ทั้งหมดถูกใช้อย่างมีประสิทธิภาพหรือไม่
    • เซสชันใหม่ของโมโนรีโปใช้โทเค็นเริ่มต้นราว ~20k (10%) และอีก 180k ที่เหลือมีไว้สำหรับงานแก้ไขเปลี่ยนแปลง (ซึ่งหมดเร็วมาก)
  • เวิร์กโฟลว์หลัก 3 แบบ
    • /compact (หลีกเลี่ยง): การบีบอัดอัตโนมัติไม่โปร่งใส เกิดข้อผิดพลาด และยังปรับให้เหมาะไม่ดีพอ จึงพยายามเลี่ยงให้มากที่สุด
    • /clear + /catchup (รีสตาร์ตแบบง่าย): วิธีรีบูตพื้นฐาน โดยใช้ /clear ล้างสถานะแล้วตามด้วย /catchup แบบกำหนดเองเพื่ออ่านไฟล์ทั้งหมดที่เปลี่ยนใน git branch
    • "Document & Clear" (รีสตาร์ตแบบซับซ้อน): สำหรับงานขนาดใหญ่ โดยให้ Claude dump แผนและความคืบหน้าลง .md/clear → เซสชันใหม่อ่าน .md แล้วทำต่อ

คำสั่งสแลชแบบกำหนดเอง

  • คำสั่งสแลชคือ ทางลัดง่าย ๆ สำหรับพรอมป์ต์ที่ใช้บ่อย เท่านั้น ไม่มากไม่น้อยไปกว่านั้น
  • การตั้งค่าขั้นต่ำ
    • /catchup: พรอมป์ต์ให้อ่านไฟล์ทั้งหมดที่เปลี่ยนใน git branch
    • /pr: ตัวช่วยจัดระเบียบโค้ด, stage และเตรียม PR
  • รายการคำสั่งแบบกำหนดเองที่ซับซ้อนคือ anti-pattern
    • แก่นของเอเจนต์อย่าง Claude คือสามารถสร้างผลลัพธ์ที่มีประโยชน์และนำไป merge ต่อได้จากอินพุตภาษาธรรมชาติเกือบทุกแบบ
    • ถ้าบังคับให้วิศวกร (หรือคนที่ไม่ใช่วิศวกร) ต้องเรียนรู้รายการ "คำสั่งวิเศษ" ที่จำเป็นต่อการทำงาน = ล้มเหลว
    • เป้าหมายคือสร้างเอเจนต์ที่มี CLAUDE.md ที่เข้าใจง่ายกว่าเดิมและมีเครื่องมือที่ดีกว่าเดิม

Subagent แบบกำหนดเอง

  • ในทางทฤษฎีเป็นฟีเจอร์จัดการคอนเท็กซ์ที่ทรงพลัง
    • งานที่ซับซ้อน: คอนเท็กซ์อินพุต X โทเค็น + คอนเท็กซ์งาน Y โทเค็น + คำตอบ Z โทเค็น
    • งาน N งาน = (X + Y + Z) * N โทเค็นในหน้าต่างหลัก
    • แนวทาง Subagent: มอบหมายงาน (X + Y) * N ให้เอเจนต์เฉพาะทาง แล้วส่งคืนเฉพาะคำตอบสุดท้าย Z โทเค็น
  • แต่ในทางปฏิบัติ Subagent แบบกำหนดเองสร้างปัญหาใหม่ 2 อย่าง
    • การคุมสิทธิ์คอนเท็กซ์: เมื่อสร้าง Subagent PythonTests แล้วซ่อนคอนเท็กซ์การทดสอบทั้งหมดจากเอเจนต์หลัก → ทำให้ให้เหตุผลภาพรวมไม่ได้ → ต้องเรียก Subagent เพื่อรู้วิธีตรวจสอบโค้ดของตัวเอง
    • การบังคับเวิร์กโฟลว์แบบมนุษย์: บังคับ Claude ให้อยู่ในเวิร์กโฟลว์แข็งตัวที่มนุษย์นิยามไว้ → การสั่งว่าจะมอบหมายอย่างไร กลายเป็นตัวปัญหาที่เอเจนต์ควรเป็นผู้แก้เอง
  • โดยส่วนตัวชอบฟีเจอร์ Task(...) มากกว่า

    • สร้างสำเนาเอเจนต์อเนกประสงค์ด้วยฟีเจอร์ Task(...) ที่มีมาในตัวของ Claude
      • ใส่คอนเท็กซ์หลักทั้งหมดไว้ใน CLAUDE.md
      • ให้เอเจนต์หลักตัดสินใจเองว่าเมื่อไรและอย่างไรควรมอบหมายงานให้สำเนาของตัวเอง
      • ยังได้ประโยชน์ด้านการประหยัดคอนเท็กซ์ของ Subagent แต่ตัดข้อเสียออกไป
      • เอเจนต์จัดการ orchestration ของตัวเองแบบไดนามิก
    • ใน "Building Multi-Agent Systems (Part 2)" เรียกสิ่งนี้ว่า สถาปัตยกรรม "Master-Clone"
      • ชอบมากกว่าโมเดล "Lead-Specialist" ที่ Subagent แบบกำหนดเองชักนำอย่างชัดเจน

Resume, Continue, History

  • การใช้งานระดับพื้นฐาน
    • ใช้ claude --resume และ claude --continue บ่อยมาก
    • สำหรับรีสตาร์ตเทอร์มินัลที่มีบั๊ก หรือบูตเซสชันเก่าอย่างรวดเร็ว
    • เปิดเซสชันเมื่อหลายวันก่อนด้วย claude --resume เพื่อ สรุปวิธีเอาชนะข้อผิดพลาดบางอย่าง → ปรับปรุง CLAUDE.md และเครื่องมือภายใน
  • การใช้งานขั้นลึก
    • Claude Code เก็บประวัติเซสชันทั้งหมดไว้ที่ ~/.claude/projects/
    • มีสคริปต์สำหรับใช้ข้อมูลเซสชันดิบจากประวัติ
    • ทำ meta-analysis กับ log: ค้นหาข้อยกเว้นที่พบบ่อย คำขอสิทธิ์ และแพตเทิร์นข้อผิดพลาด → ปรับปรุงคอนเท็กซ์ที่มอบให้เอเจนต์

Hooks

  • สำคัญมากในรีโปฝั่งองค์กร: แต่ไม่ได้ใช้กับโปรเจกต์งานอดิเรก
  • เป็นกฎแบบ กำหนดแน่นอนว่า “ต้องทำ” เพื่อเสริมคำแนะนำแบบ “ควรทำ” ใน CLAUDE.md
  • มี 2 ประเภท
    • Hook บล็อกตอน commit (Block-at-Submit): เป็นกลยุทธ์หลัก
      • ใช้ Hook PreToolUse ครอบทุกคำสั่ง Bash(git commit)
      • ตรวจสอบไฟล์ /tmp/agent-pre-commit-pass (ซึ่งสคริปต์ทดสอบจะสร้างขึ้นก็ต่อเมื่อเทสต์ทั้งหมดผ่านเท่านั้น)
      • ถ้าไม่มีไฟล์ก็ห้าม commit → บังคับ Claude ให้วนลูป “ทดสอบ-แก้ไข” จนกว่าจะ build ผ่าน
    • Hint Hook: Hook แบบไม่บล็อกอย่างง่าย ให้ฟีดแบ็กแบบ “fire-and-forget” เมื่อเอเจนต์ทำทางเลือกที่ด้อยกว่า
  • ตั้งใจไม่ใช้ Hook ที่บล็อกในขั้นเขียน (Edit หรือ Write)
    • เพราะการบล็อกเอเจนต์กลางแผนอาจทำให้สับสนหรือ “หงุดหงิด”
    • การตรวจผลลัพธ์สุดท้ายตอนขั้น commit หลังงานเสร็จแล้วมีประสิทธิภาพกว่ามาก

โหมดวางแผน

  • หากใช้ AI IDE ทำการเปลี่ยนฟีเจอร์แบบ “ขนาดใหญ่” การวางแผนเป็นสิ่งจำเป็น
  • โปรเจกต์งานอดิเรก: ใช้โหมดวางแผนในตัวเท่านั้น
    • ใช้เพื่อจัดแนวทางก่อนเริ่ม Claude
    • กำหนดวิธี build และ “จุดตรวจ” ที่ต้องหยุดงานและแสดงผลลัพธ์
    • การใช้เป็นประจำทำให้เกิดสัญชาตญาณที่ดีมากว่า Claude ต้องการคอนเท็กซ์ขั้นต่ำแค่ไหนจึงจะได้แผนที่ดีโดยไม่ทำการ implement พัง
  • โมโนรีโปฝั่งองค์กร: เริ่ม rollout เครื่องมือวางแผนแบบกำหนดเองที่สร้างบน Claude Code SDK
    • คล้ายกับ native plan mode แต่โฟกัสที่ prompt ให้ผลลัพธ์สอดคล้องกับฟอร์แมต technical design ที่มีอยู่
    • บังคับใช้แนวปฏิบัติภายในเป็นค่าเริ่มต้น (ตั้งแต่โครงสร้างโค้ดไปจนถึง data privacy และ security)
    • ทำให้วิศวกรสามารถ “vibe plan” ฟีเจอร์ใหม่ได้เหมือนสถาปนิกอาวุโส (อย่างน้อยนั่นคือข้อเสนอ)

Skills

  • เห็นด้วยกับ Simon Willison ว่า Skills เป็นดีลที่ใหญ่กว่า MCP (น่าจะใช่)
  • วิวัฒนาการ 3 ขั้นของ mental model เรื่องความเป็นอิสระของเอเจนต์
    • Single Prompt: ให้คอนเท็กซ์ทั้งหมดกับเอเจนต์ผ่านพรอมป์ต์ยักษ์อันเดียว (เปราะบาง และขยายต่อไม่ได้)
    • Tool Calling: โมเดลเอเจนต์แบบ “คลาสสิก” สร้างเครื่องมือด้วยมือและทำ abstraction ของโลกจริงให้เอเจนต์ใช้ (ดีขึ้น แต่สร้าง abstraction ใหม่และคอขวดด้านคอนเท็กซ์ขึ้นมาอีก)
    • Scripting: ให้อเอเจนต์เข้าถึงสภาพแวดล้อมดิบ (ไบนารี สคริปต์ เอกสาร) → เอเจนต์เขียนโค้ดสด ๆ เพื่อโต้ตอบได้เอง
  • Agent Skills คือความสามารถถัดไปอย่างชัดเจน: เป็นการทำให้เลเยอร์ “Scripting” กลายเป็นผลิตภัณฑ์อย่างเป็นทางการ
  • ถ้าคุณ ชอบ CLI มากกว่า MCP คุณก็ ได้รับข้อดีของ Skills แบบแฝงอยู่แล้ว
    • ไฟล์ SKILL.md คือวิธีที่ เป็นระเบียบกว่า แชร์ได้มากกว่า และค้นพบได้ง่ายกว่า ในการจัดทำเอกสาร CLI และสคริปต์เหล่านี้ แล้วเปิดให้เอเจนต์ใช้งาน
  • Skills คือ abstraction ที่ถูกต้อง: ทำให้โมเดลเอเจนต์แบบ “สคริปต์” ซึ่งแข็งแรงและยืดหยุ่นกว่า กลายเป็นสิ่งทางการ แทนโมเดลแข็งทื่อคล้าย API ที่ MCP เป็นตัวแทน

MCP (Model Context Protocol)

  • การมี Skills ไม่ได้แปลว่า MCP ตายแล้ว (ดู "Everything Wrong with MCP")
  • ปัญหาเดิม: หลายคนสร้าง MCP ที่แย่มากและกินคอนเท็กซ์สูง ด้วยเครื่องมือเป็นสิบตัวที่แค่สะท้อน REST API (read_thing_a(), read_thing_b(), update_thing_c())
  • โมเดล “Scripting” (ที่ถูกทำให้เป็นทางการผ่าน Skills) เป็นวิธีที่ดีกว่า แต่ก็ยัง ต้องมีวิธีเข้าถึงสภาพแวดล้อมอย่างปลอดภัย → นี่คือบทบาทใหม่ที่โฟกัสมากขึ้นของ MCP
  • บทบาทใหม่ของ MCP: data gateway

    • แทนที่จะเป็น API ขนาดพองโต ให้เป็น gateway ที่เรียบง่ายและปลอดภัย พร้อมเครื่องมือระดับสูงที่ทรงพลังเพียงไม่กี่ตัว
      • download_raw_data(filters…)
      • take_sensitive_gated_action(args…)
      • execute_code_in_environment_with_state(code…)
    • บทบาทของ MCP: จัดการ authentication, networking, security boundary แล้วอย่าเข้าไปขวางทาง แทนที่จะทำ abstraction ของโลกจริงให้เอเจนต์
      • ให้จุดเริ่มต้นกับเอเจนต์ → จากนั้นเอเจนต์ทำงานจริงผ่าน scripting และคอนเท็กซ์ markdown
    • MCP เดียวที่ใช้อยู่ตอนนี้: Playwright (สมเหตุสมผลเพราะเป็นสภาพแวดล้อมที่ซับซ้อนและมี state)
      • เครื่องมือไร้ state ทั้งหมด (Jira, AWS, GitHub) ย้ายไปใช้ CLI แบบเรียบง่าย

Claude Code SDK

  • Claude Code ไม่ได้เป็นแค่ CLI แบบโต้ตอบเท่านั้น แต่ยังเป็น SDK ทรงพลังสำหรับสร้างเอเจนต์รูปแบบใหม่ทั้งหมด ทั้งสำหรับงานเขียนโค้ดและงานที่ไม่ใช่โค้ด
  • ในโปรเจกต์งานอดิเรกใหม่ส่วนใหญ่ เริ่มใช้มันเป็น เฟรมเวิร์กเอเจนต์พื้นฐานแทนเครื่องมืออย่าง LangChain/CrewAI
  • 3 วิธีใช้งานหลัก
    • การเขียนสคริปต์แบบขนานในวงกว้าง: เวลาทำรีแฟกเตอร์ครั้งใหญ่ แก้บั๊ก หรือย้ายระบบ จะไม่ใช้แชตแบบโต้ตอบ
      • เขียน bash script แบบง่ายเพื่อเรียกใช้งานแบบขนาน เช่น claude -p &quot;in /pathA change all refs from foo to bar&quot;
      • ขยายระบบได้ดีกว่าและควบคุมได้มากกว่าการให้เอเจนต์หลักคอยจัดการงาน Subagent หลายสิบงาน
    • สร้างเครื่องมือแชตภายใน: เหมาะมากสำหรับห่อกระบวนการที่ซับซ้อนให้กลายเป็นอินเทอร์เฟซแชตแบบง่ายสำหรับผู้ใช้ที่ไม่ใช่สายเทคนิค
      • ตัวอย่าง: อินสตอลเลอร์ที่ fallback ไปใช้ Claude Code SDK เมื่อเกิดข้อผิดพลาดเพื่อช่วยแก้ปัญหาให้ผู้ใช้
      • ตัวอย่าง: เครื่องมือภายใน "v0-at-home" ที่ช่วยให้ทีมดีไซน์ vibe-code ม็อกอัปฟรอนต์เอนด์ด้วย UI framework ภายในบริษัทได้ (ช่วยให้ไอเดียมีความเที่ยงตรงสูง และนำไปใช้ต่อกับโค้ดฟรอนต์เอนด์ระดับโปรดักชันได้โดยตรงมากขึ้น)
    • การทำต้นแบบเอเจนต์อย่างรวดเร็ว: เป็นกรณีใช้งานที่พบบ่อยที่สุด และไม่ได้จำกัดแค่งานเขียนโค้ด
      • เมื่อมีไอเดียงานของเอเจนต์ (เช่น "เอเจนต์สืบสวนภัยคุกคาม" ที่ใช้ CLI แบบปรับแต่งเองหรือ MCP)
      • สร้างและทดสอบต้นแบบได้อย่างรวดเร็วด้วย Claude Code SDK ก่อนจะ commit โครงสร้าง deployment แบบเต็ม

Claude Code GitHub Action (GHA)

  • เป็นหนึ่งในฟีเจอร์ที่ชอบที่สุดและถูกประเมินค่าต่ำที่สุด: แนวคิดเรียบง่ายมาก (รัน Claude Code ใน GHA) แต่ความเรียบง่ายนี่เองคือแหล่งพลังของมัน
  • คล้ายกับ Background Agent ของ Cursor หรือเว็บ UI แบบ managed ของ Codex แต่ ปรับแต่งได้มากกว่ามาก
    • ควบคุมคอนเทนเนอร์และสภาพแวดล้อมทั้งหมดได้ → เข้าถึงข้อมูลได้ดีขึ้น
    • มี sandboxing และการควบคุมการตรวจสอบย้อนหลัง ที่แข็งแกร่งกว่าผลิตภัณฑ์อื่นมาก
    • รองรับฟีเจอร์ขั้นสูงทั้งหมด เช่น Hook, MCP
  • กรณีการใช้งาน

    • สร้างเครื่องมือ "PR จากที่ไหนก็ได้" แบบคัสตอม
      • สั่ง trigger PR ได้จาก Slack, Jira หรือแม้แต่การแจ้งเตือนจาก CloudWatch
      • GHA จะส่ง PR ที่ผ่านการทดสอบครบถ้วนกลับมาหลังจากแก้บั๊กหรือเพิ่มฟีเจอร์แล้ว
    • วงล้อการพัฒนาที่ขับเคลื่อนด้วยข้อมูล
      • log ของ GHA = log ของเอเจนต์ทั้งหมด
      • ทบทวน log เป็นประจำในระดับบริษัท: หา mistake ที่เกิดซ้ำ, ข้อผิดพลาดของ bash และแนวปฏิบัติทางวิศวกรรมที่ไม่สอดคล้องกัน
      • วงล้อการพัฒนา: บั๊ก → ปรับปรุง CLAUDE.md/CLI → เอเจนต์ที่ดีขึ้น
      • $ query-claude-gha-logs --since 5d | claude -p &quot;see what the other claudes were getting stuck on and fix it, then put up a PR&quot;

settings.json

  • คอนฟิกบางอย่างที่จำเป็นทั้งกับงานอดิเรกและงานจริง
  • HTTPS_PROXY/HTTP_PROXY: สำหรับดีบัก
    • ตรวจดูทราฟฟิกดิบเพื่อดูพรอมป์ต์ที่ Claude ส่งออกไปอย่างแม่นยำ
    • สำหรับ background agent ยังเป็นเครื่องมือที่ทรงพลังสำหรับทำ network sandboxing แบบละเอียด
  • MCP_TOOL_TIMEOUT/BASH_MAX_TIMEOUT_MS: เพิ่มค่าให้สูงขึ้น
    • ชอบรันคำสั่งที่ยาวและซับซ้อน ซึ่ง timeout เริ่มต้นมักจะเผื่อไว้น้อยเกินไป
    • ยังไม่แน่ใจว่าหลังมีงาน bash แบบ background แล้วจำเป็นอยู่ไหม แต่ก็เก็บไว้เผื่อ
  • ANTHROPIC_API_KEY: ที่ทำงานใช้ enterprise API key (apiKeyHelper ผ่านทางนี้)
    • เปลี่ยนจากไลเซนส์แบบ "ต่อที่นั่ง" ไปเป็นราคาแบบ "คิดตามการใช้งาน" (เหมาะกับวิธีทำงานมากกว่ามาก)
    • เพราะปริมาณการใช้งานของนักพัฒนาต่างกันมหาศาล (พบว่าต่างกันได้ถึง 1:100 ระหว่างวิศวกร)
    • วิศวกรสามารถทดลองสคริปต์ LLM ที่ไม่ใช่ Claude Code ได้ด้วยบัญชี enterprise เดียว
  • "permissions": ตรวจสอบรายการคำสั่งที่อนุญาตให้ Claude รันอัตโนมัติด้วยตัวเองเป็นระยะ

สรุป

  • มีรายละเอียดเยอะพอสมควร แต่หวังว่าจะเป็นประโยชน์
  • ถ้ายังไม่ได้ใช้เอเจนต์แบบ CLI อย่าง Claude Code หรือ Codex CLI ก็ควร เริ่มใช้ได้แล้ว
  • แทบไม่มีคู่มือดี ๆ สำหรับฟีเจอร์ขั้นสูงเหล่านี้ และ วิธีเดียวที่จะเรียนรู้ได้คือกระโดดลงมือทำเอง

2 ความคิดเห็น

 
GN⁺ 2025-11-03
ความคิดเห็นบน Hacker News
  • เรากำลังซิงก์ไฟล์กับ AGENTS.md เพื่อให้เข้ากันได้กับ AI IDE อื่น ๆ
    พอไปค้นดูเพิ่มก็พบว่าวิธีที่ Anthropic แนะนำคือใส่แค่บรรทัดเดียว @AGENTS.md ในไฟล์ CLAUDE.md แล้วเก็บเนื้อหาจริงไว้ใน AGENTS.md
    เอกสารที่เกี่ยวข้อง: Claude Code Best Practices

    • ผมคิดว่าเพื่อให้เป็นมาตรฐานเดียวกัน ควร เปลี่ยนชื่อ CLAUDE.md เป็น AGENTS.md
    • เราใช้งาน AGENTS.md โดยทำ symbolic link ไปที่ CLAUDE.md และมันก็ทำงานได้ดี
    • ดูเหมือนว่าวิธีนั้นจะสะอาดกว่าหน่อย
    • สงสัยว่าการใช้ symbolic link เป็นไอเดียที่ดีไหม
    • จากประสบการณ์ของผม Claude หรือเอเจนต์ตัวอื่น ๆ ไม่ได้อ่าน AGENTS.md หรือ CLAUDE.md จริง ๆ ถ้าไม่ได้สั่งไว้อย่างชัดเจนในแต่ละเซสชัน
  • ผมชอบบทความส่วนที่พูดถึง MCP มาก
    ผมชอบมุมมองที่ว่า “MCP ไม่ควรเป็น API ซับซ้อน แต่ควรเป็น เกตเวย์แบบเรียบง่าย ที่จัดการเรื่องการยืนยันตัวตน เครือข่าย และขอบเขตความปลอดภัย แล้วที่เหลือก็ถอยออกไป”
    บทความที่เกี่ยวข้อง

    • ตอน MCP ออกมาใหม่ ๆ ผมนึกภาพการใช้งานแบบนี้ไม่ออกเลย แต่ตอนนี้รู้สึกได้ว่า Claude ต้องการ data scripting มากกว่า ‘tools’ หลายตัว หน้าที่ของผมมีแค่ส่งข้อมูลให้ดีเท่านั้น
    • MCP ของผมมีแค่ code interpreter ตัวเดียว ช่วงนี้กำลังลองทำ proxy MCP ที่สามารถเรียก MCP จากภายใน code interpreter ได้
      ถึงอย่างนั้นก็แทบไม่ได้ใช้ MCP อยู่ดี อยากให้โฟกัสไปที่ฝั่ง auth มากกว่า
      ลิงก์อ้างอิง: โพสต์บน X
    • ถ้าใช้ MCP เป็น API gateway ภายใน มันก็ทำงานประมาณนี้ จริง ๆ แล้วคล้าย OpenAPI มาก แต่ปรับให้เหมาะกับการอนุมานของ LLM มากกว่า
  • น่าเสียดายนิดหน่อยที่บทความยาว 3,000 คำกลับถูกมองว่า “ยาวเกินไปเลยเอาไว้อ้างอิงอย่างเดียว”
    ผมอยากเห็นเวอร์ชันที่ยาวกว่านี้และมีตัวอย่างใช้งานจริง

    • ทุกวันนี้ผมค่อนข้าง มองโลกในแง่ร้าย เรื่องที่คนจะอ่านบทความได้มากแค่ไหน
    • ผมก็คาดหวังไว้เหมือนกัน แต่รู้สึกว่าเนื้อหายังจำกัดไปหน่อย ถึงอย่างนั้นก็ยังได้เก็บจุดที่มีประโยชน์อยู่บ้าง
  • ผมใช้ ขั้นตอนรีสตาร์ตแบบง่าย ๆ ด้วย /clear และ /catchup เพื่อรีเซ็ตสถานะของ Claude และให้มันกลับไปอ่านไฟล์ที่เปลี่ยนใหม่
    อีกไม่นาน /compact น่าจะเข้ามาทำหน้าที่นี้แทน

    • เพราะ latency ของ /compact เลยแทบใช้ไม่ได้
      ถึงจะขึ้นว่า “0% context remaining” แต่จริง ๆ แล้วมีการกันไว้ราว 30% สำหรับการบีบอัด
      ถึงอย่างนั้นประมาณครึ่งหนึ่งก็ยังบีบอัดไม่สำเร็จหรือไม่ก็ติดข้อจำกัดของ API
  • การใช้ Claude Code เพื่อ ปรับปรุงการตั้งค่าของตัวเอง ก็ดีเหมือนกัน
    แนะนำให้สลับไปโหมด plan แล้วใช้พรอมป์ต์นี้:
    “อ่านเอกสารนี้(How I use every Claude Code feature) แล้วบอกฉันว่าควรปรับปรุงการตั้งค่า Claude Code ของฉันอย่างไร”

  • แม้แต่คำสั่งง่าย ๆ ใน CLAUDE.md Claude ก็ยังทำตามได้ไม่ดีนัก จนผมเลิกพยายามดูแลมันแล้ว
    ตัวอย่างเช่น ต่อให้สั่งว่าชื่อสคริปต์ที่สร้างต้องเป็น <foo>.aigen.ts มันก็ยังไม่ทำตามประมาณครึ่งหนึ่ง
    เลยต้องเลี่ยงด้วยการใส่คอนเท็กซ์ลงในพรอมป์ต์ทุกครั้งแทน
    หรือว่ามีแค่ผมคนเดียวที่เจอปัญหานี้?

    • CLAUDE.md ของผมค่อนข้างยาว แต่แทบจะทำตามตลอด เวลาไม่ทำตาม ผมแก้เป็นเน้นตัวพิมพ์ใหญ่อย่าง “IMPORTANT! ALWAYS DO …” แล้ว 95% จะทำงานถูกต้อง
      ผมได้ผลคล้ายกันนี้ในหลายโปรเจ็กต์ด้วย
    • ผมก็เจอเหมือนกัน แค่ผมยอมแพ้ไปแล้ว เลยไม่รู้ว่าเวอร์ชันล่าสุดดีขึ้นไหม
    • ในหมู่พวกเรา Claudemasters นี่ถือเป็นปัญหาที่รู้กันอยู่แล้ว
  • มีคนบอกว่า “ถ้ายังไม่ได้ใช้เอเจนต์แบบ CLI คุณควรใช้” เลยสงสัยว่ามันดีกว่าแอป Cursor จริงไหม
    Cursor ดีตรงที่เลือกบางส่วนของโค้ดแล้วกด Cmd-L พร้อมสั่งว่า “แก้ส่วนนี้ให้หน่อย” ได้ง่าย
    การส่งโค้ดบางชิ้นผ่าน CLI ดูค่อนข้างยุ่งยาก

    • ผมใช้ Claude กับ Codex ใน VS Code และเวิร์กโฟลว์แบบ สั่งงานกับโค้ดที่เลือกไว้โดยตรง ก็ทำงานได้ค่อนข้างดี
    • ผมได้ผลลัพธ์ดีกว่าจากการใช้ Codex + GPT5 หรือ Claude Code CLI โดยตรงมากกว่า Cursor ดูเหมือน Cursor จะมี การปรับลดขนาดเอาต์พุต เพื่อประหยัดโทเค็น
    • ผมก็เริ่มจาก Cursor แล้วค่อยใช้แบบไฮบริด สุดท้ายก็ย้ายมาเป็น CLI เต็มตัว
      ทั้ง UX ที่เบา และประสิทธิภาพโดยรวมดีกว่า Claude ทำงานได้ดีที่สุดใน CC
    • Claude รับรู้บรรทัดโค้ดที่เลือกใน VS Code ได้โดยอัตโนมัติ
    • ยังสามารถเลือกหลายไฟล์พร้อมกันเพื่อกำหนดโฟกัสได้ และยังรันคำสั่งใน PATH (gh เป็นต้น) ได้ด้วย
  • พอเห็นประโยคที่ว่า “Claude Code ไม่ใช่แค่ CLI ธรรมดา แต่เป็น SDK ที่ใช้สร้างเอเจนต์ใหม่ได้” ก็รู้สึกเหนื่อย เพราะมันเหมือน สำนวนที่ AI เขียน
    ให้ความรู้สึกว่าไม่ค่อยเคารพผู้อ่าน

    • เดิมทีผมก็มีอาการต่อต้านบทความที่สร้างด้วย AI แบบอัตโนมัติ แต่ช่วงนี้พยายาม ตัดสินจากเนื้อหาเอง
      บทความนี้ดูเหมือนผู้เขียนอ่านและแก้ไขด้วยตัวเองจริง ๆ เลยคิดว่าเป็นตัวอย่างที่ดี
      ตรงกันข้าม ถ้าเป็นเอาต์พุต AI ที่ก็อปวางมาแบบตรง ๆ ก็ควรถูกวิจารณ์
    • ทำให้นึกถึงประโยคที่ว่า “อินเทอร์เน็ตตายแล้ว อินเทอร์เน็ตจงเจริญ”
    • ก็ไม่ได้มีใครบังคับให้อ่าน เลยไม่ค่อยเข้าใจว่าทำไมถึงรู้สึกไม่พอใจ
      สำหรับผมกลับรู้สึกว่าได้รับความเคารพ เลยอ่านจนจบ
  • เครื่องมือพวกนี้น่าสนใจก็จริง แต่ก็อดกังวลไม่ได้ว่าอุตสาหกรรมกำลังกลับไปโฟกัสที่ ตัวเทคโนโลยีเองแทนลูกค้า อีกรอบหรือเปล่า
    (ทำให้นึกถึงบทความ “Top idea in your mind” ของ Paul Graham)

    • ใช่เลย เครื่องมือเขียนโค้ดที่ใช้ LLM อาจดีต่อ ตัวชี้วัดขององค์กร อย่างความเร็วและการลดต้นทุน แต่สิ่งที่ลูกค้าต้องการคือฟีเจอร์และความเสถียร
      ถ้าทำผลิตภัณฑ์ได้เร็วและถูก แต่เต็มไปด้วยบั๊ก ก็ไม่มีความหมายอะไร
      AI ก็เหมือนกัน ตอนนี้ CEO หลายคนมองมันเป็นแค่เครื่องมือลดจำนวนคน แต่เทคโนโลยียังไม่ถึงระดับที่จะให้ประโยชน์จริงกับลูกค้าได้
      แชตบอต AI มีแต่จะทำให้ลูกค้า หงุดหงิดมากขึ้น
    • ผมสงสัยว่าคำว่า “ลูกค้า” หมายถึงอะไรสำหรับคุณ ผมใช้เครื่องมือพวกนี้เพื่อเข้าใจลูกค้าได้ดีขึ้น
  • ความเร็วในการพัฒนาของ Claude Code น่าทึ่งมาก
    มันดีขึ้นต่อเนื่องจนแทบต้องเรียนรู้อะไรใหม่ทุกสัปดาห์

    • ดูจากการใช้ CPU และหน่วยความจำแล้ว ก็ไม่ได้มีอะไรน่าทึ่งขนาดนั้น
      ถ้ามันเพิ่มฟีเจอร์ได้โดยไม่ทำให้ M4 Mac ของผม (RAM 64GB) ช้าลง แบบนั้นต่างหากถึงจะเป็น เวทมนตร์จริง ๆ
 
hyeonseokoh94 2025-11-05

ก็ดีนะ ..