⚡ ระดับสูง · บทที่ 25 · อ่าน 11 นาที
สร้าง Agent และ Automation ด้วย Claude
Agent คืออะไร ต่างจากแชทยังไง
การใช้แชท (แม้แต่แชทเก่ง ๆ): เราคือคนคุมวงจร — ถาม → ได้คำตอบ → เอาไปทำ → กลับมาถามต่อ ทุกรอบมีเราอยู่ตรงกลาง
Agent กลับวงจรนั้น: เราให้เป้าหมายครั้งเดียว แล้ว AI เป็นคนวนลูปเอง — วางแผน → ใช้เครื่องมือ (อ่านไฟล์ รันคำสั่ง ค้นเว็บ) → เช็คผลลัพธ์ → เจอปัญหาก็แก้แล้วลองใหม่ → จนงานเสร็จค่อยกลับมารายงาน
จริง ๆ คุณใช้ agent มาแล้ว: Claude Code นั่นแหละคือ agent — ตอนที่มันหาบั๊ก แก้ไฟล์ รันเทสต์ แล้ววนแก้จนผ่านในบทที่ 20 นั่นคือ agent loop ทำงานให้เราดูสด ๆ
Claude Agent SDK: ยืมสมอง Claude Code ไปใส่โปรแกรมเรา
ถ้าอยากได้ agent ที่ทำงานเฉพาะทางของเราเอง — รันตามเวลา, ฝังในระบบบริษัท, ทำงานซ้ำได้แบบไม่ต้องมีคนพิมพ์สั่ง — ใช้ Claude Agent SDK: ไลบรารี Python และ TypeScript ที่ให้ agent loop + เครื่องมือทั้งชุดของ Claude Code มาแบบสำเร็จรูป
# JavaScript/TypeScript
npm install @anthropic-ai/claude-agent-sdk
# Python (ต้องใช้ Python 3.10 ขึ้นไป)
pip install claude-agent-sdk
การยืนยันตัวตนใช้ API key จากบทที่ 24 (ANTHROPIC_API_KEY)
Agent ตัวแรก: นักสรุปรายงานอัตโนมัติ
โจทย์: ทุกสัปดาห์มีไฟล์รายงานหลายไฟล์กองอยู่ในโฟลเดอร์ reports/
อยากได้บทสรุปรวมไฟล์เดียวโดยไม่ต้องเปิดอ่านเอง — โค้ดทั้งหมดมีเท่านี้:
JavaScript
import { query } from '@anthropic-ai/claude-agent-sdk';
for await (const message of query({
prompt: 'อ่านไฟล์ทั้งหมดในโฟลเดอร์ reports แล้วสรุปเป็นรายงานเดียวใน summary.md',
options: { allowedTools: ['Read', 'Glob', 'Write'] },
})) {
if ('result' in message) console.log(message.result);
}
Python
import asyncio
from claude_agent_sdk import query, ClaudeAgentOptions
async def main():
async for message in query(
prompt="อ่านไฟล์ทั้งหมดในโฟลเดอร์ reports แล้วสรุปเป็นรายงานเดียวใน summary.md",
options=ClaudeAgentOptions(allowed_tools=["Read", "Glob", "Write"]),
):
if hasattr(message, "result"):
print(message.result)
asyncio.run(main())
สิ่งที่เกิดขึ้นเมื่อรัน: agent จะคิดเองทั้งหมด — ใช้ Glob หาไฟล์ในโฟลเดอร์, ใช้ Read อ่านทีละไฟล์, เรียบเรียง, ใช้ Write สร้าง summary.md แล้วรายงานผล (ตอนเราทดสอบโดยที่ยังไม่มีโฟลเดอร์ reports จริง มันถึงกับรายงานกลับมาว่า หาโฟลเดอร์ไม่เจอ เช็คที่ไหนมาแล้วบ้าง และแนะนำทางแก้ — นี่คือความต่างจากสคริปต์ธรรมดา ที่จะพังเงียบ ๆ)
บรรทัดสำคัญที่สุดคือ allowedTools — เราเลือกได้ว่า agent มีสิทธิ์ทำอะไร
ตัวอย่างนี้ให้แค่ อ่าน/หาไฟล์/เขียน ไม่ได้ให้ Bash (รันคำสั่ง) เพราะงานนี้ไม่จำเป็น
หลักการ: ให้สิทธิ์น้อยที่สุดที่งานต้องใช้เสมอ
งาน Automation ที่คุ้มค่าสร้าง
- สรุปอัตโนมัติ — รายงานประจำสัปดาห์, สรุป log ความผิดพลาด, ย่อยอีเมล/feedback ลูกค้า
- ตรวจงานอัตโนมัติ — รีวิวโค้ดทุกครั้งที่มีงานใหม่เข้า (ต่อกับ CI/CD ของทีม)
- จัดการข้อมูล — แปลงไฟล์ปนเป (Excel/CSV/PDF) ให้อยู่ในรูปแบบเดียว, ตั้งชื่อไฟล์ใหม่ตามกติกา
- เฝ้าระวัง — เช็คเว็บ/ระบบเป็นระยะ เจอความผิดปกติให้สรุปแจ้ง
จุดตัดสินว่า “ควรเป็น agent ไหม”: งานนั้นขั้นตอนตายตัวหรือเปล่า — ถ้าตายตัวเป๊ะ เขียนสคริปต์ธรรมดาถูกกว่าเร็วกว่า / ถ้าต้อง “อ่านแล้วตีความ ตัดสินใจ ปรับตามสถานการณ์” นั่นคืองานของ agent
ข้อควรระวังก่อนปล่อย Agent ทำงานจริง
- เริ่มจาก read-only — ให้สิทธิ์แค่
Read,Glob,Grepก่อน ดูพฤติกรรมจนไว้ใจ ค่อยเพิ่มสิทธิ์เขียน/รันคำสั่ง - คุมค่าใช้จ่าย — agent วนลูปเองได้ = เผา token เองได้ ตั้ง budget alert (บทที่ 24) และทดสอบกับงานเล็กก่อนเสมอ
- มีมนุษย์ตรวจปลายทาง — ช่วงแรกให้ agent “เสนอ” ผลงาน อย่าเพิ่งให้ “ส่ง” อัตโนมัติ เช่น สร้างไฟล์สรุปให้คนอ่านก่อน ไม่ใช่ยิงอีเมลหาลูกค้าเอง
- ระวังข้อมูลขาเข้า — agent ที่อ่านเนื้อหาจากภายนอก (เว็บ อีเมล) เจอ prompt injection ได้เหมือน MCP ในบทที่ 23 — จำกัดสิทธิ์ + ตรวจผลลัพธ์ คือเกราะสองชั้นของเรา
ฉันอยากสร้าง agent อัตโนมัติสำหรับงานนี้: [อธิบายงานซ้ำ ๆ ที่กินเวลา] ช่วยวิเคราะห์: 1) งานนี้เหมาะเป็น agent หรือสคริปต์ธรรมดา เพราะอะไร 2) ถ้าเหมาะ ควรให้เครื่องมือ (tools) อะไรบ้าง โดยยึดหลักสิทธิ์น้อยที่สุด 3) จุดไหนควรมีมนุษย์ตรวจก่อน 4) ร่างโค้ด Agent SDK เวอร์ชันแรกให้ดู จบเส้นทางการเรียนแล้ว 🎓
จากคนที่ไม่รู้จัก Claude เลยในบทที่ 1 ถึงตรงนี้คุณ: คุยเป็น เขียนพรอมต์ระดับสูงเป็น ใช้เครื่องมือครบทั้ง claude.ai มี workflow ของอาชีพตัวเอง ใช้ Claude Code ทำงานจริงในเครื่อง ต่อ MCP เรียก API และสร้าง agent ของตัวเองได้ — ที่เหลือคือการลงมือใช้กับงานจริงของคุณ
โลก AI เปลี่ยนเร็ว สิ่งที่จะไม่เปลี่ยน: หลักการสั่งงานให้ชัด ให้บริบทให้พอ ตรวจสอบผลลัพธ์เสมอ และรู้ขอบเขตของเครื่องมือ — สี่อย่างนี้คุณมีครบแล้ว