Ultracode và dynamic workflows: khi một phiên Claude Code không đủ tay
Dynamic workflows cho Claude Code điều phối hàng chục subagent từ một script có thể đọc, sửa và chạy lại. Bài này giải thích khi nào cần workflow thay vì subagent thường, hai cách kích hoạt, và cách kiểm soát chi phí.
Contents
Có những task mà một hội thoại Claude Code không tài nào ôm nổi: audit 200 route handler cho cùng một lỗi, migrate 500 file component, cross-check một câu hỏi research qua hàng chục nguồn. Dynamic workflows là câu trả lời của Claude Code cho lớp bài toán này: Claude viết một script JavaScript điều phối subagent theo quy mô lớn, một runtime chạy script đó ở background, và phiên của bạn vẫn rảnh để làm việc khác.
Yêu cầu: Claude Code v2.1.154+, có trên mọi gói trả phí. Riêng gói Pro phải tự bật ở dòng “Dynamic workflows” trong /config.
1. Workflow khác gì subagent, skill, agent team?
Khác biệt cốt lõi nằm ở chỗ ai giữ kế hoạch:
| Subagents | Agent teams | Workflows | |
|---|---|---|---|
| Ai quyết bước tiếp theo | Claude, từng lượt | Lead agent, từng lượt | Script |
| Kết quả trung gian nằm đâu | Context window của Claude | Task list chung | Biến trong script |
| Quy mô | Vài task mỗi lượt | Vài peer chạy dài | Hàng chục đến hàng trăm agent mỗi run |
| Bị ngắt thì sao | Chạy lại lượt | Teammate chạy tiếp | Resume được trong cùng phiên |
Với subagent thường, mọi kết quả trung gian đổ về context của Claude — ôm 200 kết quả audit là vỡ context. Workflow chuyển kế hoạch vào code: vòng lặp, rẽ nhánh và kết quả trung gian nằm trong script, context của Claude chỉ nhận đáp án cuối cùng. Nó còn mã hóa được các pattern chất lượng: cho các agent độc lập phản biện chéo kết quả của nhau trước khi báo cáo, hoặc draft một kế hoạch từ nhiều góc rồi cân nhắc — thứ một lượt chạy đơn không làm được.
2. Ba cách kích hoạt
Cách 1 — keyword ultracode trong prompt (một lần):
ultracode: audit mọi API endpoint dưới src/routes/ xem có thiếu auth check không
Nói bằng lời thường (“use a workflow”, “run a workflow”) cũng được tính là opt-in. Claude sẽ viết một workflow script cho task đó thay vì làm từng lượt.
Cách 2 — /effort ultracode (cả phiên): kết hợp effort xhigh với việc tự động dàn dựng workflow — Claude tự quyết task nào đáng chạy workflow, không đợi bạn xin. Một yêu cầu có thể thành nhiều workflow nối nhau: một để hiểu code, một để sửa, một để verify. Session-only; quay về /effort high khi làm việc thường. (--effort ultracode lúc khởi động cần v2.1.203+.)
Cách 3 — chạy workflow có sẵn: Claude Code kèm sẵn /deep-research — fan-out tìm kiếm web theo nhiều góc, cross-check nguồn, vote từng claim, trả về báo cáo có trích dẫn với các claim không qua được kiểm chứng đã bị lọc.
3. Theo dõi và điều khiển run
Run chạy background; gõ /workflows để mở progress view: từng phase với số agent, tổng token, thời gian. Các phím đáng nhớ: Enter drill vào phase/agent để đọc prompt và kết quả, p pause/resume, x dừng agent hoặc cả run, s lưu run thành command — lưu vào .claude/workflows/ (chia sẻ theo repo) hoặc ~/.claude/workflows/ (cá nhân), lần sau chạy lại bằng /<tên> như một slash command, có thể truyền tham số.
Trước khi run bắt đầu, Claude Code hỏi duyệt kế hoạch (tùy permission mode) — bạn xem được danh sách phase và cả raw script trước khi bấm chạy. Lưu ý: subagent trong workflow luôn chạy ở mode acceptEdits và thừa hưởng tool allowlist của bạn — thêm sẵn các lệnh cần thiết vào allowlist để run dài không bị dừng giữa chừng chờ approve.
4. Chi phí — phần phải đọc trước khi bật
Một run workflow spawn nhiều agent nên tốn token hơn hẳn làm cùng task trong hội thoại, và tính vào usage limit của gói như mọi phiên khác. Các chốt an toàn:
- Cảnh báo “Large workflow” hiện khi run lên lịch quá 25 agent hoặc dự kiến vượt 1,5 triệu token — nhưng chỉ cảnh báo, không tự dừng. Và phiên đang bật
/effort ultracodekhông hiện cảnh báo này. - Giới hạn cứng của runtime: tối đa 16 agent chạy đồng thời, 1.000 agent mỗi run.
- Dynamic workflow size trong
/config: đặt khổ mặc định cho script Claude viết —small(< 5 agent),medium(< 15),large(< 50). - Chạy thử lát nhỏ trước: một thư mục thay vì cả repo. Theo dõi token từng agent trong
/workflowsvà dừng bất cứ lúc nào mà không mất phần đã xong. - Mọi agent dùng model của phiên trừ khi script định tuyến khác — kiểm tra
/modeltrước run lớn, hoặc yêu cầu Claude dùng model nhỏ cho các stage nhẹ.
Muốn tắt hẳn: toggle trong /config, "disableWorkflows": true trong settings, hoặc CLAUDE_CODE_DISABLE_WORKFLOWS=1. Khi tắt, keyword ultracode không kích hoạt gì và mục ultracode biến mất khỏi menu /effort.
5. Vài prompt mẫu đáng thử
> use a workflow to run npx tsc --noEmit and keep fixing the reported
errors until the type check passes or two rounds in a row make no progress
> use a workflow to review every file changed in this PR for correctness
issues, then merge the per-file findings into one ranked summary
> use a workflow to find flaky tests in this repo: run the suite repeatedly,
record which tests fail intermittently, and stop once two rounds in a row
find nothing new
Điểm chung: task lớn hơn khả năng một agent ôm trong context, hoặc cùng một bước cần chạy trên nhiều item — đúng hai dấu hiệu docs nêu để cân nhắc workflow.
Nguồn tham khảo
- Orchestrate subagents at scale with dynamic workflows — Claude Code Docs
- Model configuration — Claude Code Docs
Đối chiếu docs lần cuối ngày 14/07/2026. Bài cùng cụm: bảng tra cứu model & effort, đỡ hết limit gói Pro/Max.