宝玉的分享 02月26日
介绍 GitHub Copilot agent 模式(预览版)
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

Copilot agent模式是AI辅助编程的重大演进,它充当自治的“编程同伴”,执行多步骤的编码任务。通过分析代码库、阅读相关文件、提出修改建议、执行终端命令和运行测试,Copilot agent能够响应编译和lint错误,监控终端和测试输出,并在循环中自动修复,直至任务完成。该模式目前面向VS Code Insiders用户开放,未来将上线VS Code Stable。它能从零创建应用、重构代码、编写测试,甚至将遗留代码迁移到现代框架,还能自动生成文档、集成新库,或帮助理解复杂代码库,大幅提升开发效率。

🤖 Copilot agent模式的核心功能是作为一个自治的编程助手,能够独立完成多步骤的编码任务,例如代码分析、文件阅读、修改建议、执行终端命令和运行测试,无需人工干预。

🛠️ Copilot agent模式通过一系列工具完成任务,每次对工具的调用都会在UI中透明显示,终端工具需要用户许可才会执行,并提供丰富的撤销功能,确保用户始终掌控全局。

💡 Copilot agent模式会自动查找精准的上下文,并通过调用合适的工作区工具来设定需要处理的文件范围,用户也可以通过 #file 引用上下文,或使用拖拽操作、点击 Add Files 按钮来更精确地引导 Copilot。

🚀 VS Code团队通过自我“内测”,在实际项目中使用Copilot agent模式,不断改进其性能和功能,并计划在未来重点提升更细粒度的撤销能力、简化上下文UI、支持Notebook编辑等。

Copilot agent 模式是 AI 辅助编程的下一步演化。它可以作为一位自治的“编程同伴”,执行多步骤的编码任务——分析你的代码库、阅读相关文件、提出文件修改建议、执行终端命令并运行测试。它能够对编译和 lint 错误作出响应,监控终端和测试输出,并在循环中自动修复,直到任务完成。该功能目前对所有 VS Code Insiders 用户开放,不久也将在 VS Code Stable 中上线。在 VS Code Insiders 中,打开 Copilot Edits 视图(⇧⌘I),从模式下拉菜单中选择 Agent,然后输入你的提示(prompt)。Copilot agent 模式可以从零开始创建应用、在多个文件之间进行重构、编写和运行测试,也可以将遗留代码迁移到现代框架。它还能自动生成文档、集成新库,或帮助你理解复杂的代码库。由于它对工作区有深入的理解,Copilot agent 模式就像一个与你协作的 AI 同伴,让你在保持掌控的同时,大幅提升生产力。Copilot agent 模式会以更自主、更灵活的方式来实现目标。处理请求时,Copilot 会在以下步骤中循环并根据需要进行多次迭代:Copilot agent 模式会使用一系列工具来完成上述任务。理想情况下,你只需关心 Copilot agent 模式最终的输出。但有时它也会犯错或者偏离轨道。为了让你能在此类情况下轻松介入并撤销,每一次对工具的调用都会在 UI 中透明显示,终端工具需要你的许可才会真正执行,同时我们也提供了丰富的撤销功能——你可以使用视图标题栏上的 Undo Last Edit 控制来回退到应用上一次修改之前的状态。与其依赖一个冗长、详细的提示一次性得到完美解决方案,不如多次迭代使用 Copilot——UI 就是为了迭代而设计,能让你在整个过程中始终掌控,确保最终结果更好。Copilot agent 模式会自动查找精准的上下文,并通过调用合适的工作区工具来设定需要处理的文件范围。如果你想对 Copilot 进行更精确的引导,也可以显式地使用 #file 引用上下文,或者使用拖拽操作或点击 Add Files 按钮。例如,你可以创建一个 specifications.md 文件并将其添加为上下文,从而更好地控制 Copilot;也可以设置自定义指令,让 Copilot 遵守你的编码规范和其他偏好。请注意,由于 Copilot agent 模式对每次提示可能会发送多条请求,它的速度不会像常规的 edits 模式那样快,而且会更快地消耗你的 Copilot 免费配额。如果任务目标非常明确且范围可控,建议继续使用 edits 模式;如果需要多次编辑或执行更开放式的任务,则可以切换到 agent 模式。当你在 agent 模式下向 Copilot 发送请求时,我们会向你在模型下拉菜单中选择的 LLM 发出一个提示(prompt),其中包含以下内容:我们为 LLM 定义了一组工具,每个工具都具有自己的功能,用以帮助 Copilot 完成任务。通过这些工具,Copilot 可以搜索工作区、读取文件内容、在终端运行命令、从编辑器获得编译或 lint 错误,并通过一个推测式解码端点(我们正在努力提升其性能)来应用修改建议。这个工具列表仍在不断扩展,我们也在探索还能使用哪些工具来提升 Copilot 在 agent 模式下的能力。每个工具都有详细的说明,告诉 LLM 何时以及如何使用它。以下是 read_file 工具描述示例:{ "name": "read_file", "description": "读取文件内容。你必须指定感兴趣的行号范围,如果文件较大,会只给出文件的大纲。如果返回的文件内容不足以完成任务,你可以再次调用这个工具,以获取更多内容。", "parameters": { "type": "object", "properties": { "filePath": { "description": "要读取文件的绝对路径。", "type": "string" }, "startLineNumberBaseZero": { "type": "number", "description": "从 0 开始计算的行号。" }, "endLineNumberBaseZero": { "type": "number", "description": "同样是 0 基准的行号(包含该行)。" } }, "required": ["filePath", "startLineNumberBaseZero", "endLineNumberBaseZero"] }}我们花了大量开发时间来完善这些工具描述和系统提示(system prompt),以确保 LLM 准确地调用工具,这一点在 Anthropic 的 building effective agents 博客中也有所提及。虽然我们有自动化的评估手段,但在实际场景中,仍需要不断地在提示和描述之间来回调整和测试。我们观察到 GPT-4o 和 Claude Sonnet 在使用这些工具时会有不同的行为,但目前针对它们的系统提示大体一致。随着未来我们在 Copilot agent 模式中支持更多 LLM,我们会为每种模型定制更适合它们的提示。自 VS Code 面世的第一天起,我们就非常推崇自我“内测”(self-hosting)。如果我们团队并不使用某个新功能来完成产品级的开发,那就说明这个功能存在问题。对我们而言,这就是简单直白的标准。我们的团队管理着 200 多个 GitHub 仓库,Copilot agent 模式在较小的仓库中已经表现出色,显著提升了生产力。例如,针对任何规模的仓库,向 Copilot 提问“开放式”问题都很好用——比如,某个特性是在哪里、如何实现的。至于在大型代码库(如 vscode)中进行跨多个文件的重构,这是当今任何软件工程代理都面临的挑战。若能在复杂仓库中提高 Copilot agent 模式的表现,就能为我们团队带来更多的自我“内测”机会,也将为你带来更多有用的交互方式。除了在工作中自我“内测”,VS Code 团队成员也会在一些业余项目中使用 Copilot agent 模式,比如天气预报、膳食规划、咖啡摄入记录或健身训练计划等应用。目前,VS Code 团队更倾向于在 Copilot agent 模式的使用场景中选择 Claude Sonnet 而非 GPT-4o。在对 Claude 3.7 Sonnet 的初步测试中,我们看到 Copilot agent 模式的功能有显著提升。Copilot agent 模式目前处于预览状态,所有 VS Code Insiders 用户都可立即试用。我们每天都会推送新代码来改进 Copilot,在 VS Code Insiders 上的体验也在逐日提升(例如今天我们刚刚上线了“编辑终端命令建议”的新功能)。期待你在我们的仓库中给我们反馈,告诉我们你想如何使用 Copilot agent 模式,以便我们确保提供的功能对你真正有帮助。接下来,我们计划重点提升:更细粒度的撤销能力简化上下文 UI(工作集)Notebook 支持(目前编辑会话仅适用于文本编辑器)允许自动批准特定终端命令改进终端工具 UI(例如在编辑器中直接显示终端命令输出)探索工具可扩展性和 MCP 服务器 作为 agent 模式的工具。如果你有扩展想法,欢迎告诉我们统一 Chat 与 edits 的使用体验与此同时,我们也在提升质量和性能,目标是在 VS Code Stable 中向所有用户推出 Copilot agent 模式。若想了解有关 Copilot agent 模式的详细信息,请查看 官方文档。我们对 Copilot agent 模式的前景感到非常兴奋——欢迎你立即试用并告诉我们你的想法。祝你在编程中保持愉快的心情!Isidor 及 VS Code 团队敬上

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Copilot agent AI编程 VS Code 代码助手
相关文章