ในสถาปัตยกรรม OpenCode คุณสามารถจัดรูปแบบและขอบเขตการทำงานของ Agent ตามโหมดการทำงานและลำดับขั้น (Hierarchy) เพื่อควบคุมบทบาทหน้าที่ และสิทธิ์ในการเรียกใช้งานได้อย่างชัดเจน ดังนี้:
1. สรุปประเภท Mode: Primary, Subagent และ All
- Primary Mode: เอเจนต์ระดับบนสุด (Main Orchestrator) เป็นผู้รับคำสั่งโดยตรงจากผู้ใช้ ทำหน้าที่ประมวลผลความต้องการภาพรวม วางแผนงาน และแจกจ่ายคำสั่งย่อยไปยัง Subagents
- Subagent Mode: เอเจนต์ย่อยเฉพาะทาง ที่รอรับคำสั่งจาก Primary Agent หรือถูกเรียกใช้งานผ่าน
@agent_nameเพื่อทำภารกิจเฉพาะจุด (เช่น เขียนโค้ด, ตรวจ Security, เขียน Test) - All / Dual Mode: โหมดอเนกประสงค์ที่สามารถเป็นได้ทั้ง Primary Agent (คุยตรงกับผู้ใช้) และ Subagent (ถูกเอเจนต์ตัวอื่นเรียกไปช่วยงาน) ขึ้นอยู่กับบริบทของเวิร์กโฟลว์
2. ตารางเปรียบเทียบความแตกต่าง
| คุณลักษณะ | Primary | Subagent | All (Primary & Subagent) |
|---|---|---|---|
| จุดรับคำสั่งหลัก | รับโดยตรงจาก User | รับจาก Primary Agent / Task Delegation | รับได้ทั้งจาก User และ Agent อื่น |
| บทบาทหน้าที่ | วางแผน, คุมเวิร์กโฟลว์, กระจายงาน | เจาะจงเฉพาะ Task ย่อยๆ | มีความยืดหยุ่นสูง ปรับตามสถานการณ์ |
| สิทธิ์การกระจายงาน | สั่งงาน Subagent ตัวอื่นได้ | ส่วนใหญ่ไม่สั่งต่อ (ส่งผลลัพธ์กลับ) | สั่งงานต่อได้เมื่อทำหน้าที่เป็น Primary |
| โมเดลที่เหมาะสม | Reasoning สูง (เช่น Sonnet, Ultra) | สปีดไว / เฉพาะทาง (เช่น Lightning, Haiku) | โมเดลสมดุลสูง ประมวลผลได้ดีทุกบริบท |
3. ตัวอย่างการตั้งค่า Mode ในไฟล์ Config (`.opencode/agents/`)
คุณสามารถระบุโหมดการทำงานผ่านฟิลด์ mode ใน YAML Front Matter ของไฟล์กำหนดเอเจนต์ได้ ดังนี้:
ตัวอย่าง: การตั้งค่า Subagent Mode
---
name: tester
description: สำหรับเขียน Unit Test และ Integration Test
mode: subagent
model: anthropic/claude-3-5-haiku
permissions:
read: true
write: true
terminal: true
---
ทำหน้าที่เขียนและรัน Test cases เมื่อได้รับมอบหมายจาก Primary Agent เท่านั้น
บทสรุปสำหรับการออกแบบ Multi-Agent System
การกำหนดโหมด Primary, Subagent หรือ All ช่วยให้โครงสร้างของ Multi-Agent System ใน OpenCode มีความเป็นระเบียบ ไม่เกิดการเรียกใช้เอเจนต์วนลูปซ้ำซ้อน และยังช่วยควบคุมการบริโภค Token ได้อย่างคุ้มค่าสูงสุด
No comments:
Post a Comment