Tại sao việc "cầm tay chỉ việc" lại khiến AI Agent của bạn ngốc hơn
Nhiều dev đang sử dụng các LLM hiện đại hệt như những đoạn script regex mỏng manh. Bằng cách thay thế các quy tắc cứng nhắc bằng những nguyên tắc cốt lõi, bạn có thể nâng cấp đáng kể các AI agent của mình. Dưới đây là lý do vì sao "less is more" - càng đơn giản lại càng hiệu quả.

Mở thử một file system_prompt.txt bất kỳ từ một repo GitHub hiện đại ngày nay, bạn sẽ thấy gì? Thường thì đó là một mớ text hoảng loạn. "KHÔNG ĐƯỢC làm X. BẮT BUỘC phải output chính xác ba gạch đầu dòng. TUYỆT ĐỐI KHÔNG dùng thư viện này."
Các developer đang đối xử với những cỗ máy suy luận tiên tiến nhất trong lịch sử nhân loại như những đoạn script regex mỏng manh dễ vỡ.
Sự hoang tưởng này hoàn toàn có lý do lịch sử của nó. Chỉ một hoặc hai năm trước, các LLM đời đầu cần được "cầm tay chỉ việc" cực kỳ sát sao chỉ để không bị lạc đề. Nhưng thời thế đã thay đổi. Các model hiện đại cực kỳ thông minh, vậy mà chúng ta vẫn đang viết prompt như thể đang lập trình cho một cái lò vi sóng từ những năm 1980. Chúng ta đang cố gắng hardcode sự thông minh.
Gần đây có một chuyện rất thú vị xảy ra ở Vercel chứng minh cho điều này. Team engineering của họ đã công bố một bài phân tích về cách họ cải thiện sản phẩm v0, chi tiết hóa một nước đi đi ngược lại với trực giác thông thường: họ đã xóa bỏ 80% các tool của agent.
Kết quả thì sao? Hệ thống không hề sập. Thực tế là nó còn hoạt động tốt hơn rất nhiều. Bằng cách gỡ bỏ những tool bị quy định quá mức và những rào cản cứng nhắc, họ đã giảm bớt sự nhầm lẫn và cho phép model làm điều mà nó giỏi nhất—suy luận để giải quyết vấn đề. Ít rào cản hơn đồng nghĩa với code chất lượng hơn.
Có một bài học sâu sắc ở đây dành cho bất kỳ ai đang build sản phẩm với AI lúc này: Hãy đưa ra nguyên tắc, đừng đưa ra những quy tắc cứng nhắc.

Khi bạn bảo một LLM chính xác phải làm gì theo từng bước, bạn đang ép nó phải dành sự chú ý (tài nguyên compute) có hạn của mình vào việc tuân thủ mệnh lệnh thay vì tập trung vào chất lượng. Bạn tước đi khả năng sử dụng lượng dữ liệu training khổng lồ của nó để tìm ra một giải pháp tối ưu và tinh tế hơn cái cách mà bạn đã hardcode.
Để thấy sự khác biệt, hãy nhìn vào cách mà hầu hết các developer viết prompt cho agent so với cách mà họ nên viết.
Cách Tệ (Quy tắc cứng nhắc):
"Viết một function Python để fetch data user. Bắt buộc phải dùng thư viện requests. Bắt buộc phải handle lỗi bằng block try/except. Bắt buộc phải return một dictionary có chính xác các key 'name', 'email', và 'status'. Không được dùng async. Thêm comment vào từng dòng code."
Cách Tốt (Nguyên tắc & Mục tiêu):
"Viết một function Python thật robust để fetch data user. Ưu tiên các thư viện chuẩn, hiện đại. Code phải đạt chuẩn production-ready, nghĩa là nó xử lý mượt mà các lỗi network và edge cases. Ưu tiên tính dễ đọc và clean architecture hơn là viết code kiểu 'tricks' phức tạp. Hệ thống downstream đang expect các profile user theo chuẩn (name, email, status)."
Bạn thấy sự thay đổi chứ? Ví dụ đầu tiên đối xử với AI như một junior developer không đáng tin cậy. Ví dụ thứ hai đối xử với nó như một senior engineer hiểu rõ mục tiêu và context. Bạn nói cho nó biết một output tốt trông như thế nào và tại sao, sau đó bạn lùi lại và để nó tự tìm ra cách làm.
Tất nhiên, có một ngoại lệ lớn cho quy tắc này.
Khi các agent đang giao tiếp với các agent khác—hoặc khi một upstream agent đang truyền data cho một database parser cứng nhắc ở downstream—bạn cần sự nghiêm ngặt tuyệt đối. Việc giao tiếp giữa máy với máy (machine-to-machine handoffs) đòi hỏi các JSON schema phải chính xác và không được sai lệch. Nhưng đối với việc suy luận, tạo nội dung, và giải quyết vấn đề thì sao? Hãy nới lỏng tay ra.
Nếu bạn muốn nâng cấp ngay lập tức các trợ lý code của mình hôm nay, hãy copy và paste chính xác đoạn block này vào file claude.md, memory.md, hoặc system prompt cốt lõi của agent của bạn:
## Prompt Writing Philosophy
When writing LLM prompts (system prompts, skill specs, subagent prompts): **give principles, not rigid rules.**
- Tell the LLM what good output looks like and why — let it figure out how
- Avoid prescribing exact fields, counts, or formats unless the output is a machine-consumed intermediate
- Exception: structured handoffs between agents can be rigid because downstream agents need consistent field names
Hãy ngừng việc cố gắng micromanage cỗ máy. Hãy tin tưởng vào các LLM hiện đại. Chúng nhanh hơn, thông minh hơn, và có khả năng vô hạn khi chúng ta ngừng đối xử với chúng như những đứa trẻ lên ba.

Chia sẻ

Feng Liu
shenjian8628@gmail.com