Agent 优先开发模式简介

编写代码的方式正在发生变化。你仍然可以亲自编写每一行代码,这在特定用例中可能是合适的。但行业内正在兴起另一种模式,即在编程中使用代理,通常称为代理式编程 (agentic programming) 或代理优先开发 (agent-first development)。

你不再需要编写每一行代码,而是指导 AI 编码代理去读取你的代码库、进行编辑、运行命令、修复自身的错误并完成工作。这些代理在一个循环中运行。你提供指令,代理执行操作,你进行纠正,如此循环直到达成目标。

本指南涵盖了在 VS Code 和 GitHub Copilot 中开启首次代理会话所需的一切知识。

开始之前,请安装 VS Code设置 GitHub Copilot

实现出色代理结果的五大支柱

代理并非魔法。出色的结果源于五个要素的协同工作。

  1. 底座 (Harness) - 将模型连接到你的工具和工作区的软件层。
  2. 模型 (Model) - 进行推理并生成代码的 AI。
  3. 上下文 (Context) - 帮助代理理解你的项目的文件、说明和详细信息。
  4. 工具 (Tools) - 代理可以执行的操作,例如读取文件、运行命令和搜索。
  5. 提示词 (Prompt) - 你给代理的指令。

只要这五点都做好了,代理就能取得显著的成果。如果缺失其中任何一点,结果就会变得杂乱无章。

底座 (The harness)

在 VS Code 中,GitHub Copilot Chat 面板就是你的底座。底座是包裹在模型周围的软件层,除了“思考”之外,它负责处理一切事务。

你可以将底座想象成汽车的线束。引擎负责动力输出,而线束将其连接到仪表盘、控制器和传感器,从而使动力变得可用。

底座赋予代理的能力:

  • 深入你的工作区,从而读取和理解你的文件。
  • 一个终端,用于运行命令和执行代码。
  • 编辑功能,用于直接对你的代码库应用更改。

代理模式

底座还通过三种模式控制代理的自主程度。

模式 行为
询问 (Ask) 往复式对话。无编辑,无命令。
规划 (Plan) 概述它将要做的事情,但在采取行动前会等待批准。
代理 完全自主。它会规划、执行和迭代,直到任务完成。

Agent mode picker in VS Code chat showing the Ask, Plan, and Agent options.

如果你是初学者,“询问”或“计划”是很好的切入点。准备好实施时,再切换到“代理”模式。

模型 (The model)

GitHub Copilot 通过模型选择器为你提供多种模型选择。模型是进行推理并生成代码的 AI。

你可以通过“思考力度”级别来控制模型的思考深度。

  • 低 (Low),推理较少,响应较快。最适合格式化、样板代码和简单修复。
  • 中 (Medium),推理与速度平衡。适合重构、代码审查和标准实现。
  • 高 (High),最大程度的推理深度。最适合架构决策、多文件重构和困难的调试。

此外还有 自动 (Auto) 模式,它会根据容量和性能选择最佳可用模型,从而减少速率限制、延迟和错误。

Model picker in VS Code chat showing available AI models and thinking effort options.

根据任务匹配思考力度。简单工作选低,标准编码选中,难题选高。

提示词 (The prompt)

提示词是你发送给代理的消息,包括你的指令、目标和要求。这是你控制输出质量最重要的手段。

以下是一个入门的基础提示词。

在继续之前,请确保已安装 Python 3.13 或更高版本 以及 uv。代理将使用这两者来设置和运行项目。

Using Python 3.13 and uv, implement a base62 encoder/decoder.

Prompt example in VS Code chat showing a request to implement a base62 encoder/decoder with Python 3.13 and uv.

这可以让代理开始工作,但你越具体,结果就越好。引用现有文件,指定要遵循的模式,并清晰定义范围。我们将在后续指南中深入探讨提示词策略。

上下文

上下文是代理用来理解你的代码库、文件、对话历史、说明和搜索结果的一切信息。模型经过通用信息训练,但它们需要关于你代码库的上下文才能完成有用的工作。

代理可以通过搜索你的工作区和读取文件自动收集上下文。你也可以手动提供。

  • 点击聊天输入框中的 + 图标来附加特定的文件或文件夹。
  • 输入 # 来引用特定的上下文来源,例如 #codebase#file#fetch

上下文平衡是一门艺术。信息过多会使代理困惑,信息过少则缺失必要的细节。我们有专门的指南深入探讨 上下文策略

工具

工具是代理可以执行的操作。你看到的代理采取的每一个动作(读取文件、编写代码或运行命令)都是一次工具调用。你可以通过选择聊天输入框中的工具图标查看所有可用工具。

Screenshot showing Configure Tools option in the Chat input.

内置工具包括:

工具 功能
read 读取工作区中的文件。
edit 编辑工作区中的文件。
execute 在你的机器上运行命令和执行代码。
search 在整个工作区中搜索文件和符号。
browser 打开并与网页交互。
web 从网络获取信息和文档。
agent 将任务委派给子代理。
vscode 使用 VS Code 的功能和命令。
todo 管理和跟踪待办事项以进行任务规划。

Tools picker in VS Code chat showing available agent tools that can be enabled for a session.

每个工具都有一个复选框,你可以针对每个会话启用或禁用它。工具越多意味着功能越强,但工具太多可能会让代理困惑该使用哪个。请根据手头的任务选择性地使用工具集。

你可以通过 MCP 服务器和 VS Code 扩展来扩展这个集合,我们将在以后的指南中介绍。

批准 (Approvals)

当代理第一次想要运行终端命令时,它会暂停并请求许可。在没有事先询问的情况下,代理不会在你的机器上运行命令。

Approval prompt in VS Code chat asking permission before running a terminal command.

审查命令,如果没问题,请选择 允许 (Allow)。如果看起来不对劲,请选择 跳过 (Skip) 并修正方向。

接下来是什么

现在你已经掌握了驱动出色代理结果的核心概念:底座、模型、上下文、工具和提示词。代理已经能够构建真实的东西了——现在关键在于学习如何很好地指导它。

下一篇指南 中,我们将深入介绍批准系统,看看如何控制代理的自主性,并了解如何在会话运行过程中监控你的上下文预算。

了解更多

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