Claude Code hiện có thể tự viết harness (bộ khung) riêng, được tùy chỉnh cho từng tác vụ cụ thể. Khả năng này được gọi là workflow động: nó tự động viết các script điều phối, chạy hàng chục đến hàng trăm tác nhân phụ song song trong một phiên duy nhất, và tự kiểm tra trước khi trình bày bất kỳ kết quả nào cho bạn.
Harness mặc định của Claude Code rất tốt cho việc viết code, nhưng các tác vụ chuyên biệt hơn như nghiên cứu, phân tích bảo mật, nhóm tác nhân và review code trước đây yêu cầu phải xây dựng một harness tùy chỉnh trên nền tảng Claude Code để đạt hiệu suất tối ưu.
Workflows cho phép bạn tự động tạo các harness tùy chỉnh này, có thể tái sử dụng, chia sẻ và cho phép Claude giải quyết vấn đề một cách tự nhiên hơn so với cách tiếp cận mặc định.
Trong bài viết này, tôi sẽ chia sẻ những trải nghiệm và hiểu biết ban đầu của mình về workflows. Lưu ý rằng workflows tiêu tốn nhiều token hơn và phù hợp hơn với các tác vụ phức tạp, có giá trị cao.
0. Giới thiệu
Phần giới thiệu có chứa ghi chú từ Practice Brother.
Một bài đọc tuyệt vời; workflows có thể là phát minh tuyệt vời nhất kể từ skills. Chúng là phiên bản nâng cấp của goals và rất đáng để học hỏi. Bài viết này giải thích các tình huống ứng dụng khác nhau của workflows một cách dễ hiểu.
Tác giả gốc là Thariq @trq212, một nhân viên cốt cán của Anthropic thường xuyên chia sẻ các mẹo về Claude Code.
Nội dung khá dài; bạn có thể bỏ qua đến các phần quan tâm. Để cảm nhận trực tiếp khả năng của nó, hãy xem Phần 1;
Để hiểu tại sao cần nó, hãy xem Phần 3 đến 5
; để sao chép trực tiếp các giải pháp triển khai, hãy nhảy đến Phần 6.
1. Ví dụ về Prompt (Lời nhắc)
Những ví dụ này minh họa khả năng của workflows. Bạn có thể trực tiếp yêu cầu Claude với các nội dung tương tự:
- Có nhiều giả thuyết cạnh tranh cùng cố gắng tái tạo các bài kiểm tra không ổn định (flaky tests).
- Khai thác các chỉnh sửa lặp lại từ các phiên làm việc trước.
- Xác định nguyên nhân gốc rễ trong các kênh sự cố Slack.
- Nhận nhiều góc nhìn phản biện cho một kế hoạch kinh doanh.
- Xếp hạng và xác thực sơ yếu lý lịch.
- Sử dụng lựa chọn kiểu giải đấu để đặt tên cho một công cụ CLI.
- Thực hiện tái cấu trúc trên toàn bộ mã nguồn.
- Xác minh các tuyên bố kỹ thuật trong bản nháp blog dựa trên code thực tế.
2. Workflows Hoạt Động Như Thế Nào
Workflows thực thi các tệp JavaScript chứa các hàm đặc biệt để tạo và điều phối các tác nhân phụ. Các công cụ JavaScript tiêu chuẩn như JSON, Math và Array có thể được sử dụng để xử lý dữ liệu. Workflows có thể chọn mô hình nào mà các tác nhân phụ sử dụng và quyết định liệu chúng có chạy trong một worktree (cây thư mục làm việc) biệt lập hay không. Nếu bị gián đoạn, workflow có thể tiếp tục từ vị trí đã dừng.

3. Tại Sao Cần Workflows
Harness mặc định hoàn thành việc lập kế hoạch và thực thi trong một cửa sổ ngữ cảnh duy nhất. Điều này hoạt động tốt cho các tác vụ code nhưng lại thất bại với các tác vụ chạy dài, song song quy mô lớn, có cấu trúc cao hoặc mang tính đối kháng. Cụ thể, nó thể hiện ba dạng thất bại:
- Tác nhân Lười Biếng (Agent Laziness): Đối mặt với các tác vụ phức tạp nhiều phần, Claude dừng lại sớm, chỉ hoàn thành một phần (ví dụ: xử lý 35 trên 50 bài review bảo mật).
- Thiên vị Bản thân (Self-Preference Bias): Khi được yêu cầu xác thực hoặc đánh giá kết quả theo một tiêu chí, Claude có xu hướng ưu ái các kết luận của chính nó.
- Trôi Mục tiêu (Goal Drift): Độ trung thực bị mất dần qua nhiều lần tương tác; mỗi bản tóm tắt đều bỏ sót các chi tiết, bao gồm các yêu cầu và ràng buộc về trường hợp ngoại lệ.
Workflows khắc phục điều này bằng cách điều phối các tác nhân phụ độc lập, mỗi tác nhân có cửa sổ ngữ cảnh riêng, mục tiêu tập trung và sự cô lập.
4. Workflow Động so với Tĩnh
Trước đây, các workflow tĩnh được xây dựng bằng Claude Agent SDK hoặc claude -p điều phối nhiều phiên bản Claude Code một cách chung chung, yêu cầu bạn phải bao quát mọi trường hợp ngoại lệ. Với Claude Opus 4.8 và workflow động, Claude giờ có thể viết các harness được tùy chỉnh cho các tình huống cụ thể.

5. Các Mẫu Thực Hành (Patterns) để Sử Dụng Workflows
Bạn có thể kích hoạt một workflow bằng cách yêu cầu trực tiếp hoặc sử dụng ultracode trong prompt để đảm bảo Claude Code tạo ra một workflow. Các mẫu phổ biến bao gồm:

- Phân loại và Thực thi (Classify and Execute): Một tác nhân phân loại xác định loại tác vụ và định tuyến nó đến các tác nhân hoặc hành vi khác nhau; nó cũng có thể phân loại đầu ra khi hoàn thành.
- Phân tán và Tổng hợp (Fan-out and Synthesize): Chia một tác vụ thành nhiều bước nhỏ hơn, chạy một tác nhân cho mỗi bước và tổng hợp kết quả. Điều này hữu ích khi nhiều bước được hưởng lợi từ các cửa sổ ngữ cảnh sạch sẽ, không bị nhiễu. Việc tổng hợp hoạt động như một rào cản, chờ tất cả các tác nhân hoàn thành trước khi hợp nhất đầu ra có cấu trúc.
- Xác thực Đối kháng (Adversarial Validation): Đối với mọi tác nhân được tạo, chạy một tác nhân đối kháng riêng để xác thực đầu ra dựa trên một tiêu chí hoặc bộ quy tắc.
- Tạo và Lọc (Generate and Filter): Tạo nhiều ý tưởng về một chủ đề, lọc chúng theo tiêu chí hoặc xác thực, và chỉ giữ lại các kết quả chất lượng cao nhất, đã được xác minh sau khi loại bỏ trùng lặp.
- Giải đấu (Tournament): Cho N tác nhân cạnh tranh trên cùng một tác vụ bằng các phương pháp khác nhau. Các tác nhân đánh giá theo cặp xác định người thắng cho đến khi chỉ còn một người.
- Lặp cho đến khi Hoàn thành (Loop until Complete): Đối với các tác vụ có khối lượng công việc không xác định, liên tục tạo các tác nhân cho đến khi đạt được điều kiện dừng (ví dụ: không có khám phá mới, không còn lỗi trong nhật ký).
6. Các Tình Huống Ứng Dụng
- Di chuyển (Migration) và Tái cấu trúc (Refactoring): Bun đã sử dụng workflows khi viết lại Zig sang Rust. Nó chia tác vụ thành các bước tuần tự (vị trí gọi hàm, bài kiểm tra lỗi, mô-đun), tạo các tác nhân phụ cho mỗi bản sửa lỗi trong một worktree, thực hiện review đối kháng và hợp nhất. Tránh các lệnh tốn nhiều tài nguyên để tối đa hóa tính song song.
- Nghiên cứu Chuyên sâu (Deep Research): Skill
/deep-researchcủa Claude Code sử dụng workflows để phân tán tìm kiếm web, thu thập dữ liệu từ các nguồn, xác minh tuyên bố một cách đối kháng và tổng hợp một báo cáo có trích dẫn. Điều này cũng áp dụng cho nghiên cứu phi web, như tổng hợp các báo cáo trạng thái Slack hoặc khám phá các tính năng của mã nguồn. - Xác thực Chuyên sâu (Deep Validation): Đối với các báo cáo yêu cầu trích dẫn cho mọi sự thật, một workflow có thể xác định các tuyên bố, cho các tác nhân phụ kiểm tra từng tuyên bố và sử dụng một tác nhân xác minh để đảm bảo chất lượng nguồn.

- Sắp xếp (Sorting): Đối với các danh sách lớn cần đo lường định tính (ví dụ: xếp hạng ticket theo mức độ nghiêm trọng), việc xếp hạng hơn 1000 dòng trong một prompt sẽ làm giảm chất lượng và bùng nổ ngữ cảnh. Sử dụng giải đấu, pipeline theo cặp hoặc xếp hạng song song theo nhóm; mỗi so sánh là một tác nhân riêng của nó.

- Bộ nhớ và Tuân thủ Quy tắc (Memory and Rule Following): Khi Claude bỏ lỡ các quy tắc ngay cả trong
CLAUDE.md, hãy tạo một workflow với một trình xác minh quy tắc cho mỗi quy tắc. Sử dụng một persona hoài nghi để review các quy tắc nhằm ngăn chặn các kết quả dương tính giả. Ngược lại, hãy khai thác các chỉnh sửa lặp lại từ các phiên gần đây, phân cụm chúng bằng các tác nhân song song và xác thực đối kháng xem liệu quy tắc có ngăn chặn được lỗi hay không trước khi tinh chỉnhCLAUDE.md.

- Phân loại (Triage) Quy mô Lớn: Một workflow phân loại sẽ phân loại các mục, loại bỏ trùng lặp so với các bản ghi hiện có và thực hiện hành động. Mẫu 'cách ly (quarantine)' ngăn các tác nhân đọc nội dung không đáng tin cậy thực thi các hành động có đặc quyền cao, ủy quyền các hành động đó cho các tác nhân xử lý. Sử dụng với
/loopđể hoạt động liên tục.

- Khám phá và Gu thẩm mỹ (Exploration and Taste): Hữu ích cho các quyết định thiết kế hoặc đặt tên dựa trên 'gu' và được hưởng lợi từ các tiêu chí. Claude khám phá các giải pháp trong khi một tác nhân review đánh giá chúng dựa trên một tiêu chí. Các giải pháp có thể được xếp hạng hoặc chọn thông qua giải đấu.
- Đánh giá (Evaluation): Chạy các bài đánh giá nhẹ bằng cách tạo các tác nhân độc lập trong một worktree và một tác nhân so sánh để chấm điểm đầu ra dựa trên một tiêu chí.
- Định tuyến Mô hình và Thông minh (Model and Intelligent Routing): Tạo một tác nhân phân loại dành riêng cho tác vụ để quyết định mô hình nào sẽ sử dụng. Ví dụ, giải thích một mô-đun xác thực phụ thuộc vào số lượng tệp; một bộ phân loại nghiên cứu điều này trước, sau đó định tuyến đến Sonnet hoặc Opus dựa trên độ phức tạp.
7. Khi Nào Không Nên Sử Dụng Workflows
Workflows còn mới và không cần thiết cho mọi tác vụ; chúng tiêu tốn nhiều token hơn đáng kể. Hãy sử dụng chúng một cách sáng tạo cho các tác vụ vượt ra ngoài cách sử dụng thông thường. Đối với việc code thường ngày, hãy cân nhắc xem liệu việc tính toán thêm có cần thiết hay không; hầu hết việc viết code không cần năm người review.
8. Mẹo để Xây dựng Workflows
- Viết Prompt (Lời nhắc): Các prompt chi tiết hoạt động tốt nhất. Workflows không chỉ dành cho các tác vụ lớn; bạn có thể tạo một workflow nhanh cho một bài review đối kháng nhanh về một giả thuyết.
- Kết hợp với /goal và /loop: Đối với các workflow có thể lặp lại như phân loại hoặc nghiên cứu, hãy sử dụng
/loopcho các khoảng thời gian và/goalcho các yêu cầu hoàn thành khó. - Ngân sách Token: Đặt ngân sách token rõ ràng (ví dụ: 10k token) trong prompt để giới hạn việc sử dụng.
- Lưu và Chia sẻ: Nhấn 's' trong menu workflow để lưu. Check chúng vào
~/.claude/workflowshoặc phân phối thông qua skills. Tham chiếu các tệp workflow JavaScript trongSKILL.md. Để linh hoạt, hãy yêu cầu Claude coi các workflow skill như các mẫu (template) hơn là các script theo nghĩa đen.


9. Một Điểm Khởi Đầu Mới
Workflows cung cấp một cách mới mạnh mẽ để mở rộng Claude Code. Hãy coi nó như một điểm khởi đầu để khám phá các phương pháp mới hoàn thành tác vụ với Claude. Còn rất nhiều điều để khám phá về cách sử dụng nó tốt nhất.





