Càng thả cho nó tự chạy, càng phải nói nhiều — không phải ít

Trực giác bảo: task tự động thì khỏi giải thích dài dòng, cứ thả ra cho nó lo. Nhưng đó là chiều ngược. Task có người kèm thì lỗi được bắt giữa đường. Task tự chạy không có ai kèm — mỗi chỗ bạn để trống, agent tự lấp bằng một giả định.

Đọc6 phút đọc
Chủ đềautonomy · context · delegation · long-tasks
TL;DR

Trực giác bảo task tự động thì khỏi giải thích nhiều. Đó là chiều ngược. Autonomy càng cao, context càng phải nhiều — vì task có người kèm còn vòng sửa giữa chừng để vớt giả định sai, task tự chạy thì không. Mỗi chỗ bạn để trống, agent lấp bằng một giả định mặc-định-có-vẻ-hợp-lý, và bạn chỉ thấy hậu quả ở cuối. Front-load context = thu nhỏ bề mặt chỗ-trống trước khi thả tay.

Tôi giao một task dài cho agent, rồi làm đúng cái việc mà sau này tôi mới thấy là sai: tôi rút ngắn phần dặn dò. Lý lẽ trong đầu nghe rất xuôi — "task này nó tự chạy một lèo, mình đâu ngồi kèm, giải thích chi tiết làm gì cho mất công."

Bốn mươi phút sau nó chạy xong. Output sai — không phải sai be bét, mà sai theo kiểu tệ hơn: hợp lý ở bề mặt, lệch ở một giả định ngầm từ bước thứ hai mà tôi chưa bao giờ nói rõ. Và vì không có chốt nào giữa đường, cái giả định đó kịp đi xuyên hết phần còn lại trước khi tôi nhìn thấy.

Tôi đã rút context đúng vào lúc lẽ ra phải rót thêm vào.

01Quan hệ ngược mà trực giác hay lật

Trực giác xếp mọi thứ theo một trục: việc nhẹ thì nói ít, việc nặng thì nói nhiều. Nên task tự chạy — nghe như "thả ra cho nhẹ đầu" — bị xếp nhầm vào ô nói-ít. Nhưng cái quyết định lượng context cần thiết không phải bạn nhàn hay bận. Là có hay không một vòng sửa giữa chừng.

Task có người kèm — context có thể mỏng

Bạn theo dõi từng bước, thấy nó rẽ sai là chặn lại ngay tại chỗ
Chỗ trống nào trong lời dặn được lấp dần qua đối thoại — bạn bổ sung khi nó cần
Một giả định sai chỉ trôi được một bước là bị bắt — bề mặt rủi ro nhỏ

Task tự chạy — context phải dày

Không ai chặn giữa đường; cái bạn dặn lúc đầu là toàn bộ thứ nó có để dựa vào
Mỗi chỗ trống thành một quyết định nó tự đoán — và nó luôn đoán, không bao giờ dừng để hỏi
Một giả định sai từ đầu nhân qua từng bước — đến cuối thành một output lệch hẳn

Cùng một agent, cùng một task — chỉ khác có hay không người kèm giữa đường. Cái khác đó lật ngược lượng context cần thiết, chứ không giảm nó. Thả tay không phải lý do nói ít hơn; nó là lý do phải nói cho đủ ngay từ đầu, vì sẽ không có lần thứ hai để nói thêm.

Điểm cốt lõi nằm ở chữ "đoán". Một agent gặp chỗ mơ hồ không treo máy chờ bạn — nó chọn cái mặc định nghe hợp lý nhất rồi đi tiếp. Khi bạn ngồi kèm, cái đoán đó vô hại: nó đoán sai, bạn thấy, bạn chỉnh. Khi bạn thả tay, đúng cái đoán đó thành nền móng cho mọi bước sau. Context bạn front-load chính là thứ thu nhỏ số chỗ nó buộc phải đoán — và với task dài, mỗi chỗ đoán là một mầm lỗi được gieo sớm.

02Bốn thứ phải nói rõ trước khi thả tay

Front-load context không có nghĩa viết một bài luận. Nghĩa là bịt đúng bốn loại chỗ-trống mà agent hay tự lấp sai nhất khi chạy một mình:

1
Mục tiêu — kết quả cuối trông ra sao, không chỉ việc cần làm

Không phải "viết hàm xử lý danh sách này" mà "viết hàm này để cuối cùng nó cắm vừa vào chỗ kia, dùng theo cách kia". Thiếu cái đích, agent tối ưu cho việc trước mắt và đi chệch cái bạn thật sự cần.

2
Ràng buộc — vùng cấm và cái bất biến nó không được tự ý đổi

Cái gì tuyệt đối không đụng, quy ước nào phải giữ, giới hạn nào là cứng. Đây là phần agent hay tự đoán "chắc đổi cái này cho gọn cũng được" — và với task dài, một cái đụng nhầm từ sớm kéo theo cả chuỗi sau.

3
Tiêu chí đạt — làm sao nó tự biết mình đã làm đúng

"Xong" với agent nghĩa là "hết bước", không phải "đạt chuẩn". Cho nó một thước đo tự soi — phải qua được cái gì, trông thế nào thì coi là ổn — để nó không dừng ở mức hợp-lý-bề-mặt mà bạn phải làm lại.

4
Điều kiện dừng — khi nào nên ngừng và quay lại hỏi thay vì đoán tiếp

Cái hay bị quên nhất, mà lại quan trọng nhất cho task tự chạy. Nói rõ: gặp tình huống nào thì dừng và báo, đừng tự quyết. Đây là cách bạn cấy lại một điểm-kèm vào giữa một task vốn không có ai kèm.

Bốn thứ này không phải nói thêm cho an tâm — chúng là bốn loại chỗ-trống mà agent buộc phải lấp bằng giả định nếu bạn để trống. Bịt trước thì rẻ một lần. Để nó tự lấp thì bạn trả bằng bốn mươi phút chạy ra một output phải bỏ.

Để ý cái thứ tư kỹ một chút. Ba cái đầu là front-load thuần — nói trước rồi thả. Cái thứ tư khác về chất: nó cấy ngược một điểm dừng vào trong một task tự chạy, biến "chạy một lèo tới cuối" thành "chạy tới khi gặp chỗ thật sự mơ hồ thì ngừng lại hỏi". Đó là cách rẻ nhất để có lại cái vòng-sửa-giữa-chừng mà autonomy vừa lấy đi của bạn.

03Cái giá của context thiếu không trả lúc đầu — nó trả ở cuối

Có một lý do khiến cú đánh đổi này dễ làm sai mãi: chi phí của việc rút bớt context nằm ở một đầu, còn cảm giác tiết kiệm nằm ở đầu kia. Lúc giao task, cắt ngắn lời dặn cho cảm giác nhẹ và nhanh ngay tức thì. Hóa đơn thì tới bốn mươi phút sau, dưới dạng một output lệch phải dò ngược lại tận cái giả định gốc — và lúc đó bạn không chỉ trả bằng thời gian chạy phí, mà bằng cả công lần ra chỗ nó rẽ sai.

Nên phép tính không nằm ở phút bạn tiết kiệm khi gõ lời dặn. Nó nằm ở chỗ: với một task không có ai kèm giữa đường, mỗi câu bạn không nói là một câu agent tự trả lời thay bạn — và nó trả lời tự tin y như khi nó đúng.

Lần tới bạn định thả một task dài rồi đi làm việc khác, dừng lại ở đúng cái phản xạ "thôi khỏi giải thích nhiều". Đó chính là phản xạ phản bội bạn. Task càng dài, càng ít người kèm, thì những gì bạn nói trước lúc nhấn nút lại càng là tất cả những gì agent có. Thả tay không phải lúc để nói ít đi — nó là lúc duy nhất bạn còn được nói.

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.

Viết thư hello@craftagent.cloud
58bà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.