Multi-Agent Workflow • Handoff • Feedback Loop

Agent Teams.
Một đội kỹ thuật thực thụ, viết thành script.

AgentsRoom Teams kết nối các AI coding agent của bạn như một đội kỹ sư thực thụ. Một Fullstack Dev ship tính năng, một QA Engineer xác thực, một PM ký duyệt. Mỗi vai được viết thành script, workflow là trực quan, và mọi handoff đều mang theo tóm tắt tính năng, diff, rủi ro và gợi ý test. Hết thời một agent đơn lẻ làm mọi thứ một cách dở tệ.

Xây đội AI dev mơ ước trên một canvas trực quan, giống như workflow n8n. Edge có điều kiện, feedback loop, retry, max-cycles guard. Lưu một lần, chạy trên mọi ticket, xem các agent của bạn chuyền baton như senior.

AgentsRoom Teams: trình chỉnh sửa workflow đa agent trực quan, handoff tự động giữa các Claude Code agent, feedback loop Dev to QA, giao tiếp giữa các agent qua MCP.

Agent Teams là câu trả lời của AgentsRoom cho một sự thật phũ phàng về AI coding agent: một agent đơn lẻ cố làm tất cả mọi thứ rốt cuộc làm tất cả một cách dở tệ. Một Fullstack agent vừa code, vừa test, vừa review, vừa deploy, vừa viết spec cùng lúc sẽ quên một nửa hướng dẫn ngay giữa chừng. Câu trả lời đúng, mà mọi đội phần mềm nghiêm túc trên thế giới đang dùng, là tách công việc thành các vai. Một developer code. Một QA engineer xác thực. Một product manager ký duyệt. Một security reviewer audit. Mỗi vai có ngữ cảnh, focus và bộ tool riêng.

Đây chính xác là điều Agent Teams mang lại cho AgentsRoom. Bạn thả các node lên một canvas vô hạn (xây trên React Flow, cùng engine với n8n, Make, Retool và Pipedream), mỗi node là một Claude Code, Codex, OpenCode, Gemini CLI hay Aider agent được gán vào một vai cụ thể, và bạn nối chúng lại. Chạy team trên một ticket trong backlog, hoặc gắn vào bất kỳ lần spawn agent mới nào. AgentsRoom điều phối chuỗi: spawn agent đầu, đợi handoff, tóm tắt công việc, spawn agent tiếp theo với tóm tắt đó làm ngữ cảnh đầu vào, lặp lại cho đến khi team đến node kết thúc.

Các tool khác cố làm điều này với một super-agent đơn lẻ và prompt khôn ngoan. Chúng tôi đã thử, nó không hoạt động sau ba bước. Vai trôi dạt, ngữ cảnh mất, agent quên mất nó phải xác minh điều gì. Agent Teams đối xử với các agent như đồng đội thực thụ: mỗi agent có một session sạch, một system prompt được focus, một payload handoff có cấu trúc, và một scratchpad dùng chung để nói chuyện với những agent khác. Đây là workflow đội AI engineering mà bạn thực sự muốn.

Trình chỉnh sửa workflow trực quan AgentsRoom Agent Teams: các node cho các vai Dev, QA, PM, Security và DevOps được nối trên một canvas vô hạn với edge có điều kiện và feedback loop

Editor AgentsRoom Teams: thả node cho từng vai, nối chúng lại, thêm điều kiện, lưu team, chạy trên bất kỳ ticket nào.

Điều phối đa agent thực sự scale được

Mỗi node trên canvas là một agent. Bạn chọn vai (Fullstack, Frontend, Backend, QA, Security, DevOps, PM, Architect, Mobile, Marketing, Git, SEO, Localization, hoặc bất kỳ vai tùy chỉnh nào bạn đã tạo), model (Opus, Sonnet, Haiku, GPT-5, o3, Gemini Pro, v.v.), chế độ handoff (tự động qua Stop hook, hoặc thủ công qua một button) và vài dòng hướng dẫn riêng cho từng bước. Vậy là xong. Không cần nghi lễ prompt engineering, không cần file YAML config phải viết.

Edge nối các node. Một edge đơn giản nghĩa là: khi agent đầu tiên xong bước của nó, handoff sang agent tiếp theo. Edge có điều kiện mang theo một flag check, ví dụ qaPassed equals true. Agent QA đặt flag đó trong payload handoff, runner chọn edge khớp. Đây là cách bạn xây feedback loop: QA xong, qaPassed equals false, edge gửi ngược về Dev kèm gợi ý test và rủi ro. Dev sửa, handoff lại. Lặp đến khi QA pass hoặc max-cycles guard kích hoạt.

Giao tiếp giữa các agent vốn dĩ đã được thiết kế bền bỉ. AgentsRoom đi kèm một MCP server riêng (agentsroom-team) cho mỗi agent trong run một bộ tool: đọc team context, đọc scratchpad NOTES.md dùng chung, đăng note cho đồng đội, gửi câu hỏi cho một vai khác, đọc inbox, đọc timeline, đọc git diff so với baseline của run, và hoàn thành bước với payload có cấu trúc. Các tool này được tiêm lại vào session Claude mỗi lượt nên chúng sống sót qua context compaction. Kể cả sau /compact hoặc /clear, agent vẫn thấy các tool team của nó.

Trên hết, một UserPromptSubmit hook nhắc agent về mọi note mới từ đồng đội trước mỗi message từ người dùng. File NOTES.md trong workspace là append-only và sống sót qua crash, restart và Mac reboot. Một schema payload handoff được validate phía server ngăn agent handoff với payload rỗng hoặc rác. Đây là phần mà phần lớn demo đa agent lặng lẽ bỏ qua, và là lý do hầu hết chúng sụp đổ ở cycle 3.

Mọi thứ bạn cần để vận hành một crew AI engineering

Workflow trực quan, handoff thực sự, feedback loop thực sự, giao tiếp giữa các agent thực sự. Được dựng để bạn ship một tính năng trong một Slack ping thay vì năm mươi.

Canvas workflow trực quan

Canvas vô hạn có thể zoom được, chạy trên React Flow, cùng engine đứng sau n8n, Retool, Pipedream và Make. Thả node, kết nối, lưu team. Không cần code, không cần YAML.

14 vai agent có sẵn

Fullstack, Frontend, Backend, DevOps, QA, Security, PM, Architect, Mobile, Marketing, Git Expert, SEO, i18n. Cộng thêm bất kỳ vai tùy chỉnh nào bạn đã lưu trong project.

Model và prompt theo từng node

Mỗi node chọn nhà cung cấp, model và hướng dẫn bước riêng. Dùng Opus cho Architect, Haiku cho QA, Codex cho backend nặng, Gemini cho frontend giá rẻ. Mix tùy ý.

Handoff tự động

Khi agent gọi team_complete_step, AgentsRoom dựng payload handoff (tóm tắt tính năng, file thay đổi, rủi ro, gợi ý test, flag) và spawn node tiếp theo với payload đó làm ngữ cảnh khởi đầu.

Tùy chọn handoff thủ công

Muốn xác thực từng bước? Chuyển node sang chế độ thủ công. Agent đợi, bạn click 'Hand off' khi hài lòng với kết quả. Tốt nhất của cả hai bên.

Edge có điều kiện

Mỗi edge có thể mang một flag check (ví dụ qaPassed equals true). Tạo các nhánh: nếu QA pass đi tới PM, ngược lại loop về Dev. Logic workflow thực sự, không cần script.

Feedback loop

Dev to QA to Dev to QA. Khi QA gửi ticket trở lại, Dev agent gốc được tái sử dụng với toàn bộ ký ức của cycle trước, nên nó thực sự sửa regression chứ không bắt đầu lại.

Max-cycles guard

Giới hạn có thể cấu hình (mặc định 3). Tránh các vòng QA-từ-chối-Dev vô hạn. Khi đạt giới hạn, run dừng ở awaiting-finalization và bạn quyết định làm gì tiếp.

Scratchpad NOTES.md dùng chung

Mọi agent trong run đọc và ghi vào một file markdown trong workspace. Sống sót qua compaction, crash, restart. Nguồn sự thật duy nhất cho lập luận của team.

Inbox giữa các vai

Cần QA hỏi Architect ở giữa run? team_ask đăng một message vào inbox của vai. Agent tiếp theo của vai đó đọc và trả lời. Chat thực sự giữa các agent.

Giao tiếp giữa agent qua MCP

Mọi tool team được expose qua một MCP server. Tool sống sót qua context compaction của Claude (Anthropic gửi lại mỗi lượt). Bền với /clear, /compact và loop dài.

Tóm tắt handoff bằng Haiku

Nếu agent không tự viết tóm tắt tính năng, một call Haiku nhỏ sẽ tạo từ git diff. Rẻ, nhanh, và agent tiếp theo luôn đến với ngữ cảnh.

Lan tỏa Browser MCP

Một node team với verifyInBrowser tự động chuyển agent sang chế độ browser-access. Node QA đến với đầy đủ tool browser (navigate, click, type, screenshot, get logs).

Agent tạm thời cho mỗi run

Mỗi lần chạy team spawn agent mới và hủy chúng khi dismiss. Danh sách agent của project luôn sạch sẽ. Team là workflow, agent là runtime.

Team global và team theo project

Lưu team tái sử dụng vào thư viện global (~/.agentsroom/teams) hoặc gắn vào một project cụ thể (commit cùng room). Cùng editor, scope khác.

Template team có sẵn

Ba template seed đi kèm app: Dev to QA, Dev to QA có feedback loop, và Dev to Security to QA. Nhân bản, sửa, chạy. Bắt đầu trong 30 giây.

UI timeline cho run

Mỗi handoff hiện ra như một card trên timeline của run: vai nào vừa xong, tóm tắt nói gì, file nào thay đổi, flag nào được đặt. Có thể audit, có thể replay.

Chạy trên bất kỳ ticket backlog nào

Thả một ticket lên team và chuỗi bắt đầu trên ticket đó. Agent đầu tiên đọc tiêu đề và body của ticket, phần còn lại của team tiếp nhận từ đó.

14 vai chuyên biệt, sẵn sàng để nối

Mỗi vai có system prompt, vùng focus và task ví dụ riêng. Mix chúng trên canvas. Thêm vai tùy chỉnh của bạn bất kỳ lúc nào.

Fullstack
End-to-end implementation
Frontend
UI, components, design tokens
Backend
API, database, performance
DevOps
CI/CD, infra, deployment
QA
Tests, edge cases, regression
Security
Audit, OWASP, secrets, auth
Architect
System design, refactor
PM
Specs, priorities, scope
Mobile
iOS, Android, React Native
Marketing
Copy, landing, SEO
Git Expert
Branches, rebase, history
SEO
Rankings, structured data
Localization
i18n, l10n, 14 languages
Custom
Bring your own role

Tại sao một team thực thụ thắng một super-agent

Điều phối đa agent nghe như một buzzword. Đây là khác biệt thực tế trên một tính năng bạn thực sự sẽ ship.

Kịch bản: thêm Stripe checkout flow vào một site e-commerce

Super-agent đơn độc

  • Đọc ticket. Viết 600 dòng trải khắp API, form React, webhook, migration, test.
  • Quên idempotency key trên webhook. Quên test failure path. Quên env var staging.
  • Nói 'Done'. Bạn dành hai tiếng săn bug trên production.

Agent Team (Dev to Security to QA)

  • Fullstack agent ship implementation, commit, handoff với một tóm tắt và danh sách rủi ro flag thay đổi auth.
  • Security agent đọc diff, audit kiểm tra signature webhook, viết gợi ý test cho QA trong payload handoff.
  • QA agent chạy gợi ý test trong browser nhúng, đụng phải một bug idempotency, đặt qaPassed equals false, đá ticket về Dev với reproduction chính xác.
  • Dev sửa, handoff lại. QA pass. PM finalize. Run vào done.

Cùng ticket, cùng model, cùng project. Hình thái công việc khác. Hướng tiếp cận team bắt được những gì agent đơn độc bỏ sót, vì mỗi vai có brief được focus và handoff có cấu trúc.

Cách một team run hoạt động

01

Mở tab Teams

Trong project view, tab Teams liệt kê ba template seed (Dev to QA, Dev to QA có feedback loop, Dev to Security to QA) cộng với bất kỳ team nào bạn đã lưu. Nhân bản một template hoặc click 'New team'.

02

Xây workflow trên canvas

Thả các node agent lên canvas React Flow. Với mỗi node, chọn vai (Fullstack, QA, Security, PM, v.v.), nhà cung cấp, model, và vài dòng hướng dẫn bước. Nối chúng bằng edge. Thêm điều kiện trên edge nếu cần phân nhánh.

Dev → QA → PM
03

Đặt chế độ handoff cho từng node

Auto handoff: agent gọi team_complete_step khi xong việc, runner tiếp quản. Manual handoff: agent đợi bạn click 'Hand off'. Mix cả hai khi cần.

04

Chạy team

Từ một ticket backlog, click 'Run with team'. Từ một slot agent trống, click 'Create as team'. Node đầu tiên spawn như một agent tạm trong workspace của project.

05

Xem handoff diễn ra

Khi agent N xong, AgentsRoom dựng payload handoff (tóm tắt tính năng qua agent hoặc qua Haiku, git diff, rủi ro, gợi ý test, flag), append một note vào NOTES.md, chọn edge đi ra đúng dựa trên flag, và spawn agent N+1 với payload đó làm ngữ cảnh đầu vào.

06

Loop, kết thúc, finalize

Feedback loop quay lại agent gốc (giữ nguyên ký ức đầy đủ). Node kết thúc trigger awaiting-finalization. Bạn click 'Finish run'. Dismiss banner để hủy agent và giải phóng PTY.

Giao tiếp giữa các agent sống sót qua mọi thứ

Chi tiết mà phần lớn demo đa agent bỏ qua. Đây là điều khiến Agent Teams trụ vững qua run dài và nhiều cycle.

Claude Code agent có context window và sẽ compact nó. Sai lầm kinh điển của các hệ multi-agent là đặt phối hợp team chỉ trong system prompt. Sau hai cycle /compact, agent không hề biết nó đang ở trong một team. AgentsRoom không làm vậy.

Mọi phối hợp team nằm ở ba nơi sống sót qua compaction. Thứ nhất, một MCP server (agentsroom-team) expose các tool (team_get_context, team_read_notes, team_post_note, team_read_inbox, team_ask, team_read_timeline, team_read_diff, team_complete_step). Tool MCP được CLI gửi lại cho Claude mỗi lượt nên miễn nhiễm với context compression.

Thứ hai, một UserPromptSubmit hook chạy trước mỗi message của người dùng và gắn thêm một nhắc nhở nhỏ nếu có note mới hoặc inbox mới cho vai đó. Rẻ khi không có gì xảy ra, quyết định khi có.

Thứ ba, NOTES.md và state.json sống trên đĩa trong workspace. Agent có thể đọc lại bất kỳ lúc nào với một Read đơn giản hoặc với team_read_notes. Chúng sống sót qua crash, restart, /clear, /compact và Mac reboot. System prompt không bao giờ là nguồn sự thật, đĩa và tool MCP mới là.

Mọi người xây gì với Agent Teams

Pipeline Dev to QA

Kinh điển. Fullstack ship tính năng. QA xác thực trong browser nhúng, chạy gợi ý test, sign off. Team hai node, chạy trên mọi ticket trong backlog.

Dev to QA có feedback loop

Giống trên, nhưng có một edge có điều kiện: qaPassed equals false đá ticket về Dev kèm gợi ý test. Tối đa 3 cycle. Bắt regression trước khi đến tay reviewer.

Dev to Security to QA

Cho các tính năng đụng tới auth, payments hoặc PII. Security agent review diff, flag rủi ro, viết gợi ý test cho QA. Được dùng bởi các team ship fintech, healthtech và B2B SaaS.

PM to Architect to Dev

Workflow spec-first. PM agent biến ticket thành một spec có cấu trúc. Architect chọn hướng tiếp cận. Dev implement. Ba vai, tách biệt rõ, quyết định có thể trace.

Frontend, Backend, DevOps fan-out

Tách tuần tự cho tính năng full-stack. Frontend ship UI. Backend ship API. DevOps thêm config infra. Mỗi vai làm trong vùng của mình, handoff với diff sạch.

Marketing to SEO to i18n

Đúng vậy, AgentsRoom Teams không chỉ cho code. Marketing viết landing copy. SEO chèn keyword. Localization dịch sang 14 ngôn ngữ. Một team, một ticket, một lần ship.

So sánh với các hướng đa agent khác

Điều phối đa agent là một buzzword đông đúc. Đây là cái thực sự đang ship, và AgentsRoom Teams nằm ở đâu.

Anthropic Subagents (tool Task, .claude/agents) cho phép một session Claude duy nhất ủy quyền cho các agent helper chuyên biệt. Tốt cho ủy quyền inline, nhưng session cha vẫn là người điều phối và là một context duy nhất. AgentsRoom Teams cao hơn một bậc: mỗi node team là một session Claude top-level riêng với window riêng, state riêng, scrollback riêng. CrewAI, AutoGen và LangGraph là các framework Python xuất sắc cho luồng đa agent, nhưng chúng sống ngoài IDE của bạn và không chạy real Claude Code, Codex hay Gemini CLI end-to-end trên repo local. n8n, Make, Pipedream và Retool ship cùng kiểu canvas editor mà chúng tôi dùng, nhưng chúng là nền tảng tự động hóa đa năng, không xây cho AI coding agent. AgentsRoom Teams là editor workflow đa agent kiểu canvas, nhưng được nối cụ thể với CLI agent, project, git, terminal và browser của bạn.

Claude subagentsTask toolCrewAIAutoGenLangGraphn8nMakePipedreamRetoolTemporalAirflowPrefectDagster

Nếu bạn xây hệ agentic bằng Python, hãy tiếp tục dùng CrewAI hoặc LangGraph cho production pipeline. Nếu bạn ship code với Claude Code, Codex CLI, OpenCode, Gemini CLI hoặc Aider, Agent Teams là workflow team chạy ngay nơi bạn thực sự code.

FAQ

Cái này khác Claude Code subagents (tool Task, .claude/agents) thế nào?

Claude subagents là ủy quyền inline từ một session Claude cha duy nhất. Cha quyết khi nào gọi subagent, subagent chạy trong context window cô lập, trả về kết quả, cha tiếp tục. AgentsRoom Teams cao hơn một bậc: mỗi node là một session Claude Code top-level với terminal riêng, state riêng và scrollback riêng. Bạn thấy mọi agent run live trong tab riêng của nó, có thể nói chuyện với bất kỳ agent nào bất kỳ lúc nào, có thể tạm dừng team, đổi workflow và resume. Đây không phải thay thế cho Claude subagents, bạn hoàn toàn có thể dùng cả hai. Một team node có thể dùng subagents bên trong.

Cái này chỉ chạy với Claude Code thôi à?

Nó chạy với mọi nhà cung cấp được AgentsRoom hỗ trợ (Claude Code, Codex CLI, OpenCode, Gemini CLI, Aider). Mỗi team node chọn nhà cung cấp và model riêng. Tool điều phối team dựa trên MCP hoạt động giống nhau giữa các nhà cung cấp vì chúng được expose qua Model Context Protocol chuẩn. Bạn có thể chạy một team với Codex trên node backend nặng và Haiku trên node QA nếu hợp với ngân sách và độ trễ.

Payload handoff là gì?

Một object có cấu trúc đi từ agent này sang agent kế tiếp. Các field: featureSummary (mô tả ngắn về thứ vừa ship), changedFiles (git diff name-status), touchedAreas (UI, API, DB, config), risks (mọi thứ agent kế tiếp nên lo lắng), testHints (ưu tiên cho QA), flags (boolean như qaPassed, dùng bởi edge có điều kiện). Agent gọi team_complete_step với payload này, runner validate phía server, agent kế tiếp nhận làm ngữ cảnh khởi đầu.

Agent có thực sự đi qua đi lại được không (Dev to QA to Dev)?

Có. Khi một node được vào lại (cycle lớn hơn 1), AgentsRoom không spawn agent mới. Nó tái sử dụng agent gốc của cycle 1, ghi payload handoff mới trực tiếp vào terminal đang có, agent giữ nguyên ký ức session Claude đầy đủ của các cycle trước. Đây là điểm then chốt: một Dev agent đã biết QA flag gì lần trước sẽ sửa bug. Một Dev agent mới không có ký ức chỉ lặp lại sai lầm.

Nếu QA cứ từ chối Dev mãi mãi thì sao?

Cấu hình team có max-cycles guard, mặc định 3. Khi đạt giới hạn, run tạm dừng với trạng thái 'blocked' và đợi bạn. Bạn có thể finalize run, handoff thủ công thêm một lần nữa, hoặc hủy hết. Không vòng lặp vô hạn, không hóa đơn bất ngờ qua đêm.

Mọi agent trong team có dùng chung workspace git không?

Có. Team chạy trong một workspace duy nhất và một branch duy nhất (hoặc worktree nếu bạn dùng tính năng AgentsRoom Worktrees). Mỗi agent thấy việc của agent trước qua git. Payload handoff bao gồm git diff so với baseline của run nên agent kế tiếp biết chính xác cái gì là mới.

Cái này có cần subscription thêm không?

Không. Teams là một phần của AgentsRoom. Bạn mang key nhà cung cấp của riêng mình (Claude, Codex, OpenCode, Gemini, Aider) và chỉ trả cho token bạn dùng, giống như với một agent đơn lẻ. Chạy một team Dev to QA trên một ticket nhỏ thường tốn bằng chạy một Fullstack agent đơn lẻ, vì Haiku/Sonnet ở bước QA rất rẻ.

Team được lưu ở đâu? Có commit vào git không?

Team theo project sống cùng room, sync lên cloud và cache trong {project}/.agentsroom/teams-cache.json (gitignored). Team global sống trong ~/.agentsroom/teams/{teamId}.json trên máy bạn, mỗi team một file. Bạn quyết scope nào hợp với từng workflow.

Nếu agent crash hoặc app restart giữa run thì sao?

Trạng thái run được persist xuống đĩa trong {workspace}/.agentsroom/team-runs/{runId}/ (state.json, NOTES.md, inbox/, timeline.jsonl). NOTES.md là append-only, mọi lần ghi state là atomic. Agent có thể đọc lại mọi thứ bất kỳ lúc nào với team_read_notes hoặc team_get_context. Lớp điều phối đang được làm cứng cáp để có thể replay đầy đủ một run bị gián đoạn khi app restart, nhưng phần trên đĩa đã crash-safe rồi.

Tôi có thể chạy nhiều team song song trên các ticket khác nhau không?

Có. Mỗi team run độc lập và được nhận diện bằng runId. Bạn có thể có một team Dev to QA chạy trên ticket A, một team Dev to Security to QA trên ticket B và một team PM to Architect to Dev trên ticket C, tất cả live cùng trong project. Bên trong một run, thực thi là tuần tự (một node active tại một thời điểm) để dễ dự đoán.

Xây đội AI dev mơ ước của bạn

Ba template đi kèm app. Mở AgentsRoom, thả node, vẽ edge, chạy trên bất kỳ ticket nào. Crew AI engineering của bạn chỉ cách một click.

Miễn phíTải AgentsRoom

Ứng dụng đồng hành: theo dõi agent khi đi đường

Hoạt động với Claude, Codex, OpenCode, Gemini CLI và Aider

Tải tiện ích mở rộng
Chrome Web Store

Gửi lỗi và yêu cầu thẳng vào backlog công khai của bạn.

Nhiều dự án
Đa nhà cung cấp
Nhiều agent
Trạng thái trực tiếp
File diff & commit
Ứng dụng đồng hành mobile
Xem trước trực tiếp
Đội agent
Tự động hóa trình duyệt
Dev theo backlog