Dynamic workflow là một script JavaScript điều phối subagent ở quy mô lớn. Claude viết script cho việc bạn mô tả, và một runtime thực thi nó ở nền trong khi phiên của bạn vẫn phản hồi bình thường.
Dùng workflow khi một việc cần nhiều agent hơn khả năng một hội thoại điều phối nổi, hoặc khi bạn muốn “đóng gói” cách điều phối thành một script đọc và chạy lại được. Ví dụ: quét lỗi toàn bộ codebase, migrate 500 file, một câu hỏi nghiên cứu cần đối chiếu nguồn chéo nhau, hoặc một kế hoạch khó đáng để soạn từ nhiều góc độc lập trước khi chốt.
Khi nào dùng workflow
Phần tiêu đề “Khi nào dùng workflow”Subagent, skill, agent team, và workflow đều chạy được việc nhiều bước. Khác biệt nằm ở ai giữ kế hoạch:
| Subagent | Skill | Agent team | Workflow | |
|---|---|---|---|---|
| Là gì | Worker Claude spawn | Hướng dẫn Claude làm theo | Lead giám sát các phiên ngang hàng | Một script được runtime thực thi |
| Ai quyết định bước tiếp theo | Claude, theo từng lượt | Claude, theo prompt | Lead, theo từng lượt | Script |
| Kết quả trung gian ở đâu | Context window của Claude | Context window của Claude | Task list dùng chung | Biến trong script |
| Cái gì lặp lại được | Định nghĩa worker | Hướng dẫn | Định nghĩa team | Bản thân sự điều phối |
| Quy mô | Vài task giao mỗi lượt | Giống subagent | Vài “peer” chạy dài | Hàng chục–hàng trăm agent mỗi lần chạy |
Workflow đưa kế hoạch vào code. Với subagent, skill, agent team - Claude là người điều phối: nó quyết định theo từng lượt cái gì chạy tiếp, mọi kết quả đổ vào context window. Script workflow tự giữ vòng lặp, nhánh rẽ, và kết quả trung gian, nên context của Claude chỉ chứa câu trả lời cuối.
Đưa kế hoạch vào code cũng cho phép workflow áp dụng một khuôn mẫu chất lượng lặp lại được - không chỉ chạy nhiều agent hơn: có thể cho các agent độc lập phản biện phát hiện của nhau trước khi báo cáo, hoặc soạn kế hoạch từ nhiều góc rồi cân nhắc so sánh - cho kết quả đáng tin hơn một lượt chạy đơn.
Chạy workflow có sẵn
Phần tiêu đề “Chạy workflow có sẵn”Cách nhanh nhất để thấy workflow hoạt động: chạy /deep-research, workflow tích hợp sẵn để nghiên cứu một câu hỏi qua nhiều nguồn.
/deep-research What changed in the Node.js permission model between v20 and v22?Claude Code hỏi có cho phép chạy workflow không - chọn Yes. Chạy trong nền; theo dõi bằng /workflows, chọn lần chạy, Enter để mở view tiến độ (hiện từng phase kèm số agent, tổng token, thời gian). Khi xong, báo cáo đổ về phiên của bạn, trích dẫn nguồn cho mỗi claim, những claim không qua được đối chiếu chéo đã bị lọc bỏ.
Workflow có sẵn
Phần tiêu đề “Workflow có sẵn”| Command | Việc nó làm |
|---|---|
/deep-research <câu hỏi> | Tìm kiếm web theo nhiều góc, fetch và đối chiếu chéo nguồn, vote từng claim, trả báo cáo có trích dẫn |
Workflow bạn tự lưu cũng trở thành command theo cách này, xuất hiện trong autocomplete / cạnh các workflow có sẵn.
Theo dõi lần chạy
Phần tiêu đề “Theo dõi lần chạy”/workflows liệt kê các lần chạy đang tiến hành và đã xong. Trong view tiến độ:
| Phím | Hành động |
|---|---|
↑/↓ | Chọn phase hoặc agent |
Enter/→ | Drill vào phase, rồi vào agent để xem prompt, tool call gần đây, kết quả |
Esc/← | Lùi lại một cấp |
p | Tạm dừng / tiếp tục |
x | Dừng agent đang chọn, hoặc dừng cả workflow nếu focus ở run |
r | Khởi động lại agent đang chạy được chọn |
s | Lưu script của lần chạy này thành command |
Để Claude viết workflow
Phần tiêu đề “Để Claude viết workflow”Có hai cách:
- Yêu cầu trong prompt: gõ trực tiếp bằng lời của bạn, hoặc bao gồm từ khoá
ultracode. - Để Claude tự quyết định với ultracode: đặt
/effort ultracode, Claude sẽ lên kế hoạch workflow cho mỗi việc đáng kể trong phiên.
Yêu cầu workflow trong prompt
Phần tiêu đề “Yêu cầu workflow trong prompt”ultracode: audit every API endpoint under src/routes/ for missing auth checksTừ khoá chỉ chọn cách Claude cấu trúc công việc - workflow tạo theo cách này vẫn chạy trong permission mode hiện tại của phiên, tool call của các agent vẫn qua cùng permission check và sandboxing như mọi tool call khác.
Nếu không muốn kích hoạt, nhấn Option+W (macOS) / Alt+W (Windows, Linux) để bỏ highlight, hoặc tắt hẳn trigger từ khoá trong /config.
Để Claude tự quyết với ultracode
Phần tiêu đề “Để Claude tự quyết với ultracode”Ultracode kết hợp effort xhigh với tự động lên kế hoạch workflow - Claude tự quyết khi nào việc đáng workflow thay vì chờ bạn yêu cầu:
/effort ultracodeUltracode kéo dài trong phiên hiện tại, reset khi bạn mở phiên mới. Quay về /effort high khi làm việc thường ngày - vì mỗi request dùng nhiều token và thời gian hơn.
Duyệt kế hoạch trước khi chạy
Phần tiêu đề “Duyệt kế hoạch trước khi chạy”Trong CLI, prompt hiện các phase đã lên kế hoạch với lựa chọn: Yes, run it, Yes, và không hỏi lại cho workflow này trong project này, View raw script, No. Ctrl+G mở script trong editor.
Permission mode của bạn quyết định có bị hỏi hay không: default/accept-edits hỏi mỗi lần chạy (trừ khi đã chọn không hỏi lại); auto chỉ hỏi lần đầu (bỏ qua hoàn toàn khi ultracode bật); bypass permissions / claude -p / Agent SDK không bao giờ hỏi.
Subagent workflow spawn luôn chạy ở acceptEdits mode, kế thừa tool allowlist của bạn, bất kể permission mode phiên là gì - file edit được auto-approve. Lệnh shell, web fetch, MCP tool ngoài allowlist vẫn có thể prompt bạn giữa chừng.
Lưu workflow để dùng lại
Phần tiêu đề “Lưu workflow để dùng lại”Chạy /workflows, chọn lần chạy muốn giữ, nhấn s. Tab chuyển giữa hai vị trí lưu:
.claude/workflows/trong project: chia sẻ với mọi người clone repo~/.claude/workflows/trong home directory: dùng ở mọi project, chỉ mình bạn thấy
Nhấn Enter để lưu - workflow chạy như /<tên> ở các phiên sau.
Truyền input cho workflow đã lưu
Phần tiêu đề “Truyền input cho workflow đã lưu”Workflow đã lưu nhận input qua args - script đọc như một biến global tên args:
Run /triage-issues on issues 1024, 1025, and 1030Ví dụ prompt workflow
Phần tiêu đề “Ví dụ prompt workflow”Workflow phù hợp nhất khi việc lớn hơn khả năng một agent giữ trong context, hoặc cùng một bước cần chạy trên nhiều mục. Một số mẫu:
use a workflow to audit every route handler under src/routes/ for missing authentication checks, and adversarially verify each finding before reporting ituse 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 progressuse a workflow to migrate every component under src/components/ from styled-components to Tailwind, working on each file in its own isolated copyuse a workflow to review every file changed in this PR for correctness issues, then merge the per-file findings into one ranked summaryScript đã lưu trông như thế nào
Phần tiêu đề “Script đã lưu trông như thế nào”export const meta = { name: 'audit-routes', description: 'Audit every route handler for missing auth checks',}
const found = await agent('List every .ts file under src/routes/.', { schema: { type: 'object', required: ['files'], properties: { files: { type: 'array', items: { type: 'string' } } } },})
const audits = await pipeline(found.files, file => agent(`Audit ${file} for missing authentication checks.`, { label: file }),)
return audits.filter(Boolean)Nội dung là JavaScript thuần với top-level await. agent() spawn một subagent, pipeline() chạy một cái cho mỗi mục trong danh sách.
Cách một workflow chạy
Phần tiêu đề “Cách một workflow chạy”Runtime thực thi script trong môi trường cách ly, tách khỏi hội thoại của bạn - kết quả trung gian nằm trong biến script thay vì đổ vào context của Claude. Mỗi lần chạy ghi script ra file dưới thư mục phiên trong ~/.claude/projects/ - bạn có thể mở đọc, diff với lần chạy trước, hoặc sửa tay rồi nhờ Claude chạy lại từ bản đã sửa.
Giới hạn của runtime
Phần tiêu đề “Giới hạn của runtime”| Giới hạn | Vì sao |
|---|---|
| Không nhận input người dùng giữa chừng | Chỉ permission prompt của agent mới tạm dừng được. Muốn xác nhận giữa các giai đoạn, chạy mỗi giai đoạn thành workflow riêng |
| Không truy cập filesystem/shell trực tiếp từ script | Agent đọc/ghi/chạy lệnh; script chỉ điều phối |
| Tối đa 16 agent chạy đồng thời | Giới hạn tài nguyên máy local (ít hơn trên máy CPU yếu) |
| Tối đa 1.000 agent mỗi lần chạy | Chống vòng lặp chạy trốn |
Quản lý các lần chạy
Phần tiêu đề “Quản lý các lần chạy”Resume sau khi tạm dừng
Phần tiêu đề “Resume sau khi tạm dừng”Nếu dừng một lần chạy, bạn resume được - agent đã xong thường trả kết quả cache, còn lại chạy lại thật. Hai quy tắc quyết định kết quả nào giữ được:
- Agent đang chạy khi bạn dừng thì không được lưu - chạy lại từ đầu khi resume.
- Replay theo thứ tự agent bắt đầu chạy. Kết quả cache dừng ở agent đầu tiên chưa xong, mọi agent bắt đầu sau đó chạy lại - kể cả agent đã hoàn thành.
Vì vậy dừng giữa lúc một đợt fan-out nhiều agent tốn kém: nếu 4 agent A, B, C, D khởi động theo thứ tự đó và bạn dừng lúc B đang chạy, A trả từ cache, B/C/D đều chạy lại - dù C, D có thể đã xong trước khi bạn dừng. Một workflow chia việc thành nhiều agent nhỏ giữ được nhiều tiến độ hơn một agent chạy dài.
Chi phí
Phần tiêu đề “Chi phí”Một workflow spawn nhiều agent nên một lần chạy có thể tốn token nhiều hơn đáng kể so với làm cùng việc trong hội thoại thường. Để ước lượng chi phí trước khi cam kết việc lớn, chạy thử trên một phần nhỏ trước. View /workflows hiện token usage từng agent theo thời gian thực, bạn có thể dừng bất cứ lúc nào mà thường không mất tiến độ đã xong.
Claude Code cảnh báo khi workflow lên lịch hơn 25 agent hoặc dự phóng vượt 1.5 triệu token, hiện cảnh báo Large workflow trong task panel - đây chỉ là cảnh báo, không tự dừng hay giới hạn lần chạy.
Đặt “size guideline”
Phần tiêu đề “Đặt “size guideline””Size guideline gợi ý cho Claude số agent nên nhắm tới khi viết workflow - đây là lời khuyên, không phải giới hạn cứng:
| Giá trị | Số agent Claude nhắm tới |
|---|---|
unrestricted | Không gợi ý: Claude tự định cỡ theo việc |
small | Dưới 5 agent |
medium | Dưới 15 agent |
large | Dưới 50 agent |
Đổi bằng mục Dynamic workflow size trong /config, hoặc /config workflowSizeGuideline=small.
Tắt workflow
Phần tiêu đề “Tắt workflow”- Tắt trong
/config "disableWorkflows": truetrong~/.claude/settings.json- Biến môi trường
CLAUDE_CODE_DISABLE_WORKFLOWS=1
Tắt cho cả tổ chức: "disableWorkflows": true trong managed settings, hoặc toggle trên trang admin settings.
Xem thêm
Phần tiêu đề “Xem thêm”- Chạy nhiều agent song song: so sánh subagent, agent view, agent team, workflow.
- Subagent: nguyên liệu worker mà workflow điều phối.
lượt xem