Prompt chaining là chia một việc phức tạp thành chuỗi prompt nhỏ, đầu ra của bước trước làm đầu vào bước sau. Luồng do lập trình viên định trước, không phải do model quyết.
Ví dụ viết một bài blog: sinh dàn ý → viết mở bài → viết thân bài theo dàn ý → viết kết → soát lại và định dạng. Năm bước cố định, chạy lần nào cũng vậy.
Khác agent ở đúng một điểm — ai quyết định bước tiếp theo:
- Chain: bạn quyết, từ lúc viết code. Kết quả là chạy ổn định, dễ debug, độ trễ và chi phí đoán trước được.
- Agent: model quyết lúc chạy — chọn tool nào, khi nào dừng. Linh hoạt hơn nhưng khó kiểm soát, đắt hơn và khó tái hiện lỗi.
Vì sao chia nhỏ lại tốt hơn một prompt to: mỗi bước chỉ có một việc nên model tập trung hơn và ít bỏ sót; bạn chèn được kiểm tra giữa các bước (dàn ý không hợp lệ thì dừng luôn, khỏi tốn tiền viết tiếp); và khi kết quả hỏng, bạn biết chính xác bước nào hỏng thay vì phải đoán trong một prompt dài.
Vài dạng chain hay dùng: tuần tự A → B → C; phân nhánh theo phân loại đầu vào (câu hỏi thường đi một đường, câu hỏi kỹ thuật đi đường khác); chạy song song rồi gộp (chia tài liệu dài ra tóm tắt từng phần rồi tổng hợp); và vòng tự soát — sinh, tự phê bình, sửa lại, có giới hạn số vòng nên vẫn là chain chứ chưa phải agent.
Chọn chain khi việc phân rã được thành các bước biết trước, cần độ tin cậy cao và chi phí đoán trước được. Chọn agent khi không biết trước phải làm bao nhiêu bước và mỗi kết quả đều đổi hướng bước sau.
Nguyên tắc thực dụng: luôn thử chain trước. Phần lớn việc được gọi là "cần agent" thật ra chỉ cần một chain viết cẩn thận — và chain thì rẻ hơn, chạy ổn định hơn, gỡ lỗi dễ hơn nhiều.