Skip to content

自定义代理让你为 Copilot 创建专项角色——测试专家、架构规划师、文档撰写员……每个代理有独立的工具权限和行为指令。创建后可以在 GitHub.com 的 Agent 面板或 Copilot CLI 中直接调用。

GitHub Copilot 自定义代理:创建专项 AI 代理配置

应用场景

  • 为代码审查创建"代码质量审查员",只读文件不修改
  • 为测试工作创建"测试专家",专注于测试覆盖和质量
  • 为文档工作创建"文档撰写员",熟悉项目的文档规范
  • 为安全审计创建"安全分析师",重点关注漏洞和合规

创建代理

通过 GitHub Web 界面

  1. 访问 https://github.com/copilot/agents
  2. 从下拉框选择目标仓库(和可选的分支)
  3. 点击代理图标 → Create an agent
  4. 系统自动在 .github/agents/ 下创建模板文件 my-agent.agent.md
  5. 重命名文件(文件名即代理标识,支持 .-_、字母、数字)
  6. 填写代理配置,提交到默认分支

直接创建文件

在仓库 .github/agents/ 目录下创建 your-agent-name.agent.md

代理文件格式

markdown
---
name: test-specialist          # 可选,省略时用文件名
description: 专注于测试覆盖和质量改进,不修改生产代码
tools: ["read", "search", "edit"]  # 可选,省略表示允许所有工具
model: claude-opus-4-7         # 可选,指定使用的 AI 模型
target: github-copilot         # 可选,限制使用范围
---

你是一位测试专家,专注于通过全面的测试来提升代码质量。你的职责:

- 分析现有测试,找出覆盖缺口
- 编写单元测试、集成测试和端到端测试
- 遵循当前项目使用的测试框架和规范
- 确保测试隔离、稳定且有良好的说明
- **只处理测试文件**,不修改生产代码,除非用户明确要求

始终为测试添加清晰的描述,并使用适合当前语言和框架的测试模式。

配置字段说明

字段必须说明
name显示名称,省略时用文件名
description代理用途描述,出现在代理列表中
tools允许的工具列表;省略则允许全部
mcp-servers代理专属的 MCP 服务器配置
model指定使用的 AI 模型
targetvscode(只在 VS Code 可见)或 github-copilot

代理提示词写在 YAML frontmatter 下方的 Markdown 内容中,最多 30,000 个字符

完整示例:架构规划师

markdown
---
name: implementation-planner
description: 创建详细的技术实施方案和架构文档,不直接编写代码
tools: ["read", "search", "edit"]
---

你是一位技术规划专家,负责创建全面的实施方案。你的职责:

- 分析需求,拆解成可执行的任务
- 创建技术规格说明和架构文档
- 生成带有清晰步骤、依赖关系的实施计划
- 记录 API 设计、数据模型和系统交互
- 创建结构化的 Markdown 文档供团队参考

始终使用清晰的标题、任务拆解和验收标准来组织文档。
包含测试、部署和风险分析的考量。
专注于文档创建,而不是代码实现。

代理存放位置

路径作用范围
.github/agents/当前仓库
agents/(在 .github-private 仓库中)整个组织/企业
~/.copilot/agents/当前用户(所有项目)

优先级:系统级 > 仓库级 > 组织级(同名代理时高优先级覆盖)。

调用自定义代理

在 GitHub.com 上

访问 https://github.com/copilot/agents 的代理面板,选择代理后开始对话。也可以将代理分配给 Issue,让它在云端自主完成任务。

在 Copilot CLI 中

bash
# 命令行参数
copilot --agent=test-specialist --prompt "为 src/auth.ts 补充测试"

# 交互式会话中
/agent test-specialist

# 自然语言触发
请用测试专家代理来处理这个任务

常见问题

Q: 代理修改后什么时候生效?

A: 代理文件合并到仓库默认分支后生效。在 GitHub Web 的代理界面刷新页面即可看到更新。

Q: 代理的 tools 字段不写等于什么?

A: 省略 tools 字段表示代理可以使用所有可用工具。如果想限制代理只能读取不能修改,设置 tools: ["read", "search"]

Q: 自定义代理和 Copilot CLI 的代理有什么区别?

A: 两者都用 .agent.md 格式定义,但部署位置不同。GitHub Web 用的代理放 .github/agents/,Copilot CLI 用的代理放 .github/agents/~/.copilot/agents/——放在仓库里的代理两个平台都能用。