Cho một đứa làm kiến trúc sư, đứa kia làm thợ

Bắt một agent vừa quyết vừa làm thì kế hoạch bị nén vào lúc xây, rồi lặng lẽ trôi — chia theo tầm, kế hoạch thành một bản giao việc thợ không đọc trật được

Đọc7 phút đọc
Chủ đềteamwork · multi-agent · planning
TL;DR

Giao một agent cả việc quyết lẫn việc làm thì kế hoạch không bao giờ được viết ra — nó nằm trong đầu agent và trôi dần khi code lớn lên. Hãy chia theo tầm: cho Claude làm kiến trúc sư (giữ cách tiếp cận, cách phân rã, các interface, và định nghĩa "xong") còn Codex làm thợ thi công trong khung đó. Kế hoạch thành một bản giao việc thợ không đọc trật được — và kiến trúc sư, kẻ không viết code, đúng là người để soát nó.

Bạn giao cả việc cho một agent: "build cái này đi." Nó nghĩ một thoáng, rồi bắt đầu gõ — và đâu đó trong năm mươi dòng đầu nó đã lặng lẽ ra mọi quyết định kiến trúc mà việc này chứa, không hề nói ra lấy một cái. Nó chạy. Thậm chí có thể tốt. Nhưng bạn không biết được, vì kế hoạch chưa từng nằm ở chỗ nào bạn đọc được. Nó sống trong đầu agent đúng bằng khoảng thời gian để biến thành code, rồi bốc hơi.

01Quyết và làm là hai việc khác nhau

Ta coi "build cái này" là một việc. Nó là hai, xếp chồng: quyết cách tiếp cận, rồi thực thi nó. Một agent làm cả hai sẽ nén chúng vào một lượt — và cái chết đi là kế hoạch. Nó không bao giờ thành một thứ bạn soi được, cãi được, hay đem bản build ra đối chiếu được. Nó được mặc định giữa lúc gõ, rồi mất.

Tách hai cái ra thì một thứ hữu ích bị ép phải hiện ra: kế hoạch buộc phải được giao đi, nghĩa là phải được viết ra. Khoảnh khắc một agent phải brief cho một agent khác, cách tiếp cận thôi là một linh cảm riêng tư mà thành một artifact — một bản spec tường minh. Và một bản spec tường minh là thứ duy nhất khiến bản build về sau soát được. Bạn không chỉ chia việc; bạn làm hiện ra nửa vô hình của công việc.

Một agent vừa quyết vừa làm

Kế hoạch và bản build nén vào một lượt
Cách tiếp cận không bao giờ được viết — nằm trong đầu
Nó trôi khi code lớn lên; không có gì để đối chiếu

Một đứa chủ trì, một đứa xây

Claude viết cách tiếp cận thành một bản spec
Codex xây nghiêm ngặt trong đó
Spec là cái thước — bản build soát được

02Phân vai mỗi agent theo chỗ nó mạnh

Agent không phải hàng thay thế lẫn nhau, và giả vờ chúng như nhau là phí cả hai. Một đứa có thể là kẻ suy luận mạnh hơn — giỏi ôm cả bài toán, cân đánh đổi, thấy chỗ vỡ ba bước sau. Đứa kia có thể là kẻ thực thi mạnh hơn — nhanh và sạch hơn khi biến một bản spec chính xác thành code chạy được. Cho chúng làm hai bản sao đua cùng một việc thì bạn được hai nửa làng nhàng. Cho chúng làm một đội với hai vai thì mỗi đứa làm đúng phần nó thật sự giỏi.

Nên hãy phân vai. Claude làm kiến trúc sư trưởng: nó giữ cách tiếp cận, cắt việc thành lát, định nghĩa các interface, và viết ra "xong" trông thế nào — nhưng cố ý viết rất ít code. Codex làm thợ: nó thi công trong cái khung đó, nhanh, và khi spec im lặng thì nó hỏi chứ không lặng lẽ tự bịa ra câu trả lời. Kẻ chủ trì nghĩ; người thợ làm; không đứa nào giả vờ là cả hai.

1
Claude — kiến trúc sư

Giữ cách tiếp cận, cách cắt việc thành lát, các interface giữa chúng, và tiêu chí nghiệm thu. Viết bản giao việc, không viết phần lớn code.

2
Codex — người thợ

Thi công trong khung, từng lát một. Khi spec không nói, nó hỏi — không đoán rồi trôi. Tay nhanh, phạm vi có ranh.

3
Cổng nghiệm thu

Kiến trúc sư soát bản build theo đúng tiêu chí mình đã viết. Người thợ không tự duyệt việc mình — kẻ đặt thước thì giữ thước.

03Cách chạy: phân vai trước, rồi giao tay

Đầu tiên, cast mỗi agent một lần — cái prompt phân vai bạn dán ở đầu mỗi phiên. Dán vào phiên bạn dùng làm kiến trúc sư:

Bạn là kiến trúc sư trưởng cho việc này, không phải người code. Bạn giữ cách tiếp cận
và kế hoạch; bạn cố ý viết rất ít code. Sản phẩm bạn giao là một bản giao việc mà một
agent thứ hai build theo được mà không phải quay lại hỏi bạn. Hãy nghĩ theo lát việc,
interface, và tiêu chí nghiệm thu — không phải chi tiết cài đặt.

Và dán vào phiên bạn dùng làm thợ:

Bạn là người thợ, làm theo bản spec một agent khác đã viết. Đừng thiết kế lại nó. Build
nghiêm ngặt trong đó, từng lát một. Chỗ nào spec im lặng hay mơ hồ, dừng lại và hỏi —
đừng đoán rồi đi tiếp. Thấy chỗ nào trong spec có vẻ sai thì báo, đừng lặng lẽ lách qua.

Phân vai xong, việc gói trong ba lần giao tay. Đầu tiên, ghìm kiến trúc sư lại đừng code, bắt nó ra một bản giao việc mà một agent khác build mù theo cũng được:

Chưa viết code vội — thiết kế đã. Cho ra một bản giao việc mà một agent thứ hai
có thể build theo mà không cần hỏi lại bạn:
- cách tiếp cận trong hai dòng
- việc cắt thành các lát đủ nhỏ để soát từng cái một
- các interface chỗ các lát gặp nhau (đầu vào / đầu ra)
- vùng nguy hiểm: đừng đụng cái gì, cái gì dễ vỡ
- tiêu chí nghiệm thu: cụ thể, "xong" nghĩa là gì và kiểm thế nào

Giao bản đó cho người thợ, và khóa khung lại — xây trong spec, không chắc thì hỏi, đừng thiết kế lại:

Build nghiêm ngặt trong bản spec dưới đây, từng lát một. Đừng thiết kế lại nó.
Chỗ nào spec im lặng hay mơ hồ, dừng lại và hỏi — đừng đoán rồi đi tiếp.
Sau mỗi lát, cho thấy cái gì đã đổi và nó thỏa tiêu chí nghiệm thu nào.
[dán bản spec]

Rồi khép vòng — output quay về kiến trúc sư, chỉ soát theo đúng cái thước nó đã đặt:

Đây là bản build so với spec bạn đã viết: [dán diff / output].
Chỉ soát theo tiêu chí nghiệm thu của bạn — liệt kê từng cái đạt hay chưa đạt,
và chỉ ra bất cứ chỗ nào trôi khỏi cách tiếp cận. Đừng đóng dấu cho qua.

04Cái giao tay mới là toàn bộ công việc

Nếu kẻ chủ trì viết một bản giao việc mơ hồ, việc chia chẳng mua được gì — người thợ lấp các khoảng trống bằng phỏng đoán của chính nó, và bạn quay về một kế hoạch không nói ra, chỉ là nấp trong một agent thứ hai. Để ý cái prompt ở giữa thật ra đang bảo vệ điều gì: cái lệnh khi spec im lặng thì hỏi chính là thứ ngăn người thợ lặng lẽ thành kiến trúc sư thứ hai. Một lần giao tay chỉ chạy khi bản giao việc đủ cụ thể để gần như không còn gì phải đoán — và đủ thành thật để chỉ ra chỗ nào nó còn thiếu.

Và mục cuối trong bản giao việc — tiêu chí nghiệm thu — là thứ khép vòng lại. Vì kiến trúc sư viết ra chúng, kiến trúc sư giờ có thể soát bản build theo chúng, và đó đúng là nguyên lý ở một cặp mắt thứ hai: kẻ không viết code mới là người đúng để phán xét nó. Kẻ chủ trì, theo cách dựng vai, chính là người soát-không-phải-tác-giả. Vai còn đảo được sạch sẽ — hôm nào Codex thiết kế thứ gì đó, Claude ngồi vào ghế người thợ, và cái cổng vẫn ở với kẻ đặt thước.

05Khi nào chia theo tầm mới đáng

Nó là thuần phụ phí với một thay đổi nhỏ, hiểu rõ rồi — một agent cứ thế làm là xong. Việc chia đáng cái giá khi việc có kiến trúc thật trong đó, khi một agent đơn độc sẽ trôi giữa chừng, và khi bạn cứ nhận về output chạy được nhưng sai dáng — làm khéo léo hướng tới một kế hoạch chưa ai ghim xuống. Cái triệu chứng cuối đó là dấu hiệu. Cách chữa không phải một người thợ thông minh hơn; mà là cho người thợ một kế hoạch nó không đọc trật được, viết bởi một agent mà cả việc của nó là làm cho kế hoạch đúng.

c
Người viết

Mỗi câu chuyện ở đây gói một bài học đã trả giá để học.

craftagentmột người vừa xây vừa học

Bạn đang xây gì với agent? Muốn trao đổi, phản biện, hay cùng làm một thứ gì đó — viết cho mình một dòng.

50bài12cụmVI·ENsong ngữ

Nhận bài mới qua email

Ghi chép thực chiến về làm việc với AI agent — thi thoảng, không spam.