代理

智能体(Agent)是一种能够自主规划并执行编码任务的 AI 系统。你只需为智能体设定一个高级目标,它便会将目标拆解为多个步骤,利用工具执行这些步骤,并在遇到错误时进行自我纠正。本文将解释智能体的核心架构:智能体循环、智能体类型、子智能体、记忆和规划。

VS Code 提供了两种可自由切换的界面,让你能够以最适合自己的工作流与智能体进行协作。

  • 聊天视图:当你正在编写代码,并希望 AI 在编辑器、调试器和扩展旁边提供辅助时,请留在 VS Code 主窗口中。
  • 智能体窗口(预览版):当你希望以提示词(Prompt)思维为主,并在多个项目中编排智能体会话时,可切换至“智能体优先”的界面。

智能体循环

当你向智能体下达任务时,它会遵循“智能体循环”(Agentic Loop)。这种模式在现代 AI 助手中非常普遍。在 VS Code 中,智能体是负责规划和执行操作的系统,而语言模型则负责生成指导这些操作的响应。

在每一步,智能体都会评估进展并选择下一个操作。它可能会打开一个文件以了解 API,进行编辑,然后运行命令以验证更改是否有效。每次操作的输出都会成为下一次决策的输入。

Diagram showing the agentic loop: User prompt -> Agent reasoning -> Tool calls (read files, edit code, run tests) -> Agent updates based on tool results -> Final output for user review

智能体循环通常包含三个高级阶段

  1. 理解 (Understand)。智能体读取文件、搜索代码库并查阅文档,以了解需要更改的内容。
  2. 行动 (Act)。智能体修改代码、运行终端命令、安装依赖项,或通过工具调用外部服务。
  3. 验证 (Validate)。智能体运行测试、检查编译器错误并审查自己的更改。如果出现问题,它将继续迭代。

智能体利用语言模型对最佳行动方案进行推理。然而,如果缺乏与环境交互的能力,模型仅能提供通用的回答。借助工具,智能体可以在每一步发起工具调用,从而收集信息并执行如读取文件、修改代码、运行终端命令及调用外部服务等操作。

智能体根据需要将这些操作串联起来,直到完成任务。回答关于代码库的问题可能只需要读取几次文件;而实现一个新功能则通常需要循环往复地进行编辑、运行测试、诊断失败并再次编辑,直至测试通过。

在后台,VS Code 将当前上下文汇编成提示词并发送给语言模型。模型会以文本、代码编辑或工具请求的形式做出响应。当工具运行后,其输出会被添加到下一次迭代的上下文中,这一循环将持续进行,直到任务完成。

在整个过程中,你始终拥有控制权。你可以发送新消息来重定向智能体、添加上下文或建议不同的方案。有关审查更改和管理智能体行为的更多信息,请参阅信任与安全

自定义智能体循环

智能体循环并非一成不变,可能会因项目而异。你可以通过以下不同选项来个性化智能体的行为:

  • 自定义智能体:允许你定义不同的角色(Persona),每个角色都有自己的指令、可用工具、语言模型,并可选择将其移交给其他智能体。
  • 通过 智能体技能,你可以为智能体教授针对特定领域或任务的新能力。
  • 钩子 (Hooks):可在智能体循环的特定生命周期点运行自定义命令。

了解更多关于自定义概念的内容。

智能体类型

根据你需要结果的时机以及希望监管的程度,智能体可以在不同的环境中运行。两个关键维度是:智能体运行的位置(你的本地机器或云端)以及你与它的交互方式(交互式或在后台自主运行)。

Diagram showing the different agent types: Local agents (interactive in VS Code), Background agents (autonomous on your machine), Cloud agents (run on GitHub's infrastructure), and Third-party agents (connect external AI providers).

了解更多关于在 VS Code 中使用智能体的信息,包括可以帮助你选择合适智能体类型的决策表。

子智能体

在处理复杂任务时,主智能体可以将子任务委派给子智能体。子智能体是一个独立的 AI 智能体,专门执行针对性工作(例如研究某个主题或分析代码),并将结果反馈给主智能体。

子智能体的主要优势在于上下文优化。如果没有子智能体,研究过程中的每一次文件读取、搜索结果和中间步骤都会累积在主智能体的上下文窗口中,可能会挤占重要信息。子智能体在独立的上下文窗口中执行工作并仅返回摘要,从而使主对话始终专注于手头的任务。

子智能体的关键特性

  • 上下文隔离:每个子智能体都在自己的上下文窗口中运行。它不会继承主智能体的对话历史或指令,只接收任务提示词。
  • 同步执行:主智能体会等待子智能体的结果后再继续,因为子智能体的发现通常会决定下一步行动。
  • 并行执行:VS Code 可以并行生成多个子智能体,同时处理安全分析、性能优化和可访问性检查等任务。
  • 聚焦结果:只有最终结果会返回给主智能体,这保持了主上下文的专注并减少了 token 消耗。

例如,内置的 规划智能体 (Plan agent) 会在创建实施计划之前,利用子智能体进行研究和分析。每个子智能体独立工作,仅返回其调查发现。

了解更多关于使用子智能体的信息。

代码优先与智能体优先

在开发过程中使用 AI 的方式多种多样,最合适的方法取决于你的偏好和当前的任务。在 VS Code 中,有两种主要的方式来支持不同的工作流:

  • 代码优先 (Code-first):你在编辑器中编写代码,并将 AI 作为编码助手来帮助你实现功能、修复错误和重构代码。你的主要界面是用于审查、编辑代码、测试和调试的编辑器。你使用 AI 来增强你现有的编码工作流

  • 智能体优先 (Agent-first)任务优先 (Task-first):你在聊天窗口中描述(高级)任务和需求,并将其交给 AI 智能体。智能体负责规划、执行并验证结果。你的主要界面是聊天窗口和用于组织工作的会话列表,而编辑器则是辅助界面,用于在必要时审查和微调 AI 的实现。你使用 AI 来改变你的工作方式,专注于定义问题并审查解决方案

智能体窗口专为智能体优先的方法而构建,并原生集成在 VS Code 中。它提供了一个专注的环境来管理所有项目的智能体回话,并以聊天作为与智能体交互的核心界面。智能体窗口是对主 VS Code 窗口中聊天视图的补充,后者针对代码优先的方法进行了优化。

这两个界面共享会话以及 VS Code 配置(如设置和快捷键),因此你不必局限于其中任何一个。当你需要全功能的编辑、调试、笔记本、扩展生态系统和远程开发,并希望 AI 辅助编码时,请使用聊天视图。当你希望以提示词思维为主、在多个项目中编排工作,并将 AI 自定义配置(如插件、技能和 MCP)置于首位时,请使用智能体窗口。

聊天会话

聊天会话是与智能体的单次对话,包含所有提示词、响应以及在此过程中积累的上下文。每个会话都是独立的,拥有自己的上下文窗口,因此一个会话中的工作不会泄露到另一个会话中。会话是智能体工作的组织单元:你可以同时运行多个会话、在它们之间切换、通过分支会话来探索替代方向,以及回滚到之前的检查点。

由于聊天视图智能体窗口共享相同的会话,你可以在一个界面中开始任务,然后在另一个界面中继续。无论它们在哪里运行,会话列表都会为你提供所有会话的统一视图。

了解更多关于管理聊天会话的信息。

远程智能体回话

智能体回话不一定要在本地机器上运行。你可以在远程主机上运行回话,并从智能体窗口、浏览器或其他客户端连接到它们。当你希望利用远程机器的资源、在你离开时保持会话运行,或从不同设备监控进度时,这非常有用。远程机器必须保持开机并可通过网络访问。

VS Code 支持两种与远程智能体回话交互的方式:

方法 工作原理
智能体窗口
(通过远程连接)
通过 SSH 或开发隧道 (Dev Tunnel) 将智能体窗口连接到远程机器。智能体窗口会自动在远程主机上安装并启动 VS Code CLI,该程序运行一个管理会话的智能体宿主进程。

多个客户端可以同时连接到同一个智能体宿主,并使用开放的 智能体宿主协议 (AHP) 查看所有会话的同步视图。即使所有客户端断开连接,会话仍会在远程端继续运行。

了解更多关于连接到远程机器的信息。
Copilot CLI
远程控制
Copilot CLI 会话中使用 /remote on 命令将该会话镜像到 GitHub。这样,你就可以在本地机器上持续运行会话的同时,通过 github.com 或 GitHub 移动端 App 监控和引导该会话。

了解更多关于Copilot CLI 会话远程控制的信息。

内存

智能体利用记忆在不同对话之间保留上下文。与其每个会话都从头开始,智能体能够记住你的偏好、应用之前任务的经验教训,并随着时间的推移构建关于你代码库的知识。

VS Code 支持两种互补的记忆系统:

  • 记忆工具:一个内置工具,用于在本地机器上存储笔记,分为三个作用域:
    • 用户记忆 (/memories/):在所有工作区和对话中持久存在。前 200 行会自动加载到每个会话中。
    • 仓库记忆 (/memories/repo/):针对当前工作区,在对话间持久存在。
    • 会话记忆 (/memories/session/):针对当前对话,在对话结束时清除。
  • Copilot 记忆:一个托管在 GitHub 上的记忆系统,旨在跨 Copilot 界面(编码智能体、代码审查、CLI)捕捉特定于仓库的见解。这些见解可在 VS Code 之外的 GitHub Copilot 中共享。

了解更多关于VS Code 智能体中的记忆信息。

规划

对于复杂任务,直接生成代码可能导致实现不完整或架构决策错误。内置的规划智能体 (Plan agent) 会与你协作,在进行任何代码更改之前研究任务并创建详细的实施计划。这可以确保需求被理解、边界情况被识别,并且在你和智能体开始编写代码之前达成一致。

规划智能体使用 4 阶段的迭代工作流:

  1. 发现:使用只读工具和代码库分析来研究任务。
  2. 对齐:提出澄清问题以解决歧义。
  3. 设计:起草结构化的实施计划。
  4. 精炼:根据你的反馈对计划进行迭代。

在计划被审查并批准之前,规划智能体不会进行任何代码更改。一旦批准,你可以将计划移交给默认智能体,或保存以供后续进一步精炼。

了解更多关于智能体规划的信息。

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