ข้าม​ไป​ยัง​เนื้อหา

ทำไม agent ต้อง​มี​ขอบเขต

ตลอด​เส้น​ทางใน​เว็บ​นี้ เรา​ปั้น domain ฟู้ด​เดลิ​เวอรี​ก้อน​เดียวกัน​มา​ตลอด — ค้น domain ทั้ง​ทีม​ด้วย Event Storming ปั้น model Order ให้​ถือ​กฎ​ธุรกิจ​ไว้​ใน code พิสูจน์​ว่า​มัน​ทำงาน​ถูก​ด้วย test ทั้ง​พีระมิด แล้ว​ในคอร์ส Bounded Contexts & Integration เรา​แยก Order ก้อน​เดียว​ที่​บวม​เป็น god object ออก​เป็น4 bounded context เพราะ​คำ​ว่า “order” หมาย​ถึง​คนละ​อย่าง​ใน​ครัว ไร​เด​อร์ และ​บิล​ลิ่ง คอร์ส​นี้​เดิน​ต่อ​จาก​จุด​เดิม แต่​เปลี่ยน​สนาม: ธุรกิจ​อยาก​ได้ ผู้​ช่วย AI มา​ช่วย​ทีม​ปฏิบัติการ — ตอบ​ลูกค้า ติดตามออเดอร์ ดูแล​งาน​หลัง​ร้าน สัญชาตญาณ​แรก​คือ​ปั้น agent ตัว​เดียว​ที่​ทำได้​ทุก​อย่าง และ​นั่น​คือ​กับดัก​เดิม​ใน​คราบ​ใหม่

คอร์ส​นี้​คือ​คอร์ส AI-engineering คอร์ส​แรก​ของ​แก่น มัน​ไม่​ได้​สอน SDK ตัว​ไหน​เป็น​พิเศษ แต่​เป็นการ สังเคราะห์: เอา​เครื่องมือ​เชิงกลยุทธ์​ของ DDD ที่​คุณ​ใช้​คล่อง​แล้ว — bounded context, ubiquitous language, context map, ACL — มา​เป็น​วินัย​ใน​การ​ออกแบบ​ระบบ agent วิทยานิพนธ์​ของ​ทั้ง​คอร์ส​ประโยค​เดียว: AgentAgentระบบ​ซอฟต์แวร์​ที่​รับ​เป้าหมาย​แล้ว​วางแผน-ตัดสิน​ใจ-เรียก​ใช้ tool ได้​เอง​หลาย​รอบ (agentic loop) โดย​ไม่​ต้อง​มี​มนุษย์​กำกับ​ทุก​ก้าว ต่าง​จาก​โปรแกรม​ทั่วไป​ที่​รัน​ตาม​ลำดับ​คำ​สั่ง​ตายตัว — ใน​คอร์ส​นี้​มอง​แต่ละ agent เหมือน1 Bounded Context ที่​ต้อง​มี​ขอบเขต ภาษา และ​หน้าที่​ของ​ตัวเอง​ชัดเจนArchitecture หนึ่ง​ตัว​ควร​เป็น Bounded ContextBounded Contextขอบเขต​ที่ ubiquitous language และ model หนึ่ง​ชุด​มี​ความหมาย​คง​เส้น​คง​วา นอก​ขอบเขต​นี้​คำ​เดียวกัน​อาจ​หมาย​ถึง​คนละ​อย่าง — เมื่อ​ออกแบบ​ระบบ agent ให้​คิด​ว่า​แต่ละ agent (หรือ​กลุ่ม agent ที่​ทำงาน​ร่วม​กัน) ควร​รับผิดชอบ Bounded Context เดียว ไม่ใช่​ยัด​ทุก​หน้าที่​ไว้​ใน agent เดียว หรือ​กระจาย agent ตาม​อำเภอ​ใจStrategic Design หนึ่ง​อัน — และ version คม​ของ​มัน​คือ DDD คือ​วินัย​ที่​บอกว่า อะไร​ควร​อยู่​ใน agent ที่​มี​ขอบเขต​ดี​ตัว​เดียว ส่วน Multi-agentMulti-agentระบบ​ที่​มี agent มากกว่า​หนึ่ง​ตัว​ทำงาน​ร่วม​กัน แต่ละ​ตัว​ควร​มี Bounded Context ของ​ตัวเอง​ชัดเจน​และ​เชื่อม​กัน​ผ่าน context map/handoff ที่​ออกแบบ​ไว้ — ไม่ใช่​คำ​ตอบ​สำเร็จรูป​สำหรับ​ทุก​ปัญหา หลาย​งาน​ทำ​ด้วย agent เดียว​หรือ workflow ธรรมดา​ก็​เพียงพอ​และ​เชื่อถือ​ได้​กว่าArchitecture เป็น​ข้อ​ยกเว้น​ที่มา​ทีหลัง​และ​ต้อง​มี​เหตุผล ไม่ใช่​การ​แตก agent หนึ่ง​ตัว​ต่อ1 subdomain แบบ​อัตโนมัติ

📦 code ตัวอย่าง

คอร์ส​นี้​เป็น คอร์ส​ออกแบบ ไม่ใช่​ทัวร์ SDK — code ใน​คอร์ส​คือ ภาพร่าง ของ system prompt, ชุด tool และโทโพโล​ยี (Thai Mermaid + pseudo-config สั้นๆ) ไม่ใช่ app ที่​รัน​ได้​จริง ตัวอย่าง​ต่อยอด​จาก domain เดิม​ที่ repo kaen-food-ordering (กำลัง​จัด​ทำ) โดย​มอง​มัน​ผ่าน​เลนส์​ใหม่: ระบบ ops-copilot ที่​ช่วย​ทีม​ปฏิบัติการ​ของ platform

ตอน​เริ่มต้น การ​มี agent ตัว​เดียว​ที่​ถือ​ทุก tool ดู​คุ้ม — มี​ที่​เดียว​ให้​คุย ไม่​ต้อง​ตัดสิน​ใจ​ว่า​จะ​ส่ง​งาน​ให้​ใคร แต่​มัน​คือ “model เดียว​ครอง​ทุก​อย่าง” version agent เป๊ะๆ ทุก​ความ​สามารถ​ที่​ทีม​อยาก​ได้​ไป​กอง​รวม​ที่ system prompt เดียว​และ tool list เดียว จน agent ตัว​นั้น​บวม​จน​ไม่มี​ใคร​บอก​ได้​ว่า​มัน​ควร​ทำ​หรือ​ไม่​ควร​ทำ​อะไร:

❌ version ดิบ: agent เทวดา — ตัว​เดียว​ถือ​ทุก​อย่าง
agent: ops-copilot
system_prompt: |
คุณคือผู้ช่วยของ platform ฟู้ดเดลิเวอรี ทำได้ทุกอย่าง:
ตอบคำถามลูกค้า ติดตามสถานะออเดอร์ จัดคิวครัว คืนเงิน
ปรับราคาเมนูร้าน จัดคิวไรเดอร์ ดึงรายงานยอดขาย แก้ข้อพิพาท ...
tools:
- search_customer_ticket # ภาษาฝั่งลูกค้า
- issue_refund # ภาษาฝั่งการเงิน — ย้อนกลับไม่ได้!
- reassign_rider # ภาษาฝั่งจัดส่ง
- update_menu_price # ภาษาฝั่งร้าน
- mark_kitchen_ticket # ภาษาฝั่งครัว
- export_sales_report # ภาษาฝั่งวิเคราะห์
# ... อีกยี่สิบกว่า tool จากทุกฝ่าย

ปัญหา​ไม่ใช่​แค่ tool list ยาว แต่​คือ agent ที่​พยายาม​พูด​ทุก​ภาษา​พร้อม​กัน สุดท้าย​ไม่​แม่น​สัก​ภาษา issue_refund ที่​ย้อน​กลับ​ไม่​ได้​นั่ง​อยู่​ข้างๆ search_customer_ticket ที่​แค่​อ่าน​ข้อมูล — คนละ​ระดับ​ความ​เสี่ยง​กัน​โดย​สิ้นเชิง แต่​ถูก​มอบ​ให้​ตัว​ตัดสิน​ใจ​ตัว​เดียวกัน​ภาย​ใต้​บริบท​เดียวกัน ยิ่ง​งาน​หลากหลาย บริบท​ยิ่ง​พอกพูน และ​ตรง​นี้​เอง​ที่​กลไก​จริง​ของ​ความ​พัง​เริ่ม​ทำงาน

เหตุผล​ว่า​ทำไม agent เทวดา​ถึง​พัง​ไม่ใช่​แค่​เรื่อง​ความ​เป็น​ระเบียบ แต่​มี​ราก​ทาง​เทคนิค​ชื่อ Context RotContext Rotอาการ​ที่​คุณภาพ​การ​ตอบ​ของ agent เสื่อม​ลง​เมื่อ context window ยาว​ขึ้น​และ​สะสม​สิ่ง​ไม่​เกี่ยวข้อง​มาก​ขึ้น​เรื่อย ๆ ระหว่าง​วน agentic loop หลาย​รอบ — เป็น​เหตุผล​เชิง​เทคนิค​ข้อ​หนึ่ง​ที่ agent ควร​มี​ขอบเขต​หน้าที่​แคบ (เหมือน Bounded Context) แทนที่​จะ​ยัด​ทุก​อย่าง​ไว้​ใน agent เดียว​ที่ context ยาว​ขึ้น​เรื่อย ๆProcess — อาการ​ที่​คุณภาพ​การ​ตอบ​เสื่อม​ลง​เมื่อ context window ยาว​ขึ้น​และ​สะสม​สิ่ง​ไม่​เกี่ยวข้อง​มาก​ขึ้น​ต่อ​เนื่อง กลไก​อยู่​ที่​ตัว attention เอง: transformer ให้​ทุก token มอง​ทุก token ที่​เหลือ ค่า​ใช้​จ่าย​ของ attention จึง​โต​แบบ n² เมื่อ​จำนวน token เพิ่ม พูด​อีก​แบบ​คือ agent มี งบ attention ที่​จำกัด และ​งบ​ก้อน​นั้น​ถูก​เกลี่ย​บาง​ลง​ต่อ​เนื่อง ทุก​ครั้ง​ที่​คุณ​ยัด​ของ​เข้า context ยิ่ง​อัด​เข้าไป​มาก ความ​สามารถ​ใน​การ​ดึง​ข้อเท็จจริง​หนึ่ง​ชิ้น​ที่​สำคัญ ณ ตา​นี้ ก็​ยิ่ง​จาง

ทีม Applied AI ของ Anthropic สรุป​หลัก​นี้​ไว้​ชัด​ใน Effective context engineering for AI agents (Anthropic, Sep 2025) ว่า​ให้​มอง context เป็น ทรัพยากร​จำกัด ที่​มี marginal return ลดลง ไม่ใช่​ถัง​ที่​เติม​ได้​ไม่​อั้น (มี​ฉบับ​แปล​ไทย​ใน​เว็บ​นี้​ที่​บทความ Context Engineering ที่​ได้​ผล​สำหรับ AI Agents) นี่​คือ​ดาบสอง​คม​ของ Agentic LoopAgentic Loopวงจร​ที่ agent ทำซ้ำ​จนกว่า​จะ​บรรลุ​เป้าหมาย: รับ input → วางแผน/ตัดสิน​ใจ → เรียก tool → สังเกต​ผลลัพธ์ → วน​กลับ​ไป​ตัดสิน​ใจ​ใหม่ — ต่าง​จาก​โปรแกรม​ทั่วไป​ที่​รัน​เส้นทาง​เดียว​จบ วงจร​นี้​เอง​ที่​ทำให้ agent ยืดหยุ่น แต่​ก็​เสี่ยง context rot ถ้า​วน​นาน​เกิน​ไป​โดย​ไม่มี​ขอบเขตProcess ด้วย — ทุกรอบ​ที่ agent เรียก tool แล้ว​เอา​ผลกลับ​เข้า context บริบท​จะ​ยาว​ขึ้น agent เทวดา​ที่​ทำงาน​ข้าม​ฝ่าย​จึง​สะสม context จาก​ทุก​ฝ่ายใน session เดียว พอ​ถึง​ตา​ที่​ต้อง​รักษา​กฎ​เดียว​ที่​สำคัญ (เช่น “ห้าม​คืน​เงิน​เกิน​ยอด​ที่​จ่าย​จริง”) กฎ​นั้น​อาจ​ถูก​กลบ​อยู่​ใต้​ข้อความ​คิว​ครัว​กับ​รายงาน​ยอด​ขาย​ที่​ไม่​เกี่ยว​เลย ขอบเขต​ที่​แคบ​จึง​ไม่ใช่​เรื่อง​ความ​สวยงาม แต่​คือ​การ รักษา​งบ attention ให้​เหลือ​พอ​สำหรับ​งาน​ตรง​หน้า

เริ่ม​จาก​สิ่ง​ที่​ง่าย​ที่สุด แล้ว​ค่อย​เพิ่ม​เมื่อ​จำเป็น

หัวข้อ​ที่​มีชื่อ​ว่า “เริ่ม​จาก​สิ่ง​ที่​ง่าย​ที่สุด แล้ว​ค่อย​เพิ่ม​เมื่อ​จำเป็น”

ถ้า​ขอบเขต​แคบดี​กว่า สัญชาตญาณ​ถัด​ไป​มัก​ผิดพอๆ กับ​กับดัก​แรก: “งั้น​ก็​แตก​เป็น agent หลาย​ตัว​สิ” — ช้า​ก่อน คำ​แนะนำ​หลัก​จาก Building Effective Agents (Anthropic, Dec 2024) คือ เริ่ม​จาก​สิ่ง​ที่​ง่าย​ที่สุด​ที่​แก้​ปัญหา​ได้ แล้ว​เพิ่ม​ความ​ซับซ้อน​เมื่อ​จำเป็น เท่านั้น หลาย​โจทย์​ไม่​ต้องการ agent เต็ม​รูป​ด้วย​ซ้ำ

ตรง​นี้​ต้อง​แยก​ให้​ออก​ก่อน​ว่า workflow กับ agentWorkflow vs Agentความ​ต่าง​สำคัญ​ที่​มัก​ถูก​มอง​ข้าม: workflow คือ code ที่​กำหนด​ลำดับ​ขั้นตอน​ตายตัว​ไว้​ล่วงหน้า (คาด​เดา​ได้ ทดสอบ​ง่าย) ส่วน agent คือ​ระบบ​ที่​ตัดสิน​ใจ​เส้นทาง​เอง​แบบ​ไดนามิก​ผ่าน agentic loop (ยืดหยุ่น​กว่า​แต่​คาด​เดา​ยาก​กว่า) — โจทย์​ส่วน​ใหญ่​ไม่​ต้องการ agent เต็ม​รูปแบบ workflow ที่​ออกแบบ​ดี​มัก​พอเพียง​และ​เชื่อถือ​ได้​กว่าProcess เป็น​คนละ​สิ่ง — workflow คือ code ที่​กำหนด​ลำดับ​ขั้นตอน​ไว้​ล่วงหน้า (คาด​เดา​ได้ ทดสอบ​ง่าย ถูก) ส่วน agent คือ​ระบบ​ที่​ตัดสิน​ใจ​เส้นทาง​เอง​แบบ​ไดนามิก​ผ่าน agentic loop (ยืดหยุ่น​กว่า​แต่​แพง​กว่า ช้า​กว่า และ​คาด​เดา​ยาก​กว่า) การกระโดด​ขึ้น agent — และ​ยิ่ง​กระโดด​ขึ้น multi-agent — คือ​การ​จ่าย​ค่า​ความ​ยืดหยุ่น​ด้วย token, latency และ​ความ​ไม่​แน่นอน มัน​ไม่ใช่ “อัปเกรด​ฟรี” งาน​ติดตาม​สถานะ​ออเดอร์​ที่​มี​ขั้นตอน​ตายตัว​อาจ​เป็น workflow ธรรมดา​ก็​จบ ส่วน​งาน​ตอบ​ลูกค้า​ปลาย​เปิด​ถึง​จะ​คุ้ม​ที่​จะ​เป็น agent จริงๆ บท​ถัด​ไป​จะ​ทำ​บันได​การ​ตัดสิน​ใจ​นี้​ให้​เป็นขั้นชัดๆ —ขอ​ปัก​หมุด​แค่​ทิศ: อย่า​เริ่ม​ที่​ความ​ซับซ้อน​สูงสุด

เวลา​ลาก​เส้น​แบ่ง agent เส้น​นั้น​ไม่​ได้​มี​มิติ​เดียว ขอบเขต​ของ agent วาง​อยู่​บน​สอง​แกน​ที่ คล้องจอง​กัน แต่ ไม่​ทับ​กัน​เป๊ะ​เสมอ​ไป:

  • แกน​ภาษา/model — agent นี้​พูด​ภาษา​อะไร รู้จัก​คำ​ศัพท์​ชุด​ไหน ถือ tool อะไร รับผิดชอบ​เรื่อง​อะไร นี่​คือ​แกน​ของ ubiquitous language ตรงๆ เป็น​เส้น​เดียว​กับ​ที่​แบ่ง bounded context ใน domain
  • แกน​งบ token/ความ​ไว้ใจ — บริบท​ของ​งาน​นี้​ยาว​แค่​ไหน และ​เรา​มอบ​อำนาจ​ให้ agent ทำ​อะไร​ได้​เอง​บ้าง​ก่อน​ต้อง​มี​คน​กั้น นี่​คือ​แกน​ของ GuardrailGuardrailกติกา​ที่​ควบคุม​ไม่​ให้ agent ทำ​เกิน​ขอบเขต​หรือ​ก่อ​ความ​เสียหาย เช่น จำกัด tool ที่​เรียก​ได้ ตรวจ output ก่อน​ส่ง​ออก บังคับ human approval สำหรับ​การกระทำ​ที่​ย้อน​กลับ​ไม่​ได้ — เป็น​สิ่ง​ที่​รักษา​ขอบเขต​ของ Bounded Context ของ agent ให้​ไม่​ล้ำเส้นProcess และ Human-in-the-loopHuman-in-the-loopการ​ออกแบบ​ให้​มนุษย์​เข้า​มา​ตรวจสอบ​หรือ​อนุมัติ​ใน​จุด​ที่​การกระทำ​ของ agent มี​ความ​เสี่ยง​สูง​หรือ​ย้อน​กลับ​ไม่​ได้ เช่น ก่อน​โอน​เงิน​หรือ​ลบ​ข้อมูล​จริง — เป็น guardrail ชนิด​หนึ่ง​ที่​ยัง​จำเป็น​แม้ agent จะ​ฉลาด​ขึ้น​เรื่อย ๆ เพราะ​บาง​การ​ตัดสิน​ใจ​ไม่​ควร​ปล่อย​ให้ agent ตัดสิน​ใจ​เอง​ทั้งหมดProcess

สอง​แกน​นี้​มัก คล้อง กัน — งาน​ที่​ภาษา​แคบ​ก็​มัก​บริบท​สั้น​และ​ความ​เสี่ยง​ต่ำ — แต่​ไม่​เสมอ​ไป และ​จุด​ที่​มัน​แยก​กัน​คือ​จุด​ที่ design เนอร์มือใหม่​พลาด: agent ตอบ​ลูกค้า​มี ภาษา​แคบ (เคส/นโยบาย/ประวัติ​สนทนา) แต่​ต้อง​แบก บริบท​ยาว (ประวัติ​แชต​ทั้ง​เส้น + คู่มือ​นโยบาย) ขณะ​ที่​การ “คืน​เงิน” มี ภาษา​แคบ​มาก (จำนวน​เงิน​กับ​สถานะ) แต่​ต้องการ ความ​ไว้ใจ​สูงสุด เพราะ​ย้อน​กลับ​ไม่​ได้ จึง​ควร​มี​คน​อนุมัติ​คั่น พอ​สอง​แกน​ไม่​ทับ​กัน​แบบ​นี้ เรา​จึง​ยุบ​มัน​เป็น​แกน​เดียว​ไม่​ได้ — และ​นี่​คือ​เหตุผล​ที่ “1 agent ต่อ1 subdomain” เป็น​สูตร​ที่​หยาบ​เกิน​ไป

เอา​หลัก​ข้าง​บน​มา​วาง​บน domain เดิม สมมติ​เรา​จะ​ปั้น ops-copilot ให้​ทีม​ปฏิบัติการ เส้น​แบ่ง​ที่​เป็น​ธรรมชาติ ไม่ใช่ “ตำแหน่ง​งาน” แต่​คือ​จุด​ที่​ภาษา​และ​ระดับ​ความ​ไว้ใจ​เปลี่ยน — เห็น​ได้​เป็น3 agent ที่​เป็น​ตัว​เลือก​ตั้งต้น:

  • Customer-Support — พูด​ภาษา​เคส/ลูกค้า/นโยบาย ถือ tool ค้น​เคส​และ​ร่าง​คำ​ตอบ ความ​ไว้ใจ​ต่ำ (การกระทำ​ที่​มี​เงิน​เกี่ยว​ต้อง​ผ่าน​คน​ก่อน)
  • Order-Tracking — พูด​ภาษา​ออเดอร์/สถานะ/ETA ถือ tool อ่าน​สถานะ​อย่าง​เดียว ความ​เสี่ยง​ต่ำ​เพราะ​ไม่​เขียน​อะไร
  • Restaurant-Ops — พูด​ภาษา​เมนู/คิว/สต๊อก ถือ tool จัด​คิว​ครัว​และ​ปรับ​เมนู ความ​ไว้ใจ​ปานกลาง

แต่ละ​ตัว​คือ bounded context ที่​มี​ภาษา, ชุด tool และ​ระดับ​ความ​ไว้ใจ​ของ​ตัวเอง สังเกต​ว่า​เรา​ยัง​ไม่​ได้​ฟัน​ธง​ว่า​ต้อง​เป็น 3 agent จริง — บาง​ตัว​อาจ​เริ่ม​เป็น workflow ก่อน บาง​คู่​อาจ​รวม​ได้​ถ้า​ภาษา​ใกล้​กัน​พอ การ​ตัดสิน​ใจ​นั้น​เป็น​เรื่อง​ของบทถัดๆ ไป บท​นี้​แค่​ตั้ง​ภาพ​ว่า ขอบเขต​อยู่​ตรง​ไหน ก่อน​จะ​เถียง​กัน​เรื่อง​จำนวน​ตัว

รวบ​ทุก​อย่าง​เป็น​วิทยานิพนธ์​เดียว: agent ที่​ออกแบบ​ดี​คือ agent ที่​มี​ขอบเขต​ชัด​เหมือน bounded context — ภาษา​หนึ่ง​ชุด, tool ชุด​หนึ่ง​ที่​พอดี​กับ​หน้าที่, บริบท​ที่​แคบ​พอ​จะ​รักษา​งบ attention และ​ระดับ​ความ​ไว้ใจ​ที่​คู่ควร​กับ​ความ​เสี่ยง​ของ​งาน DDD ให้​คำ​ศัพท์​ของ การ​ยับยั้ง​ชั่งใจ ที่​วงการ agent กำลัง​ค้น​พบ​ใหม่​ด้วย​ตัวเอง — และ​หัวใจ​ของ​มัน​คือ​การ​รู้​ว่า​อะไร​ควร​อยู่ ข้าง​ใน agent ตัว​เดียว ก่อน​จะ​ไป​คิด​เรื่อง​หลาย​ตัว

flowchart LR
  subgraph OLD["❌ agent เทวดา: ตัวเดียวถือทุกอย่าง"]
    GOD["ops-copilot<br/>tool จากทุกฝ่าย 25+ ตัว<br/>system prompt ครอบทุกงาน<br/>context โตทุกรอบจนงบ attention เน่า"]
  end
  subgraph NEW["✅ agent มีขอบเขต: หนึ่งตัว = 1 bounded context"]
    CS["Customer-Support<br/>ภาษา ลูกค้า/เคส/นโยบาย<br/>tool ค้นเคส, ร่างคำตอบ<br/>trust ต่ำ (คืนเงินต้องมีคนอนุมัติ)"]
    OT["Order-Tracking<br/>ภาษา ออเดอร์/สถานะ/ETA<br/>tool อ่านสถานะอย่างเดียว"]
    RO["Restaurant-Ops<br/>ภาษา เมนู/คิว/สต๊อก<br/>tool จัดคิว, ปรับเมนู"]
  end
  OLD ==>|"แยกตามจุดที่ภาษาและความไว้ใจเปลี่ยน"| NEW
  classDef god fill:#dc2626,stroke:#7f1d1d,color:#f8fafc;
  classDef ctx fill:#c7d2fe,stroke:#3730a3,color:#1a1a1f;
  class GOD god;
  class CS,OT,RO ctx;

คำ​บรรยาย​ภาพ: ฝั่ง​ซ้าย​คือ​กับดัก — ops-copilot ตัว​เดียว (แดง) ที่​แบก tool จาก​ทุก​ฝ่าย​และ system prompt ครอบ​ทุก​งาน จน context พอกพูน​ทุกรอบ​ของ agentic loop และ​งบ attention เจือจาง​จน​เกิด context rot ฝั่ง​ขวา​คือ​ทางออก — ขอบเขต​ถูกลาก​ตาม​จุด​ที่​ภาษา​และ​ระดับ​ความ​ไว้ใจ​เปลี่ยน (น้ำเงิน) แต่ละ agent ถือ​เฉพาะ​ภาษา, tool และ trust ของ​ตัวเอง เส้น​ที่​แบ่ง​ไม่ใช่ “ตำแหน่ง​งาน” แต่​คือ​เส้น​เดียว​กับ​ที่​แบ่ง bounded context ใน domain — และ​ย้ำ​ว่า​นี่​คือ ภาพ​ขอบเขต ไม่ใช่​คำ​สั่ง​ว่า​ต้อง​เป็น3 agent แยก​กัน​จริง​เสมอ

บท​นี้​วาง​แค่​วิทยานิพนธ์ — agent ควร​มี​ขอบเขต และ​ขอบเขต​นั้น​คือ bounded context จาก​นี้​ทั้ง​คอร์ส​คือ​การ​จับ​เครื่องมือ​เชิงกลยุทธ์​ของ DDD มา​เทียบ​กับ​งาน​ออกแบบ agent ที​ละ​ชิ้น:

  1. Subdomain → ขอบเขต​ของ agent (บท​ที่ 2) — จำแนก subdomain (core/supporting/generic) แล้ว​เลือก​ขั้น​บันได: generic ให้​ซื้อ​หรือ​ใช้ workflow, supporting ให้​เป็น tool หรือ workflow, core ที่​ปลาย​เปิด​ถึง​จะ​เป็น ผู้​สมัคร agent — ไม่ใช่​ตอบ “ใช่ สร้าง agent” ทุก​กล่อง
  2. Ubiquitous Language → system prompt + tools (บท​ที่ 3) — ภาษา​ของ context กลาย​เป็น system prompt ที่ “ระดับ​ความ​สูง​พอดี” กับ​ชุด tool ที่​ตั้ง​ชื่อ​เป็น namespace ชัด
  3. Bounded Context → agent หนึ่ง​ตัว (บท​ที่ 4) — รักษา​บริบท​ด้วย compaction, agent memory ภายนอก และ guardrail (พร้อม​ยอมรับ​จุด​ที่ agent ไม่ เหมือน aggregate อย่าง​ตรง​ไป​ตรง​มา)
  4. Context Map → multi-agent (บท​ที่ 5) — วาด​แผนที่ context ก่อน แล้ว​พิสูจน์​ว่า multi-agent คุ้ม​ด้วย​เหตุผล​ที่​มีชื่อ​สาม​ข้อ​เท่านั้น ไม่ใช่​แตก​ตามใจ
  5. Anti-Corruption Layer → tool integration (บท​ที่ 6) — tool คือ​ชั้น​แปล​ภาษา​ที่​กั้น​ความ​รก​ของ backend ไม่​ให้​ไหล​เข้า​มา​ปน context ของ agent
  6. Handoff & Delegation (บท​ที่ 7) — agent คุย​กัน​ด้วย published language ที่​มี​สัญญา​ชัด แยก delegation (ผลกลับ​มา​หา​หัวหน้า) จาก handoff (โอน​การ​ควบคุม​ถาวร) ให้​ขาด
  7. เมื่อไร​ไม่​ควร​ใช้ agent + eval (บท​ที่ 8) — ประตู​ต้นทุน, งาน​แบบ​ไหน​ที่ workflow หรือ​ไม่​ใช้ agent เลย​ชนะ และ​วิธี​วัดผล​ด้วย eval ที่​ดู​ปลายทาง​ไม่ใช่​เส้นทาง

ทุก​บท​กลับ​มา​ที่ domain ฟู้ด​เดลิ​เวอรี​เดิม​เสมอ — ไม่มี domain ใหม่ มี​แต่​การ​มอง​มัน​ผ่าน​เลนส์ agent และ​ย้ำ​วินัย​เดิม​ทุก​บท: รู้​ว่า​อะไร​ควร​อยู่​ใน agent ตัว​เดียว​ก่อน แล้ว​ค่อย​แตก​เมื่อ​มี​เหตุผล​จริง


🔗 อ้างอิง​เพิ่มเติม​ใน DevIQ

เจาะ​ลึก​แนวคิด​ใน​บท​นี้​ต่อ​ได้ที่​คลัง​อ้างอิง DevIQ และ​คอร์ส​ที่​เกี่ยวข้อง:

  • Bounded Context — ขอบเขต​ที่ model หนึ่ง​ชุด​และ​ภาษา​หนึ่ง​ชุด​คง​ความหมาย​ไว้ หัวใจ​ที่​ทั้ง​คอร์ส​นี้​ยืม​มา​ใช้​กับ agent
  • คอร์ส Bounded Contexts & Integration — ที่มา​ของ​กับดัก “model เดียว​ครอง​ทุก​อย่าง” กับ​การ​แยก Order เป็น4 context ที่​บท​นี้​สะท้อน​ใน​คราบ agent

เช็กความเข้าใจ — บทที่ 1

ข้อ 1 / 3

ทำไม agent เทวดาที่ถือ tool จากทุกฝ่ายถึงเสื่อมคุณภาพเมื่องานยาวขึ้น?