| Dựng RAG cho 30 trang tài liệu | 30 trang nhét vừa context; bạn thêm hạ tầng để giải một vấn đề không tồn tại | Dán thẳng vào prompt. Chỉ index khi thật sự vượt trần context |
| Gọi model mạnh nhất cho mọi việc | Phân loại và trích xuất chạy tốt trên model rẻ hơn 20 lần | Định tuyến theo độ khó ở gateway, đo bằng eval trước khi hạ cấp |
| Fine-tune để model “biết” tài liệu công ty | Fine-tune dạy hành vi, không dạy sự kiện; model sẽ bịa tự tin hơn | Dùng retrieval. Chỉ fine-tune cho định dạng và phong cách |
| Agent loop không đặt trần | Một vòng lặp hỏng chạy cả đêm và đốt hết ngân sách tháng | Trần số vòng, trần token, trần thời gian — ngay từ dòng code đầu |
| “Đừng làm X” trong system prompt như biện pháp an ninh | Injection ghi đè được chỉ dẫn; đây là gợi ý, không phải kiểm soát | Kiểm soát ở runtime: quyền của tool, lọc ACL, phê duyệt |
| Chunk cố định 512 ký tự | Cắt giữa câu, giữa bảng, giữa hàm; mất ngữ cảnh không cứu được | Cắt theo cấu trúc tài liệu, giữ tiêu đề mục trong mỗi chunk |
| Semantic cache cho mọi loại câu hỏi | “Có được hoàn tiền không” và “không được hoàn tiền phải không” gần nhau về vector | Chỉ cache tri thức tĩnh; loại trừ phủ định, số liệu, dữ liệu riêng |
| Lên production trước khi có trace | Sự cố chất lượng đầu tiên sẽ không điều tra được, và nó đến trong tuần đầu | Trace trước, tính năng sau — thứ tự không nên đảo |
| Approval gate cho mọi hành động | Người duyệt bấm quen tay từ ngày thứ ba; gate mất tác dụng | Chỉ chặn hành động không hoàn tác được, theo dõi tỷ lệ từ chối |
| Eval bằng ca tự nghĩ ra | Bạn tối ưu cho một phân phối câu hỏi không tồn tại | Lấy ca từ log production; mỗi báo lỗi thành một ca vĩnh viễn |
| Building RAG for 30 pages | 30 pages fit in the context; you added infrastructure for a problem you don't have | Paste it into the prompt. Index only once you truly exceed the context |
| Calling the strongest model for everything | Classification and extraction run fine on a model 20× cheaper | Route by difficulty at the gateway, measure with evals before downgrading |
| Fine-tuning so the model “knows” company docs | Fine-tuning teaches behavior, not facts; the model invents with more confidence | Use retrieval. Fine-tune only for format and voice |
| Agent loops with no caps | One broken loop runs all night and burns the monthly budget | Cap steps, tokens and wall clock — from the first line of code |
| “Don't do X” in the system prompt as security | Injection overrides instructions; this is a suggestion, not a control | Control in the runtime: tool permissions, ACL filtering, approvals |
| Fixed 512-character chunks | Cuts mid-sentence, mid-table, mid-function; lost context is unrecoverable | Chunk along document structure, keep section headings in each chunk |
| Semantic caching for every question | “Can I get a refund” and “can't I get a refund” sit close in vector space | Cache static knowledge only; exclude negations, figures, per-user data |
| Going to production before tracing | The first quality incident is uninvestigable, and it arrives in week one | Traces first, features second — don't reverse that order |
| Approval gates on every action | Reviewers rubber-stamp by day three; the gate stops working | Block only irreversible actions, monitor the rejection rate |
| Evals built from invented cases | You optimize for a question distribution that doesn't exist | Draw cases from production logs; every bug report becomes a permanent case |