Skip to content
Bùi Thúc Đồng Notebook · since 2009

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:

SubagentsAgent teamsWorkflows
Ai quyết bước tiếp theoClaude, từng lượtLead agent, từng lượtScript
Kết quả trung gian nằm đâuContext window của ClaudeTask list chungBiến trong script
Quy môVài task mỗi lượtVài peer chạy dàiHàng chục đến hàng trăm agent mỗi run
Bị ngắt thì saoChạy lại lượtTeammate chạy tiếpResume đượ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 ultracode khô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 /workflows và 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 /model trướ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

Đố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.