1. Giới thiệu

GitHub Copilot đã nhanh chóng trở thành một trong những extension hỗ trợ lập trình mạnh mẽ nhất hiện nay nhờ khả năng gợi ý code dựa trên các model AI hàng đầu hiện nay như Claude. Không chỉ giúp tăng tốc quá trình coding qua code suggestion, Copilot còn hỗ trợ lập trình viên trong việc catch up source code cũng như tạo test và thực hiện test. Để tăng cường độ chính xác và khả năng tùy biến của Copilot trong các ngữ cảnh (context) cụ thể, gần đây GitHub đã giới thiệu một tính năng mới có tên gọi là "prompt files".

Trong bài viết này, chúng ta sẽ cùng khám phá cách sử dụng prompt files trong Visual Studio Code, và lý do tại sao tính năng này lại là một bổ sung đáng giá cho bộ công cụ của mọi lập trình viên.

2. Prompt Files là gì?

Prompt files là một tính năng mới của GitHub Copilot cho phép lập trình viên cung cấp context chi tiết và có cấu trúc hơn cho Copilot, từ đó tạo ra các gợi ý phù hợp hơn với yêu cầu cụ thể của từng dự án. Điều này đặc biệt hữu ích trong các dự án lớn, nơi các đoạn mã cần phải tuân theo quy chuẩn hoặc phong cách lập trình riêng. Đây là một bước tiến quan trọng giúp đưa AI trở thành một phần thiết yếu và hiệu quả trong quy trình phát triển phần mềm hàng ngày, không chỉ dừng lại ở việc hỗ trợ từng dòng mã đơn lẻ mà còn hiểu được toàn cảnh dự án.

Lợi ích của việc sử dụng prompt files rất rõ ràng: chúng giúp tăng tính nhất quán trong gợi ý mã, cải thiện độ chính xác trong các tác vụ cụ thể như viết test case, tài liệu hoá hàm hoặc tự động hóa các phần cấu trúc lặp lại trong dự án. Ngoài ra, chúng cũng giảm thiểu khả năng AI hiểu sai mục đích của lập trình viên, đặc biệt trong những dự án lớn hoặc có tính chất đặc thù cao.

So với inline prompt (những comment hoặc câu lệnh ngắn gọn ngay trong file mã), prompt file mang lại sự linh hoạt và có tổ chức hơn. Inline prompt chỉ thích hợp cho các tình huống đơn giản, còn prompt file phù hợp hơn với các tác vụ phức tạp, đòi hỏi nhiều context và hướng dẫn chi tiết.

3. Cách sử dụng Prompt Files trong VS Code

Cách tạo và cấu hình prompt file

Để tạo một prompt file trong VS Code, bạn chỉ cần tạo một tệp văn bản mới với phần mở rộng .txt hoặc .md và lưu trong thư mục bạn đang làm việc. Sau đó, trong phần cấu hình GitHub Copilot Labs, bạn có thể chỉ định đường dẫn đến prompt file để Copilot sử dụng làm context bổ sung. Copilot sẽ ưu tiên nội dung trong prompt file này khi tạo gợi ý mã. Việc chọn prompt có thể thực hiện bằng phím tắt Ctrl  + Shift + P, sau đó search prompt như hình dưới đây

Demo một ví dụ prompt file đơn giản

Ví dụ, bạn có thể tạo một file tên unit-test-prompt.md với nội dung như sau:

# Context: Viết unit test cho hàm JavaScript
- Sử dụng Jest framework
- Tuân theo chuẩn AAA (Arrange - Act - Assert)
- Ưu tiên các test case đơn giản, dễ đọc

Sau khi cấu hình Copilot để sử dụng file này, bạn có thể mở file chứa một hàm bất kỳ và Copilot sẽ gợi ý các test case tương ứng theo đúng cấu trúc bạn đã định nghĩa trong prompt file.

Hướng dẫn tạo cấu trúc prompt file hiệu quả

Để viết prompt file hiệu quả, bạn nên chia rõ các phần:

  1. Mục tiêu chính: Giải thích rõ bạn muốn Copilot làm gì (VD: "Viết test case cho class X").
  2. Coding convention: Nếu dự án của bạn có coding convention, hãy nêu rõ để đảm bảo tính nhất quán.  Phần này cũng có thể được import từ instruction file bởi vì các quy chuẩn như coding convention hay project structure là quy chuẩn chung của toàn bộ dự án.
  3. Ràng buộc kỹ thuật: Chỉ rõ các công cụ, framework, hoặc mẫu thiết kế bạn muốn sử dụng.
  4. Ví dụ hoặc template: Nếu có thể, hãy thêm mẫu hoặc đoạn mã mẫu để Copilot hiểu rõ hơn về kỳ vọng của bạn.
  5. Sử dụng kết hợp với instruction file: Ngoài prompt file, Copilot còn hỗ trợ một tệp đặc biệt tên là .copilot/instructions.md nơi bạn có thể định nghĩa hành vi tổng quát của Copilot trong dự án. File này thường bao gồm hướng dẫn mang tính toàn cục, ví dụ như "luôn viết mã bằng TypeScript" hoặc "ưu tiên sử dụng async/await thay vì callback". Khi kết hợp instruction file với prompt file theo use case cụ thể, bạn có thể điều chỉnh được cả định hướng tổng thể lẫn chi tiết cho Copilot.

Càng cụ thể, prompt file càng hiệu quả. Đây là cách đơn giản để "huấn luyện nhẹ" Copilot mà không cần can thiệp vào logic bên trong của mô hình AI.

4. Trường hợp sử dụng phổ biến

  • Bổ sung thêm data hoặc mở rộng module đã có: Prompt file có thể hướng dẫn Copilot cách bổ sung dữ liệu vào một module hiện có, ví dụ như thêm route mới vào controller, thêm field vào schema, hoặc mở rộng enum/type. Với context rõ ràng, Copilot có thể thực hiện các cập nhật chính xác, phù hợp với cấu trúc hiện tại của module.
  • Viết unit test tự động: Prompt files có thể định nghĩa các nguyên tắc viết unit test như framework sử dụng (ví dụ: Jest, Mocha), phong cách test (AAA - Arrange, Act, Assert), cũng như cấu trúc mong muốn. Điều này giúp Copilot tạo ra các test case nhất quán, dễ đọc và dễ bảo trì.
  • Tổng hợp file API contract: Trong các dự án backend hoặc full-stack, prompt file có thể chứa các mô tả chuẩn hóa về định dạng dữ liệu, cấu trúc response hoặc quy ước REST/GraphQL. Từ đó, Copilot có thể giúp tạo nhanh các file Swagger/OpenAPI, schema validation hoặc phần mô tả endpoint.
  • Hỗ trợ refactoring hoặc documentation: Prompt file có thể được sử dụng để hướng dẫn Copilot cách viết comment theo chuẩn JSDoc, tạo tài liệu cho các hàm/phương thức, hoặc tái cấu trúc đoạn mã theo một mẫu kiến trúc cụ thể (chẳng hạn từ hàm sang class, hoặc chia tách logic). Điều này cực kỳ hữu ích trong các giai đoạn bảo trì hoặc nâng cấp mã nguồn.

5. Mẹo và kinh nghiệm

  • Cách viết prompt file rõ ràng, dễ duy trì: Luôn bắt đầu prompt file với phần mô tả ngắn gọn về mục đích của file. Sử dụng tiêu đề rõ ràng cho từng phần, tránh ghi quá dài dòng. Nếu có thể, hãy áp dụng cấu trúc bullet point hoặc định dạng markdown để tăng khả năng đọc hiểu. Đồng thời, lưu trữ các prompt file trong một thư mục riêng biệt để dễ quản lý và đồng bộ với Git.
  • Quản lý nhiều prompt files cho nhiều use case: Trong các dự án lớn, bạn nên tách các prompt file theo chức năng hoặc nhóm công việc (ví dụ: unit-test-prompt.md, api-design-prompt.txt, doc-comment-prompt.md). Có thể viết một tệp README tổng hợp hướng dẫn sử dụng từng prompt file. Điều này giúp nhóm lập trình viên khác trong dự án dễ dàng tiếp cận và tái sử dụng chúng.

6. Giới hạn và những điều cần lưu ý

  • Khả năng hiểu sai ngữ của Copilot: Mặc dù prompt file giúp Copilot hiểu rõ hơn mục tiêu của bạn, vẫn có khả năng AI diễn giải sai nếu mô tả không rõ ràng, mâu thuẫn hoặc quá ngắn gọn. Do đó, bạn cần kiểm tra kỹ gợi ý do Copilot sinh ra trước khi áp dụng vào mã nguồn thực tế.
  • Bài toán về security khi prompt file có chứa dữ liệu nhạy cảm: Tuyệt đối không nên đưa thông tin mật như API key, token, mật khẩu, hoặc dữ liệu cá nhân vào prompt file. Những file này có thể bị lộ nếu được commit vào repo công khai. Tốt nhất là tách biệt phần dữ liệu nhạy cảm ra khỏi prompt file, hoặc sử dụng placeholder an toàn để thay thế.
  • Lựa chọn model phù hợp khi dùng prompt file: Theo kinh nghiệm cá nhân, việc sử dụng các model Claude mới nhất (ví dụ Claude 4) cho prompt file thường đem lại hiệu quả cao hơn, đặc biệt khi áp dụng trong các dự án lớn, phức tạp. Claude thể hiện khả năng giữ ngữ cảnh rộng và hiểu logic đa tầng rất tốt, giúp cải thiện chất lượng gợi ý trong các bài toán thực tế hơn so với một số model khác.

7. Kết luận

  • Tóm tắt lợi ích và tiềm năng: Prompt file là công cụ mạnh mẽ giúp tùy biến trải nghiệm lập trình với Copilot. Chúng nâng cao độ chính xác, sự nhất quán, và khả năng tái sử dụng trong quá trình phát triển phần mềm.
  • Khuyến khích trải nghiệm thực tế: Để tận dụng tối đa tính năng này, hãy bắt đầu từ một prompt file đơn giản phù hợp với dự án hiện tại của bạn. Thử nghiệm, tinh chỉnh và chia sẻ kinh nghiệm trong nhóm của bạn để cùng nhau phát triển workflow tối ưu với Copilot.

8. Tài liệu tham khảo