Điểm yếu của Claude Code Agent Teams
Ở đây có ai dùng tính năng Agent Teams của Claude Code chưa nhỉ?
Mình lướt trên X thấy mấy ông siêu nhân chạy cùng lúc 5-6 agent, nhìn token ngốn mà xót dùm. Riêng mình chỉ dám thử sơ sơ vài tính năng đơn giản đã bị limit, chưa test được nhiều. Nên mình đi tìm hiểu sâu hơn về cơ chế bên trong xem token nó bay đi đâu hết.
Bạn nào biết rồi thì hoan hỉ bỏ qua nhá, mình tìm hiểu được thì chia sẻ cho ai chưa biết thôi.
Giới thiệu nhanh: Agent Teams cho phép nhiều Claude Code session chạy song song trên cùng một project. Khác với subagents (chỉ báo cáo kết quả về cho agent chính), các teammate trong Agent Teams có thể nhắn tin trực tiếp cho nhau, chia sẻ phát hiện và phối hợp mà không cần đi qua agent lead.
Nghe thì hay, nhưng mình đào sâu vào thì thấy cơ chế bên trong giải thích được tại sao nó ngốn token dữ vậy.
NHỮNG GÌ MỖI TEAMMATE ĐƯỢC LOAD (giống nhau):
- CLAUDE.md: file hướng dẫn project-level
- MCP servers: các tool bên ngoài đã cấu hình
- Skills: các skill đã định nghĩa
- Permission settings: kế thừa từ lead
Tức là cả 5 teammate đều đọc cùng project context giống nhau khi khởi động.
NHỮNG GÌ TEAMMATE KHÔNG ĐƯỢC LOAD:
- Conversation history của lead: mỗi teammate bắt đầu từ đầu, chỉ nhận được spawn prompt (mô tả nhiệm vụ) từ lead. Không biết bạn đã nói gì với lead trước đó.
- Context của teammate khác: mỗi teammate có context window riêng biệt, hoàn toàn cách ly.
CÁCH TEAMMATE GIAO TIẾP
Chỉ có 2 kênh duy nhất:
- Task files trên disk: shared task list
- SendMessage: nhắn tin qua mailbox (append JSON vào inbox file)
Thấy vấn đề chưa? Khi chạy 5 teammates song song, mỗi teammate load lại toàn bộ context từ đầu, lãng phí cực kỳ lớn. Không có shared memory giữa các teammate. Nếu teammate A phát hiện điều gì đó, teammate B chỉ biết khi A chủ động gửi message hoặc ghi vào file. Vấn đề này gọi là Multi-agent memory coordination.
Không biết tương lai Anthropic có hướng giải quyết vấn đề này không, nhưng mình có vài ý tưởng thấy thú vị muốn share.
Trong tâm lý học tổ chức có khái niệm gọi là Transactive Memory System (TMS): "trong team, mỗi người không cần nhớ mọi thứ, chỉ cần biết AI BIẾT CÁI GÌ".
Áp dụng cho Agent Teams: thay vì mỗi agent tự load toàn bộ project context, mỗi agent chỉ cần biết "agent nào đã explore phần nào của codebase, đã learn được gì, đã quyết định gì". Kiểu như trong công ty, bạn không cần biết hết mọi thứ, chỉ cần biết hỏi ai về cái gì là đủ.
Tất nhiên hướng này cũng có mấy vấn đề cần giải quyết:
Latency trade-off: mỗi lần agent cần thông tin từ agent khác phải query qua memory layer, thêm latency. Query quá nhiều có khi chậm hơn là load sẵn.
Freshness: agent chạy song song, A đang ghi knowledge vào memory trong khi B đang query thì sao? Stale data. Cần cơ chế sync hoặc versioning.
Granularity: định nghĩa thế nào là 1 agent "rành" về 1 tính năng? Cái này khá mơ hồ và chưa có chuẩn rõ ràng.