1 คะแนน โดย GN⁺ 2025-05-20 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Claude Code SDK มอบความสามารถในการผสานรวม เครื่องมือเขียนโค้ดที่ขับเคลื่อนด้วย AI เข้ากับแอปพลิเคชัน
  • นักพัฒนาสามารถ รัน Claude Code ในรูปแบบ subprocess ได้ โดยรองรับการใช้งานผ่านบรรทัดคำสั่งเป็นหลัก
  • มีความสามารถด้าน การจัดการบริบทของบทสนทนา, การกำหนด custom system prompt และการเชื่อมต่อเครื่องมือภายนอก (MCP)
  • รองรับ ความหลากหลายของรูปแบบเอาต์พุต (ข้อความ, JSON, สตรีมมิง JSON) และใช้งานตัวเลือก CLI แบบละเอียดได้
  • กรณีใช้งานจริงแสดงให้เห็นว่าสามารถเชื่อมกับ GitHub Actions เพื่อทำ code review อัตโนมัติ, สร้าง PR และผสานเข้ากับเวิร์กโฟลว์การพัฒนาจริง ได้

แนะนำ

Claude Code SDK เป็นเครื่องมือพัฒนาโอเพนซอร์สที่ช่วยให้สามารถผสานรวม ความสามารถของ Claude Code เข้ากับแอปพลิเคชันได้โดยตรงผ่านการเขียนโปรแกรม SDK จะ รัน Claude Code เป็นโปรเซสแยกต่างหาก ทำให้สามารถขยายการใช้งานไปสู่เวิร์กโฟลว์การพัฒนาหลากหลายรูปแบบ เช่น ผู้ช่วยเขียนโค้ดด้วย AI, เครื่องมืออัตโนมัติ และระบบตรวจทานโค้ด

ปัจจุบันรองรับอินเทอร์เฟซแบบบรรทัดคำสั่ง (CLI) และ SDK สำหรับ TypeScript และ Python จะเปิดตัวในเร็ว ๆ นี้

การใช้งาน SDK เบื้องต้น

Claude Code SDK รองรับการทำงานแบบ ไม่โต้ตอบ (non-interactive) ตัวอย่างเช่น สามารถเรียกใช้ Claude Code ภายในโค้ดโปรแกรมพร้อมอาร์กิวเมนต์บรรทัดคำสั่ง เพื่อให้ได้ผลลัพธ์ที่ต้องการโดยอัตโนมัติ

การใช้งานขั้นสูง

การทำบทสนทนาแบบหลายรอบต่อเนื่อง

  • เมื่อมีการโต้ตอบหลายครั้ง สามารถใช้เซสชันก่อนหน้าหรือ session ID ที่ระบุเพื่อ คงบริบทของบทสนทนา และสนทนาต่อได้
  • นักพัฒนาสามารถสนทนาต่อจากเซสชันล่าสุด หรือเรียกโหลดเซสชันที่ต้องการได้

Custom system prompt

  • สามารถปรับพฤติกรรมพื้นฐานของ Claude ได้ด้วย system prompt แบบกำหนดเองสำหรับนักพัฒนา
  • สามารถแนบคำสั่งเพิ่มเติมเข้ากับ system prompt พื้นฐานเพื่อเปลี่ยนทิศทางงานและขอบเขตพฤติกรรมของ assistant ได้

การตั้งค่า MCP (Model Context Protocol)

  • MCP เป็นโปรโตคอลสำหรับเชื่อมต่อเซิร์ฟเวอร์ภายนอก เพื่อขยายความสามารถของ Claude Code
  • ผ่านแฟลก --mcp-config และไฟล์ตั้งค่า JSON สามารถเพิ่ม การเข้าถึงฐานข้อมูล, การเชื่อมต่อ API, เครื่องมือแบบกำหนดเอง และอื่น ๆ ที่มาจากเซิร์ฟเวอร์ภายนอกได้
  • เมื่อใช้เครื่องมือ MCP จะต้องอนุญาตเฉพาะเครื่องมือที่ระบุไว้อย่างชัดเจนเท่านั้น (แฟลก --allowedTools) และรูปแบบชื่อจะเป็น mcp__<serverName>__<toolName>

ตัวเลือก CLI ที่ใช้งานได้

Claude Code SDK สามารถตั้งค่าสภาพแวดล้อมการทำงานได้ผ่าน แฟลกบรรทัดคำสั่งที่หลากหลาย

  • --print, -p : รันในโหมด non-interactive
  • --output-format : เลือกรูปแบบเอาต์พุต (ข้อความ, JSON, stream JSON เป็นต้น)
  • --resume, -r : สนทนาต่อด้วย session ID ที่ระบุ
  • --continue, -c : สนทนาต่อจากเซสชันล่าสุด
  • --verbose : แสดงล็อกแบบละเอียด
  • --max-turns : จำกัดจำนวนรอบการสนทนาสูงสุดในโหมด non-interactive
  • --system-prompt : override system prompt
  • --append-system-prompt : แนบคำสั่งเพิ่มเติมเข้ากับ system prompt
  • --allowedTools : ระบุรายการเครื่องมือที่อนุญาต (รวมถึงเครื่องมือ MCP)
  • --disallowedTools : ระบุรายการเครื่องมือที่ห้ามใช้
  • --mcp-config : โหลดไฟล์ตั้งค่าเซิร์ฟเวอร์ MCP
  • --permission-prompt-tool : ระบุเครื่องมือ MCP สำหรับจัดการ permission prompt

ตัวเลือกทั้งหมดที่ใช้งานได้และตัวอย่างการใช้งาน โปรดดู เอกสาร CLI อย่างเป็นทางการ

รูปแบบเอาต์พุต

SDK รองรับ รูปแบบเอาต์พุต ที่หลากหลาย

เอาต์พุตแบบข้อความ (ค่าเริ่มต้น)

  • ส่งกลับเฉพาะข้อความตอบกลับ

เอาต์พุตแบบ JSON

  • ส่งกลับ เมทาดาทาและข้อมูลแบบมีโครงสร้าง ทำให้เหมาะกับการ parse ด้วยโปรแกรม
  • ข้อความตอบกลับของ API ใช้โครงสร้าง type ที่เคร่งครัด และมีแผนจะกำหนด type ในรูปแบบ JSON Schema ในอนาคตด้วย

เอาต์พุตแบบสตรีมมิง JSON

  • ส่งแต่ละข้อความแบบ สตรีมแบบเรียลไทม์
  • ระหว่างที่เซสชันบทสนทนาดำเนินอยู่ จะส่งเป็นออบเจ็กต์ JSON แยกกันตามลำดับ ได้แก่ ข้อความเริ่มต้น (init), ข้อความผู้ใช้/assistant และข้อความ result สุดท้ายที่มีสถิติรวมอยู่

สคีมาของข้อความ

  • ข้อความตอบกลับของ JSON API ถูกจัดโครงสร้างตาม สคีมาที่ชัดเจนและแม่นยำ
  • มีแผนจะอัปเดตสคีมาและจัดการเวอร์ชันอย่างต่อเนื่อง

ตัวอย่าง

  • การผสานรวมกับสคริปต์อย่างง่าย
  • การประมวลผลไฟล์ด้วย Claude
  • รองรับโฟลว์บทสนทนาที่ซับซ้อนด้วย การจัดการเซสชัน

แนวปฏิบัติที่แนะนำ

  1. ใช้การ parse คำตอบผ่าน รูปแบบเอาต์พุต JSON
  2. การจัดการข้อผิดพลาด: ตรวจสอบ exit code และ error stream
  3. การจัดการเซสชัน: รักษาบริบทของบทสนทนาแบบหลายรอบ
  4. คำนึงถึง timeout: เพื่อความปลอดภัยของงานที่ใช้เวลานาน
  5. ปรับช่วงห่างระหว่างคำขอ: ป้องกันการเรียกใช้งานมากเกินไปและรักษาเสถียรภาพของบริการ

กรณีใช้งานจริง

Claude Code SDK มอบความสามารถด้าน ระบบอัตโนมัติและการผสานรวมที่ทรงพลัง สำหรับสภาพแวดล้อมการพัฒนาจริง

  • ตัวอย่างเด่นคือการใช้งานร่วมกับ GitHub Actions เพื่อทำให้เวิร์กโฟลว์การพัฒนา เช่น code review อัตโนมัติ, การสร้าง PR, การจัดหมวดหมู่ issue เป็นอัตโนมัติได้อย่างสมบูรณ์

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

 
GN⁺ 2025-05-20
ความคิดเห็นจาก Hacker News
  • อยากเน้นว่าทิศทางที่ Claude Code มุ่งไปนั้นคือรูปแบบปรัชญาแบบ "unix toolish" ของเครื่องมือเขียนโค้ดแบบ agent ที่ผมต้องการมาตลอด ผมใช้ Claude Code มาตั้งแต่ช่วง public preview แรก ๆ และได้เห็นพัฒนาการของมันมาโดยตลอด ผมคิดว่า "มาตรฐานทองคำ" ของ coding agent คือระดับที่เราใส่ feature request (เช่น Jira ticket) แล้วได้ PR กลับมาให้ผมรีวิวและให้ฟีดแบ็กได้โดยตรง ส่วน Cursor, windsurf ฯลฯ เป็น local editor เลยมีข้อจำกัดเพราะเอาไปรวมกับสภาพแวดล้อม CI ไม่ได้ ถ้าจะทำให้ codebase ปรับให้เหมาะกับ AI (MCP, rules ฯลฯ) ก็ต้องตั้งเป้าไปที่เทคโนโลยีที่ใช้แบบ headless ได้ด้วย อยากย้ำว่า Claude Code ใช้งานร่วมกับเครื่องมืออัตโนมัติได้ง่ายมาก จนตอนนี้มันกลายเป็นค่าพื้นฐานเวลาผมนึกถึง coding agent ไปแล้ว ผมก็คิดแบบเดียวกันกับแพ็กเกจ Codex npm อนึ่ง ผมทำงานช่วยตั้งค่าเครื่องมือแบบเหมาะสมลักษณะนี้อยู่ด้วย จึงเลี่ยงไม่ได้ที่จะมีมุมมองที่เข้าข้างเครื่องมือที่ตั้งค่าได้ง่ายโดยธรรมชาติ

    • "golden end state" ที่ผมอยากได้คือการอยู่กลางห้องที่รายล้อมด้วย AI agent เช่น AI agent ที่ทำงานเขียนโค้ด ออกแบบ และทดสอบ ส่วนผมอยู่ตรงกลางแทบไม่ต้องแตะคีย์บอร์ดเองเลย แค่บอกทิศทาง มาตรฐานความงาม และไกด์ต่าง ๆ ผ่านบทสนทนา ผมตั้งตารออนาคตแบบนั้น

    • อยากบอกว่า Anthropic ก็ประกาศฟีเจอร์คล้ายกันแบบเบต้าในวันนี้ด้วย เลยอยากแชร์เอกสารที่เกี่ยวข้อง https://docs.anthropic.com/en/docs/claude-code/github-actions

    • "golden end state" ของ coding agent ในมุมผมคือการใช้ coding agent ฟรีแบบโอเพนซอร์ส ที่รันได้อย่างอิสระบนคอมพิวเตอร์ของผมหรือที่ไหนก็ได้ที่ผมต้องการ เหมือนกับที่เราคงรู้สึกว่ามันไร้สาระถ้าต้องจ่ายเงินทุกครั้งที่รันคำสั่งอย่าง ls, ps, kill ในเทอร์มินัล ผมก็รู้สึกแบบเดียวกันกับ LLM ไม่ได้หมายความว่าต้อง "แบน" LLM แบบปิด แต่หวังว่าคนที่เรียกกันว่าแฮ็กเกอร์ในวงการนี้จะใช้เครื่องมือโอเพนซอร์สเป็นเครื่องมือหลัก

    • คุณชี้ว่า Cursor, windsurf ฯลฯ เป็น local editor เลยใช้กับ CI ได้ยาก แต่ผมลองทำแบบนั้นกับชุด Cursor + MCP แล้วนะ ใช้งานได้สำเร็จอยู่ทั้งวัน แต่ไม่นานก็ชน rate limit แล้วถูกสลับไปใช้โมเดลที่ช้าที่สุดและแย่ที่สุด ผมลองกับ Claude ด้วย แต่ก็ใช้โควตาจนหมดในเวลาไม่นานเหมือนกัน แถม PR ก็มีแค่ราว 25% ที่อยู่ในระดับ "ใช้ได้ทันที" และหลายครั้งการหาว่า AI พลาดตรงไหนก็ช้ากว่าลงมือทำเองเสียอีก

    • ผมคิดว่าเราทำ automation แบบ CI-based นี้ได้อยู่แล้วไม่ใช่หรือ แค่เอา Aider CLI ไปลงเป็น GitHub Action ให้รันอัตโนมัติเมื่อมี issue ถูกสร้างขึ้น โครงแบบนั้นก็ทำได้อยู่แล้ว

  • Claude Code คือวิธีที่ผมชอบที่สุดในการใช้ LLM กับงานเขียนโค้ด แต่สิ่งที่ต้องการจริง ๆ คือ Claude Code เวอร์ชันโอเพนซอร์ส เราต้องมีสภาพแวดล้อมที่เลือกใช้โมเดลตามต้องการและเปรียบเทียบคำตอบของหลายโมเดลได้ด้วยตัวเอง ทางเลือกอื่นอย่าง Aider ฯลฯ ยังให้ประสบการณ์ไม่ถึงระดับ Claude Code ผมพอเดาได้ว่า Anthropic คงไม่อยากให้เป็นแบบนั้น (เพราะแนวป้องกันจะอ่อนลง) แต่ในฐานะผู้บริโภค ผมอยากใช้โมเดลที่ดีที่สุด และไม่อยากถูกผูกติดกับ ecosystem เดียว คิดว่านี่น่าจะเป็นความกลัวใหญ่สุดจากมุมมองของผู้ให้บริการ LLM

    • OpenAI codex คือโอเพนซอร์สที่ใกล้เคียงกับสิ่งที่คุณพูดมากที่สุด ใช้โมเดลจากผู้ให้บริการที่คุณต้องการได้ ตอนนี้ยังด้อยกว่า Claude Code แต่ผมคิดว่าเดี๋ยวก็ตามทัน https://github.com/openai/codex/tree/main

    • คุณสามารถใช้ Claude Code เป็น MCP server เพื่อจัดสภาพแวดล้อมที่ต้องการได้ในระดับหนึ่ง

  • Aider รองรับ Python และ shell scripting มาค่อนข้างนานแล้ว ช่วงหลังยังได้เพิ่มการรองรับภาษาโปรแกรมใหม่อีก 130 ภาษา และทำ screencast ที่มี ad-hoc bash scripting aide รวมอยู่ด้วยด้วย คุณน่าจะสัมผัสได้เองว่าแนวทางแบบ scripting style นี้ทรงพลังแค่ไหน https://aider.chat/docs/scripting.html, https://aider.chat/docs/recordings/tree-sitter-language-pack.html

    • ผมชอบ Aider มาก และมันก็จะรองรับ MCPs เร็ว ๆ นี้ ตอนนี้กำลังทดสอบอยู่บน development branch ถ้าทำได้ ก็จะเปิดทางให้เกิดการพัฒนาแบบ end-to-end ด้วยโมเดลที่ไว้ใจได้จริง ๆ ตั้งแต่ PR ไปจนถึง ticket

    • ผมสงสัยว่าจะพา Aider ไปถึงระดับที่ชอบได้เท่ากับ Claude Code ไหม ผมชอบ UX ของ Claude Code แต่ไม่ใช้เพราะผมชอบ Gemini 2.5 Pro มากกว่า จุดดึงดูดไม่ใช่ฟีเจอร์อย่างการ commit แต่เป็น UX ที่ดี อยากฟังความเห็นเรื่องนี้

    • ผมคิดว่าถ้า Aider ทำ workflow การเชื่อมกับ GitHub Actions ให้ polished ขึ้นอีก มันน่าจะโตได้มากจริง ๆ แค่เพิ่มไฟล์ไฟล์เดียวใน repo ก็สามารถคุยกับโมเดลที่ต้องการผ่าน issue ได้

  • อยากแชร์บริบทเพิ่มเติมที่ทีม Claude Code ออกมาพูดเอง http://latent.space/p/claude-code สรุปประเด็นสำคัญคือ พนักงาน Anthropic ใช้ Claude แบบไม่จำกัดโดยเฉลี่ยวันละประมาณ 6 ดอลลาร์ headless Claude Code สำหรับงาน CI อย่างพวกยูทิลิตี "linux" นั้นน่าสนใจมาก และยังมุ่งไปสู่การเป็นแพลตฟอร์มสำหรับผู้ใช้ที่ขยายต่อได้ด้วย roadmap ต่อจากนี้คือ sandboxing, branching และฟีเจอร์ด้าน planning รวมถึงยังมีโมเดล agentic แบบต่อเนื่องชื่อ sonnet 3.7 ที่กำลังจะมา

    • คุณบอกว่า "พนักงาน Anthropic ใช้ Claude แบบไม่จำกัดโดยเฉลี่ย $6/วัน" แต่ในบทความก็มีพูดถึงวิศวกรบางคนที่ใช้วันละ $1,000 ด้วยเหมือนกัน ผมเลยอยากเห็นการกระจายตัวอย่าง P50, P75, P95 มากกว่าค่าเฉลี่ย

    • ผมเคยใช้ Claude Code แค่ประมาณ 2 ชั่วโมงก็ทะลุ 20 ดอลลาร์ไปหลายครั้ง สำหรับโปรเจกต์ส่วนตัวมันแพงเกินไปจนใช้ต่อไม่ไหว

    • ช่วงหลังผมฟังพอดแคสต์ latent space อย่างสนุกมาก มีไม่กี่คนหรือไม่กี่พอดแคสต์ที่รักษา SNR สูงไว้ได้พร้อมกับปล่อยคอนเทนต์สาธารณะที่มีผลิตภาพสูงระดับนี้อย่างต่อเนื่อง น่าทึ่งมากที่ทำหลายธุรกิจไปพร้อมกันแล้วยังรักษาผลงานสาธารณะได้ขนาดนี้ ผมหวังว่าคนอีกมากจะได้สัมผัส productivity gradient แบบนี้ แม้เจ้าตัวจะเล่าเคล็ดลับไว้บ้าง แต่ก็ไม่ใช่เรื่องง่ายที่จะทำตามได้จริง

  • ถ้าผมจะสร้าง AI code assistant ผมจะไม่มีทางผูกมันเข้ากับผู้ให้บริการ foundation model รายใดรายหนึ่งเด็ดขาด กลยุทธ์นี้จะสมเหตุสมผลได้ก็ต่อเมื่อประสิทธิภาพของโมเดลแตะจุดเกือบสูงสุดแล้ว ทุกเจ้าทำได้ใกล้เคียงกันหมด และเหลือแค่ความต่างเล็ก ๆ ระดับ SDK ที่เราคุ้นมือเท่านั้น

    • ผมมองว่าจริง ๆ แล้ว lock-in ไม่ได้รุนแรงนัก เพราะสิ่งที่ต่างกันมีแค่คำสั่งหรืออาร์กิวเมนต์ สุดท้ายก็คือฟังก์ชันรับเข้า-ส่งออก ถ้าจะแก้หรือห่อเฉพาะส่วนที่ต้องการก็พอ โครงสร้างไม่ได้ซับซ้อนอะไร

    • ณ ตอนนี้ผมคิดว่า Claude Code เป็นตัวสร้างความแตกต่างในตลาด agent-based coding อยู่ ผมกำลังพัฒนา AI code assistant เอง และสิ่งแรกที่อยากลองก็คือเชื่อมกับ Claude Code ผมไม่คิดว่านี่คือช่วงที่ต้องกังวลเรื่อง lock-in ตั้งแต่ต้น เราควรเลือกสิ่งที่ดีที่สุดแล้วเริ่มพัฒนาบนสิ่งนั้นก่อน

  • อยากย้ำว่า Claude Code ใช้งานในโหมด non-interactive ได้อยู่แล้ว จึงผสานเข้ากับแอปอื่นได้ง่ายแบบเดียวกับยูทิลิตี command line ของ UNIX SDK ครั้งนี้ก็ยังรองรับแค่การใช้งานผ่าน command line อยู่ดี เลยยังไม่ค่อยเข้าใจว่าโดยแก่นแล้วมันต่างจากของเดิมอย่างไร หรือผมกำลังพลาดประเด็นอะไรไป

  • ขอยกข้อความจากข้อกำหนดการใช้งานของ Anthropic ที่ว่า "ห้ามใช้บริการเพื่อพัฒนา ฝึกฝน หรือขายต่อผลิตภัณฑ์หรือบริการใด ๆ ที่แข่งขันกับบริการด้านปัญญาทั่วไป" ถ้าซอฟต์แวร์แทบทุกอย่างถูกนับว่า "แข่งขัน" กับปัญญาทั่วไป แบบนี้ถ้าตีความเข้มงวดก็เท่ากับใช้ทำอะไรไม่ได้เลยไม่ใช่หรือ ผมคิดว่าถ้อยคำทางกฎหมายแบบนี้คลุมเครือเกินกว่าจะบังคับใช้จริงได้ คุณเป็นเจ้าของผลลัพธ์ของ AI แต่ต้องไม่แข่งกับปัญญาทั่วไป ฟังแล้วสงสัยว่าทำไมต้องห้ามไว้กว้างขนาดนี้ หรือสุดท้ายก็แค่หมายความว่าความรับผิดชอบทางกฎหมายตกอยู่ที่ผู้ใช้เอง? มีหลายคำถามมาก

    • นี่แหละคือสิ่งที่เกิดขึ้นเมื่อปล่อยให้ทนายร่างกฎตามใจตัวเอง
  • GitHub Action ที่เพิ่มเข้ามาใหม่นี้ตรงกับสิ่งที่ผมหามาตลอดพอดี ดีใจมาก https://docs.anthropic.com/en/docs/claude-code/github-action... แต่ดูเหมือนตอนนี้ยังไม่มีวิธีผูกการใช้งานเข้ากับ Max plan ของ Claude Code ได้ โครงสร้างมันรับแค่ api key เลยรู้สึกเสียดายนิดหน่อย

  • โดยเฉพาะฟีเจอร์เชื่อม GitHub Actions กับ issue/PR นี่แหละคือสิ่งที่ผมต้องการมาตลอด https://docs.anthropic.com/en/docs/claude-code/github-action...

  • ถ้า copilot เริ่มรองรับ Claude เมื่อไร ผมตั้งใจว่าจะลองแน่นอน ตอนนี้ตามนโยบายบริษัท ผมยังใช้เครื่องมืออื่นนอกเหนือจากนั้นไม่ได้