GitHub Copilot 编码智能体

GitHub Copilot 编码智能体是一个托管在 GitHub 上的自主 AI 开发人员,它可以在后台独立工作以完成开发任务。要调用编码智能体,请将 GitHub 问题分配给 Copilot 或从聊天中委派任务,智能体将使用其隔离的开发环境自主实施功能、修复错误并在存储库中进行更改。

这与在 VS Code 中使用智能体不同,后者在编辑器内提供交互式开发,并要求您在编码会话期间积极参与。

GIF showing how to assign an issue to Copilot coding agent from within VS Code.

工作原理

Copilot 编码智能体工作流

  1. 分配:您可以将 GitHub 问题分配给 @copilot从 VS Code 聊天中委派任务,或使用 TODO 代码操作
  2. 分析:智能体分析任务和您的存储库结构。
  3. 开发:Copilot 在其隔离的 GitHub Actions 环境中工作,在此环境中它可以:
    • 探索您的代码库
    • 跨多个文件进行更改
    • 运行构建和测试
    • 执行代码检查器和其他自动化检查
  4. 拉取请求:智能体创建一个包含实现方案的拉取请求。
  5. 审查:您审查更改,并通过 PR 评论请求修改。
  6. 迭代:智能体响应反馈并更新实现方案。

先决条件

在使用 Copilot 编码智能体之前,您需要:

  • GitHub Copilot 订阅:适用于 Copilot Pro、Pro+、Business 或 Enterprise 计划。
  • 写入权限:您必须拥有该存储库的写入权限。
  • 启用智能体:必须为您的帐户或组织启用 Copilot 编码智能体。
  • VS Code 设置:安装 GitHub Pull Requests 扩展

确保您已使用正确的 GitHub 帐户登录 GitHub Pull Request 扩展。

Screenshot showing the accounts menu, highlighting the sign in to GitHub Pull Request action.

可选:启用实验性设置 githubPullRequests.codingAgent.uiIntegration 在 VS Code 中打开 在 VS Code Insiders 中打开 以在 Copilot Chat 中显示“委派给编码智能体 (Delegate to coding agent)”按钮,从而更轻松地进行任务委派。

您还可以通过启用实验性设置 chat.agentSessionsViewLocation 在 VS Code 中打开 在 VS Code Insiders 中打开 来从专用聊天编辑器管理编码智能体会话,并查看“聊天会话 (Chat Sessions)”视图。

提示

如果您尚未获得 Copilot 访问权限,可以注册 Copilot 免费计划,以获得每月的交互限额。

在 VS Code 中为 Copilot 编码智能体分配工作

方法 1:将问题分配给 Copilot

您可以通过将 GitHub 问题分配给 Copilot 来触发 Copilot 编码智能体,这类似于将问题分配给团队成员。Copilot 编码智能体会自动分析问题并开始处理。

  1. GitHub Pull Requests 视图中,导航到 Issues 部分。

  2. 找到您想要分配给 Copilot 的问题。

  3. 右键点击该问题,选择 Assign to Copilot 或选择 Assign,然后选择 @copilot

    提示

    您也可以直接在 GitHub.com 上将问题分配给 @copilot。编码智能体的运作方式相同,它会创建一个拉取请求,您可以在 VS Code 或 GitHub 上进行审查。

  4. 智能体将开始在后台处理该问题。

  5. 在 VS Code 中打开聊天视图 (⌃⌘I (Windows, Linux Ctrl+Alt+I)) 截图显示了 GitHub Pull Requests 视图,突出显示了分配给 Copilot 的操作,以及分配给 Copilot 的工作的 PR 查询。

方法 2:从聊天中委派

您也可以直接从聊天对话中将工作移交给 Copilot 编码智能体。无需让智能体立即在您的编辑器中实施更改,您可以将任务委派给编码智能体,让其在后台自主处理。

  1. 在 VS Code 中打开聊天视图 (⌃⌘I (Windows, Linux Ctrl+Alt+I))

  2. 就您想要实现的功能或更改进行对话。

  3. 准备好后,使用以下方法之一委派给智能体:

    使用委派按钮(实验性功能)

    启用实验性设置 githubPullRequests.codingAgent.uiIntegration 在 VS Code 中打开 在 VS Code Insiders 中打开 ,以便在已启用该智能体的存储库的聊天视图中显示“委派给编码智能体 (Delegate to coding agent)”按钮。选择此按钮可将当前的聊天上下文移交给编码智能体。

    当您委派任务时,包括文件引用在内的额外上下文会被转发给编码智能体,使您能够精确规划任务供编码智能体完成。一个新的聊天编辑器将会打开,并实时显示编码智能体的进度。

    使用 #copilotCodingAgent 工具

    您也可以直接在提示词中使用 #copilotCodingAgent 工具,要求 Copilot 在后台继续进行本地更改。该工具会自动将待处理的更改推送到远程分支并启动编码智能体会话。

    Screenshot showing handing off a session to Copilot coding agent

  4. 智能体将创建一个拉取请求并开始实施讨论的更改。当您启动编码智能体会话(通过 #copilotCodingAgent 或使用“委派给编码智能体”操作)时,该拉取请求将作为卡片显示在聊天视图中。

    Screenshot of a coding agent PR card in the Chat view.

方法 3:使用编码智能体修复 TODO

代码中以 TODO 开头的注释现在显示一个代码操作,可快速启动编码智能体会话。这提供了一种直接从代码中委派特定任务的便捷方式。

提示

TODO 关键字可通过 githubIssues.createIssueTriggers 在 VS Code 中打开 在 VS Code Insiders 中打开 设置进行配置。您可以自定义哪些注释关键字触发编码智能体代码操作。

  1. 导航到代码中的 TODO 注释。

  2. 寻找灯泡图标或使用 ⌘. (Windows, Linux Ctrl+.) 打开快速修复菜单。

  3. 从可用的代码操作中选择 Delegate to coding agent(委派给编码智能体)。

    Screenshot of a code action above a 'TODO' comment called 'Delegate to coding agent'

  4. 编码智能体将分析 TODO 注释,并在新的拉取请求中实施所要求的更改。

跟踪智能体进度

理解编码智能体工作流

当您将工作分配给 Copilot 编码智能体时,它遵循一个可能与您预期不同的特定工作流:

  1. 初始拉取请求创建:智能体立即创建一个带有初始空提交的拉取请求。这建立了将进行所有更改的工作区和分支。

  2. 后台处理:编码智能体在 GitHub 的云基础设施(GitHub Actions 环境)中工作,而不是在您的本地机器上。这意味着:

    • 所有开发都在 GitHub 服务器上远程进行
    • 智能体可以访问完整的存储库上下文
    • 即使您关闭 VS Code,工作也会继续进行
  3. 增量更新:在初始提交之后,智能体在开发解决方案时会推送包含实际代码更改的后续提交。

注意

如果您看到一个没有更改的初始提交,这是正常行为。智能体会在处理您的任务时,在后续提交中推送实际的代码更改。

在 VS Code 中监控工作

GitHub Pull Requests 扩展提供了一个专门的 Copilot on My Behalf(代表我进行 Copilot 操作)部分,显示:

  • 所有活动的 Copilot 编码智能体会话
  • 由智能体创建的拉取请求
  • 每个任务的进度状态
  • 指示新更改或更新的数字徽章

Screenshot showing status of multiple coding agent pull requests

提示

您也可以通过 GitHub.com 监控您分配给 @copilot 的工作 —— 所有活动的会话和拉取请求都会出现在此部分,无论您是在何处发起的。

查看详细的会话日志

  1. 在 Pull Requests 视图中,在 Copilot on My Behalf 下找到您智能体的工作。

  2. 选择 View Session 以查看智能体所做一切的详细日志。

    • 执行的命令
    • 修改的文件
    • 运行的测试
    • 决策过程

    Screenshot showing the session log of a coding agent session.

使用专用聊天编辑器管理会话(实验性功能)

您可以从专用聊天编辑器管理编码智能体会话,该编辑器使您能够:

  • 实时跟踪编码智能体的进度
  • 直接从聊天中提供后续指令
  • 在专用环境中查看智能体的回复
  • 直接从聊天编辑器查看或应用代码更改并检出拉取请求
  • 体验从本地聊天到 GitHub 智能体任务的无缝过渡,并具备更好的连续性
  • 受益于更出色的会话渲染效果,提升视觉清晰度
  • 享受更快的会话加载速度,获得更灵敏的体验

启用实验性设置 chat.agentSessionsViewLocation 在 VS Code 中打开 在 VS Code Insiders 中打开 以试用此功能。

  • 当设置为 view 时,您将在 VS Code 侧边栏中看到一个 Chat Sessions 视图,用于管理本地和编码智能体会话。该视图现在包含带有详细上下文的丰富描述,帮助您快速找到相关信息。

    Screenshot showing the Coding Agents view.

  • 当设置为 showChatsMenu 时,编码智能体会话将与本地聊天记录一起显示。

    Screenshot showing the Coding Agent Sessions Quick Pick.

由编码智能体创建的拉取请求在您启动会话时也会作为卡片呈现在聊天视图中,从而提供更好的视觉集成。

改进的委派体验

最近的更新显著增强了从 VS Code 到 GitHub 编码智能体的委派体验:

  • 更好的上下文转发:当您从聊天中委派任务时,包括文件引用在内的额外上下文会自动转发给 GitHub 编码智能体。
  • 实时进度:打开新的聊天编辑器,实时显示编码智能体的进度。
  • 无缝过渡:在从本地聊天移动到 GitHub 智能体任务时,改进了连续性。
  • 增强的视觉集成:拉取请求作为交互式卡片渲染在聊天视图中,以便于导航。

这些改进使您能够更容易地为编码智能体精确规划任务,并监控其进度,而无需离开 VS Code。

取消正在运行的会话

如果您需要停止智能体,可以停留在 VS Code 中,并使用 PR 概览页面上的 Cancel coding agent(取消编码智能体)按钮。

您也可以从 GitHub.com 取消会话:

  1. 在 GitHub.com 上前往您的 GitHub 存储库。
  2. 导航到 Actions 选项卡。
  3. 找到正在运行的 Copilot Coding Agent 工作流。
  4. 选择 Cancel workflow(取消工作流)。

审查与迭代

工作完成

在 Copilot 编码智能体分析了您的代码并确定完成任务所需的更改后,它会执行以下步骤:

  • 创建包含所有更改的拉取请求
  • 将 PR 分配给您进行审查
  • 将您设为审查者
  • 包含解释实现方案的详细描述
  • 在适用时添加截图(针对 UI 更改)

Screenshot showing a pull request from Copilot coding agent displayed in VS Code with an included screenshot of the implemented feature.

提供反馈

您可以通过拉取请求评论引导智能体的工作。请确保在评论中标记 @copilot,以便智能体做出响应。

  1. 请求更改:针对需要修改的内容留下具体的反馈。

    @copilot Please update the login form to include password strength validation
    
  2. 请求改进:要求添加额外功能或进行优化。

    @copilot Can you add error handling for network timeouts?
    

智能体将响应您的反馈,进行请求的更改,并更新拉取请求。

提示

当使用编码智能体创建的拉取请求时,#activePullRequest 工具会自动为您的聊天会话启用。这为聊天提供了关于您 PR 的上下文,包括更改了哪些文件、分配给了谁以及状态(草稿或准备审查)。然后,您可以询问有关此 PR 的信息,并在聊天中对其进行进一步迭代。

常见问题

Copilot 编码智能体与使用智能体 (Using Agents) 有什么区别?

VS Code 提供两种自主编码体验。虽然在 VS Code 中使用智能体可以在编辑器内提供交互式开发,但 Copilot 编码智能体在 GitHub 上独立工作,在后台实现功能。

功能 Copilot 编码智能体 使用智能体
运行位置 GitHub 云端 您的 VS Code 编辑器
独立性 完全自主 涉及用户交互和迭代
输出 创建拉取请求 直接编辑文件
最适合 定义明确的任务,后台工作 交互式开发,即时反馈

了解更多关于在 VS Code 中使用智能体的信息。

为什么智能体没有启动?

  • 验证您的 GitHub 帐户上的 Copilot 访问权限
  • 确保您对存储库拥有写入权限
  • 检查是否已为您的组织启用了 Copilot 编码智能体

为什么初始提交看起来是空的?

当 Copilot 编码智能体开始工作时,它会创建一个初始空提交来建立拉取请求和工作分支。这是正常行为 —— 智能体在 GitHub 的云环境中工作时,会推送带有实际代码更改的后续提交。

您可以通过从拉取请求、GitHub Pull Request 扩展的 Copilot on My Behalf 部分或“聊天会话 (Chat Sessions)”视图中访问的会话日志来监控进度。

为什么实现方案不完整?

  • 检查会话日志中是否有遇到的任何错误
  • 检查智能体工作期间测试是否失败
  • 在问题描述中提供更详细的需求

Copilot 编码智能体有哪些安全保护?

Copilot 编码智能体包含内置的安全保护,并在 GitHub 的安全框架内运行。有关安全措施、权限和分支保护兼容性的详细信息,请参阅 GitHub Copilot 编码智能体安全文档

我可以使用外部工具扩展 Copilot 编码智能体吗?

对于高级场景,您可以使用模型上下文协议 (MCP) 服务器扩展 Copilot 编码智能体,使其能够访问:

  • 外部数据库
  • 云服务
  • API 和第三方集成
  • 自定义开发工具

了解更多关于使用 MCP 扩展 Copilot 编码智能体的信息。

当前有哪些限制?

  • 跨存储库更改:只能在分配了问题的存储库内工作
  • 每个任务多个 PR:每个分配的任务恰好打开一个拉取请求
  • 现有 PR 修改:不能处理它未创建的拉取请求

有关限制、兼容性和使用成本的详细信息,请参阅 GitHub Copilot 编码智能体文档

后续步骤

© . This site is unofficial and not affiliated with Microsoft.