Thursday, October 8, 2026

[OpenCode] วิธีจัดการ Built-in Agents และ Subagents ใน OpenCode: ปิด Primary และ Override โมเดล

การปรับแต่งคอนฟิกใน OpenCode เมื่อต้องการเอาเอเจนต์ที่ไม่ต้องการใช้งานออก หรือเปลี่ยนมาใช้เอเจนต์ฉบับของเราแทน สามารถทำได้ดังนี้ครับ:


1. Disable Built-in Primary Agent (plan & build)

หากต้องการปิดการใช้งาน Primary Agent เริ่มต้นอย่าง plan หรือ build สามารถระบุค่า "disable": true ในไฟล์คอนฟิกหลัก (เช่น opencode.json) ได้โดยตรง:

{
  "agent": {
    "plan": {
      "disable": true
    },
    "build": {
      "disable": true
    }
  }
}

เมื่อสั่ง Disable แล้ว ระบบจะไม่เรียกใช้งานเอเจนต์เหล่านี้อีก


2. Override Built-in Subagent (general & explore)

สาเหตุหลักที่เราต้องทำ Override Subagent อย่าง general และ explore ก็เพื่อกำหนด **Model (LLM)** ที่ต้องการใช้งานแยกต่างหาก มิเช่นนั้น Subagent จะดึงโมเดลตัวเดียวกับ Primary Agent มาใช้โดยอัตโนมัติ ซึ่งอาจไม่เหมาะสมกับลักษณะงานหรือสิ้นเปลืองทรัพยากรเกินความจำเป็น

การทำ Override ทำได้โดยการสร้างไฟล์ Subagent ขึ้นมาใหม่แล้วตั้งชื่อไฟล์ให้ตรงกับชื่อเดิมของระบบ (เช่น general.md หรือ explore.md) เมื่อตั้งชื่อไฟล์ซ้ำกับตัวเริ่มต้น คอนฟิกใหม่ที่เราสร้างจะเข้าไปแทนที่ (Override) ค่าเดิมทันที ทำให้เราสามารถเลือกใช้โมเดลที่เหมาะกับงานสำรวจหรือแก้ไขโค้ดได้อย่างอิสระ


จุดสำคัญที่ควรพิจารณา

ข้อควรจำ: การตั้งค่าระดับ Project Level จะอ่านทับ (Override) ค่าจาก Global Level เสมอ และสำหรับการแทนที่ @explore ควรกำหนด permission ให้เป็น Read-only เสมอ เพื่อป้องกันการแก้ไขโค้ดโดยไม่เจตนาขณะสำรวจโปรเจกต์


บทสรุป

การ Disable และ Override ช่วยให้เราตัดเอเจนต์ที่ไม่ต้องการใช้งานออก หรือระบุโมเดลเฉพาะให้กับ Subagent แยกจาก Primary Agent ได้ตามที่เราต้องการได้อย่างตรงไปตรงมา

No comments:

Post a Comment