Blog

Cách khởi chạy hàng trăm agent trong Claude Code với Dynamic Workflows

Markdown

Anthropic ra mắt Dynamic Workflows vào 28.05.2026. Claude viết script cho 1.000 subagent như thế nào, ultracode và /deep-research là gì, cùng các giới hạn.

Đọc toàn bộ bài viết

Điểm chính

Ngày 28 tháng 5 năm 2026, Anthropic triển khai Dynamic Workflows trong Claude Code: bạn viết một tác vụ, Claude tạo script điều phối bằng JavaScript, rồi runtime khởi chạy đồng thời tối đa 16 subagent trong nền (tối đa 1.000 agent mỗi lần chạy). Các agent độc lập đối chiếu phát hiện của nhau, sau đó bạn nhận được một báo cáo cuối cùng. Bật tính năng này bằng từ khóa workflow trong prompt, chế độ /effort ultracode hoặc lệnh /deep-research tích hợp sẵn. Tính năng yêu cầu Claude Code v2.1.154+ và có trên các gói Pro, Max, Team và Enterprise.

Tìm thêm tài liệu về cách cấu hình công cụ trong tài liệu Ailoot.

Dynamic Workflows là gì và vì sao Anthropic ra mắt tính năng này vào ngày 28 tháng 5?

Điểm chính

Dynamic Workflow là script JavaScript mà Claude viết ngay khi cần cho một tác vụ cụ thể. Runtime chạy script trong nền, khởi tạo hàng chục hoặc hàng trăm subagent song song, đối chiếu các phát hiện của chúng và trả về một báo cáo.

Trước đây, chính định dạng đã giới hạn khả năng mở rộng: một cuộc trò chuyện = một kế hoạch = một cửa sổ ngữ cảnh. Subagent có ích, nhưng Claude trong cuộc trò chuyện chính vẫn quyết định “chạy gì tiếp theo”, và mọi kết quả trung gian đều tiêu tốn cùng cửa sổ ngữ cảnh đó. Điều này trở thành nút thắt khi tác vụ liên quan đến 500 tệp hoặc mười giả thuyết độc lập.

Dynamic Workflows đưa kế hoạch vào trong mã. Claude mô tả tác vụ dưới dạng script điều phối, runtime chạy script trong môi trường biệt lập, còn kết quả trung gian nằm trong các biến của script thay vì trong ngữ cảnh của bạn. Phiên vẫn phản hồi trong khi các agent làm việc ở chế độ nền.

Claude linh hoạt viết các script điều phối để khởi chạy từ hàng chục đến hàng trăm subagent song song trong một phiên và kiểm tra công việc của chúng trước khi gửi kết quả cho bạn.

— Anthropic, https://claude.com/blog/introducing-dynamic-workflows-in-claude-code

Điều thực sự thay đổi so với cách làm cũ là các agent độc lập phản biện phát hiện của nhau, và chỉ những gì vượt qua bước đối chiếu mới được đưa ra. Từ “dynamic” trong tên gọi chính là nói đến điều này: mỗi lần chạy được viết riêng cho tác vụ đang thực hiện. Không có danh sách quy trình dựng sẵn.

Workflow khác Subagent và Skill như thế nào: 3 kiểu điều phối

Điểm chính

Ba công cụ này xử lý các tác vụ nhiều bước theo những cách khác nhau. Subagent là một tác nhân thực thi mà Claude khởi chạy. Skill là hướng dẫn Claude làm theo. Workflow là script do runtime thực thi. Mỗi loại lưu kế hoạch ở một nơi khác nhau.

Tôi chọn workflow, subagent hay Skill bằng cách tự hỏi hai điều: ai nắm kế hoạch và kết quả trung gian nằm ở đâu?

SubagentsSkillsWorkflows
Là gìTác nhân thực thi do Claude khởi chạyHướng dẫn Claude làm theoScript do runtime thực thi
Ai quyết định bước tiếp theoClaude, từng bước mộtClaude, làm theo promptBản thân script
Kết quả trung gian nằm ở đâuTrong ngữ cảnh của ClaudeTrong ngữ cảnh của ClaudeTrong các biến của script
Điều gì được lặp lạiMô tả tác nhân thực thiHướng dẫnToàn bộ quá trình điều phối
Quy môMột số tác vụ mỗi lượtSố lượng tương tựHàng chục hoặc hàng trăm agent mỗi lần chạy
Khi bị gián đoạnKhởi động lại lượtKhởi động lại lượtTiếp tục trong cùng phiên

Thay đổi chính là đưa kế hoạch vào trong mã. Với subagent và Skill, Claude luôn là bên điều phối: Claude quyết định trong quá trình thực hiện sẽ khởi chạy gì tiếp theo, và mọi kết quả trả về đều đi vào cửa sổ ngữ cảnh. Workflow tự giữ vòng lặp, nhánh xử lý và kết quả trung gian; chỉ câu trả lời cuối cùng mới đến Claude.

Bạn có thể chạy cùng một kế hoạch để các agent độc lập xem xét từ những góc độ khác nhau, rồi script tổng hợp những điểm đứng vững. Không thể làm việc này trong một lượt thông thường qua một cuộc trò chuyện: Claude không có điểm tổng hợp độc lập.

Tôi chọn như sau: với tác vụ thường lệ có vài bước, hãy dùng subagent hoặc Skill. Với tác vụ không thể hoàn thành trong một cuộc trò chuyện hoặc một quy trình bạn muốn chạy lại theo yêu cầu, hãy dùng workflow. Tôi đã trình bày chi tiết cả bốn thành phần cơ bản trong hướng dẫn tổng quan Skills, Subagents, MCP hay Plugins.

3 cách bắt đầu Workflow trong Claude Code

Điểm chính

Anthropic cung cấp ba điểm bắt đầu: từ khóa workflow trong prompt (chạy một lần), chế độ /effort ultracode (Claude tự quyết định) hoặc lệnh /deep-research tích hợp sẵn. Cả ba đều yêu cầu Claude Code v2.1.154 trở lên.

Cách 1. Từ khóa workflow trong prompt. Đây là lựa chọn đơn giản nhất; nó không thay đổi cài đặt phiên. Chỉ cần chèn từ workflow vào bất kỳ prompt nào, Claude Code sẽ tô sáng từ đó khi bạn nhập và tạo script điều phối thay vì cuộc trò chuyện thông thường.

Chạy một workflow để kiểm tra mọi API endpoint trong src/routes/ xem có thiếu kiểm tra auth không

Nếu Claude Code tô sáng từ này nhưng bạn không định bắt đầu workflow, nhấn alt+w để tắt bộ kích hoạt cho prompt đó.

Cách 2. Chế độ /effort ultracode. Chế độ này bật mức nỗ lực tối đa của mô hình (xhigh) và cũng cho phép Claude tự quyết định khi nào một tác vụ cần workflow.

/effort ultracode

Ở chế độ này, một yêu cầu có thể triển khai thành nhiều workflow liên tiếp: một workflow tìm hiểu mã, workflow khác thực hiện thay đổi, và workflow thứ ba kiểm tra kết quả. Mỗi lần chạy dùng nhiều token hơn và mất nhiều thời gian hơn mức effort thông thường. Chế độ này chỉ áp dụng cho phiên hiện tại và được đặt lại khi bạn mở phiên mới. Khi quay lại công việc thường lệ, /effort high sẽ tắt ultracode.

Cách 3. Lệnh /deep-research tích hợp sẵn. Đây là workflow có sẵn của Anthropic để nghiên cứu trên web. Phần tiếp theo trình bày cách dùng này.

Với cả ba cách, Claude Code sẽ yêu cầu xác nhận ở lần chạy đầu tiên và hiển thị danh sách các giai đoạn. Các lựa chọn phản hồi là Yes, run it, Yes, and don't ask again for <name> (ghi nhớ sự chấp thuận của bạn), View raw script (mở mã bằng Ctrl+G) và No. Ở chế độ Auto, chỉ cần xác nhận ở lần chạy đầu tiên; các lần sau sẽ tiếp tục mà không hỏi. Với claude -p và Agent SDK, hoàn toàn không có bước xác nhận: quyền của subagent khi đó được lấy từ allowlist dùng chung.

Workflow /deep-research có sẵn: ví dụ chạy lần đầu

Điểm chính

/deep-research là workflow tích hợp sẵn để khảo sát một câu hỏi từ nhiều góc độ, truy xuất nguồn, đối chiếu từng nhận định và tổng hợp báo cáo kèm liên kết. Đây là cách hay để tìm hiểu quy trình hoạt động mà không phải tự viết script.

Cách nhanh nhất để thử Dynamic Workflows là chạy một workflow có sẵn thay vì tự viết. Anthropic tích hợp workflow /deep-research trong Claude Code. Workflow này khảo sát câu hỏi từ nhiều góc độ độc lập, truy xuất nguồn, bỏ phiếu cho từng nhận định và chỉ giữ lại trong báo cáo những nhận định vượt qua bước đối chiếu.

  1. Chạy lệnh

    Trong phiên Claude Code, nhập /deep-research rồi trình bày câu hỏi dưới dạng prompt chi tiết. Câu chữ càng chính xác, script càng ít lãng phí thời gian khởi chạy các giai đoạn.

  2. Cho phép workflow

    Một hộp thoại sẽ hiện ra cùng các giai đoạn và các nút Yes / View raw script / No. Quyền chấp thuận được lưu cho dự án nếu bạn chọn một tùy chọn có don't ask again.

  3. Theo dõi tiến trình bằng /workflows

    Lần chạy sẽ chuyển sang nền, để phiên tiếp tục hoạt động. Lệnh /workflows hiển thị danh sách các lần chạy đang diễn ra và đã hoàn tất. Dùng phím mũi tên để chọn một giai đoạn, Enter để mở rộng và xem các agent, j/k để cuộn qua chi tiết, p để tạm dừng, x để dừng lần chạy, r để khởi động lại một agent và s để lưu script.

  4. Đọc báo cáo

    Khi lần chạy hoàn tất, báo cáo kèm liên kết sẽ xuất hiện trong phiên. Những nhận định không vượt qua bước đối chiếu sẽ tự động bị loại.

Khác với cuộc trò chuyện thông thường chỉ thực hiện một lượt tìm kiếm web, /deep-research tự chạy các truy vấn song song và xử lý mâu thuẫn giữa các nguồn. Tôi dùng công cụ này để tìm hiểu một chủ đề trước khi viết hướng dẫn: đây là cách thuận tiện để nắm mức sử dụng token trước khi mở rộng quy mô workflow.

Ultracode: chế độ để Claude tự quyết định khi nào bắt đầu Workflow

Điểm chính

/effort ultracode kết hợp khả năng suy luận tối đa xhigh với điều phối tự động: Claude tự quyết định tác vụ nào trong phiên cần chuyển thành workflow. Chế độ này chỉ hoạt động với những mô hình hỗ trợ xhigh.

Ultracode kết hợp hai yếu tố: mức nỗ lực suy luận tối đa và quyền để Claude tự khởi chạy workflow. Theo mặc định, ngay cả /effort xhigh cũng chạy một cuộc trò chuyện thông thường: Claude suy nghĩ lâu hơn nhưng vẫn giữ các bước trong ngữ cảnh của mình. Ultracode cho phép Claude tự chuyển một tác vụ thành workflow ngay khi nhận ra rằng một phiên sẽ không đủ.

/effort ultracode

Khi bật chế độ này, một yêu cầu có thể khởi chạy hai hoặc ba workflow liên tiếp: một workflow kiểm tra codebase, một workflow khác thực hiện thay đổi, và workflow thứ ba chạy riêng để tìm cách bác bỏ thay đổi đó. Đây vẫn là mô hình “nhiều nỗ lực độc lập ⇒ tổng hợp cuối cùng”, nhưng bạn không cần bắt đầu thủ công từng giai đoạn.

Chi phí rất rõ ràng: mỗi yêu cầu mất nhiều thời gian và tốn kém hơn /effort high. Bên dưới, nhiều lần chạy được thực thi với giới hạn riêng, và chính Anthropic cũng không khuyến nghị dùng ultracode làm chế độ mặc định. Chế độ này chỉ áp dụng cho phiên hiện tại và được đặt lại ở phiên tiếp theo.

Khi quay lại công việc thường lệ, /effort high sẽ tắt ultracode, và phiên quay về kiểu trò chuyện thông thường có subagent. Trên các mô hình không hỗ trợ xhigh, tùy chọn ultracode đơn giản là không xuất hiện trong /effort.

Giới hạn, token và những vấn đề dễ gặp ở lần chạy đầu

Điểm chính

Tối đa 16 agent chạy song song, tối đa 1.000 agent mỗi lần chạy, yêu cầu Claude Code v2.1.154+, có trên Pro, Max, Team và Enterprise. Vấn đề chính cần chú ý là mức sử dụng token: một tác vụ chạy qua workflow dùng nhiều token hơn đáng kể so với chạy trong cuộc trò chuyện thông thường.

Runtime đặt ra các giới hạn kỹ thuật cứng sau:

  • Tối đa 16 agent chạy đồng thời. Con số này thấp hơn trên máy có ít lõi xử lý. Đây là ngân sách tài nguyên cục bộ.
  • 1.000 agent mỗi lần chạy. Đây là biện pháp bảo vệ chống vòng lặp mất kiểm soát: nếu script liên tục tạo agent, runtime sẽ tắt script.
  • Bạn không thể chờ đầu vào của người dùng trong khi chạy. Chỉ có quyền của công cụ mới có thể tạm dừng. Nếu cần phê duyệt giữa các giai đoạn, hãy tách công việc thành các workflow riêng.
  • Bản thân script không thể trực tiếp truy cập tệp hoặc command shell. Việc đọc, ghi và chạy lệnh do các agent mà script khởi chạy đảm nhiệm. Script chỉ điều phối chúng.
  • Yêu cầu Claude Code v2.1.154 trở lên. Có trên Pro, Max, Team và Enterprise (bật Pro qua /config), cũng như Claude API, Amazon Bedrock, Vertex AI và Microsoft Foundry.

Cảnh báo chính là chi phí.

Dynamic workflows có thể dùng nhiều token hơn đáng kể so với một phiên Claude Code thông thường, vì vậy chúng tôi khuyên bạn bắt đầu bằng một tác vụ hẹp để nắm được mức sử dụng trong công việc của mình.

— Anthropic, https://claude.com/blog/introducing-dynamic-workflows-in-claude-code

Mọi agent trong một lần chạy đều dùng mô hình của phiên, trừ khi script chuyển một giai đoạn sang mô hình khác. Trước một lần chạy lớn, hãy kiểm tra /model: nếu bạn thường chuyển sang mô hình rẻ hơn cho các tác vụ thường lệ, ultracode và /deep-research có thể làm hóa đơn tăng lên nếu bạn bỏ qua bước kiểm tra này. Bạn có thể yêu cầu Claude trong prompt “dùng mô hình rẻ hơn cho những giai đoạn không cần năng lực tối đa”—đây là cách hợp lệ để kiểm soát chi phí.

Nếu một lần chạy đi chệch hướng, mở /workflows, chọn lần chạy đó rồi nhấn x. Các agent đã hoàn thành vẫn giữ nguyên kết quả. Bạn có thể tiếp tục lần chạy đã dừng ngay tại đó bằng p, hoặc yêu cầu Claude khởi động lại script từ cùng điểm: agent đã có kết quả trong bộ nhớ đệm sẽ trả lại kết quả, còn những agent khác tiếp tục làm việc trực tiếp. Cách này chỉ hoạt động trong cùng một phiên: khi bạn thoát Claude Code, phiên tiếp theo sẽ bắt đầu workflow từ đầu.

Nếu dự định chạy trong thời gian dài, hãy bắt đầu quản lý mức sử dụng bằng hướng dẫn Cách không dùng hết giới hạn Claude Code và Second Brain: cấu trúc dự án phù hợp giúp workflow không đưa toàn bộ repository vào từng agent.

Cách lưu Workflow vào dự án

Điểm chính

Sau một lần chạy thành công, mở /workflows → chọn lần chạy → nhấn s để lưu script thành lệnh. Bạn có thể đặt script trong .claude/workflows/ (dùng chung với nhóm) hoặc ~/.claude/workflows/ (chỉ dành cho bạn). Lần sau, hãy gọi script bằng lệnh slash thông thường /[name].

Nếu Claude đã tạo workflow cho một tác vụ định kỳ (chẳng hạn xem xét mọi branch hoặc thực hiện kiểm tra bảo mật định kỳ), bạn có thể lưu script để không phải mô tả công việc bằng lời mỗi lần.

  1. Mở /workflows

    Lệnh này hiển thị danh sách các lần chạy gần đây. Dùng phím mũi tên để chọn lần chạy cần dùng.

  2. Nhấn s

    Hộp thoại lưu sẽ xuất hiện. Tab chuyển đổi vị trí lưu trữ.

  3. Chọn một thư mục

    .claude/workflows/ nằm trong dự án và mọi người đã clone repository đều có thể thấy. ~/.claude/workflows/ nằm trong thư mục home, dùng được trên mọi dự án của bạn và chỉ bạn nhìn thấy.

  4. Gọi workflow như một lệnh

    /[script_name] khởi chạy workflow bằng chính script đã dùng lần đầu. Nếu có workflow cùng tên trong thư mục dự án và thư mục home, workflow trong dự án được ưu tiên.

Điều này tạo nên một quy trình thú vị: một thành viên trong nhóm chạy workflow thành công một lần, commit nó vào .claude/workflows/, rồi những thành viên khác chạy cùng cách điều phối bằng một lệnh. Script là JavaScript có thể đọc được, nên bạn có thể kiểm tra, chỉnh sửa và commit phiên bản mới.

Lần đầu chạy workflow đã lưu trong một dự án, Claude Code vẫn hiển thị hộp thoại xin quyền. Lưu script không đồng nghĩa với tự động phê duyệt script. Bạn cấp quyền riêng bằng Yes, and don't ask again.

Những tác vụ nào thực sự đáng dùng Workflows?

Điểm chính

Theo Anthropic, Workflows phù hợp với hoạt động kiểm tra quy mô lớn, di trú và nghiên cứu có đối chiếu chéo. Với tác vụ như “thực hiện một thay đổi”, lượng token sử dụng không đáng với thời gian bỏ ra.

Anthropic nêu rõ các tình huống mà runtime được xây dựng để xử lý:

  • Kiểm tra trên toàn bộ codebase—đối chiếu mọi endpoint, tệp và hàm với danh sách kiểm tra. Chẳng hạn tìm thiếu kiểm tra auth, phát hiện logic trùng lặp hoặc kiểm tra bảo mật theo quy tắc OWASP. Mỗi nhánh trong danh sách kiểm tra sẽ có một agent riêng.
  • Di trú quy mô lớn—chuyển framework, ngừng dùng API đã bị khai tử hoặc chuyển hàng nghìn tệp sang ngôn ngữ khác. Workflow theo dõi tiến độ, các agent làm việc trên tệp song song, và các agent đối chiếu sẽ tìm những phần bị bỏ sót.
  • Nghiên cứu có đối chiếu chéo—một câu hỏi cần nguồn từ nhiều góc độ cùng đánh giá xem nhận định nào đứng vững sau khi được đối chiếu. Đây là tình huống cơ bản mà /deep-research tích hợp sẵn được viết để xử lý.
  • Kế hoạch phức tạp mà bạn muốn phác thảo từ nhiều góc độ độc lập—workflow tạo ra một số bản kế hoạch độc lập, các agent phản biện xem xét chúng, rồi tổng hợp kết quả. Đây là cách dùng phù hợp khi “cái giá của sai lầm cao và một lượt là không đủ”.

Hãy dùng workflow khi tác vụ cần nhiều agent hơn mức một cuộc trò chuyện có thể điều phối, hoặc khi bạn muốn lưu quá trình điều phối thành script để kiểm tra và chạy lại.

— Anthropic, https://code.claude.com/docs/en/workflows

Với tác vụ như “sửa một lỗi” hoặc “thêm một hàm”, Dynamic Workflows kém hiệu quả hơn phiên thông thường: lượng token sử dụng không đáng với thời gian bỏ ra. Tài liệu Anthropic nói rõ điều này: “hãy bắt đầu bằng một tác vụ hẹp để nắm được mức sử dụng”. Quy tắc của tôi: nếu có ít hơn 5 tác vụ con độc lập hoặc ít hơn 50 tệp, một cuộc trò chuyện thông thường với vài subagent sẽ xử lý công việc với chi phí thấp hơn.

Nếu bạn lãnh đạo một nhóm dùng gói Enterprise, quản trị viên có thể đã tắt Workflows thông qua cài đặt được quản lý hoặc công tắc trên trang quản trị Claude Code. Trước khi coi Workflows là “giải pháp cho mọi thứ”, hãy kiểm tra xem tính năng đã được bật hay chưa: /config → mục Dynamic workflows.

Nguồn

Tìm thêm tài liệu về cách làm việc với công cụ trong tài liệu Ailoot.

Xem thêm chi tiết

Câu hỏi thường gặp

Khi nào phiên thường tốt hơn workflow?

Dùng phiên thường hoặc vài tác nhân con cho thay đổi nhỏ, ít việc độc lập. Workflow thêm điều phối và token; bắt đầu việc thật hẹp và đo mức dùng trước khi áp dụng audit hoặc migration lớn.

Lưu workflow có duyệt luôn lần chạy sau không?

Không. Lưu giữ kịch bản điều phối, còn duyệt thực thi là quyết định riêng. Xem script và hộp quyền lần đầu trước khi cấp quyền được ghi nhớ.

Tất cả bài viết