# MainAgent

## คำจำกัดความ

MainAgent คือสายการร้องขอหลักของ Claude Code เมื่อไม่ได้อยู่ในโหมด agent team ทุกครั้งที่ผู้ใช้โต้ตอบกับ Claude Code จะเกิดชุดคำร้องขอ API ขึ้น โดยคำร้องขอ MainAgent จะเป็นสายการสนทนาหลัก — ซึ่งจะมี system prompt ที่สมบูรณ์ คำจำกัดความเครื่องมือ และประวัติข้อความ

## วิธีการระบุ

ใน cc-viewer, MainAgent จะถูกระบุด้วย `req.mainAgent === true` ซึ่งถูกทำเครื่องหมายโดยอัตโนมัติโดย `server/interceptor.js` ในขณะจับคำร้องขอ

เงื่อนไขการระบุ (ต้องตรงทั้งหมด):
- เนื้อหาคำร้องขอมีฟิลด์ `system` (system prompt)
- เนื้อหาคำร้องขอมีอาร์เรย์ `tools` (คำจำกัดความเครื่องมือ)
- system prompt มีข้อความลักษณะเฉพาะของ "Claude Code"

## ความแตกต่างจาก SubAgent

| ลักษณะ | MainAgent | SubAgent |
|------|-----------|----------|
| system prompt | prompt หลักที่สมบูรณ์ของ Claude Code | prompt แบบย่อเฉพาะงาน |
| อาร์เรย์ tools | มีเครื่องมือทั้งหมดที่ใช้ได้ | โดยปกติมีเฉพาะเครื่องมือที่จำเป็นสำหรับงานเท่านั้น |
| ประวัติข้อความ | สะสมบริบทการสนทนาทั้งหมด | มีเฉพาะข้อความที่เกี่ยวข้องกับงานย่อย |
| พฤติกรรมแคช | มี prompt caching (TTL 5 นาที) | โดยปกติไม่มีแคชหรือแคชขนาดเล็ก |
