Một bộ dây đai cho mọi nhiệm vụ: các luồng làm việc linh hoạt trong Claude Code
Tác giả gốc: @trq212
Biên dịch: Peggy
Biên tập viên lưu ý: Claude Code đang từ một trợ lý mã nguồn trở thành một nền tảng Agent có thể lập trình.
Các workflow được giới thiệu trong bài viết này có giá trị cốt lõi là giúp Claude không còn chỉ đơn thuần “suy nghĩ xong mới hành động” trong cùng một cửa sổ ngữ cảnh, mà có thể tự động tạo ra một khung thực thi linh hoạt theo nhiệm vụ: chia nhỏ nhiệm vụ, phân bổ các Agent con, xử lý song song, xác minh chéo, lặp lại tuần tự, thậm chí cho phép các Agent khác nhau cạnh tranh với nhau, sau đó tổng hợp kết quả cuối cùng.
Điều này có nghĩa là các tình huống sử dụng Claude Code đang rõ ràng mở rộng ra ngoài phạm vi. Nó không chỉ phù hợp cho việc di chuyển mã, tái cấu trúc, tái hiện kiểm thử và xem xét mã, mà còn có thể được sử dụng cho các nhiệm vụ phi kỹ thuật như nghiên cứu sâu, xác minh sự thật, lọc hồ sơ ứng tuyển, phân tích sự cố, đúc kết quy tắc, đánh giá kế hoạch kinh doanh và brainstorm tên gọi. Nhiều công việc phức tạp về bản chất tương tự lập trình: cần phân tích vấn đề, cô lập bối cảnh, xác minh giả định, xử lý lượng lớn chi tiết và đưa ra lựa chọn giữa nhiều đường hướng khả thi.
Các workflow động nhằm giải quyết những vấn đề phổ biến trong các nhiệm vụ dài của mô hình lớn: sự lười biếng của tác nhân khi tuyên bố hoàn thành giữa chừng, thiên kiến tự ưu tiên kết luận của chính mình, và sự lệch hướng dần khỏi mục tiêu ban đầu sau nhiều vòng thực thi. Bằng cách giao nhiệm vụ cho nhiều Claude có ngữ cảnh độc lập, nó chuyển đổi nhiệm vụ phức tạp từ “cuộc chạy dài một tác nhân” thành “hợp tác đa tác nhân”.
Tất nhiên, workflows cũng không phải là câu trả lời vạn năng. Chúng thường tiêu tốn nhiều token hơn và không phải lúc nào cũng phù hợp với mọi nhiệm vụ lập trình thông thường. Nhưng chúng mang đến một hướng đi quan trọng: cuộc cạnh tranh của các công cụ AI trong tương lai có thể không chỉ nằm ở việc mô hình nào thông minh hơn, mà còn ở khả năng của nó trong việc tổ chức một quy trình thực thi đáng tin cậy, có thể tái sử dụng và có thể kiểm tra, nhằm đạt được các mục tiêu phức tạp.
The following is the original text:
Mặc dù khung thực thi Claude Code mặc định được xây dựng cho lập trình, nhưng nó cũng phù hợp với nhiều loại nhiệm vụ khác. Thực tế cho thấy nhiều nhiệm vụ có cấu trúc tương tự như các nhiệm vụ lập trình. Tuy nhiên, để đạt hiệu suất tối ưu cho một số loại nhiệm vụ cụ thể, chúng ta vẫn cần xây dựng các khung thực thi tùy chỉnh trên nền tảng Claude Code, chẳng hạn như nghiên cứu, phân tích bảo mật, hợp tác nhóm tác nhân hoặc xem xét mã.
Workflows cho phép bạn tạo động các khung thực thi để Claude có thể giải quyết các vấn đề trên và nhiều loại vấn đề khác một cách tự nhiên hơn trong Claude Code. Bạn cũng có thể chia sẻ và tái sử dụng các workflow này với người khác.
Trong bài viết này, tôi sẽ chia sẻ kinh nghiệm và những điểm tôi học được khi bắt đầu sử dụng workflows, giúp bạn khai thác tối đa khả năng của nó.
Tuy nhiên, cần lưu ý rằng các thực hành tốt nhất liên quan vẫn đang được hình thành. Các luồng làm việc động thường tiêu tốn nhiều token hơn, do đó bạn cần cân nhắc kỹ khi nào và cách sử dụng chúng.
Lưu ý: Bài viết này cũng được đăng trên Claude Blog.
Ví dụ Prompt
Trước khi đi vào các chi tiết kỹ thuật, tôi muốn đưa ra một số ví dụ prompt để giúp bạn hiểu được các khả năng của workflows:
Bài kiểm tra này sẽ thất bại khoảng 1 lần sau mỗi 50 lần chạy. Thiết lập một workflow để tái hiện nó, đưa ra giả thuyết và thực hiện kiểm tra đối kháng trong các worktree khác nhau. /goal Đừng dừng lại cho đến khi một giả thuyết được xác minh là đúng.
Sử dụng workflow để xem lại 50 phiên gần nhất của tôi, khai thác những điều chỉnh tôi thường xuyên thực hiện và chuyển những vấn đề lặp lại này thành quy tắc CLAUDE.md.
Sử dụng workflow để tìm kiếm kênh #incidents trên Slack trong sáu tháng qua, xác định những nguyên nhân gốc rễ lặp lại nhưng chưa có ticket nào được tạo.
Hãy chạy kế hoạch kinh doanh của tôi qua một workflow, để các agent khác nhau lần lượt phân tích nó từ góc nhìn của nhà đầu tư, khách hàng và đối thủ cạnh tranh.
Có một thư mục chứa 80 hồ sơ ứng tuyển. Sử dụng workflow để sắp xếp chúng theo yêu cầu vị trí backend, sau đó rà soát top 10. Sử dụng công cụ AskUserQuestion để hỏi tôi, giúp bạn xây dựng tiêu chí đánh giá.
Tôi cần đặt tên cho công cụ CLI này. Sử dụng workflow để brainstorm một danh sách các lựa chọn, sau đó chọn ba cái hàng đầu bằng cơ chế giải đấu.
Sử dụng workflow để đổi tên mô hình User của chúng tôi thành Account ở mọi nơi.
Đọc bản nháp blog của tôi và sử dụng workflow để xác minh từng phán đoán kỹ thuật trong đó với kho mã nguồn. Tôi không muốn đăng bất kỳ nội dung sai lệch nào.
How does dynamic workflow work?
Chế độ làm việc động sẽ thực thi một tệp JavaScript chứa một số hàm đặc biệt để tạo và phối hợp các tác tử con.

Chuỗi làm việc động cũng bao gồm các hàm JavaScript tiêu chuẩn như JSON, Math và Array để xử lý dữ liệu.
Đặc biệt đáng chú ý là luồng làm việc động có thể quyết định agent nào sử dụng mô hình nào, cũng như liệu các agent con có chạy trong worktree của riêng chúng hay không. Điều này cho phép Claude tự chủ lựa chọn mức độ thông minh và mức độ cô lập cần thiết tùy theo yêu cầu của nhiệm vụ.
Nếu một workflow bị gián đoạn, ví dụ do người dùng thao tác thủ công hoặc terminal thoát, sau khi khôi phục phiên làm việc, workflow có thể tiếp tục thực thi từ vị trí bị gián đoạn.
Tại sao cần luồng làm việc động?
Khi bạn để khung thực thi Claude Code mặc định xử lý một nhiệm vụ, nó cần thực hiện cả lập kế hoạch và thực thi trong cùng một cửa sổ ngữ cảnh. Đối với nhiều nhiệm vụ lập trình, cách này rất hiệu quả, nhưng trong các nhiệm vụ có thời gian chạy dài, song song quy mô lớn hoặc mang tính đối kháng cao và có cấu trúc chặt chẽ, nó đôi khi sẽ không hoạt động.
Lý do là khi Claude xử lý các nhiệm vụ phức tạp trong một cửa sổ ngữ cảnh duy nhất trong thời gian càng lâu, nó càng dễ gặp phải một số mô hình thất bại cụ thể:
Agentic laziness (tính lười biếng của tác nhân) đề cập đến việc Claude dừng lại trước khi hoàn thành các nhiệm vụ đặc biệt phức tạp, gồm nhiều phần, và tuyên bố hoàn thành chỉ sau khi đạt được một phần tiến độ. Ví dụ: trong quá trình kiểm tra an toàn, chỉ xử lý 20 trong số 50 mục đã tuyên bố công việc đã xong.
Self-preferential bias(自我偏好偏差)指的是 Claude 在被要求根据某套评价标准验证或评判自身生成的内容时,倾向于偏好自己的结果或发现。
Goal drift (mục tiêu trôi dạt) là hiện tượng trong quá trình thực hiện nhiều vòng, Claude dần giảm sự trung thành với mục tiêu ban đầu, đặc biệt sau khi ngữ cảnh bị nén lại. Mỗi lần tóm tắt đều gây mất thông tin, một số yêu cầu chi tiết như các trường hợp ngoại lệ hoặc các điều kiện hạn chế như “đừng làm X” có thể bị bỏ sót.
Việc tạo workflow giúp giảm nhẹ những vấn đề này, vì nó có thể sắp xếp nhiều Claude độc lập, cho phép chúng có cửa sổ ngữ cảnh riêng và tập trung vào các nhiệm vụ rõ ràng, tách biệt lẫn nhau.
Dynamic workflows and static workflows
Bạn có thể đã từng tạo các luồng làm việc tĩnh bằng cách sử dụng Claude Agent SDK hoặc claude -p để phối hợp nhiều phiên bản Claude Code.
Tuy nhiên, do các luồng làm việc tĩnh cần bao phủ nhiều tình huống biên, chúng thường mang tính tổng quát hơn. Với sự ra đời của Claude Opus 4.8 và các luồng làm việc động, Claude hiện đã đủ thông minh để tạo ra một khung thực thi được tùy chỉnh cho nhu cầu cụ thể của bạn.

Mẫu thực tế khi sử dụng luồng làm việc động
Bạn có thể trực tiếp yêu cầu Claude tạo một workflow động, hoặc sử dụng từ kích hoạt «ultracode» để đảm bảo Claude Code tạo workflow.
Tuy nhiên, nếu bạn có thể xây dựng được mô hình nhận thức về cách thức hoạt động của luồng công việc động, bạn sẽ dễ dàng xác định thời điểm nên sử dụng nó và dễ dàng hướng dẫn Claude thông qua prompt.
Claude khi xây dựng workflows thường sử dụng và kết hợp các mô hình sau:

Phân loại và thực thi: Sử dụng một agent phân loại để xác định loại nhiệm vụ, sau đó định tuyến đến các agent hoặc hành vi khác nhau tùy theo loại nhiệm vụ. Cũng có thể sử dụng bộ phân loại ở cuối quy trình để đánh giá kết quả đầu ra.
Phân tán và tổng hợp: Chia một nhiệm vụ thành nhiều bước nhỏ hơn, để mỗi bước được một agent xử lý, sau đó tổng hợp các kết quả này. Cách tiếp cận này đặc biệt phù hợp với các nhiệm vụ chứa nhiều bước nhỏ, hoặc khi mỗi bước cần một cửa sổ ngữ cảnh rõ ràng để tránh can thiệp hoặc ô nhiễm chéo. Bước tổng hợp đóng vai trò như một “rào cản”: nó sẽ chờ tất cả các agent được phân tán hoàn thành, sau đó kết hợp đầu ra có cấu trúc của chúng thành một kết quả duy nhất.
Xác minh đối kháng: Đối với mỗi agent được tạo ra, hãy chạy một agent độc lập khác để thực hiện xác minh đối kháng đối với đầu ra của nó theo một bộ tiêu chí hoặc nguyên tắc đánh giá nhất định.
Tạo và lọc: Tạo ra nhiều ý tưởng xung quanh một chủ đề, sau đó lọc dựa trên tiêu chí đánh giá hoặc quy trình xác minh, loại bỏ các ý tưởng trùng lặp và chỉ trả về những ý tưởng đã được kiểm nghiệm và có chất lượng cao nhất.
Giải đấu: Không chia nhỏ công việc, mà để các agent cạnh tranh với nhau. Tạo ra N agent, để chúng lần lượt sử dụng các phương pháp khác nhau cố gắng hoàn thành cùng một nhiệm vụ. Sau đó, prompt hoặc mô hình sẽ đánh giá kết quả bằng cách so sánh từng cặp agent, cho đến khi chọn ra người chiến thắng.
Lặp lại cho đến khi hoàn thành: Đối với các nhiệm vụ có khối lượng công việc không xác định, đừng đặt số vòng cố định, mà hãy lặp lại tạo agent cho đến khi đáp ứng điều kiện dừng, ví dụ như không còn phát hiện mới nào hoặc không còn lỗi nào xuất hiện trong nhật ký.
Sử dụng trong bối cảnh
Bạn có thể suy nghĩ sáng tạo hơn về thời điểm và cách để Claude Code tạo ra các luồng làm việc động. Tôi nhận thấy các luồng làm việc đôi khi còn hữu ích hơn trong các công việc phi kỹ thuật.

Di chuyển và tái cấu trúc
Bun đã được viết lại từ Zig sang Rust bằng cách sử dụng workflows. Bạn có thể đọc bài đăng của Jarred trên X để biết chi tiết quá trình này.
Điều cốt yếu là chia nhiệm vụ thành một chuỗi các bước cần xử lý, chẳng hạn như điểm gọi, kiểm thử lỗi, mô-đun, v.v. Khởi động một tác tử con trong worktree cho mỗi nhiệm vụ sửa lỗi để nó hoàn thành việc sửa chữa; sau đó để một tác tử khác thực hiện kiểm tra đối kháng, cuối cùng hợp nhất kết quả. Bạn có thể cân nhắc hướng dẫn rõ ràng cho tác tử không sử dụng các lệnh tốn nhiều tài nguyên, nhằm tối đa hóa mức độ song song mà không làm cạn kiệt tài nguyên của máy cục bộ.
Nghiên cứu sâu
Chúng tôi đã phát hành một kỹ năng nghiên cứu sâu (/deep-research) trong Claude Code, sử dụng luồng làm việc động. Cụ thể, nó sẽ phân nhánh thực hiện tìm kiếm web, thu thập nguồn, xác minh đối kháng các tuyên bố liên quan và tổng hợp tạo ra một báo cáo có trích dẫn.
Tuy nhiên, các nghiên cứu loại này không chỉ áp dụng cho tìm kiếm trên web. Ví dụ, bạn cũng có thể yêu cầu Claude tổng hợp báo cáo trạng thái từ ngữ cảnh Slack, hoặc tìm hiểu sâu vào kho mã nguồn để nghiên cứu một tính năng nào đó hoạt động như thế nào.
Depth Verification

Mặt khác, nếu bạn có một báo cáo và muốn kiểm tra từng phán đoán sự thật và nguồn được trích dẫn trong đó, bạn có thể tạo một workflow: trước tiên một agent xác định tất cả các tuyên bố sự thật, sau đó khởi động một sub-agent cho từng tuyên bố để thực hiện kiểm tra chi tiết. Bạn cũng có thể cho một agent xác minh kiểm tra các sub-agent chịu trách nhiệm truy xuất nguồn gốc, đảm bảo chất lượng nguồn của chúng đủ cao.
Sort

Bạn có thể có một danh sách các dự án và muốn sắp xếp chúng theo một chỉ số định tính nào đó, và bạn tin rằng Claude Code giỏi trong việc đánh giá chỉ số này. Ví dụ: sắp xếp các vé hỗ trợ theo mức độ nghiêm trọng của lỗi.
Nhưng nếu bạn cố gắng sắp xếp hơn 1000 dòng trong một prompt, chất lượng sẽ giảm và khung ngữ cảnh sẽ không chứa hết. Cách tốt hơn là chạy cơ chế giải đấu, xây dựng một đường ống gồm các tác nhân so sánh từng cặp, vì các phán đoán so sánh thường đáng tin cậy hơn so với điểm số tuyệt đối; hoặc sắp xếp song song theo từng nhóm rồi hợp nhất kết quả. Mỗi lần so sánh đều do một tác nhân độc lập thực hiện, do đó chu trình xác định có thể duy trì cấu trúc toàn bộ giải đấu, chỉ cần giữ lại thứ tự đang chạy trong ngữ cảnh.
Nhớ và tuân thủ quy tắc

Nếu bạn có một bộ quy tắc cụ thể mà Claude thường bỏ sót hoặc thực hiện không tốt, ngay cả khi đã thấy các quy tắc này trong CLAUDE.md, thì bạn có thể tạo một workflow liệt kê các quy tắc này và để agent xác minh kiểm tra từng điều khoản — mỗi quy tắc tương ứng với một agent xác minh. Việc tạo một sub-agent mang tính cách “người hoài nghi” để xem xét tính hợp lý của các quy tắc này cũng giúp tránh báo lỗi quá mức.
Ngược lại cũng được: khai thác các cuộc trò chuyện và nhận xét đánh giá mã gần đây của bạn, tìm ra những lỗi bạn đã sửa lại nhiều lần; để agent song song phân cụm các vấn đề này; sau đó kiểm tra đối kháng từng quy tắc ứng cử để xác định liệu nó có thực sự ngăn được lỗi thực tế nào hay không; cuối cùng rút gọn các quy tắc vượt qua sàng lọc trở lại CLAUDE.md.
Investigation of root cause
Cách hiệu quả nhất để gỡ lỗi là đưa ra một vài giả định độc lập và kiểm tra từng cái một. Nhưng nếu bạn chỉ sử dụng một cửa sổ ngữ cảnh, Claude có thể bị mắc kẹt trong thiên kiến tự ưu tiên.
Workflow có thể ngăn chặn tình huống này về mặt cấu trúc: nó có thể khởi động nhiều agent, để chúng tạo ra các giả thuyết dựa trên các bằng chứng không trùng lặp. Ví dụ: để các agent khác nhau xem xét nhật ký, tệp và dữ liệu riêng biệt. Sau đó, mỗi giả thuyết đều có thể được một nhóm người xác minh và người phản bác xem xét.
Điều này không chỉ áp dụng cho mã. Các workflow cũng có thể được sử dụng để phân tích bán hàng, ví dụ: “Tại sao doanh số tháng Ba lại giảm?”; dùng trong kỹ thuật dữ liệu, ví dụ: “Tại sao pipeline này lại thất bại?”; hoặc bất kỳ cuộc đánh giá sau sự kiện nào.
Large-scale triage

Mỗi đội đều có hàng đợi hỗ trợ, báo cáo lỗi hoặc các công việc tồn đọng không thể xử lý hoàn toàn bởi con người. Một workflow phân loại có thể phân loại từng mục, loại bỏ trùng lặp với các vấn đề đã được theo dõi và thực hiện hành động. Điều này có thể nghĩa là cố gắng sửa chữa, hoặc chuyển lên cho người dùng con người xử lý.
Đối với quy trình phân loại, một mô hình hữu ích là quarantine (cách ly). Nghĩa là, cấm các agent đọc nội dung công khai không đáng tin cậy thực hiện các thao tác có quyền cao; các thao tác có quyền cao nên được thực hiện bởi các agent chuyên trách về hành động.
Bạn có thể kết hợp các workflow phân loại với /loop để cho Claude thực hiện liên tục các nhiệm vụ này.
Khám phá và phán đoán vị giác
Khi bạn cần khám phá các con đường khác nhau để giải quyết vấn đề, đặc biệt là những nhiệm vụ mang tính phán xét thẩm mỹ như thiết kế, đặt tên, và có thể hưởng lợi từ một bộ tiêu chí đánh giá, thì workflows rất hữu ích.
Bạn có thể để Claude khám phá nhiều phương án và cung cấp cho agent kiểm duyệt một bộ tiêu chí đánh giá về “phương án tốt là như thế nào”. Khi agent kiểm duyệt cho rằng kết quả đã đáp ứng đủ tiêu chí, nhiệm vụ sẽ được hoàn thành. Các phương án khác nhau cũng có thể được sắp xếp hoặc lọc thông qua cơ chế đấu trường dựa trên bộ tiêu chí đánh giá này.
Đánh giá
Bạn có thể chạy các evals nhẹ bằng cách khởi động một agent độc lập trong worktree, sau đó khởi động agent so sánh để đánh giá và chấm điểm đầu ra cụ thể theo các tiêu chí đánh giá. Ví dụ: bạn có thể đánh giá và cải thiện một skill mà bạn tự tạo ra để xem nó có đáp ứng các tiêu chuẩn cụ thể nào hay không.
Mô hình và định tuyến mức độ thông minh: Bạn có thể tạo một agent phân loại được tối ưu hóa cho nhiệm vụ của riêng mình để quyết định sử dụng mô hình nào. Cách này rất hữu ích khi nhiệm vụ liên quan đến nhiều lần gọi công cụ và việc nghiên cứu trước khi thực thi có thể giúp xác định mô hình phù hợp nhất.
Ví dụ, đối với nhiệm vụ “giải thích cách hoạt động của mô-đun auth”, mô hình phù hợp nhất phụ thuộc vào số lượng tệp trong mô-đun auth và cấu trúc kho mã là gì. Agent phân loại có thể thực hiện nghiên cứu này trước, sau đó định tuyến nhiệm vụ đến Sonnet hoặc Opus dựa trên độ phức tạp dự kiến.
Khi nào không nên sử dụng luồng làm việc động
Workflows vẫn là điều mới mẻ. Mặc dù trong nhiều kịch bản sử dụng, nó có thể mang lại hiệu quả vượt xa các phương pháp thông thường, nhưng không phải mọi tác vụ đều cần đến nó, và nó có thể làm tăng đáng kể lượng token tiêu thụ.
Hãy sử dụng workflows cho những nhiệm vụ có thể mở rộng giới hạn khả năng của Claude Code theo cách mới. Đối với các nhiệm vụ lập trình thông thường, hãy tự hỏi: nhiệm vụ này có thực sự cần nhiều tài nguyên tính toán hơn không? Ví dụ: hầu hết các nhiệm vụ lập trình truyền thống không cần một nhóm gồm 5 người kiểm duyệt.
Mẹo xây dựng luồng làm việc động
Thiết kế prompt
Khi viết prompt cho luồng làm việc động, chi tiết càng đầy đủ thì hiệu quả thường càng tốt, đặc biệt khi sử dụng các kỹ thuật cụ thể đã đề cập ở trên.
Workflows không chỉ áp dụng cho các nhiệm vụ lớn. Bạn cũng có thể hướng dẫn mô hình sử dụng một “quick workflow”. Ví dụ, bạn có thể tạo một quy trình kiểm tra đối kháng nhanh để kiểm tra một giả định.
Sử dụng cùng với /goal và /loop
Khi bạn sử dụng các workflow có thể thực hiện lặp lại, chẳng hạn như workflow phân loại, nghiên cứu hoặc xác minh, hãy kết hợp chúng với /loop để chúng chạy theo khoảng thời gian cố định; đồng thời sử dụng /goal để thiết lập yêu cầu hoàn thành bắt buộc.
Ngân sách sử dụng token
Bạn có thể thiết lập ngân sách token rõ ràng cho luồng làm việc động để giới hạn số token mà nhiệm vụ tiêu thụ. Bạn có thể ghi yêu cầu ngân sách trong prompt như “use 10k tokens”, nó sẽ đặt giới hạn ở 10k token.
Lưu và chia sẻ luồng làm việc động
Bạn có thể nhấn «s» trong menu workflow để lưu các workflow. Bạn có thể gửi chúng đến ~/.claude/workflows hoặc phân phối thông qua skill.

Nếu muốn chia sẻ thông qua skill, hãy đặt tệp workflow JavaScript vào thư mục skill và tham chiếu trong SKILL.md. Để tăng tính linh hoạt, bạn cũng có thể nhắc Claude: xem các workflow trong skill là mẫu, chứ không phải kịch bản phải chạy từng chữ.

Một thế giới hoàn toàn mới
Workflows là một cách mới hữu ích để mở rộng Claude Code. Tôi khuyến khích bạn coi đây là điểm khởi đầu. Chúng tôi vẫn còn nhiều điều cần khám phá về cách sử dụng nó hiệu quả nhất. Hãy chia sẻ với chúng tôi những phát hiện của bạn.
Thariq Shihipar và Sid Bidasaria (@sidbid) là thành viên nhóm kỹ thuật của Anthropic, phụ trách các công việc liên quan đến Claude Code.
[原文链接]
Nhấp để tìm hiểu các vị trí đang tuyển của BlockBeats
Chào mừng bạn tham gia cộng đồng chính thức của律动 BlockBeats:
Nhóm Telegram đăng ký: https://t.me/theblockbeats
Nhóm giao lưu Telegram: https://t.me/BlockBeats_App
Tài khoản chính thức trên Twitter: https://twitter.com/BlockBeatsAsia
