Tips

Prompt với tài liệu dài: tài liệu lên đầu, câu hỏi xuống cuối, bắt trích dẫn trước

Tóm tắt

Với input dài, đặt tài liệu ở đầu và câu hỏi ở cuối (Anthropic ghi nhận cải thiện tới 30%), bọc mỗi tài liệu trong thẻ XML kèm nguồn, và yêu cầu Claude trích dẫn đoạn liên quan trước khi trả lời để giảm bịa và dễ kiểm chứng.

Dán một báo cáo 80 trang cùng hai file Excel vào chat rồi hỏi "phân tích giúp tôi", kết quả thường chung chung, bỏ sót số liệu, đôi khi "nhớ nhầm" chi tiết. Vấn đề hiếm khi nằm ở model, mà ở cách sắp xếp prompt khi dữ liệu dài. Tài liệu prompting của Anthropic có một mục riêng cho input từ khoảng 20 nghìn token trở lên, với ba kỹ thuật đơn giản nhưng hiệu quả. Bài này giải thích từng kỹ thuật và cách áp dụng cho cả người dùng chat lẫn người viết ứng dụng.

Ba kỹ thuật chính

Kỹ thuậtLàm gìTác dụng
Tài liệu lên đầu, câu hỏi xuống cuốiĐặt dữ liệu dài phía trên hướng dẫn, ví dụ và câu hỏiTheo thử nghiệm của Anthropic, đặt câu hỏi ở cuối có thể cải thiện chất lượng tới 30%, nhất là với nhiều tài liệu
Bọc từng tài liệu bằng XML<document> chứa <source> và <document_content>Claude phân biệt được tài liệu nào nói gì, trích nguồn đúng
Trích dẫn trước, trả lời sauYêu cầu trích các đoạn liên quan vào <quotes> trước khi làm taskTập trung vào phần liên quan, bỏ qua phần nhiễu, dễ kiểm chứng

1. Tài liệu lên đầu

Thói quen phổ biến là viết yêu cầu trước rồi dán tài liệu sau. Với input dài, hãy đảo lại: tài liệu trước, sau đó hướng dẫn, cuối cùng là câu hỏi. Khi đọc đến câu hỏi, toàn bộ dữ liệu đã nằm phía trên, và câu hỏi là thứ "mới nhất" trong ngữ cảnh.

2. Cấu trúc nhiều tài liệu

<documents>
  <document index="1">
    <source>bao_cao_thuong_nien_2025.pdf</source>
    <document_content>{{BAO_CAO}}</document_content>
  </document>
  <document index="2">
    <source>phan_tich_doi_thu_q2.xlsx</source>
    <document_content>{{DOI_THU}}</document_content>
  </document>
</documents>

Phân tích báo cáo thường niên và bảng đối thủ.
Chỉ ra 3 lợi thế chiến lược và đề xuất trọng tâm quý 3.
Ghi rõ mỗi nhận định lấy từ tài liệu số mấy.

Có thể thêm metadata khác trong mỗi <document>: ngày, tác giả, phiên bản. Khi tài liệu mâu thuẫn nhau, Claude sẽ dùng metadata để giải thích thay vì trộn lẫn.

3. Trích dẫn trước khi kết luận

Tìm các đoạn trong hợp đồng liên quan đến điều khoản chấm dứt
và phạt vi phạm. Đặt nguyên văn vào thẻ <quotes>.
Sau đó, chỉ dựa trên các trích dẫn này, liệt kê rủi ro cho bên
mua trong thẻ <risks>. Nếu không tìm thấy trích dẫn phù hợp,
ghi "không có trong tài liệu".

Kỹ thuật này có ba lợi ích: Claude "lọc" phần liên quan trước khi suy luận; bạn kiểm chứng được nhanh bằng cách đối chiếu trích dẫn; và câu "nếu không tìm thấy thì nói không có" giảm hẳn việc bịa thông tin.

Áp dụng trong chat hằng ngày

  • Đính kèm file trước, rồi mới gõ câu hỏi ở tin nhắn cuối.
  • Nhiều file: đặt tên file có nghĩa (hop-dong-v3-ky.pdf thay vì scan001.pdf), vì tên file đóng vai trò "source".
  • Hỏi từng câu cụ thể thay vì "phân tích tất cả". Câu hỏi hẹp cho câu trả lời có trích dẫn rõ.
  • Với Claude.ai, gói trả phí có thể dùng Projects: khi knowledge gần chạm giới hạn ngữ cảnh, hệ thống tự chuyển sang chế độ truy xuất (RAG) để mở rộng dung lượng.

Áp dụng khi viết ứng dụng

  • Kết hợp prompt caching: tài liệu dài đặt ở đầu cũng là vị trí lý tưởng để cache. Nhiều câu hỏi trên cùng tài liệu sẽ chỉ trả phí đọc cache cho phần dài.
  • Citations: nếu cần trích nguồn chính xác đến từng đoạn, cân nhắc tính năng citations của API thay vì tự parse thẻ <quotes>.
  • Không nhồi mọi thứ: context dài không miễn phí. Lọc trước bằng tìm kiếm (RAG) khi kho tài liệu lớn hơn nhiều so với phần cần thiết.

Rủi ro và lưu ý

  • Trích dẫn vẫn cần kiểm tra: đối chiếu ngẫu nhiên vài đoạn với bản gốc, nhất là tài liệu pháp lý, tài chính.
  • File scan chất lượng kém hoặc bảng phức tạp có thể bị đọc sai số; với số liệu quan trọng, xuất bảng sang CSV trước.
  • Tài liệu từ bên ngoài có thể chứa chỉ dẫn ẩn (prompt injection). Coi nội dung trong <document_content> là dữ liệu, không phải lệnh.

Áp dụng thế nào?

  • Dev: Chuẩn hoá hàm dựng prompt: documents (XML) → instructions → question. Thêm bước quote-first cho tác vụ cần độ chính xác.
  • Tech Lead: Đo chất lượng trước/sau khi đổi thứ tự prompt trên bộ eval; kết hợp cache cho tài liệu dùng lại.
  • PM / BA: Khi đọc tài liệu dài bằng Claude, luôn yêu cầu "trích dẫn nguyên văn và ghi tài liệu số mấy". Biên bản phân tích sẽ kiểm chứng được.

Nguồn & tham khảo

  1. Prompting best practices — Claude Docs