Skip to content

Phần 3: Mẹo và Thủ thuật Sử dụng GitHub Copilot Hiệu Quả trong VSCode

Mẹo sử dụng Copilot hiệu quả trong VSCode

Viết prompt/comment rõ ràng

Khi muốn Copilot sinh code, hãy diễn đạt yêu cầu một cách cụ thể và dễ hiểu. Ví dụ, thay vì viết // TODO: function chung chung, hãy mô tả chi tiết như // Viết hàm kiểm tra số nguyên tố nhận vào một số và trả về true/false. Prompt càng rõ ràng, Copilot càng dễ hiểu mục tiêu và tạo ra gợi ý chính xác hơn. Bạn cũng nên bắt đầu bằng mô tả tổng quan, sau đó liệt kê các yêu cầu cụ thể hoặc điều kiện đầu vào/đầu ra để định hướng AI. Nếu có thể, cung cấp ví dụ minh họa (input/output mong muốn, mẫu code) để giảm mơ hồ trong gợi ý của Copilot.

Tận dụng Copilot cho code lặp và mẫu

Những đoạn code lặp đi lặp lại, mẫu (boilerplate) hoặc các hàm phổ biến là “sở trường” của Copilot. Copilot đặc biệt hữu ích trong việc viết code lặp, tạo hàm phổ biến, viết unit test và thậm chí cả tạo chú thích cho code. Thay vì tốn thời gian viết những phần khung nhàm chán, hãy để Copilot lo phần đó (ví dụ: khai báo getter/setter, cấu trúc CRUD cơ bản, code khởi tạo dự án). Bạn có thể tập trung năng lượng vào những phần logic quan trọng hơn.

Để Copilot viết test, comment, tài liệu

Đừng quên Copilot không chỉ gợi ý code thực thi, nó còn có thể giúp bạn viết unit test, tạo comment giải thích code, hoặc thậm chí sinh tài liệu hàm. Chẳng hạn, sau khi viết xong một hàm, bạn có thể yêu cầu Copilot Chat sinh ra các trường hợp test cho hàm đó. Đây là một cách lợi dụng AI để tăng độ phủ test và tài liệu cho dự án. Tương tự, nếu bạn viết tên hàm rõ nghĩa, Copilot có thể tự gợi ý nội dung comment mô tả chức năng của hàm đó.

Kết hợp code mẫu có sẵn với Copilot

Copilot hoạt động hiệu quả nhất khi có ngữ cảnh phù hợp. Nếu bạn đã có sẵn một phần code hoặc mẫu thiết kế, hãy cung cấp nó cho Copilot (bằng cách mở file liên quan hoặc viết comment chú thích trong code). AI sẽ dựa trên ngữ cảnh này để đề xuất đoạn code phù hợp phong cách và kiến trúc bạn đang dùng.

Ví dụ, nếu dự án bạn dùng một model User tùy chỉnh thay vì mặc định, nhưng Copilot chưa “biết” điều đó, bạn có thể thêm một dòng comment như // Sử dụng custom User model trước khi gọi Copilot. Chỉ với vài chú thích bổ sung, Copilot đã hiểu và sửa gợi ý cho đúng class cần dùng thay vì class mặc định. Luôn đảm bảo các file liên quan được mở và tắt bớt các file không liên quan, để Copilot tập trung vào context quan trọng của bạn.

Sử dụng phím tắt để tăng tốc workflow

Thành thạo các phím tắt sẽ giúp bạn làm chủ Copilot trong VSCode hiệu quả hơn. Một số phím tắt hữu ích bao gồm: * Tab: Để chấp nhận gợi ý đang hiện. * Esc: Để bỏ qua gợi ý. * Alt + ] / Alt + [: Để duyệt qua các gợi ý kế tiếp hoặc quay lại gợi ý trước đó. * Ctrl + Enter: Để mở panel xem nhiều gợi ý một lúc (Copilot sẽ hiển thị một danh sách các phương án code khác nhau). * Ctrl+Alt+I: Để mở cửa sổ Copilot Chat nhanh trong VSCode (hoặc phím tắt tương ứng trên Mac).

Nắm vững các phím tắt này giúp việc tương tác với Copilot trôi chảy và tiết kiệm thời gian hơn.

Mẹo dùng Copilot Chat hiệu quả

Khi sử dụng Chat, hãy nhớ một số kỹ thuật để có kết quả tốt nhất. * Trước hết, chia nhỏ tác vụ phức tạp thành các câu hỏi hoặc bước nhỏ hơn thay vì yêu cầu mọi thứ trong một lần. Cách tiếp cận từng bước giúp Copilot tập trung và trả lời chính xác hơn, tránh bị “ngộp” bởi yêu cầu quá lớn. * Tiếp theo, bạn có thể đặt vai trò cho AI để định hướng văn phong và nội dung trả lời – ví dụ: yêu cầu Copilot “đóng vai một Senior Developer giàu kinh nghiệm về hiệu năng” rồi đặt câu hỏi, bạn sẽ nhận câu trả lời chi tiết chú trọng vào hiệu suất hơn. Việc gán “nhân cách” hoặc bối cảnh như vậy (như chuyên gia bảo mật, tester, v.v.) có thể khiến câu trả lời phù hợp với góc nhìn bạn muốn. * Cuối cùng, luôn viết câu hỏi rõ ràng, tránh các từ mơ hồ. Nếu Copilot trả lời chưa đúng ý, đừng ngại diễn đạt lại câu hỏi hoặc thêm thông tin, hoặc bắt đầu một phiên chat mới để ngữ cảnh được làm mới.


Kinh nghiệm thực tế khi sử dụng Copilot

Không “mù quáng” tin mọi gợi ý

Copilot tuy mạnh mẽ nhưng không phải lúc nào cũng đúng hoàn toàn. Kinh nghiệm là luôn xem xét và hiểu code do AI gợi ý trước khi chấp nhận. Đối với những đoạn code đơn giản hoặc quen thuộc, bạn có thể tin tưởng mức độ vừa phải để tiết kiệm thời gian. Nhưng với phần logic quan trọng hoặc code tác động lớn, hãy kiểm tra cẩn thận như khi review code của đồng nghiệp.

Đảm bảo bạn hiểu rõ gợi ý – bạn có thể nhờ Copilot Chat giải thích đoạn code vừa đề xuất để chắc chắn nó làm đúng điều bạn cần. Ngoài ra, xem xét các khía cạnh bảo mậthiệu năng: Copilot đôi khi có thể đề xuất cách làm chưa tối ưu hoặc tiềm ẩn rủi ro bảo mật, nên trách nhiệm của bạn là đánh giá và điều chỉnh lại cho phù hợp. Nói ngắn gọn, hãy coi Copilot như một trợ lý gợi ý, bạn vẫn là người quyết định cuối cùng.

Tận dụng Copilot làm “người hướng dẫn” khi học cái mới

Khi tiếp cận một framework hay thư viện mới, Copilot có thể đóng vai trò như một mentor hỗ trợ bạn. Thay vì mò mẫm hoàn toàn tài liệu, bạn có thể hỏi Copilot Chat những câu như “Cách thiết lập routing trong Next.js?” hoặc “Ví dụ về dùng Axios gọi API”. Copilot sẽ cố gắng trả lời bằng cách cung cấp giải thích hoặc code mẫu cho bạn. Thậm chí, bạn có thể yêu cầu nó tạo một đoạn code khung sử dụng công nghệ mới để tham khảo.

Tất nhiên, bạn cần đối chiếu lại với tài liệu chính thống, nhưng Copilot sẽ giúp bạn hình dung nhanh hướng tiếp cận và các thành phần chính của công nghệ mới. Nhiều kỹ sư Sun* chia sẻ rằng họ cảm giác như có một người hướng dẫn ngồi cạnh, sẵn sàng trả lời khi họ “mắc kẹt” với kỹ thuật mới.

Hiểu nhanh code cũ hoặc dự án lạ

Khi phải làm việc với codebase cũ hoặc một module lạ, Copilot có thể giúp bạn tiết kiệm thời gian đọc hiểu. Thay vì đọc từng dòng, bạn có thể chọn một đoạn code phức tạp và yêu cầu Copilot Chat giải thích: “Đoạn code trên thực hiện nhiệm vụ gì?” hoặc “Hàm này hoạt động ra sao?”. Copilot sẽ tóm tắt chức năng của code thành ngôn ngữ tự nhiên, giúp bạn nắm bắt ý chính nhanh hơn.

Dĩ nhiên, Copilot không thể hiểu 100% ngữ cảnh dự án như người lập trình thực thụ, nhưng nó đủ khả năng điểm qua những ý chính và luồng xử lý của đoạn code. Điều này đặc biệt hữu ích khi bạn mới tham gia dự án và cần onboard nhanh vào cơ sở mã nguồn lớn.

Pair Programming cùng Copilot

Hãy thử tương tác với Copilot như một đồng đội pair programming. Thay vì chỉ chờ gợi ý một chiều, bạn có thể chủ động đối thoại qua lại với AI. Ví dụ, bạn viết mô tả chức năng dưới dạng comment, Copilot đề xuất code, bạn chỉnh sửa và lại hỏi tiếp để cải thiện – quy trình giống hệt như bạn và đồng nghiệp cùng nhau thảo luận giải pháp.

Cách tiếp cận này vừa giúp giữ cho bạn sự chủ động (bạn định hướng cho Copilot thông qua comment và lựa chọn gợi ý), vừa tận dụng được sự gợi ý nhanh của AI. Nhiều lập trình viên nhận thấy khi coi Copilot là một “bạn đôi” lập trình, họ thoải mái thử nghiệm ý tưởng hơn: AI đưa ra phác thảo, con người đánh giá và hoàn thiện. Hãy nhớ lời khuyên: Copilot là “AI pair programmer” của bạn, không phải người thay thế bạn. Cùng nhau thử nghiệm, chỉnh sửa và hoàn thiện, bạn sẽ đạt kết quả tốt nhất.

Tùy biến Copilot cho phong cách của team

Mỗi team có quy tắc code và phong cách riêng (ví dụ: convention đặt tên, format, thư viện ưa dùng...). Một kinh nghiệm hay là sử dụng Custom Instructions của Copilot để “huấn luyện” AI tuân theo phong cách đó. Bạn có thể tạo một file hướng dẫn tùy chỉnh – chẳng hạn .github/copilot-instructions.md – ngay trong repository của dự án, mô tả các quy tắc coding guide chính của team bạn (coding style, naming convention, frameworks, v.v.).

Copilot sau đó sẽ tự động đọc các hướng dẫn này trong mọi lần chat và sinh code phù hợp hơn với chuẩn dự án. Lưu ý tính năng này hiện chủ yếu áp dụng cho Copilot Chat và các lần generate code theo yêu cầu, không áp dụng cho gợi ý inline tự động. Tuy việc thêm hướng dẫn tùy chỉnh đòi hỏi chút công sức ban đầu, nhưng về lâu dài nó giúp đảm bảo code do Copilot gợi ý ra gần với phong cách mong muốn của team, giảm thời gian chỉnh sửa về sau.

Bạn có thể tìm hiểu thêm về Custom Instruction tại một section riêng trong tài liệu này.

Tái sử dụng prompt với Prompt files

Với những tác vụ lặp lại, thì bạn có thể đóng gói các prompt hay dùng thành file để gọi lại nhanh bằng lệnh gọn /ten-prompt ngay trong Copilot Chat. VS Code hỗ trợ Prompt files dưới dạng Markdown, lưu trong thư mục .github/prompts của workspace, hoặc trong profile người dùng, giúp bạn và cả team tái sử dụng các tác vụ thường gặp như scaffold component, sinh test, review bảo mật… mà không phải gõ lại toàn bộ prompt từ đầu.

Để sử dụng Prompt files, bạn chỉ cần tạo một file Markdown trong thư mục .github/prompts, theo format là <ten>.prompt.md. Sau đó, khi cần sử dụng, bạn chỉ cần gõ /ten-prompt trong Copilot Chat là được.

Chú ý, nên đặt tên file ngắn, mang rõ ý nghĩa, ví dụ như scaffold-tests, refactor-large-fn, gen-rest-endpoint. Đồng thời, bạn nên để Prompt file mô tả nhiệm vụ và để instructions (.github/copilot-instructions.md / *.instructions.md) mô tả chuẩn thực thi (style, security checklist…). Prompt có thể tham chiếu instruction để tránh lặp lại.

Dưới đây là vi dụ về một Prompt file đơn giản:

---
mode: 'ask'
model: Claude Sonnet 4
description: 'Perform a REST API security review'
---
Perform a REST API security review and provide a TODO list of security issues to address.

* Ensure all endpoints are protected by authentication and authorization
* Validate all user inputs and sanitize data
* Implement rate limiting and throttling
* Implement logging and monitoring for security events

Return the TODO list in a Markdown format, grouped by priority and issue type.

Một tệp kiểu này thường gồm hai phần chính:

1) (Tùy chọn) Phần header chứa metadata (Front Matter)

Dùng cú pháp front matter (YAML) ở đầu tệp để khai báo siêu dữ liệu cho prompt:

  • mode: Chế độ chat khi chạy prompt. Hỗ trợ:

    • ask – hỏi/đáp một lượt
    • edit – chỉnh sửa nội dung đang chọn
    • agent – (mặc định) cho phép agent tự lên kế hoạch, dùng tool
  • model: Tên mô hình AI sẽ dùng khi chạy prompt. Nếu không chỉ định, hệ thống sẽ dùng mô hình hiện được chọn trong model picker.

  • tools: Mảng tên tool (hoặc bộ tool) cho biết những tool nào được phép dùng trong agent mode. Bạn có thể dùng Configure Tools để chọn từ danh sách tool sẵn có trong workspace. Nếu một tool/bộ tool không khả dụng tại thời điểm chạy prompt, nó sẽ bị bỏ qua.

  • description: Mô tả ngắn, giúp nhận diện nhanh tác dụng của prompt.

2) Phần body – nội dung prompt

Đây là nơi bạn viết nội dung yêu cầu (prompt) giống như khi gõ trong cửa sổ chat. Nhờ vậy, bạn có thể:

  • Kết hợp chỉ dẫn ngôn ngữ tự nhiên với context bổ sung (mô tả dự án, quy ước code, ràng buộc…).
  • Tham chiếu đến các file khác trong workspace, các instruction file hoặc prompt file khác bằng cách dùng liên kết Markdown. Hãy dùng đường dẫn tương đối để tham chiếu các tệp này và bảo đảm rằng đường dẫn chính xác theo vị trí của prompt file hiện tại.
  • Tận dụng đầy đủ định dạng Markdown để tổ chức nội dung: tiêu đề, danh sách, bảng, code block… để giúp prompt rõ ràng, có cấu trúc và dễ bảo trì.

Sử dụng các MCP để gia tăng sức mạnh cho Agent Mode

MCP (Model Context Protocol) cho phép bạn mở rộng khả năng của các mô hình LLM trong Copilot, giúp chúng có thể chủ động lấy về những context cần thiết để xử lý tác vụ, cũng như có khả năng tương tác với các công cụ bên ngoài, từ đó mở ra những khả năng mới cho Agent Mode, giúp nó có thể thực hiện những tác vụ phức tạp hơn, cũng như tự động hóa được nhiều công việc hơn.

Bạn có thể tìm hiểu thêm về MCP và cách sử dụng chúng trong Copilot tại một section riêng trong tài liệu này.

Linh hoạt chuyển đổi giữa các mô hình LLM cho từng tác vụ

Copilot hỗ trợ nhiều mô hình LLM khác nhau, mỗi mô hình có ưu điểm riêng, và có thể đưa ra những kết quả khác nhau cho từng tác vụ. Bạn có thể linh hoạt chuyển đổi giữa các mô hình này để tận dụng thế mạnh của từng loại. Hãy cố gắng tận dụng triệt để số lượng premium requests mà mình được cấp trong tháng.


Những vẫn đề thường gặp và cách khắc phục

Gợi ý sai hoặc thiếu ngữ cảnh

Đôi khi Copilot đưa ra gợi ý không đúng ý hoặc sai hoàn toàn do thiếu ngữ cảnh hoặc prompt của bạn chưa đủ rõ. Ví dụ: bạn yêu cầu viết hàm xử lý nhưng Copilot lại đi lệch hướng, hoặc dùng sai thư viện vì không biết bạn muốn dùng library nào.

Để khắc phục, hãy thử chia nhỏ vấn đề thành các phần đơn giản hơn và yêu cầu từng bước một thay vì một lần giải quyết toàn bộ. Việc này giúp Copilot hiểu rõ từng phần và giảm nguy cơ nhầm lẫn. Bạn cũng nên cung cấp thêm thông tin trong prompt/comment: nêu rõ ràng tên hàm, tham số, định dạng đầu ra mong muốn, hoặc công nghệ bạn muốn sử dụng. Nếu gợi ý của Copilot sai, hãy viết lại hướng dẫn cụ thể hơn rồi đợi gợi ý mới – thường chỉ cần điều chỉnh câu từ một chút là AI sẽ cho kết quả khác hẳn.

Ngoài ra, đảm bảo rằng bạn đã mở những file liên quan và đóng những file không liên quan trong workspace, vì Copilot sẽ dựa vào các file đang mở để hiểu bối cảnh – thiếu ngữ cảnh có thể dẫn đến gợi ý không chính xác.

Gợi ý không đồng nhất (thiếu nhất quán)

Bạn có thể gặp trường hợp Copilot gợi ý code không nhất quán: ví dụ đặt tên biến lúc thì userList lúc lại thành users, hoặc phong cách code chỗ camelCase, chỗ snake_case. Nguyên nhân là do Copilot dựa trên ngữ cảnh và dữ liệu huấn luyện, nên nếu ngữ cảnh không rõ ràng hoặc thiếu thống nhất, gợi ý sẽ dễ “loạn”.

Để hạn chế, bạn nên duy trì nhất quán trong prompt và code hiện có: hãy sử dụng cùng một cách đặt tên biến, kiểu định dạng trong toàn bộ file để AI học theo. Nếu cần, hãy viết sẵn các khai báo biến/ hàm với tên bạn muốn dùng trước, rồi gọi Copilot để nó tiếp tục với những tên đó thay vì tự nghĩ tên mới. Một mẹo nữa là cung cấp ví dụ về phong cách code mong muốn (có thể dưới dạng comment mẫu hoặc đoạn code bạn viết thủ công) để “ràng buộc” AI.

Trong trường hợp Copilot hiểu sai ngữ cảnh (vd. dùng nhầm class hoặc API), hãy giải thích thêm cho nó biết. Chẳng hạn, dự án dùng CustomUser thay cho User nhưng Copilot cứ dùng mặc định? Bạn chỉ cần thêm comment // Sử dụng CustomUser model trước khi generate, Copilot sẽ điều chỉnh lại cho đúng. Nói chung, càng nhất quán và rõ ràng trong ngữ cảnh bạn cung cấp, gợi ý của Copilot càng thống nhất và đúng ý.

Lỗi vượt quá Context Length

Khi sử dụng Copilot Chat, đôi khi bạn có thể gặp lỗi dạng context_length_exceeded. Thông báo thường cho biết bạn đã vượt quá độ dài ngữ cảnh cho phép của mô hình. Thực tế phần lớn các mô hình LLM có khả năng xử lý ngữ cảnh rất lớn (lên đến cả trăm nghìn Token - tương đương hàng trăm trang văn bản), nhưng nếu bạn đưa vào một lượng thông tin vượt quá giới hạn đó thì mô hình sẽ từ chối xử lý. Ví dụ, nếu bạn mở cả một file rất dài hoặc paste nguyên cả log đồ sộ vào Chat một lúc, Copilot có thể báo lỗi này.

Ngoài ra, có thể Copilot không trực tiếp trả ra lỗi, mà sẽ tự ý cắt ngắn context của bạn, dẫn đến gợi ý không đầy đủ hoặc không chính xác. (Đây chỉ là một giả thuyết được nhiều người đưa ra, dựa trên đánh giá về chất lượng của mô hình LLM do GitHub cung cấp thua xa so với các mô hình tương ứng của OpenAI/Anthropic/Google trực tiếp cung cấp, chứ phía GitHub cũng không công bố chính thức về cách họ xử lý context quá dài, hay giới hạn context cho từng mô hình cụ thể)

Cách khắc phục là chia nhỏ nội dung đầu vào: hãy gửi từng phần của file cho Copilot thay vì toàn bộ một lúc, hoặc yêu cầu theo từng bước (ví dụ: "đọc và giải thích hàm A", sau đó tiếp "bây giờ hàm B"). Nếu bạn có một lệnh chat dài, hãy tách thành nhiều câu hỏi nhỏ. Ngoài ra, có thể đóng bớt các tab file không cần thiết trong VSCode, vì Copilot cũng lấy nội dung từ các file đang mở làm ngữ cảnh. Hiểu giới hạn của mô hình để điều chỉnh lượng thông tin truyền vào sẽ giúp bạn tránh được lỗi này. Khi thấy lỗi context_length_exceeded, hoặc output của Copilot trả ra chất lượng quá tệ trong một cửa sổ chat rất dài, hãy nhớ: “À, mình đang đưa vào quá nhiều dữ liệu”, và thử xử lý bằng cách cắt giảm hoặc tóm tắt lại nội dung trước khi hỏi tiếp.