3 điểm bởi GN⁺ 2 giờ trước | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • Quy trình làm việc động là tính năng cho phép Claude Code tự viết harness phù hợp với tác vụ ngay tại chỗ, xử lý native bên trong mã thay vì phải xây dựng riêng các harness tùy chỉnh như trước
  • Chạy tệp JavaScript để tạo và điều phối subagents, đồng thời có thể chọn cả model mà từng agent sẽ dùng và có cách ly worktree hay không
  • Ngăn chặn về mặt cấu trúc các failure mode như agentic laziness, self-preferential bias, goal drift vốn phát sinh trong một context window duy nhất, bằng các context được tách biệt
  • Có thể dùng không chỉ cho lập trình mà cả các tác vụ phi kỹ thuật như migration, deep research, sắp xếp, triage, điều tra nguyên nhân gốc rễ
  • Tiêu tốn nhiều token nên không cần cho mọi tác vụ, nhưng là điểm khởi đầu để mở rộng Claude Code theo những cách sáng tạo mới

Tổng quan về quy trình làm việc động

  • Tuần trước, Claude Code đã ra mắt quy trình làm việc động, cho phép Claude tự viết harness phù hợp với tác vụ ngay tại chỗ
  • Harness mặc định của Claude Code được tạo ra cho lập trình, nhưng vì nhiều tác vụ có nét tương tự công việc lập trình nên nó cũng hữu ích cho các loại tác vụ khác
  • Research, security analysis, agent teams, Code Review trước đây đều phải xây dựng các harness tùy chỉnh riêng trên Claude Code để đạt hiệu năng tốt nhất
  • Workflows giải quyết các vấn đề này một cách native ngay trong Claude Code, đồng thời hỗ trợ chia sẻ và tái sử dụng với người khác
  • Best practice vẫn đang tiếp tục được hoàn thiện, và vì tiêu tốn nhiều token nên cần cân nhắc kỹ khi nào và cách nào nên dùng

Ví dụ prompt

  • "Bài test này có thể thất bại khoảng 1 lần trong 50 lần chạy. Hãy xây dựng một workflow có thể tái hiện lỗi này. Đưa ra nhiều giả thuyết về race condition và tiếp tục cho đến khi có một giả thuyết hợp lý được chứng minh bằng bằng chứng."
  • "Hãy dùng workflow để xem 50 session gần nhất, tìm những phần tôi sửa lặp đi lặp lại, rồi chuyển các phần lặp đó thành quy tắc trong CLAUDE.md"
  • "Hãy dùng workflow để phân tích #incidents trên Slack trong 6 tháng qua và tìm các nguyên nhân gốc rễ lặp lại mà chưa ai tạo ticket."
  • "Hãy lấy bản kế hoạch kinh doanh của tôi và chạy một workflow để nhiều người phụ trách phân tích kỹ lưỡng từ góc nhìn của nhà đầu tư, khách hàng và đối thủ cạnh tranh."
  • "Đây là một thư mục chứa 80 CV. Hãy dùng workflow để xếp hạng các CV phù hợp với vị trí backend, rồi kiểm tra lại 10 CV hàng đầu. Hãy dùng công cụ AskUserQuestion để phỏng vấn tôi theo bảng tiêu chí đánh giá."
  • "Tôi cần đặt tên cho công cụ CLI này. Hãy dùng workflow để brainstorm nhiều phương án rồi chọn ra top 3 theo kiểu tournament."
  • "Hãy dùng workflow để đổi tên model User thành Account ở mọi nơi."
  • "Hãy rà soát kỹ bản nháp bài blog của tôi và dùng workflow để đối chiếu với codebase cùng mọi tuyên bố kỹ thuật. Tôi không muốn xuất bản nội dung sai."

Cách quy trình làm việc động hoạt động

  • Chạy tệp JavaScript có chứa một số hàm đặc biệt hỗ trợ tạo và điều phối subagents
  • Cũng bao gồm các hàm JavaScript tiêu chuẩn như JSON, Math, Array để hỗ trợ xử lý dữ liệu
  • Có thể chọn model mà agent sẽ dùng và quyết định có cách ly worktree cho subagent hay không; Claude sẽ chọn mức độ thông minh và mức độ cách ly cần thiết
  • Ngay cả khi workflow bị gián đoạn do thao tác của người dùng hoặc đóng terminal, khi tiếp tục session vẫn có thể chạy tiếp từ điểm đã dừng

Vì sao cần quy trình làm việc động

  • Harness mặc định vừa lập kế hoạch vừa thực thi trong một context window duy nhất; cách này hiệu quả cho nhiều tác vụ lập trình nhưng có giới hạn với các tác vụ dài hạn, quy mô lớn, song song mạnh hoặc có tính đối kháng và cấu trúc cao
  • Càng xử lý lâu một tác vụ phức tạp trong một context duy nhất thì càng dễ gặp một số failure mode nhất định
    • Agentic laziness: dừng giữa chừng trước khi hoàn tất tác vụ phức tạp nhiều bước, rồi tuyên bố đã xong sau khi chỉ hoàn thành một phần (ví dụ: chỉ xử lý 20/50 hạng mục trong một đợt rà soát bảo mật)
    • Self-preferential bias: có xu hướng ưu ái kết quả của chính mình khi xác minh hoặc đánh giá so với rubric
    • Goal drift: qua nhiều lượt, mức độ bám sát mục tiêu ban đầu dần bị mất đi, đặc biệt sau compaction; các yêu cầu edge-case hoặc ràng buộc kiểu "không được làm X" dễ bị thất lạc
  • Có thể ngăn chặn điều này bằng cách điều phối nhiều Claude với các context window riêng biệt cùng những mục tiêu tập trung và được cách ly

Quy trình động vs tĩnh

  • Trước đây đã có thể viết quy trình làm việc tĩnh để điều phối nhiều instance Claude Code bằng Claude Agent SDK hoặc claude -p
  • Quy trình tĩnh thường tổng quát hơn vì phải xử lý mọi edge case
  • Với Claude Opus 4.8 và quy trình làm việc động, giờ đây Claude đã đủ thông minh để tự viết harness tùy chỉnh phù hợp với từng use case

Các mẫu sử dụng quy trình làm việc động

  • Có thể yêu cầu Claude tạo workflow, hoặc dùng từ kích hoạt ultracode để đảm bảo workflow được tạo
  • Có những pattern phổ biến mà Claude thường kết hợp khi xây dựng workflow
  • Classify-and-act

    • Một agent phân loại xác định loại tác vụ, rồi định tuyến sang các agent hoặc hành động khác nhau theo từng loại, hoặc dùng bộ phân loại ở bước cuối để quyết định đầu ra
  • Fan-out-and-synthesize

    • Chia tác vụ thành các bước nhỏ, chạy agent cho từng bước rồi tổng hợp kết quả
    • Hữu ích khi có nhiều bước nhỏ hoặc khi từng bước được hưởng lợi từ một context window sạch, tránh can nhiễu lẫn nhau và nhiễm chéo
    • Bước synthesize đóng vai trò barrier, chờ tất cả fan-out agent xong rồi hợp nhất đầu ra có cấu trúc thành một kết quả duy nhất
  • Adversarial verification

    • Với mỗi agent được tạo ra, chạy thêm một agent riêng để kiểm chứng đầu ra một cách đối kháng theo rubric hoặc tiêu chí
  • Generate-and-filter

    • Tạo ra nhiều ý tưởng về một chủ đề rồi lọc bằng rubric và xác minh, loại trùng lặp và chỉ trả về các ý tưởng đã được kiểm chứng có chất lượng cao nhất
  • Tournament

    • Thay vì chia nhỏ tác vụ, các agent cạnh tranh với nhau; N agent thử cùng một tác vụ theo các cách tiếp cận khác nhau, và một agent giám khảo sẽ đánh giá theo kiểu pairwise cho đến khi có người thắng
  • Loop until done

    • Khi khối lượng công việc chưa rõ ràng, thay vì lặp số lần cố định thì liên tục tạo agent cho đến khi đạt điều kiện dừng (không còn phát hiện mới, không còn lỗi trong log)

Trường hợp sử dụng

  • Workflow đôi khi còn hữu ích hơn trong các tác vụ phi kỹ thuật
  • Migration và refactor

    • Bun đã được viết lại từ Zig sang Rust bằng workflow; có thể xem chi tiết trong chuỗi bài trên X của Jarred
    • Mấu chốt là phân rã thành các bước như callsites, test thất bại, module
    • Với mỗi chỉnh sửa, tạo subagent trong worktree, rồi để một agent khác rà soát đối kháng trước khi hợp nhất
    • Có thể chỉ dẫn tránh các lệnh tiêu tốn nhiều tài nguyên để tối đa hóa song song mà không làm cạn kiệt tài nguyên máy
  • Deep research

    • Đã công khai deep research skill (/deep-research) dùng quy trình làm việc động, fan-out tìm kiếm web, lấy nguồn, xác minh đối kháng các tuyên bố, rồi tổng hợp báo cáo có trích dẫn
    • Ngoài tìm kiếm web, còn có thể dùng để viết báo cáo trạng thái từ ngữ cảnh Slack hoặc điều tra cách một tính năng hoạt động bằng cách đào sâu codebase
  • Xác minh chuyên sâu

    • Để kiểm tra và gắn nguồn cho mọi tuyên bố thực tế trong một báo cáo, có thể tạo workflow trong đó một agent xác định mọi tuyên bố thực tế và các subagent kiểm tra chi tiết từng tuyên bố
    • Agent xác minh cũng có thể kiểm tra chất lượng nguồn của các source subagent
  • Sắp xếp

    • Hữu ích khi sắp xếp các mục theo tiêu chí định tính (ví dụ: ticket hỗ trợ theo mức độ nghiêm trọng của bug)
    • Nếu sắp xếp hơn 1000 dòng chỉ bằng một prompt thì chất lượng giảm và dễ vượt ngữ cảnh; thay vào đó có thể dùng tournament, pipeline so sánh pairwise hoặc bucket-rank song song rồi hợp nhất
    • Comparative judgment đáng tin cậy hơn chấm điểm tuyệt đối; vì mỗi phép so sánh là một agent riêng nên deterministic loop giữ nguyên bracket và chỉ thứ tự thực thi còn lại trong context
  • Bộ nhớ và tuân thủ quy tắc

    • Với các quy tắc mà Claude vẫn bỏ sót dù đã đưa vào CLAUDE.md, có thể tạo workflow giữ danh sách quy tắc và để một agent xác minh cho từng quy tắc
    • Để giảm false positive, có thể tạo subagent persona hoài nghi (skeptic) để rà soát quy tắc
    • Chiều ngược lại cũng được: khai thác các chỉnh sửa lặp lại từ session gần đây hoặc comment code review, gom cụm bằng các agent song song, rồi xác minh đối kháng từng quy tắc ứng viên ("quy tắc này có thực sự ngăn được lỗi không?") trước khi tinh lọc các quy tắc còn lại vào CLAUDE.md
  • Điều tra nguyên nhân gốc rễ

    • Debug hiệu quả khi đưa ra và kiểm chứng nhiều giả thuyết độc lập, nhưng trong một context window duy nhất có thể xảy ra self-preferential bias
    • Workflow ngăn điều này về mặt cấu trúc bằng cách để các agent tạo giả thuyết từ các bằng chứng tách biệt như log, tệp, dữ liệu; mỗi giả thuyết lại được đối mặt với một nhóm kiểm chứng và phản biện
    • Có thể áp dụng cho post-mortem ngoài mã nguồn như kinh doanh (nguyên nhân doanh thu tháng 3 giảm) hay data engineering (nguyên nhân pipeline thất bại)
  • Triage quy mô lớn

    • Với hàng chờ hỗ trợ, bug report hoặc backlog mà con người không thể xử lý hết, workflow triage sẽ phân loại từng mục, loại trùng với các mục đang theo dõi và thực hiện hành động (thử sửa hoặc escalte cho con người)
    • Một pattern hữu ích là quarantine, chặn hành động đặc quyền cao của agent phải đọc nội dung công khai không đáng tin, rồi để agent chuyên xử lý thông tin thực hiện
    • Có thể kết hợp với /loop để chạy liên tục
  • Khám phá và gu thẩm mỹ

    • Hữu ích để khám phá các giải pháp mang tính sở thích như thiết kế hay đặt tên, nơi rubric vẫn đem lại lợi ích
    • Có thể cho khám phá nhiều phương án, cung cấp cho agent review một rubric về tiêu chí của lời giải tốt; khi agent review đánh giá đã đạt tiêu chí thì hoàn tất, đồng thời có thể dùng tournament để xếp hạng và chọn
  • Đánh giá (Evals)

    • Có thể chạy đánh giá nhẹ bằng cách tạo các agent riêng trong worktree và dùng agent so sánh để chấm theo rubric; ví dụ đánh giá và cải thiện skill đã tạo theo một số tiêu chí cụ thể
  • Định tuyến model và mức độ thông minh

    • Có thể tạo agent phân loại để quyết định model phù hợp cho từng tác vụ; đặc biệt hữu ích với các tác vụ cần nhiều lệnh gọi công cụ, nơi việc khảo sát trước giúp xác định model tối ưu
    • Ví dụ: với tác vụ "giải thích cách auth module hoạt động", model tối ưu sẽ khác nhau tùy số lượng tệp trong auth module và hình dạng codebase; bộ phân loại sẽ khảo sát rồi định tuyến sang Sonnet hoặc Opus theo độ phức tạp

Khi nào không nên dùng

  • Workflow là tính năng mới; có nhiều use case mang lại kết quả lớn nhưng không cần cho mọi tác vụ và có thể tiêu tốn nhiều token hơn đáng kể
  • Phù hợp với các cách sử dụng sáng tạo để đẩy Claude Code đi xa hơn theo những hướng trước đây chưa thử được
  • Với tác vụ lập trình thông thường, nên tự hỏi: "liệu có thực sự cần thêm sức tính toán không?"; phần lớn công việc lập trình truyền thống không cần đến một hội đồng 5 reviewer

Mẹo xây dựng quy trình làm việc động

  • Prompting

    • Prompt chi tiết sử dụng các kỹ thuật đã mô tả ở trên sẽ cho kết quả tốt nhất
    • Không chỉ dành cho tác vụ quy mô lớn; cũng có thể prompt một "quick workflow" để thực hiện những việc như rà soát đối kháng nhanh đối với các giả định
  • Kết hợp với /goal và /loop

    • Các workflow có thể lặp lại như triage, research, verification có thể kết hợp với /loop để chạy định kỳ, và dùng /goal để đặt yêu cầu hoàn tất cứng
  • Ngân sách sử dụng token

    • Có thể đặt ngân sách token rõ ràng để giới hạn token cho từng tác vụ, ví dụ đặt trần bằng prompt như "use 10k tokens"
  • Lưu và chia sẻ

    • Trong menu workflow, nhấn "s" để lưu; có thể check in vào ~/.claude/workflows hoặc phát hành như một skill
    • Khi chia sẻ dưới dạng skill, đặt tệp workflow JavaScript vào thư mục skill và tham chiếu trong SKILL.md; để có tính linh hoạt, nên prompt để workflow trong skill được xem là mẫu chứ không phải script sẽ chạy nguyên xi
  • Điểm khởi đầu cho mở rộng

    • Workflow là một cách mới để mở rộng Claude Code, và cách dùng tối ưu vẫn còn là một điểm khởi đầu với rất nhiều điều để khám phá

Chưa có bình luận nào.

Chưa có bình luận nào.