Trước khi sửa, hãy gọi đúng tên cái hỏng — agent fail theo bốn kiểu nhìn là biết

Người mới thấy output sai là lao vào sửa. Người có nghề đọc triệu chứng trước, rồi mới rẽ đúng đường thoát

Đọc5 phút đọc
Chủ đềproduction · debugging · failure-modes
TL;DR

Agent không fail theo vô số kiểu. Nó fail theo bốn dáng quen: nó bịa/diễn cho tròn vai, nó kẹt trong một vòng lặp bận rộn, nó báo xong mà kết quả sai, hoặc nó nhả ra một output sai mà bạn phải truy cho ra điểm hỏng. Người mới thấy sai là lao vào sửa — và thường sửa nhầm tầng. Người có nghề đọc triệu chứng trước, gọi đúng tên cái hỏng, rồi mới rẽ vào đúng đường thoát.

Agent trả về một thứ sai. Bạn nhìn nó vài giây, rồi làm cái phản xạ ai cũng làm: bắt đầu sửa. Sửa output. Không ăn. Sửa lại prompt. Vẫn lệch. Viết thêm một câu dặn dò. Lần thứ ba bạn nhận ra mình đã loay hoay nửa buổi mà chưa từng dừng lại hỏi: cái này đang hỏng kiểu gì?

Đó là cái bẫy. Không phải bạn thiếu nỗ lực — bạn thừa nỗ lực, đổ vào sai chỗ. Bạn đang chữa triệu chứng mà chưa chẩn được bệnh.

01Mỗi kiểu hỏng có một dáng riêng — và bạn nhận ra được

Bác sĩ giỏi không kê đơn ngay khi bệnh nhân vừa kêu đau. Họ hỏi: đau ở đâu, đau kiểu gì, lúc nào đau. Vì cùng một chữ "đau" trỏ tới mười cái bệnh khác nhau, và mỗi bệnh một thuốc.

Agent fail cũng vậy. "Nó sai" là tiếng kêu đau — vô dụng để chữa. Nhưng cách nó sai thì không vô số. Sau đủ lần vấp, bạn sẽ thấy nó luôn rơi vào một trong bốn dáng: nó bịa một thứ không có để tỏ ra đã làm; nó kẹt trong một vòng lặp mà vẫn trông như đang làm việc; nó báo xong rồi dừng nhưng kết quả lặng lẽ sai; hoặc nó nhả một output sai mà chẳng có dòng lỗi nào chỉ chỗ hỏng. Bốn dáng, bốn triệu chứng tách bạch — nhìn là gọi được tên.

Bốn triệu chứng — nhìn là biết loại
Nó kể, không cho xem → BỊA / DIỄNkết quả tròn trịa nhưng không có lệnh thật, không log, không con số kiểm được. Nó mô tả một thế giới thay vì cho bạn xem.
Vẫn chạy, không tiến → KẸT VÒNG LẶPnó không dừng, không báo lỗi, sửa cùng một thứ theo cùng một cách bốn lần liền. Bận rộn bị nhầm là tiến triển.
Báo "xong" rồi im → CÂM TĨNHnó tuyên bố hoàn thành bằng giọng chắc nịch, rồi dừng. Không có gì kêu lên. Cái sai nằm im trong cái "xong" đó.
Output sai, không thấy chỗ hỏng → CẦN ĐỊNH VỊkết quả rõ ràng sai, nhưng không dòng lỗi nào. Đọc xuôi toàn bộ không tìm ra — lỗi nằm ở một giả định thượng nguồn.

Để ý: ba câu hỏi tách được cả bốn. Có dấu chân thật không? Nó có dừng không? Nó có báo gì không? Trả lời ba câu đó là bạn đã khoanh đúng loại — chưa cần sửa dòng nào.

02Vì sao bốn dáng này lặp lại, không phải mười dáng ngẫu nhiên

Bốn cái này không phải tôi gom cho gọn. Chúng lặp lại vì chúng bắt nguồn từ cùng một bản chất: agent là một thứ đoán phần tiếp theo khả dĩ nhất, không có cái khó chịu sinh lý của con người khi gặp việc quá sức. Thiếu cái phanh đó, nó trượt theo bốn hướng tự nhiên.

Khi thiếu công cụ hay quyền, hướng khả dĩ nhất là dựng một thứ trông-như-xong — ra dáng bịa. Khi việc mơ hồ và mỗi bước nhỏ đều trông hợp lý, nó cứ đi tiếp mà không thấy mình quay vòng — ra dáng kẹt. Khi nó tin mình đã xong, nó tuyên bố xong với cùng độ tự tin lúc nó đúng — ra dáng câm tĩnh. Và khi một giả định sớm bị lệch, cái lệch đó chảy xuôi xuống tận output cuối mà không kêu — ra dáng cần định vị. Bốn hướng trượt, bốn dáng. Hiểu cái gốc chung này thì bạn thôi bị bất ngờ: lần sau thấy sai, bạn không hỏi "nó bị gì lạ vậy", bạn hỏi "trong bốn hướng quen, đây là hướng nào".

03Gọi đúng tên rồi, mỗi tên có một đường thoát

Chẩn xong, việc còn lại nhẹ tênh: mỗi loại có một câu probe để xác nhận và một đường thoát riêng — và quan trọng là chúng khác nhau. Sửa loại này bằng cách của loại kia là lý do bạn loay hoay nửa buổi.

1
Nghi BỊA

Probe: "Cho tôi xem lệnh thật bạn đã chạy và output thật của nó." Đường thoát: đòi dấu chân, mở cho nó nói "tôi thiếu X". → bài về agent diễn.

2
Nghi KẸT

Probe: "Ba bước vừa rồi khác nhau ở đâu?" Nếu giống nhau → loop. Đường thoát: ngắt sớm, reset context sạch, giao lại kèm điều kiện dừng. → bài kết-vòng-lặp.

3
Nghi CÂM TĨNH

Probe: "'Xong' này có gì để tôi đối chiếu với đời thật?" Đường thoát: kiểm ở ranh giới, coi im lặng là đáng nghi. → bài "Done!" là một lời khai.

4
Cần ĐỊNH VỊ

Probe: "Bước nào là bước đầu tiên kết quả đã lệch?" Đường thoát: chia đôi vùng nghi, bisect ngược về điểm hỏng. → bài đọc-ngược-từ-output-sai.

Bốn câu probe trên đều ngắn, và đều làm một việc: ép agent — hoặc ép chính bạn — lộ ra dữ kiện mà cái nhìn thoáng qua giấu đi. Chẩn đúng là nửa phần chữa.

Bạn không cần thuộc lòng cách chữa từng loại ngay hôm nay — bốn bài kia ở đó cho lúc bạn cần đào sâu. Cái cần thuộc là động tác dừng lại: trước khi gõ phím sửa, hỏi "đây là dáng nào trong bốn". Một câu hỏi, vài giây. Nhưng nó là cái ngã ba quyết định bạn sửa trúng hay sửa mò nửa buổi.

Cái hỏng nào cũng có tên. Lần tới agent trả về một thứ sai, đừng vội chữa — gọi tên nó trước. Khi đã gọi đúng, con đường tự hiện ra.

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.