智能体(Agents)
所谓 Agent,是指能够自主规划并执行编码任务的 AI 系统。你只需设定一个高层级目标,它便会将其拆解为具体步骤,利用工具逐步执行,并在遇到错误时自我修正。本文将深入剖析 Agents 的核心架构,包括 Agent 循环、Agent 类型、子 Agent、记忆机制以及规划功能。
VS Code 提供了灵活的工作方式,允许你根据实际需求在两种界面之间自由切换:
- 编辑器窗口:当你专注于编写代码,并希望 AI 在编辑器、调试器和扩展旁边提供辅助时,请保持在 VS Code 的主窗口操作。
- Agents 窗口(预览版):当你希望以提示词为核心进行思考,或需要跨多个项目编排 Agent 会话时,可以切换至这一专用的 Agent 优先界面。
Agent 循环
当接到任务指令后,Agent 会遵循一套“Agentic Loop”(智能体循环)。这是现代 AI 助手的通用模式。在 VS Code 中,Agent 负责规划与行动,而语言模型则生成辅助决策的响应内容。
每推进一步,Agent 都会评估进度并选择下一步动作。例如,它可能打开文件以理解 API,进行编辑修改,随后运行命令以验证变更效果。每个动作的输出都会成为下一步决策的输入依据。

Agent 循环通常包含三个高层级阶段:
- 理解(Understand)。 Agent 读取文件、检索代码库并查阅文档,以明确需要修改的内容。
- 行动(Act)。 Agent 通过工具修改代码、执行终端命令、安装依赖或调用外部服务。
- 验证(Validate)。 Agent 运行测试、检查编译器错误并审阅自身修改。若发现问题,它会继续迭代修正。
Agent 利用语言模型来推演最佳行动路径。然而,若缺乏与环境的交互能力,模型只能提供泛泛而谈的回复。借助工具,Agent 在每一步发起调用以收集信息并执行操作,例如读取文件、更改代码、运行终端命令及连接外部服务。
Agent 会视情况将这些动作串联起来,直至任务完成。回答代码库相关问题可能只需读取少量文件;而实现新功能则通常涉及“编辑-运行测试-诊断故障-再次编辑”的循环,直到测试通过。
在后台,VS Code 会将当前上下文(参见VS Code 如何组装上下文)组装成提示词并发送给语言模型。模型响应文本、代码编辑请求或工具调用请求。当工具运行时,其输出会被加入上下文用于下一轮迭代,此循环往复直至任务结束。
在此过程中,你始终掌握主导权。你可以发送新消息来调整方向、补充上下文或建议替代方案。关于如何审查变更及管理 Agent 行为,详见信任与安全。
定制 Agent 循环
Agent 循环并非千篇一律,可根据不同项目需求进行调整。你可以通过多种选项个性化 Agent 的行为:
- 自定义 Agent(Custom agent):允许你定义不同的“人格”,各自拥有独立的指令、可用工具、语言模型,并可选择性地移交给另一个 Agent。
- 利用 Agent 技能(Agent skills),你可以为特定领域或任务赋予 Agent 新的能力。
- Hooks(钩子):允许在 Agent 循环的特定生命周期节点运行自定义命令。
深入了解 定制化概念。
Agent 类型
Agent 运行于不同的环境,具体取决于你对结果时效的需求以及希望施加的监管程度。两个关键维度在于 Agent 运行在哪里(本地机器或云端)以及你如何与其交互(交互式或在后台自主运行)。

进一步了解 在 VS Code 中使用 Agent,其中包括决策表,助你为任务挑选合适的 Agent 类型。
子 Agent
在处理复杂任务时,主 Agent 可以将子任务委派给“Subagents”(子 Agent)。子 Agent 是一个独立的 AI 实体,负责执行特定工作(如研究课题或分析代码),并将结果汇报给主 Agent。
子 Agent 的主要优势在于优化上下文。若无子 Agent,每一次文件读取、搜索结果及研究过程中的中间步骤都会堆积在主 Agent 的上下文窗口中,可能挤占重要信息。子 Agent 在独立的上下文窗口中运行,仅返回摘要,从而保持主对话聚焦于当前任务。
子 Agent 的关键特征:
- 上下文隔离:每个子 Agent 拥有独立的上下文窗口,不继承主 Agent 的对话历史或指令,仅接收任务提示词。
- 同步执行:主 Agent 会等待子 Agent 的结果再继续,因为其发现通常指导下一步行动。
- 并行执行:VS Code 可同时生成多个子 Agent 以并行处理任务,例如同时分析安全性、性能和可访问性。
- 聚焦结果:仅将最终结果返回给主 Agent,保持主上下文精简并降低 Token 消耗。
例如,内置的规划 Agent(Plan agent)会利用子 Agent 在制定实施计划前进行研究与分析。每个子 Agent 自主运行,仅汇报其发现。
进一步了解 使用子 Agent。
代码优先与 Agent 优先
在开发流程中融入 AI 的方式多种多样,最佳选择取决于你的偏好与具体任务。在 VS Code 中主要有两种支持不同工作流的 AI 使用模式:
-
代码优先(Code-first):你在编辑器中编写代码,并将 AI 作为编码助手,协助实现功能、修复 Bug 和重构代码。你的主要交互界面是用于审阅和编辑代码、测试及调试的编辑器。你利用 AI 来强化现有的编码工作流。
-
Agent 优先(Agent-first) 或 任务优先(Task-first):你在聊天中描述高层级任务与需求,并将其交给 AI Agent。Agent 负责规划、实施与验证结果。你的主要交互界面是用于组织工作的聊天和会话列表,而编辑器则作为次要界面,仅在必要时用于审阅和微调 AI 的实施成果。你利用 AI 来转变工作方式,聚焦于定义问题与审核解决方案。
Agents 窗口专为 Agent 优先模式构建,深度集成于 VS Code 之中。它提供了一个专注的环境来管理所有项目的 Agent 会话,并以聊天作为交互的核心界面。Agents 窗口与经过代码优先优化的主VS Code 窗口相辅相成。
两个界面共享会话以及设置、快捷键绑定等 VS Code 配置,因此无需非此即彼。当你需要全功能编辑、调试、Notebook、扩展生态及远程开发,并希望 AI 辅助编码时,请使用编辑器窗口;当你希望以提示词思考、跨项目编排工作,并希望将 AI 定制项(如插件、技能和 MCP)置于核心位置时,请使用 Agents 窗口。
记忆(Memory)
Agent 利用记忆机制在会话之间保持上下文。Agent 不会每次会话都从头开始,而是能回忆起你的偏好,应用以往任务的经验教训,并逐步积累关于你代码库的知识。
VS Code 支持两种互补的记忆系统:
- 记忆工具(Memory tool):一种内置工具,可将笔记存储在本地机器上,按三个范围组织:
- 用户记忆(User memory) (
/memories/):跨所有工作区和会话持久化。前 200 行会自动加载到每个会话中。 - 仓库记忆(Repository memory) (
/memories/repo/):作用于当前工作区,跨会话持久化。 - 会话记忆(Session memory) (
/memories/session/):作用于当前会话,会话结束时清除。
- 用户记忆(User memory) (
- Copilot Memory:一种由 GitHub 托管的记忆系统,用于捕获跨 Copilot 表面(编码 Agent、代码审查、CLI)的特定仓库洞察。该数据在 GitHub Copilot 生态(不仅限于 VS Code)中共享。
进一步了解 VS Code Agents 中的记忆功能。
规划(Planning)
对于复杂任务,直接生成代码可能导致实现不完整或架构决策失误。内置的 Plan Agent(规划 Agent)会与你协作,在进行任何代码更改前先研究任务并制定详细的实施计划。这能确保需求被充分理解、边缘情况被识别,且在 Agent 开始编写代码前双方对实施方案达成一致。
Plan Agent 采用四阶段迭代工作流:
- 发现(Discovery):利用只读工具和代码库分析来研究任务。
- 对齐(Alignment):提出澄清性问题以解决歧义。
- 设计(Design):起草结构化的实施计划。
- 优化(Refinement):根据你的反馈迭代改进计划。
Plan Agent 在计划经过审阅和批准之前不会更改代码。一旦批准,你可以将计划移交给默认 Agent,或保存以供进一步完善。
进一步了解 使用 Agent 进行规划。