Tạo tác nhân GitHub Copilot tùy chỉnh trong Visual Studio Code
Tổng đài viên tùy chỉnh là trợ lý AI chuyên biệt mà bạn đặt cấu hình cho các vai trò hoặc quy trình làm việc cụ thể trong Visual Studio Code. Mỗi tác nhân đóng gói một tập hợp các hướng dẫn và quyền công cụ để điều khiển hành vi của GitHub Copilot hoạt động như một loại chuyên gia cụ thể. Khi bạn chọn một tổng đài viên tùy chỉnh trong GitHub Copilot Chat, AI sẽ áp dụng tính cách của tổng đài viên đó, tuân theo nguyên tắc của tổng đài viên đó và chỉ sử dụng các công cụ bạn đã chỉ định cho tổng đài viên đó.
Tác nhân GitHub Copilot tùy chỉnh là gì?
Tác nhân tùy chỉnh là một cấu hình phù hợp để chuyển đổi GitHub Copilot Chat thành một trợ lý theo vai trò cụ thể. Thay vì dựa vào hành vi có mục đích chung, tác nhân tùy chỉnh hoạt động theo hướng dẫn và ràng buộc mà bạn xác định. Ví dụ: bạn có thể tạo tác nhân "Security Reviewer" phân tích mã để tìm lỗ hổng, tác nhân "Test Writer" tập trung vào việc tạo kiểm thử đơn vị hoặc tác nhân "Planner" tạo kế hoạch triển khai mà không sửa đổi bất kỳ tệp nào.
Tác nhân tùy chỉnh được giới thiệu như một tính năng nâng cao trong Visual Studio Code (có sẵn kể từ bản phát hành Visual Studio Code 1.106, trước đây được gọi là "chế độ trò chuyện tùy chỉnh"). Chúng cung cấp cho các nhà phát triển quyền kiểm soát chi tiết về cách AI hoạt động trong các bối cảnh phát triển khác nhau. Mỗi nhân viên xuất hiện trong danh sách thả xuống GitHub Copilot Chat agents, nơi bạn có thể chọn nó để chuyển đổi chế độ của AI bất kỳ lúc nào.
Nhân viên tùy chỉnh có thể được lưu trữ ở hai vị trí:
Tác nhân không gian làm việc: Được lưu trữ trong
.github/agents/thư mục của kho lưu trữ của bạn. Các nhân viên này được chia sẻ với nhóm của bạn thông qua kiểm soát phiên bản, đảm bảo mọi người trong dự án đều có quyền truy cập vào cùng một trợ lý chuyên biệt.Tác nhân hồ sơ người dùng: Được lưu trữ trong thư mục lời nhắc của hồ sơ người dùng Visual Studio Code của bạn. Các nhân viên này mang tính cá nhân và có sẵn trên tất cả các không gian làm việc của bạn, hữu ích cho các nhân viên phản ánh sở thích quy trình làm việc cá nhân của bạn.
Kiểm tra cách hoạt động của nhân viên tùy chỉnh
Tác nhân tùy chỉnh là tệp Markdown có .agent.md phần mở rộng. Visual Studio Code tự động phát hiện bất kỳ tệp nào .agent.md trong thư mục không .github/agents/ gian làm việc của bạn (hoặc trong hồ sơ người dùng của bạn) và tải chúng dưới dạng tác nhân có sẵn trong giao diện GitHub Copilot Chat.
Mỗi tệp tổng đài viên bao gồm hai phần:
Tiêu đề YAML frontmatter: Phần này chỉ định siêu dữ liệu bao gồm tên của tổng đài viên, mô tả xuất hiện trong giao diện trò chuyện, các công cụ mà tổng đài viên có thể sử dụng, tùy chọn mô hình tùy chọn và cấu hình chuyển giao để kết nối với các tổng đài viên khác.
Nội dung Markdown: Phần này chứa các hướng dẫn và ngữ cảnh của tổng đài viên. Nội dung được thêm vào trước mọi lời nhắc của người dùng bất cứ khi nào tác nhân hoạt động, hướng dẫn cách GitHub Copilot diễn giải và phản hồi các yêu cầu. Bạn viết các hướng dẫn này bằng cùng một kiểu ngôn ngữ tự nhiên được sử dụng cho các tệp hướng dẫn tùy chỉnh.
Các trường frontmatter của tổng đài viên
YAML frontmatter hỗ trợ các trường sau để định cấu hình hành vi của tổng đài viên:
| Trường | Description |
|---|---|
description |
Mô tả ngắn được hiển thị dưới dạng văn bản giữ chỗ trong đầu vào trò chuyện khi tổng đài viên được chọn. |
name |
Tên hiển thị tùy chọn. Nếu bỏ qua, tên tệp (không có .agent.md) sẽ được sử dụng. |
tools |
Một loạt các công cụ mà tác nhân có thể sử dụng, chẳng hạn như ['read', 'edit', 'search']. Bỏ qua trường này sẽ cho phép truy cập vào tất cả các công cụ có sẵn. |
model |
Một mô hình AI ưa thích. Có thể là một chuỗi ID mô hình hoặc một mảng ID mô hình để dự phòng (ví dụ: ['o4-mini', 'gpt-4.1']). |
agents |
Một mảng tên tổng đài viên có thể được gọi làm tác nhân phụ bởi tác nhân này. |
handoffs |
Một mảng cấu hình chuyển giao xác định quá trình chuyển đổi sang các tác nhân khác (được đề cập trong bài tiếp theo). |
argument-hint |
Văn bản gợi ý được hiển thị trong đầu vào trò chuyện, mô tả những gì người dùng nên nhập làm đầu vào cho tổng đài viên. |
user-invokable |
Một boolean kiểm soát xem tổng đài viên có xuất hiện trong danh sách thả xuống tổng đài viên hay không. Đặt thành false để tạo tổng đài viên chỉ có thể được gọi làm tổng đài viên phụ bởi các tổng đài viên khác. Mặc định là true. |
disable-model-invocation |
Khi được đặt thành true, tổng đài viên không gửi lời nhắc đến mô hình ngôn ngữ. Hữu ích cho các tổng đài viên chỉ thực hiện các hành động thông qua các công cụ. |
target |
Chỉ định môi trường thực thi cho tác nhân: client (chạy trong Visual Studio Code, mặc định) hoặc cloud (chạy trên đám mây). |
mcp-servers |
Một đối tượng xác định máy chủ MCP (Giao thức ngữ cảnh mô hình) mà tác nhân nên có quyền truy cập. Máy chủ MCP mở rộng khả năng của tác nhân bằng cách kết nối với các công cụ và nguồn dữ liệu bên ngoài. |
Ví dụ sau đây cho thấy cấu trúc của tệp tác nhân tùy chỉnh bằng cách sử dụng một số trường sau:
---
description: Reviews code for security vulnerabilities and suggests improvements
tools: ['search', 'read']
---
# Security Reviewer
You are a senior security engineer. When the user provides code or asks you to review files, analyze the code for common security vulnerabilities including:
- SQL injection
- Cross-site scripting (XSS)
- Authentication and authorization flaws
- Insecure data handling
- Hardcoded credentials or secrets
Provide your findings as a structured list with severity levels (Critical, High, Medium, Low). For each finding, explain the vulnerability, show the affected code, and suggest a secure alternative.
Do not modify any files. Your role is advisory only.
Khi nhà phát triển chọn tác nhân này trong GitHub Copilot Chat, tất cả các tương tác đều sử dụng các hướng dẫn này. Tác nhân "biết" nó nên tập trung vào phân tích bảo mật và sẽ không cố gắng chỉnh sửa tệp vì các hướng dẫn và bộ công cụ của nó hạn chế nó trong các hoạt động chỉ đọc.
Xác định khả năng của tổng đài viên bằng các công cụ
tools Trường trong YAML frontmatter kiểm soát những hành động mà tổng đài viên có thể thực hiện. Các công cụ xác định xem tác nhân có thể đọc tệp, chỉnh sửa mã, tìm kiếm cơ sở mã, chạy lệnh đầu cuối hoặc truy cập các khả năng khác hay không. Bằng cách điều chỉnh danh sách công cụ, bạn đảm bảo mỗi tổng đài viên chỉ thực hiện các hành động liên quan đến vai trò của mình.
Các công cụ phổ biến bao gồm:
| Công cụ | Description |
|---|---|
read |
Đọc nội dung tệp từ không gian làm việc |
edit |
Sửa đổi tệp trong không gian làm việc |
search |
Tìm kiếm trên các tệp không gian làm việc |
fetch |
Truy xuất nội dung từ URL |
terminal |
Chạy lệnh trong thiết bị đầu cuối |
agent |
Gọi các tác nhân khác làm tác nhân phụ |
Nếu bạn bỏ qua tools hoàn toàn trường, tổng đài viên mặc định có quyền truy cập vào tất cả các công cụ tiêu chuẩn. Tuy nhiên, liệt kê rõ ràng các công cụ là một phương pháp hay nhất vì nó tạo ra ranh giới rõ ràng cho hành vi của tổng đài viên. Tác nhân lập kế hoạch không nên sửa đổi mã chỉ ['search', 'read', 'fetch']nên chỉ định , trong khi tác nhân triển khai cần viết mã sẽ bao gồm ['search', 'read', 'edit', 'terminal'].
Note
Nếu một công cụ được liệt kê trong cấu hình của tổng đài viên không có sẵn trong môi trường hiện tại, công cụ đó sẽ bị bỏ qua một cách âm thầm Điều này có nghĩa là bạn có thể xác định tổng đài viên bằng các công cụ có thể chỉ có sẵn trong một số thiết lập nhất định mà không gây ra lỗi.
Tác nhân phụ
agents Trường trong YAML frontmatter cho phép một tổng đài viên gọi các tổng đài viên khác làm tác nhân phụ. Tác nhân phụ là một tổng đài viên mà một tổng đài viên khác gọi để xử lý một nhiệm vụ phụ, sau đó kết hợp kết quả vào phản hồi của chính nó. Hành vi này khác với chuyển giao quyền kiểm soát cho người dùng; Cuộc gọi đại lý phụ xảy ra trong quá trình xử lý của tổng đài viên và tự động trả về kết quả cho tổng đài viên gọi.
Ví dụ: một tác nhân "Nhà phát triển chính" có thể gọi một tác nhân phụ "Người đánh giá bảo mật" để kiểm tra một đoạn mã, nhận các phát hiện và sau đó kết hợp những phát hiện đó vào phản hồi cuối cùng của nó—tất cả trong một tương tác duy nhất.
Để định cấu hình đại lý phụ, hãy liệt kê tên đại lý phụ trong agents trường:
---
description: Lead developer agent that coordinates with specialists
tools: ['search', 'read', 'edit']
agents: ['security-reviewer', 'test-writer']
---
Các tổng đài viên chỉ dành cho mục đích sử dụng làm tác nhân phụ có thể đặt user-invokable: false để chúng không xuất hiện trong danh sách thả xuống tổng đài viên, giữ cho giao diện sạch sẽ.
Note
Để sử dụng tác nhân phụ, hãy đưa công cụ vào agent danh sách của tools tổng đài viên gọi điện (hoặc bỏ qua hoàn toàn trường để tools bật tất cả các công cụ). Công cụ này agent cho phép một nhân viên gọi cho một nhân viên khác theo chương trình trong quá trình phản hồi.
Nhân viên cấp tổ chức
Đối với các nhóm duy trì tổng đài viên chia sẻ trên nhiều kho lưu trữ, GitHub hỗ trợ tổng đài viên cấp tổ chức. Các tổng đài viên này được đặt cấu hình ở cấp tổ chức GitHub và tự động xuất hiện cùng với không gian làm việc và tổng đài viên hồ sơ người dùng trong Visual Studio Code khi bạn đăng nhập vào tài khoản GitHub có quyền truy cập vào tổ chức.
Nhân viên cấp tổ chức đảm bảo tính nhất quán giữa các nhóm. Ví dụ: một nhóm bảo mật có thể xuất bản tác nhân "Người đánh giá bảo mật" được chia sẻ mà mọi kho lưu trữ trong tổ chức có thể sử dụng, đảm bảo rằng các tiêu chí đánh giá bảo mật giống nhau được áp dụng ở mọi nơi mà không yêu cầu mỗi kho lưu trữ xác định tác nhân của riêng mình.
Khả năng tương thích với định dạng tổng đài viên
Visual Studio Code nhận dạng các tệp tác nhân ở định dạng làm .agent.md cấu hình chính. Ngoài ra, Visual Studio Code hỗ trợ các tệp tác nhân kiểu Claude tuân theo định dạng tác nhân Claude Code. Nếu bạn đã có cấu hình tác nhân từ Claude Code, chúng hoạt động trong Trò chuyện Copilot GitHub của Visual Studio Code mà không cần sửa đổi. Khả năng tương thích chéo này giúp đơn giản hóa việc di chuyển cho các nhóm sử dụng nhiều công cụ AI.
Tác nhân tích hợp so với nhân viên tùy chỉnh
Visual Studio Code bao gồm một số tác nhân tích hợp cung cấp cấu hình mục đích chung cho trò chuyện. Các tác nhân này bao gồm tác nhân "GitHub Copilot" mặc định và các tác nhân chuyên dụng cho các tác vụ phổ biến. Tác nhân tùy chỉnh mở rộng hệ thống này bằng cách cho phép bạn xác định vai trò của riêng mình với các hướng dẫn và cấu hình công cụ dành riêng cho dự án.
Tác nhân tùy chỉnh xuất hiện trong menu thả xuống Tổng đài viên GitHub Copilot Chat cùng với các tổng đài viên tích hợp. Bạn có thể chuyển đổi giữa bất kỳ tác nhân nào bất kỳ lúc nào để thay đổi cách hoạt động của AI. Tính linh hoạt này cho phép bạn di chuyển giữa các chế độ làm việc khác nhau — lập kế hoạch, viết mã, xem xét, thử nghiệm — mà không cần rời khỏi giao diện Trò chuyện GitHub Copilot.
Ưu điểm chính của tác nhân tùy chỉnh so với các tác nhân tích hợp là tính cụ thể. Tác nhân đánh giá mã tích hợp áp dụng các phương pháp hay nhất chung, trong khi tác nhân "Người đánh giá mã" tùy chỉnh của bạn có thể áp dụng danh sách kiểm tra đánh giá cụ thể của nhóm, tham khảo các quyết định kiến trúc của dự án và tập trung vào các mẫu và phản mẫu quan trọng nhất trong cơ sở mã của bạn.
Các bước tạo nhân viên tùy chỉnh
Làm theo các bước sau để tạo tác nhân tùy chỉnh trong Visual Studio Code:
Mở menu tổng đài viên: Trong ngăn Trò chuyện GitHub Copilot, hãy mở menu thả xuống tổng đài viên (thường hiển thị tên tổng đài viên hiện tại). Chọn Đặt cấu hình tác nhân tùy chỉnh rồi chọn Tạo tổng đài viên tùy chỉnh mới. Ngoài ra, chạy
Chat: New Custom Agentlệnh từ Bảng lệnh (Ctrl+Shift+P).Chọn phạm vi: Chọn nơi lưu trữ tệp tổng đài viên. Chọn Không gian làm việc để tạo tệp (
.github/agents/cung cấp tệp cho nhóm của bạn thông qua kiểm soát phiên bản) hoặc chọn Hồ sơ người dùng để làm cho tệp đó trở nên cá nhân và có sẵn trên tất cả các không gian làm việc của bạn.Đặt tên tổng đài viên: Nhập tên tệp mô tả cho tổng đài viên. Tên này xuất hiện dưới dạng tên mặc định trong danh sách thả xuống tổng đài viên. Sử dụng tên chỉ rõ vai trò của tổng đài viên, chẳng hạn như
planner,code-reviewerhoặctest-writer.Xác định siêu dữ liệu tổng đài viên: Trong phần trước YAML của tệp mới tạo
.agent.md, hãy đặt cấu hình thuộc tính của tổng đài viên. Đặt adescription(văn bản này xuất hiện dưới dạng văn bản giữ chỗ trong đầu vào trò chuyện khi tổng đài viên được chọn), chỉ định tổngtoolsđài viên sẽ có quyền truy cập và tùy chọn đặt ưu tiênmodelhoặc đặthandoffscấu hình cho tổng đài viên khác.Viết hướng dẫn của tổng đài viên: Trong phần nội dung của tệp bên dưới phần trước YAML, hãy cung cấp các hướng dẫn tùy chỉnh cho tổng đài viên. Các hướng dẫn này xác định tính cách, chuyên môn và hướng dẫn hành vi của nhân viên. Viết chúng bằng Markdown bằng ngôn ngữ rõ ràng, cụ thể cho AI biết cách tiếp cận nhiệm vụ, những gì cần tập trung và những ràng buộc cần tuân theo.
Lưu và kích hoạt: Lưu tệp. Tác nhân tùy chỉnh xuất hiện ngay lập tức trong trình đơn thả xuống Tổng đài viên GitHub Copilot Chat (giả
user-invokablesử làtrue, là mặc định). Chọn tổng đài viên để bắt đầu sử dụng.
Tiền bo
Bạn có thể nhập /agents GitHub Copilot Chat làm phím tắt nhanh để xem và chuyển đổi giữa tất cả các tổng đài viên có sẵn, bao gồm tổng đài viên tích hợp, không gian làm việc, hồ sơ người dùng và tổng đài viên cấp tổ chức.
Kỹ năng nhân viên
Kỹ năng nhân viên là một khái niệm liên quan nhưng khác biệt với nhân viên tùy chỉnh. Trong khi tổng đài viên xác định tính cách bằng các hướng dẫn và công cụ, các kỹ năng của tổng đài viên (được xác định trong SKILL.md tệp) mô tả các khả năng hoặc lĩnh vực chuyên môn cụ thể mà tổng đài viên có thể sử dụng. Kỹ năng cung cấp siêu dữ liệu có cấu trúc về những gì nhân viên biết và có thể làm. Visual Studio Code hỗ trợ các kỹ năng như một phần của hệ thống tùy chỉnh rộng hơn. Các kỹ năng thường được xác định trong không gian làm việc của bạn và được GitHub Copilot tự động phát hiện để nâng cao phản hồi của nhân viên với kiến thức chuyên môn.
Ví dụ về đại lý tùy chỉnh
Các ví dụ sau đây minh họa cách xác định tác nhân cho các vai trò phát triển phổ biến.
Đại lý "Planner"
Nhân viên Planner tập trung vào việc phân tích các yêu cầu và tạo kế hoạch triển khai mà không cần sửa đổi bất kỳ mã nào. Nó chỉ sử dụng các công cụ chỉ đọc và bao gồm việc chuyển giao cho tác nhân Triển khai khi kế hoạch sẵn sàng thực hiện.
---
description: Generates high-level implementation plans without writing code
tools: ['search', 'read', 'fetch']
handoffs:
- label: Start Implementation
agent: implementer
prompt: Now implement the plan outlined above.
send: false
---
# Planner
You are a senior software architect. When the user describes a feature or change, analyze the request and generate a detailed implementation plan.
Your plan should include:
1. A summary of the feature requirements.
2. A list of files that need to be created or modified.
3. Step-by-step implementation tasks in logical order.
4. Any potential risks or considerations.
Do not write or modify any code. Focus on planning only. Ask clarifying questions if the requirements are ambiguous.
Tác nhân "Code Reviewer"
Tác nhân Code Reviewer kiểm tra mã để tìm các vấn đề về chất lượng, lỗ hổng bảo mật và tuân thủ các phương pháp hay nhất. Nó sử dụng các công cụ đọc và tìm kiếm nhưng không chỉnh sửa tệp trực tiếp.
---
description: Reviews code for bugs, security issues, and style compliance
tools: ['search', 'read']
---
# Code Reviewer
You are an experienced code reviewer. When the user asks you to review code, examine it for:
- Bugs and logical errors
- Security vulnerabilities (SQL injection, XSS, authentication flaws)
- Performance issues
- Naming convention violations
- Missing error handling
- Code duplication
Present your findings as a structured review with severity levels. For each issue, explain the problem, show the affected code, and suggest an improvement. End with an overall assessment of code quality.
Những ví dụ này có thể được điều chỉnh để phù hợp với nhu cầu cụ thể của nhóm bạn. Nguyên tắc chính là xác định các hướng dẫn rõ ràng tập trung tổng đài viên vào một nhiệm vụ cụ thể và định cấu hình danh sách công cụ để phù hợp với trách nhiệm của tổng đài viên.
Tóm tắt
Tác nhân tùy chỉnh trong Visual Studio Code cho phép bạn xác định chân dung AI chuyên biệt với các hướng dẫn và quyền công cụ phù hợp. Bằng cách tạo .agent.md tệp trong không gian làm việc hoặc hồ sơ người dùng, bạn có thể xây dựng tác nhân cho các vai trò phát triển cụ thể—lập kế hoạch, triển khai, xem xét, thử nghiệm, v.v. Mỗi tác nhân hoạt động trong ranh giới bạn xác định, chỉ sử dụng các công cụ bạn cho phép và làm theo hướng dẫn bạn cung cấp. Các tính năng nâng cao như tác nhân phụ, tác nhân cấp tổ chức và tích hợp máy chủ MCP mở rộng những gì tác nhân có thể đạt được. Những khả năng này cho phép bạn kiểm soát chính xác cách GitHub Copilot hoạt động trong các giai đoạn khác nhau của quy trình phát triển của bạn.