内容提要
VS Code 推出 Agent Host 与开放协议 AHP,使代理会话在关闭文件夹或窗口后仍持续运行,并支持跨客户端同步、本地或远程执行。该架构将代理运行时从扩展宿主分离,允许多窗口连接同一宿主,兼容 Copilot 和 Claude 等不同代理框架。用户可通过编辑器、Agents 窗口或浏览器监控和交互,AHP 提供标准化状态和动作流,便于第三方客户端集成。
延伸解读
架构分离的意义
Agent Host 将代理运行时从扩展宿主中分离,使得代理会话不再依赖特定编辑器窗口。这一架构调整意味着关闭文件夹或窗口不会中断正在运行的代理任务,多个窗口可以共享同一个宿主进程,从而避免了每个窗口重复加载代理基础设施,提升了资源利用效率。
跨客户端同步与远程访问
通过 Agent Host Protocol (AHP),VS Code 实现了编辑器、Agents 窗口和浏览器客户端之间的会话同步。用户可以在本地启动代理,然后从远程机器或浏览器继续监控和交互,无需复制会话。这种设计支持了更灵活的工作流,例如在本地启动任务后,在外出时通过浏览器查看进度。
开放协议与第三方集成
AHP 是一个开放协议,允许第三方客户端连接 Agent Host 来监控会话、审查更改、批准工具调用等。协议采用状态优先的设计,将代理状态标准化为可展示的状态和有序动作,使得不同客户端能够一致地呈现会话。这为构建自定义代理界面或集成到其他工具提供了基础。
多代理框架共存
Agent Host 支持多种代理框架,如 Copilot 和 Claude,每个框架保留其独特的 SDK、代理循环和工具,但通过适配器转换为统一的 AHP 会话模型。这意味着用户可以在 VS Code 中体验不同代理的独特能力,同时获得一致的会话管理体验,无需为每个框架单独学习操作方式。
Q&A
什么是 VS Code 的 Agent Host?
Agent Host 是 VS Code 引入的一个独立进程,用于拥有和管理代理会话。它使代理会话在关闭文件夹或编辑器窗口后仍能继续运行,并支持跨客户端同步、本地或远程执行。
Agent Host 解决了什么问题?
在引入 Agent Host 之前,代理运行时绑定在编辑器窗口的扩展宿主中,关闭窗口会停止代理。Agent Host 将代理运行时从扩展宿主分离,使会话不再依赖特定窗口,支持多窗口连接同一宿主,并允许会话在后台持续运行。
Agent Host 与扩展宿主有何不同?
扩展宿主是 VS Code 运行扩展的进程,它将代理运行时绑定到单个窗口,关闭窗口会停止代理。Agent Host 是一个独立的进程,拥有代理会话,不依赖特定窗口,多个窗口可以连接到同一个宿主,从而支持会话的持久性和跨窗口同步。
Agent Host 如何支持远程会话?
Agent Host 可以运行在远程机器上,作为独立服务器,用户可以从桌面或浏览器连接,以检查进度、审查更改和管理会话。这通过 AHP 协议实现,支持 SSH、dev tunnels 和 web 等连接方式。
什么是 Agent Host Protocol (AHP)?
AHP 是一个开放协议,用于连接 Agent Host 和客户端。它标准化了代理会话的状态和动作流,使不同客户端(如编辑器、Agents 窗口、浏览器)能够同步和交互。AHP 是状态优先的,提供 URI 可寻址的通道,如会话、聊天、终端和变更集。
AHP 与传统的代理协议有何不同?
大多数代理协议描述客户端与代理之间的一对一对话,而 AHP 解决的是多个独立客户端围绕同一个长期运行的代理会话进行协调的问题。AHP 是状态优先的,提供标准化的状态和动作流,使不同客户端能够收敛到同一视图。
如何在 VS Code 中体验 Agent Host 的会话持久性?
在 VS Code 中打开一个文件夹,选择 Copilot 并启动代理会话。在代理工作时关闭文件夹(但保持 VS Code 运行),会话会继续在 Agent Host 中运行。重新打开文件夹后,会话状态和进度仍然存在,并可在 Agents 窗口中同步查看。
Agent Host 如何支持多种代理框架(如 Copilot 和 Claude)?
Agent Host 通过适配器将不同代理框架的事件转换为统一的 AHP 会话模型。每个框架保留自己的 SDK、代理循环、工具和特定功能,而 Agent Host 和 AHP 提供一致的会话体验。
AHP 的客户端如何与 Agent Host 交互?
客户端通过 AHP 协议连接到 Agent Host,订阅后接收当前状态的快照和有序的动作流。客户端可以观察进度、贡献动作、批准工具调用或取消工作。AHP 提供 URI 可寻址的通道,并支持能力协商。
如何开始使用 AHP 构建自定义客户端?
运行 `code agent host`(或 `code-insiders agent host`)启动独立 Agent Host,然后使用 AHP 客户端库(如 ahp、ahp-types、ahp-ws 等)连接。AHP 是开放的,允许第三方客户端实现。