Levix

Levix's zone

x
telegram

全面了解 GitHub Copilot 的强大模式

image

上个月,我们发布了代理模式,这是将GitHub Copilot打造成一个不仅与您协同工作,而且为您服务的系统的重要一步。当您给出自然语言提示时,Copilot 的代理模式会代表您执行操作,自动化原本耗时的流程和工作流,让您能专注于更高层次的问题解决。
上个月,我们发布了代理模式,这是将 GitHub Copilot 打造为不仅协同工作、更能主动代劳的系统的重要一步。当您输入自然语言指令时,Copilot 的代理模式会代表您执行操作,自动化原本耗时的流程和工作流,让您能专注于更高层次的问题解决。

对于编程新手而言,代理模式是开发应用程序时实用的同步工具(而我们在 Copilot 中最新推出的编码代理预览版则提供异步任务完成能力)。但同样甚至更重要的是,它对于追求效率的资深开发者来说也是极其强大的工具。通过代理模式,您可以从提出高层次需求快速推进到测试原型阶段。此外,我们持续观察到不同水平开发者都在发掘新的应用场景。
对于编程新手而言,代理模式是开发应用程序时实用的同步工具(而我们在 Copilot 中最新推出的编码代理预览版则提供异步任务完成能力)。但同样甚至更重要的是,它对于追求效率的资深开发者来说也是极其强大的工具。通过代理模式,您可以从提出高层次需求快速推进到测试原型阶段。此外,我们持续观察到不同水平开发者都在发掘新的应用场景。

让我们深入了解代理模式的定义、工作原理及使用方法。
让我们深入了解代理模式的定义、工作原理及使用方法。

但首先,什么是 GitHub Copilot 代理模式?
但首先,什么是 GitHub Copilot 代理模式?#

GitHub Copilot 代理模式是一个自主的、具备代理能力的实时同步协作工具,能够基于自然语言提示执行多步骤编码任务。简而言之,它是一个能理解你的意图、构建解决方案并持续迭代直至正确的智能问题解决者。
GitHub Copilot 代理模式是一个自主的、具备代理能力的实时同步协作工具,能够基于自然语言提示执行多步骤编码任务。简而言之,它是一个能理解你的意图、构建解决方案并持续迭代直至正确的智能问题解决者。

智能代理模式能够:

  • 分析您的代码库以掌握完整上下文。
    分析您的代码库以掌握完整上下文。
  • 规划并执行多步骤解决方案。
    规划并执行多步骤解决方案。
  • 执行命令或运行测试。
    执行命令或运行测试。
  • 调用外部工具完成专业任务。
    调用外部工具完成专业任务。
  • 提出架构改进建议。
    提出架构改进建议。
  • 通过代理循环(包括规划、应用变更、测试和迭代)来运行并优化自身工作。
    通过代理循环(包括规划、应用变更、测试和迭代)来运行并优化自身工作。

与仅响应请求不同,代理模式会主动为实现您的目标而努力。您只需定义预期结果,它就能自主确定最佳实现路径 —— 在需要时寻求您的反馈、测试自行提出的解决方案并实时优化工作成果。整个过程中,您可清晰查看其推理逻辑、决策过程及所使用的工具。
与仅响应请求不同,代理模式会主动为实现您的目标而努力。您只需定义预期结果,它就能自主确定最佳实现路径 —— 在需要时寻求您的反馈、测试自行提出的解决方案并实时优化工作成果。整个过程中,您可清晰查看其推理逻辑、决策过程及所使用的工具。

无论是分析代码库、提议文件修改还是运行测试,代理模式都能让 Copilot 独立完成所有必要的子任务。
无论是分析代码库、提议文件修改还是运行测试,代理模式都能让 Copilot 独立完成所有必要的子任务。

此外,代理模式还能使 Copilot 快速识别错误并自动修复。
此外,代理模式还能使 Copilot 快速识别错误并自动修复。

以下是代理模式与我们其他 AI 编程工具的对比情况:
以下是代理模式与我们其他 AI 编程工具的对比情况:

工具

功能说明

代理模式

Copilot 能够自主迭代代码、识别错误并自动修复的工作模式
Copilot 能够自主迭代代码、识别错误并自动修复的工作模式

GitHub Copilot 编程代理
GitHub Copilot 编程代理

一种自主的软件工程代理,可异步代表您工作,从解决问题到处理人类反馈无所不包
一种自主的软件工程代理,可异步代表您工作,从解决问题到处理人类反馈无所不包

代码补全
代码补全

Copilot 的一项功能,在支持的 IDE 中提供自动补全式建议
Copilot 的一项功能,在支持的 IDE 中提供自动补全式建议

GitHub Copilot 的代理模式如何工作?
GitHub Copilot 的代理模式如何工作?#

Flowchart diagram illustrating how a user interacts with Copilot, which communicates with a machine, workspace, and tools, all connected through a loop involving a large language model (LLM).

代理模式的核心是作为一个协调器,通过系统提示将多种工具和变量(如您的提示和工作区)组织起来,指示 Copilot 持续迭代其输出直至达到最终状态。
代理模式的核心是作为一个协调器,通过系统提示将多种工具和变量(如您的提示和工作区)组织起来,指示 Copilot 持续迭代其输出直至达到最终状态。

当您向 Copilot 代理模式发送自然语言提示时,我们的后端系统提示会对其进行增强。这包括您的查询、工作区结构摘要、机器上下文以及工具描述。
当您向 Copilot 代理模式发送自然语言提示时,我们的后端系统提示会对其进行增强。这包括您的查询、工作区结构摘要、机器上下文以及工具描述。

以下是使用 Copilot 代理模式时的运作流程分解:
以下是使用 Copilot 代理模式时的运作流程分解:

  • 你向 Copilot 明确提出期望的最终结果要求。
    你向 Copilot 明确提出期望的最终结果要求。
  • Copilot 解析问题后,会询问 AI 语言模型如何解决该任务,然后开始工作。
    Copilot 解析问题后,会询问 AI 语言模型如何解决该任务,然后开始工作。
  • Copilot 会监控首次迭代中的错误,并确定如何修复它们。
    Copilot 会监控首次迭代中的错误,并确定如何修复它们。
  • 代理模式能自主运用多种工具来达成最终结果。
    代理模式能自主运用多种工具来达成最终结果。

在运行命令并应用编辑后,代理模式会检测语法错误、终端输出、测试结果和构建错误。根据这些结果,它会决定如何进行修正,无论是通过额外编辑、终端命令还是执行工具调用。
在运行命令并应用编辑后,代理模式会检测语法错误、终端输出、测试结果和构建错误。根据这些结果,它会决定如何进行修正,无论是通过额外编辑、终端命令还是执行工具调用。

LLM 拥有不断扩展的可调用工具集,每个工具都能帮助 Copilot 完成任务 —— 而您可自主选择代理模式使用哪些工具。诸如 read_fileedit_filerun_in_terminal 等每个工具,都会向 Copilot 提供详细的使用时机和方法说明。这些工具使 Copilot 能够搜索您的工作区、读取文件内容、运行终端命令、从编辑器获取错误并应用建议更改等。
LLM 拥有不断扩展的可调用工具集,每个工具都能帮助 Copilot 完成任务 —— 而您可自主选择代理模式使用哪些工具。诸如 read_fileedit_filerun_in_terminal 等每个工具,都会向 Copilot 提供详细的使用时机和方法说明。这些工具使 Copilot 能够搜索您的工作区、读取文件内容、运行终端命令、从编辑器获取错误并应用建议更改等。

您不仅限于使用内置工具。通过从模型上下文协议(MCP)服务器或扩展安装更专业的工具,您可以扩展代理模式的功能。MCP 是一个开放标准,使 AI 模型能够通过统一接口与外部工具和服务交互。我们最近发布了 GitHub MCP 服务器,它允许您:
您不仅限于使用内置工具。通过从模型上下文协议(MCP)服务器或扩展安装更专业的工具,您可以扩展代理模式的功能。MCP 是一个开放标准,使 AI 模型能够通过统一接口与外部工具和服务交互。我们最近发布了 GitHub MCP 服务器,它允许您:

  • 自动化 GitHub 工作流和流程。
    自动化 GitHub 工作流和流程。
  • 从 GitHub 仓库中提取并分析数据。
    从 GitHub 仓库中提取并分析数据。
  • 构建与 GitHub 生态系统交互的 AI 驱动工具和应用程序。
    构建与 GitHub 生态系统交互的 AI 驱动工具和应用程序。

结合智能代理模式与 MCP 的强大功能,意味着 LLM 的知识库在连接到您的服务和数据源后将得到进一步扩展。✨
结合智能代理模式与 MCP 的强大功能,意味着 LLM 的知识库在连接到您的服务和数据源后将得到进一步扩展。✨

GitHub Copilot 代理模式能做什么?有哪些使用场景?
GitHub Copilot 代理模式能做什么?有哪些使用场景?#

代理模式为 GitHub Copilot 引入了智能化工作流,可在您的工作流程中实时同步地协助处理任意数量的任务。
代理模式为 GitHub Copilot 引入了智能化工作流,可在您的工作流程中实时同步地协助处理任意数量的任务。

无论您是让代理自主执行想法,还是逐步引导并控制其路径,您始终掌握着主导权,而 Copilot 正如其名 —— 始终作为您的副驾驶。
无论您是让代理自主执行想法,还是逐步引导并控制其路径,您始终掌握着主导权,而 Copilot 正如其名 —— 始终作为您的副驾驶。

根据我的个人经验,代理模式彻底改变了从小型项目和概念验证起步的方式。当我需要现代化我们的开源历史可视化脚本时,我同时使用 GPT-4o 和 Claude 3.7 模型测试了代理模式。结果令人惊叹 —— 仅需少量指导,它就将基础的 matplotlib 直方图转化成了精致的基于 SVG 的动画折线图。最让我印象深刻的是 Copilot 首次尝试就生成了完美的 SVG 直方图。这种智能辅助不仅加速了开发进程,更从根本上改变了我对原型设计和代码重构的思维方式。
根据我的个人经验,代理模式彻底改变了从小型项目和概念验证起步的方式。当我需要现代化我们的开源历史可视化脚本时,我同时使用 GPT-4o 和 Claude 3.7 模型测试了代理模式。结果令人惊叹 —— 仅需少量指导,它就将基础的 matplotlib 直方图转化成了精致的基于 SVG 的动画折线图。最让我印象深刻的是 Copilot 首次尝试就生成了完美的 SVG 直方图。这种智能辅助不仅加速了开发进程,更从根本上改变了我对原型设计和代码重构的思维方式。

刘哲有,Apache Airflow 提交者
刘哲有,Apache Airflow 提交者

以下是我们观察到的 GitHub 内外开发者使用代理模式的一些方式:
以下是我们观察到的 GitHub 内外开发者使用代理模式的一些方式:

  • 重构代码
    重构代码
  • 将项目迁移至另一种编程语言或技术栈
    将项目迁移至另一种编程语言或技术栈
  • 编写测试
    编写测试
  • 现代化改造遗留代码(或许这样你就不必学习过时的编程语言)
    现代化改造遗留代码(或许这样你就不必学习过时的编程语言)
  • 自动修复代码生成错误
    自动修复代码生成错误
  • 为应用程序添加新功能
    为应用程序添加新功能
  • 基于功能规格或 UI 草图原型设计新应用
    基于功能规格或 UI 草图原型设计新应用
  • 实现非功能性需求或样板代码
    实现非功能性需求或样板代码
  • 规划并确定实现新功能的工作范围
    规划并确定实现新功能的工作范围
  • 非代码生成任务,例如文档编写
    非代码生成任务,例如文档编写

需要注意的一点是:Copilot 由 LLMs 驱动,这些模型具有非确定性特征,这意味着即使使用相同的提示和上下文,其建议也可能有所不同。
需要注意的一点是:Copilot 由 LLMs 驱动,这些模型具有非确定性特征,这意味着即使使用相同的提示和上下文,其建议也可能有所不同。

如何开始使用代理模式?
如何开始使用代理模式?#

在 VS Code 中打开 Copilot Chat 视图,从聊天模式下拉列表中选择代理模式。您也可以在 Visual Studio 中预览此功能。
在 VS Code 中打开 Copilot Chat 视图,从聊天模式下拉列表中选择代理模式。您也可以在 Visual Studio 中预览此功能。

集成在 VS Code 的聊天体验中,代理模式可访问您的整个工作区和开发环境,因此具备准确完成请求所需的上下文。要扩展代理模式的功能,请选择工具按钮进行配置或添加工具。
集成在 VS Code 的聊天体验中,代理模式可访问您的整个工作区和开发环境,因此具备准确完成请求所需的上下文。要扩展代理模式的功能,请选择工具按钮进行配置或添加工具。

代理模式由您选择的模型驱动。您可以通过模型下拉列表选择要使用的模型。
代理模式由您选择的模型驱动。您可以通过模型下拉列表选择要使用的模型。

有哪些相关工具和功能可以配合代理模式使用?
有哪些相关工具和功能可以配合代理模式使用?#

代理模式功能强大,但通过与 GitHub Copilot 的其他特性结合使用,您可以进一步扩展其能力。例如,您可以为 Copilot 提供自定义指令,使其所有响应都能契合您的日常编码实践、工具和开发工作流程。
代理模式功能强大,但通过与 GitHub Copilot 的其他特性结合使用,您可以进一步扩展其能力。例如,您可以为 Copilot 提供自定义指令,使其所有响应都能契合您的日常编码实践、工具和开发工作流程。

在 GitHub,我们经常使用自定义指令为 Copilot 指定测试框架,同时设置单元测试的防护机制、框架和指导原则。这使您能够定制 Copilot 在代理模式下的编码方式,就像给团队成员下达指令一样。
在 GitHub,我们经常使用自定义指令为 Copilot 指定测试框架,同时设置单元测试的防护机制、框架和指导原则。这使您能够定制 Copilot 在代理模式下的编码方式,就像给团队成员下达指令一样。

您也可以使用其他 Copilot Chat 模式,例如编辑模式和提问模式。
您也可以使用其他 Copilot Chat 模式,例如编辑模式和提问模式。

模式

它的用途

一个应用场景

编辑模式

轻松在代码库中跨多个文件进行编辑。
轻松在代码库中跨多个文件进行编辑。

直接在项目中应用代码修改,实现新功能、修复错误或重构代码。
直接在项目中应用代码修改,实现新功能、修复错误或重构代码。

询问模式

向 Copilot 提问,以便更好地理解您的代码库或技术概念。
向 Copilot 提问,以便更好地理解您的代码库或技术概念。

了解一段代码的工作原理,为软件构思创意,或探索新技术。
了解一段代码的工作原理,为软件构思创意,或探索新技术。

代理模式

启动一个自主的智能编码工作流程,只需少量指导即可实现预期结果。
启动一个自主的智能编码工作流程,只需少量指导即可实现预期结果。

通过代理模式实现新功能或项目的高层需求,该模式会自动识别并应用必要的更改。
通过代理模式实现新功能或项目的高层需求,该模式会自动识别并应用必要的更改。

随身携带这份指南
随身携带这份指南#

与任何其他开发者合作一样,你提供的上下文越丰富、对预期结果的描述越具体,从 GitHub Copilot 获得的效果就越好 —— 这一点在代理模式下尤为明显。它需要合适的工具来完成正确的工作,但通过为代理模式提供自定义指令来适配你的编码偏好,或是通过 MCP 集成扩展其能力,它就能完美契合你特定的软件开发风格。
与任何其他开发者合作一样,你提供的上下文越丰富、对预期结果的描述越具体,从 GitHub Copilot 获得的效果就越好 —— 这一点在代理模式下尤为明显。它需要合适的工具来完成正确的工作,但通过为代理模式提供自定义指令来适配你的编码偏好,或是通过 MCP 集成扩展其能力,它就能完美契合你特定的软件开发风格。

与所有由 LLMs 驱动的技术一样,代理模式的建议也需要您这位 "驾驶员" 亲自审查代码,确保一切按预期运行。但代理模式的非凡之处在于,您可以完全按照自己的意愿使用它。它是您的编程伙伴 —— 无论是用来构建原型应用、处理现有代码库,还是解答问题并自动化工作流中的基础环节,都取决于您的需求。祝您编码愉快!
与所有由 LLMs 驱动的技术一样,代理模式的建议也需要您这位 "驾驶员" 亲自审查代码,确保一切按预期运行。但代理模式的非凡之处在于,您可以完全按照自己的意愿使用它。它是您的编程伙伴 —— 无论是用来构建原型应用、处理现有代码库,还是解答问题并自动化工作流中的基础环节,都取决于您的需求。祝您编码愉快!

原文链接:

https://github.blog/ai-and-ml/github-copilot/agent-mode-101-all-about-github-copilots-powerful-mode/

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。