# Teammate

## คำนิยาม

Teammate คือ agent ที่ทำงานร่วมกันในโหมดทีม (Team Mode) ของ Claude Code Agent เมื่อ agent หลักสร้างทีมผ่าน `TeamCreate` และใช้เครื่องมือ `Agent` เพื่อสร้าง teammate แต่ละ teammate จะทำงานเป็นกระบวนการ agent อิสระ มี context window และชุดเครื่องมือเป็นของตัวเอง และสื่อสารกับสมาชิกในทีมผ่าน `SendMessage`

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

| คุณลักษณะ | Teammate | SubAgent |
|-----------|----------|----------|
| วงจรชีวิต | คงอยู่ต่อเนื่อง รับข้อความได้หลายครั้ง | งานครั้งเดียว ถูกทำลายเมื่อเสร็จสิ้น |
| วิธีการสื่อสาร | ข้อความสองทิศทางผ่าน SendMessage | เรียกทิศทางเดียวจากแม่ไปลูก ส่งผลลัพธ์กลับ |
| บริบท | บริบทอิสระสมบูรณ์ เก็บรักษาข้ามรอบ | บริบทงานที่แยกออกมา |
| รูปแบบความร่วมมือ | ทำงานเป็นทีม สมาชิกสื่อสารกันได้ | โครงสร้างลำดับชั้น โต้ตอบกับ agent แม่เท่านั้น |
| ประเภทงาน | งานซับซ้อนหลายขั้นตอน | งานเดี่ยว เช่น ค้นหา สำรวจ |

## พฤติกรรม

- ถูกสร้างโดย agent หลัก (team lead) ผ่านเครื่องมือ `Agent` พร้อมกำหนด `team_name`
- แชร์รายการงานผ่าน `TaskList` / `TaskGet` / `TaskUpdate`
- เข้าสู่สถานะ idle หลังจากดำเนินการแต่ละรอบเสร็จสิ้น รอข้อความใหม่เพื่อปลุกการทำงาน
- สามารถยุติการทำงานอย่างสง่างามผ่าน `shutdown_request`

## คำอธิบายแผงสถิติ

แผงสถิติ Teammate แสดงจำนวนการเรียก API ของแต่ละ teammate คอลัมน์ `Name` คือชื่อของ teammate (เช่น `reviewer-security`, `reviewer-pipeline`) คอลัมน์ `จำนวนครั้ง` คือจำนวนคำขอ API ทั้งหมดที่ teammate นั้นสร้างขึ้น
