Prompt Engineering

Prompt Tốt Hơn. Code Tốt Hơn.

Chất lượng code do AI tạo ra hầu như hoàn toàn phụ thuộc vào những gì bạn yêu cầu và cách bạn yêu cầu. Hướng dẫn này bao gồm các mẫu nhất quán tạo ra kết quả tốt hơn với Claude Code.

Từ phạm vi tác vụ đến prompt hệ thống, từ tinh chỉnh lặp lại đến hướng dẫn theo vai trò. Các kỹ thuật thực tế bạn có thể áp dụng ngay trong phiên coding tiếp theo.

Tại Sao Prompt Engineering Quan Trọng cho Code

Khi bạn yêu cầu một nhà phát triển con người 'xây dựng trang đăng nhập', họ đặt câu hỏi làm rõ: nhà cung cấp xác thực nào? Các trường nào? Có nên xử lý OAuth không? Thông báo lỗi? Trạng thái đang tải?

Các AI coding agent sẽ cố gắng tự trả lời tất cả những câu hỏi đó. Đôi khi họ đoán đúng. Thường họ đoán ra thứ gì đó hợp lý nhưng không phải thứ bạn muốn. Khoảng cách giữa 'hợp lý' và 'đúng như kỳ vọng' là thứ prompt engineering lấp đầy.

Prompt tốt không cần phải dài. Chúng cần cụ thể về những thứ quan trọng và im lặng về những thứ không quan trọng. Sự cân bằng đó là điều hướng dẫn này nói về.

Năm Nguyên Tắc Cốt Lõi

Các mẫu cải thiện kết quả bất kể tác vụ là gì.

1

Cụ Thể về Kết Quả, Không Phải Các Bước

Thay vì 'tạo một React component, sau đó thêm state, sau đó thêm styling', hãy mô tả kết quả cuối cùng: 'Xây dựng thanh bên có thể thu gọn hiển thị tên dự án, hỗ trợ kéo để sắp xếp lại và sử dụng theme Tailwind hiện có của chúng tôi.' Để agent quyết định cách đến đó.

Avoid

Tạo một component. Thêm useState. Thêm nút toggle. Tạo style với Tailwind.

Better

Xây dựng component thanh bên có thể thu gọn liệt kê dự án theo tên. Nên hỗ trợ kéo để sắp xếp lại và khớp với theme tối của chúng tôi (bg-[#111318], border-[#262b38]). Trạng thái thu gọn nên được duy trì qua các lần tải lại trang.

2

Xác Định Phạm Vi Công Việc Rõ Ràng

Các agent hoạt động tốt nhất khi họ biết ranh giới. Chỉ định file nào cần chỉnh (hoặc tránh), pattern nào cần tuân theo và 'hoàn thành' có nghĩa là gì. Các tác vụ không giới hạn dẫn đến các thay đổi lan rộng khó xét duyệt.

Avoid

Tái cấu trúc hệ thống xác thực.

Better

Tái cấu trúc login handler trong src/api/auth/login.ts để sử dụng bcrypt thay vì sha256 để băm mật khẩu. Đừng thay đổi logic JWT hay xử lý session cookie. Cập nhật các bài kiểm tra liên quan trong tests/auth/.

3

Cung Cấp Ngữ Cảnh Quan Trọng

Claude Code có thể đọc các file dự án của bạn, nhưng không thể đọc suy nghĩ của bạn. Nếu có quy ước bạn tuân theo, thư viện bạn thích, hoặc pattern bạn đã thiết lập, hãy nói rõ. Điều này tiết kiệm công việc làm lại.

Avoid

Thêm xác thực form.

Better

Thêm xác thực form vào form đăng ký bằng zod (chúng tôi đã dùng nó cho form cài đặt trong src/forms/settings.ts). Hiển thị thông báo lỗi inline bên dưới mỗi trường. Tuân theo cùng kiểu lỗi như form đăng nhập.

4

Một Tác Vụ Mỗi Prompt

Các prompt phức hợp ('xây dựng API, viết kiểm tra, cập nhật tài liệu và deploy') buộc agent phải giữ quá nhiều mục tiêu cùng lúc. Chia công việc phức tạp thành các tác vụ tuần tự, tập trung. Mỗi tác vụ xây dựng dựa trên kết quả trước.

Avoid

Xây dựng trang hồ sơ người dùng, viết endpoint API, thêm kiểm tra, cập nhật README, và sửa thanh điều hướng khi làm.

Better

Tạo endpoint GET /api/user/profile. Trả về các trường id, name, email và plan. Sử dụng auth middleware hiện có để xác thực.

5

Lặp Lại, Đừng Bắt Đầu Lại

Nếu kết quả đầu tiên không đúng, hãy tinh chỉnh prompt thay vì bắt đầu lại. Claude giữ toàn bộ ngữ cảnh cuộc trò chuyện. Nói những gì sai, những gì cần thay đổi và những gì cần giữ nguyên. Lặp lại nhanh hơn bắt đầu lại từ đầu.

Avoid

Điều đó sai rồi. Bắt đầu lại và xây dựng component theo cách khác.

Better

Bố cục tốt nhưng breakpoint mobile bị sai. Dưới 768px, xếp các card theo chiều dọc thay vì dùng grid. Giữ nguyên mọi thứ khác.

Prompt Hệ Thống: Ngữ Cảnh Được Duy Trì

Prompt hệ thống thiết lập hành vi cơ bản cho agent trước khi bạn nói bất cứ điều gì. Đây là công cụ được sử dụng ít nhất trong AI coding.

Prompt hệ thống cho agent biết nó là ai, những gì nó nên tập trung vào và những gì nó nên tránh. Nó áp dụng cho mọi tin nhắn trong phiên. Hãy nghĩ về nó như là mô tả công việc của agent.

AgentsRoom đi kèm với 14 prompt hệ thống theo vai trò: một cho mỗi loại agent. Prompt của agent Frontend cho nó biết tập trung vào các component, khả năng truy cập và thiết kế responsive. Prompt của agent QA cho nó biết cần suy nghĩ về các trường hợp biên và viết các bài kiểm tra toàn diện. Bạn có thể tùy chỉnh những thứ này hoặc tự viết.

Ví dụ: Prompt Hệ Thống Agent Frontend

Bạn là senior frontend developer. Tập trung vào các React component, CSS/Tailwind styling, khả năng truy cập (WCAG AA) và thiết kế responsive. Sử dụng component library hiện có của dự án trước khi tạo component mới. Ưu tiên composition hơn inheritance. Viết HTML ngữ nghĩa. Không bao giờ chỉnh sửa file backend.

Viết Prompt Hệ Thống Hiệu Quả

  • Xác định vai trò và ranh giới của nó. Agent nên tập trung vào điều gì? Nó nên bỏ qua điều gì?
  • Đề cập đến công nghệ và phiên bản cụ thể. 'React 19 với Server Components' tốt hơn 'React hiện đại'.
  • Tham chiếu các quy ước dự án. 'Sử dụng Zustand cho state' cho agent biết đừng dùng Redux hay Context.
  • Đặt kỳ vọng chất lượng. 'Viết TypeScript với strict mode, không có kiểu any' ngăn chặn các phím tắt.
  • Bao gồm các ràng buộc phủ định. 'Không bao giờ chỉnh sửa file trong /api/' giữ agent trong làn đường của nó.

CLAUDE.md: Ngữ Cảnh Cấp Dự Án

Prompt hiệu quả nhất không được gõ vào chat. Nó sống trong kho lưu trữ của bạn.

CLAUDE.md là file markdown ở gốc dự án mà Claude Code đọc tự động. Nó chứa cấu trúc dự án, quy ước, chi tiết stack và hướng dẫn áp dụng cho mọi phiên agent trong dự án.

Thay vì lặp lại 'chúng tôi dùng Tailwind CSS 4, Prisma ORM và Next.js 16' trong mọi cuộc trò chuyện, hãy viết một lần vào CLAUDE.md. Mọi agent đều kế thừa ngữ cảnh này. AgentsRoom bao gồm trình soạn thảo tích hợp cho CLAUDE.md để bạn có thể cập nhật mà không cần rời ứng dụng.

CLAUDE.md được viết tốt có giá trị hơn hàng chục prompt riêng lẻ được soạn thảo cẩn thận. Nó nhân lên: mọi phiên đều được hưởng lợi từ nó.

Xây Dựng Thư Viện Prompt

Ngừng viết lại cùng một hướng dẫn. Lưu những gì hiệu quả và tái sử dụng.

Nếu bạn thấy mình gõ cùng loại yêu cầu trên các dự án ('viết unit test cho file này', 'tái cấu trúc thứ này để dùng repository pattern', 'thêm xử lý lỗi cho tất cả các route API'), hãy lưu nó như một prompt có thể tái sử dụng.

AgentsRoom bao gồm tính năng thư viện prompt với hai cấp độ: prompt theo dự án cho các tác vụ đặc thù dự án, và prompt toàn cầu (đồng bộ qua cloud) cho các mẫu bạn dùng ở mọi nơi.

Các ứng viên tốt cho prompt thư viện: checklist code review, template viết kiểm tra, script di chuyển, hướng dẫn component scaffolding, các bước kiểm toán bảo mật. Bất cứ thứ gì bạn sẽ đưa vào wiki nhóm như một quy trình chuẩn.

Ví Dụ Thư Viện Prompt

Viết Unit Test

Viết unit test cho [file]. Dùng vitest. Bao gồm happy path, các trường hợp biên (input rỗng, null, kiểu không hợp lệ) và xử lý lỗi. Mock các phụ thuộc bên ngoài. Hướng tới >90% branch coverage.

Code Review

Xem xét các thay đổi trong git diff hiện tại. Kiểm tra: import không được dùng, thiếu xử lý lỗi, vấn đề type safety, race condition tiềm ẩn và các mâu thuẫn trong đặt tên. Đề xuất sửa chữa cho từng vấn đề được tìm thấy.

API Endpoint

Tạo REST endpoint cho [resource]. Bao gồm xác thực input với zod, các phản hồi lỗi phù hợp (400, 401, 404, 500), kiểu TypeScript cho request/response và comment JSDoc mô tả endpoint. Tuân theo pattern hiện có trong src/api/.

Các Mẫu Nâng Cao

Các kỹ thuật cho các tác vụ phức tạp vượt ra ngoài các prompt đơn lẻ.

Prompt Chaining

Chia một tác vụ lớn thành các bước được sắp xếp. Bắt đầu agent đầu tiên với bước một, chờ hoàn thành, sau đó bắt đầu agent tiếp theo với bước hai (tham chiếu output của bước một). Mỗi bước nhỏ hơn và tập trung hơn. Ví dụ: Agent 1 thiết kế schema cơ sở dữ liệu, Agent 2 viết API dùng schema đó, Agent 3 viết kiểm tra cho API.

Xét Duyệt Xuyên Agent

Sau khi một agent hoàn thành, hướng một agent khác vào output của nó. 'Xem xét các thay đổi mà agent frontend vừa thực hiện trong src/components/. Kiểm tra các vấn đề khả năng truy cập và các trạng thái lỗi bị thiếu.' Một agent mới với vai trò khác bắt được những thứ mà agent ban đầu bỏ lỡ.

Ràng Buộc Dần Dần

Bắt đầu với prompt rộng để xem agent tiếp cận vấn đề như thế nào. Sau đó thêm ràng buộc trong các tin nhắn tiếp theo: 'Cấu trúc tốt, nhưng dùng server component thay vì client component.' 'Giữ hook đó, nhưng xóa useEffect và dùng React Query mutation thay thế.' Mỗi lần lặp thu hẹp về phía giải pháp bạn muốn.

Triển Khai Tham Chiếu

Trỏ agent đến code hiện có: 'Xây dựng trang cài đặt theo cùng pattern như src/pages/profile.tsx. Cùng cấu trúc layout, cùng xử lý form, cùng hiển thị lỗi.' Điều này thường hiệu quả hơn việc mô tả pattern bằng lời.

Các Lỗi Thường Gặp

Các mẫu nhất quán tạo ra kết quả tệ hơn.

Quá Chi Tiết Về Triển Khai

Bảo agent chính xác hàm nào cần viết, biến nào cần đặt tên và thứ tự triển khai. Việc micromanagement này loại bỏ khả năng của agent trong việc tìm ra cách tiếp cận tốt hơn. Mô tả kết quả, không phải quy trình.

Không Có Ranh Giới Phạm Vi

Yêu cầu agent 'cải thiện codebase' mà không có ràng buộc. Không có ranh giới, agent có thể tái cấu trúc các file bạn không muốn chỉnh, thay đổi API mà code khác phụ thuộc vào, hoặc dùng token cho các cải tiến ưu tiên thấp.

Bỏ Qua Code Hiện Có

Không đề cập rằng một pattern, tiện ích hoặc component đã tồn tại trong dự án. Agent sẽ tạo cái mới. Một câu đơn giản 'chúng tôi đã có useAuth hook trong src/hooks/' tiết kiệm đáng kể công việc làm lại.

Mega-Prompt Phức Hợp

Nhồi nhét năm tác vụ vào một tin nhắn. Agent sẽ cố gắng thực hiện tất cả, nhưng chất lượng giảm khi nó phải cân bằng các mục tiêu cạnh tranh. Chia chúng thành các yêu cầu tuần tự, tập trung.

FAQ

Prompt coding nên dài bao nhiêu?+
Hầu hết các prompt coding hiệu quả dài 2 đến 5 câu. Đủ dài để chỉ định kết quả, phạm vi và các ràng buộc quan trọng. Đủ ngắn để agent không bị lạc trong chi tiết. Nếu prompt của bạn dài cả một đoạn văn, hãy xem xét liệu một phần ngữ cảnh đó có nên nằm trong CLAUDE.md hay prompt hệ thống không.
Tôi có nên viết prompt khác nhau cho Opus và Sonnet không?+
Hơi khác một chút. Opus xử lý sự mơ hồ tốt hơn và có thể suy luận ý định từ ít ngữ cảnh hơn. Sonnet hưởng lợi từ các hướng dẫn rõ ràng hơn và ranh giới phạm vi rõ ràng hơn. Với cả hai mô hình, sự cụ thể về kết quả mong đợi cải thiện kết quả.
AgentsRoom giúp ích cho prompt engineering như thế nào?+
Ba cách: prompt hệ thống theo vai trò tích hợp sẵn cho mỗi trong số 14 loại agent, thư viện prompt để lưu và tái sử dụng các prompt hiệu quả, và trình soạn thảo CLAUDE.md cho ngữ cảnh cấp dự án. Các lớp này có nghĩa là bạn dành ít thời gian hơn để soạn các tin nhắn riêng lẻ vì ngữ cảnh cơ bản đã tốt sẵn rồi.
Tôi có thể chia sẻ prompt với cả nhóm không?+
Có. AgentsRoom lưu prompt ở hai vị trí: prompt cấp dự án trong .agentsroom/prompts.json (được kiểm soát phiên bản, chia sẻ qua git) và prompt cá nhân trong prompts-personal.json (gitignored). Prompt toàn cầu đồng bộ qua cloud trên tất cả thiết bị của bạn.
Sự khác biệt giữa prompt hệ thống và CLAUDE.md là gì?+
CLAUDE.md là ngữ cảnh dự án mà mọi agent đọc tự động: stack, cấu trúc, quy ước. Prompt hệ thống là các hướng dẫn hành vi theo từng agent: vai trò, khu vực tập trung, ràng buộc. Chúng bổ sung cho nhau. CLAUDE.md nói 'dự án này dùng Next.js 16 với Prisma.' Prompt hệ thống nói 'bạn là backend developer tập trung vào các route API.'

Viết Prompt Tốt Hơn, Ra Mắt Code Tốt Hơn

AgentsRoom cung cấp cho bạn prompt hệ thống, thư viện prompt và chỉnh sửa CLAUDE.md được tích hợp sẵn. Ít thời gian soạn prompt hơn, nhiều thời gian xây dựng hơn.

Miễn phíTải xuống cho macOS

Ứng dụng đồng hành: theo dõi agent khi đi đường

Hoạt động với Claude, Codex, OpenCode, Gemini CLI và Aider

Tải tiện ích mở rộng
Chrome Web Store

Gửi lỗi và yêu cầu thẳng vào backlog công khai của bạn.

Nhiều dự án
Đa nhà cung cấp
Nhiều agent
Trạng thái trực tiếp
File diff & commit
Ứng dụng đồng hành mobile
Xem trước trực tiếp