3 mô hình Subagent: Fork, Teammate, Worktree
Khám phá 3 pattern subagent trong Claude Code - Fork để thử nghiệm song song, Teammate để chuyên môn hóa, Worktree để cô lập trạng thái. Khi nào đáng tăng ch...
Định nghĩa
Subagent là agent con được parent agent tạo ra (spawn) để xử lý task cụ thể với ngữ cảnh và quyền hạn riêng. Ba mô hình Fork, Teammate, và Worktree — được Anthropic công bố qua hệ thống Claude Code — là các pattern thực chiến để tổ chức công việc giữa parent và subagent, giải quyết bài toán "single agent làm quá nhiều thứ dẫn đến premature declaration" bằng cách phân chia rõ ràng trách nhiệm và cô lập trạng thái.
Giải thích chi tiết
Fork — Thử nghiệm song song nhiều hướng tiếp cận
Pattern Fork cho phép parent agent tạo ra nhiều subagent chạy song song, mỗi agent thử một giải pháp khác nhau cho cùng một vấn đề.
Về bản chất, đây là chiến lược "không bỏ trứng vào một giỏ" áp dụng cho AI. Khi đối mặt với bug khó hoặc design quyết định quan trọng, parent spawn 3-4 subagent cùng lúc: agent A nghiên cứu nguyên nhân network, agent B kiểm tra database, agent C review logic code. Subagent nào tìm ra giải pháp tốt nhất (được Evaluator chấm điểm) sẽ được merge vào luồng chính.
Trade-off rõ ràng: chi phí tăng tuyến tính (gọi 4 subagent = 4x token cost), nhưng thời gian giải quyết giảm đáng kể và chất lượng tối ưu hơn so với single agent phải thử lần lượt. Đây là lý do tại sao paper SWE-agent ghi nhận chi phí 9 khi chạy solo — bạn trả tiền cho parallelism và redundancy.
Teammate — Chuyên môn hóa theo vai trò
Teammate là pattern tạo subagent với persona và kỹ năng cụ thể, tương tự kiến trúc 3-Agent của Anthropic (Planner → Generator → Evaluator).
Khác với Fork (cùng task, nhiều hướng), Teammate chia nhỏ workflow theo separation of concerns. Parent đóng vai trò orchestrator, spawn Teammate A chỉ để phân tích yêu cầu (Planner), Teammate B chỉ để viết code (Generator), Teammate C chỉ để review và test (Evaluator). Mỗi teammate nhận context window riêng phù hợp với vai trò — Planner nhận spec dài, Generator nhận pseudocode, Evaluator nhận diff và test cases.
Pattern này giải quyết vấn đề "context contamination" — khi một agent phải nhảy liên tục giữa chế độ "sáng tạo" và "phê bình", dẫn đến hiệu suất kém. Teammate cố định mode cho từng agent, giống như trong nhóm phát triển con người: người viết code không nên tự review ngay lập tức.
Worktree — Cô lập trạng thái như Git branch
Worktree tạo subagent với workspace hoàn toàn tách biệt — giống như git checkout -b tạo nhánh mới không ảnh hưởng đến main.
Khi parent cần thử nghiệm refactor risky hoặc thư viện mới, thay vì modify trực tiếp file system (risk corrupting working state), parent spawn subagent vào worktree riêng. Subagent thực hiện thay đổi, chạy test, validate. Nếu thành công, parent merge kết quả về; nếu thất bại, parent đơn giản discard worktree — không cần rollback, không có technical debt.
Pattern này đặc biệt quan trọng trong Harness Engineering vì nó cung cấp fault isolation. Subagent có thể cài đặt dependency lạ, thay đổi environment variable, hoặc thậm chí crash — tất cả đều containment trong worktree không leak ra parent.
Ví dụ thực tế
Debug production outage với Fork
Hệ thống production crash. Parent agent spawn 3 subagent Fork:
- Fork A: Kiểm tra log network, timeout, connection pool
- Fork B: Phân tích database query, lock contention, transaction log
- Fork C: Review recent code deployment, dependency changes
Cả 3 chạy song song. Fork B phát hiện deadlock trong 45 giây, trong khi Fork A xác nhận network ổn định. Parent tổng hợp kết luận, không cần đợi sequential investigation. Chi phí: 3x token usage. Thời gian phản hồi: giảm từ 15 phút xuống 2 phút.
Code review pipeline với Teammate
Triển khai kiến trúc 3-agent cho feature implementation:
- Planner Teammate: Nhận Jira ticket, phân rã thành 5 subtask với acceptance criteria cụ thể. Output: technical spec dạng pseudocode.
- Generator Teammate: Nhận spec từ Planner, viết Python implementation. Không được tự ý thay đổi spec — chỉ implement exactly.
- Evaluator Teammate: Nhận diff từ Generator, chạy unit test, integration test, và static analysis. Nếu pass, approve; nếu fail, return feedback cụ thể cho Generator.
Parent chỉ điều phối, không viết code. Mỗi Teammate giữ context window "sạch" cho vai trò của mình — Generator không bị bias bởi plan cũ nếu plan thay đổi.
Experimental refactoring với Worktree
Parent cần thử nghiệm migrate từ REST sang GraphQL — breaking change tiềm ẩn.
Spawn Worktree Subagent với snapshot code hiện tại. Subagent:
- Tạo branch
experiment/graphql - Rewrite 3 core API endpoints
- Chạy full test suite trong worktree riêng
Kết quả: 40% test fail. Parent discard worktree, main codebase không bị ảnh hưởng. Thử lại lần 2 với strategy khác — lần này pass 95%. Parent merge worktree về main, commit lịch sử clean.
Không Worktree, parent phải tự implement rồi tự rollback khi fail — rủi ro cao và tốn thời gian cleanup.
Ứng dụng
Với AI Engineer đang xây dựng harness:
- Dùng Fork cho ambiguous problem (debug, optimization, design choice) — parallelism đáng giá khi uncertainty cao
- Dùng Teammate cho complex workflow đòi hỏi nhiều kỹ năng khác nhau — triển khai kiến trúc Planner-Generator-Evaluator
- Dùng Worktree cho mọi thao tác destructive (refactor, migration, upgrade dependency) — bắt buộc fault isolation trong production system
Với Tech Lead thiết kế team workflow: Chia team thành các "human teammate" tương ứng: một người đóng vai Planner (architect), nhiều dev là Generator, QA/Automation là Evaluator. AI subagent không thay thế mà augment từng vai trò — Planner dùng AI để phân rã task nhanh hơn, Generator dùng AI để viết boilerplate, Evaluator dùng AI để tăng coverage test.
Với Developer sử dụng Claude Code: Hiểu rõ khi nào Claude tự động spawn subagent. Khi bạn yêu cầu "thử 3 cách khác nhau", Claude dùng Fork. Khi bạn yêu cầu "phân tích rồi code", Claude dùng Teammate. Khi bạn yêu cầu "thử refactor này nhưng đừng ảnh hưởng code chính", Claude dùng Worktree.
So sánh
| Pattern | Mục đích chính | Song song | Cô lập trạng thái | Chi phí token | Độ phức tạp debug |
|---|---|---|---|---|---|
| Fork | Thử nghiệm đa hướng | Có (parallel) | Không (chia sẻ context gốc) | Cao (xN lần N fork) | Cao (merge nhiều kết quả) |
| Teammate | Phân chia chuyên môn | Không (thường sequential) | Không (handoff context) | Trung bình (tổng các step) | Trung bình (trace theo pipeline) |
| Worktree | Cô lập thử nghiệm | Không (isolated) | Có (giống git branch) | Thấp đến Trung bình | Thấp (dễ discard/merge) |
Kết luận: Fork trả giá bằng tiền để mua thời gian và diversity; Teammate trả giá bằng latency tuần tự để mua chất lượng và separation of concerns; Worktree trả giá bằng storage/disk space để mua safety. Single agent vẫn đủ cho 80% task đơn giản — chỉ nên triển khai 3 pattern này khi bạn chấp nhận chi phí 9 để đạt được độ tin cậy và hiệu suất của hệ thống production.
Bài viết liên quan
Cùng cụm Multi-Agent
Tại sao cần Multi-Agent?
Khi single agent bị quá tải và tuyên bố xong sớm — hiểu rõ failure modes trước khi chọn pattern phù hợp
Kiến trúc 3-Agent của Anthropic
Planner → Generator → Evaluator: Nền tảng lý thuyết cho pattern Teammate trong Claude Code
Agent Communication
Mailbox, shared state, event bus — cách subagent trao đổi thông tin với parent và siblings
Parallel vs Sequential Agents
Khi nào dùng Fork (parallel) và khi nào dùng Teammate (sequential) — bản đồ quyết định chiến lược
Đọc tiếp
Harness Fundamentals
Quay lại nền tảng để hiểu tại sao cần thiết kế hệ thống (harness) cho AI thay vì chỉ viết prompt
State & Session Management
Đi sâu vào cơ chế cô lập trạng thái — nền tảng kỹ thuật cho pattern Worktree
Security & Guardrails
Subagent có quyền hạn gì? Làm sao ngăn Worktree bị leak hoặc Fork bị prompt injection — bảo mật trong multi-agent
Kiến trúc 3-Agent của Anthropic: Planner → Generator → Evaluator
Phân tích pattern 3-agent giúp Anthropic tăng hiệu suất coding: từ monolithic agent sang separation of concerns với Planner, Generator và Evaluator độc lập.
Agent Communication: Mailbox, shared state, event bus
Hiểu cách AI agent 'nói chuyện' với nhau qua Mailbox, Shared State, Event Bus. Phân tích kiến trúc multi-agent từ Claude Code và Anthropic với trade-off chi...