会话存储架构的设计迭代与抽象化原则

在Anthropic关于构建研究代理的演示中,首先探讨了会话设计在第一版和第二版迭代中的核心变化。主要改进在于抽象化并隔离存储机制,将不同组件进行模块化处理,以便未来扩展事件存储功能时,不会与会话工作的核心机制紧密耦合。为了实现这一目标,团队应用了构建和虚拟化接口的原则,不仅跨越服务边界,还深入到了事件层(event layer)。这种架构设计确保了系统的灵活性和可扩展性。

"The main thing that changed was that we wanted to abstract away as many things and compartmentalize them into different components... We basically apply the same principle of building and virtualizing interfaces all the way down."

这种底层架构的优化为后续的云托管代理(Managed Agents)提供了坚实的技术基础,使得开发者能够专注于业务逻辑而非基础设施的维护。

快速构建笑话代理:从创建到运行的全流程演示

为了展示云托管代理的易用性,演示者现场构建了一个根据主题生成笑话的Agent。用户只需输入指令“build me an agent that tells me jokes every time given a topic”,系统即可自动生成System Prompt(系统提示词)、命名代理、选择模型,并赋予其访问Agent工具集的权限。随后,演示者配置了沙箱环境模板,虽然为了演示方便选择了无限制访问权限(unrestricted access),但强调在生产环境中应严格收紧对特定域名或MCP服务器的访问控制。

"All you have to do is start a session with the agent, send events, get back events. Everything else is managed by us."

当用户输入“Tell me jokes about cats”时,模型迅速思考并输出了相关笑话。这一过程证明了云托管代理接管了所有基础设施、主机环境、沙箱管理、扩展性及事件日志存储,开发者仅需关注产品构建。这种“发送事件-获取结果”的交互模式极大地降低了开发门槛。

研究代理工作坊:六步构建复杂多智能体系统

接下来的实操环节由Gabe主持,旨在通过一个名为“Research Desk”的仓库演示如何构建复杂的应用程序。参与者需克隆代码库并运行npm install或bun i安装依赖,随后启动开发服务器。整个工作坊分为六个阶段(Acts),利用Claude在自动模式下跟踪进度。

  1. 自定义聊天界面:首先构建一个可与Agent对话的Chat-like接口。
  2. 多智能体生态系统:将单个Agent扩展为能向子代理委派任务的多Agent系统。
  3. 技能增强:赋予Agent特定技能,如调用SEC网站获取并分析个股的财务报表(Form filings)。
  4. 异步任务处理:利用增强后的Agent运行耗时较长的异步代理任务。
  5. Map-Reduce接口:展示如何通过一个主Agent委托多个子代理进行并行处理,实现类似Map-Reduce的工作流。
  6. 部署API与定时任务:最后介绍如何通过Deployment API设置定期工作流,使代理能按既定频率运行长期分析任务。

"We're going to start with building a custom chat-like interface... then we're going to augment that agent into a multi-agent ecosystem."

这一系列步骤展示了从简单交互到复杂、异步、多代理协作系统的完整构建路径,强调了自定义Harness(控制层)在编排工作和管理多会话交互中的核心作用。

环境配置与前置准备

在构建研究代理(Research Agent)的过程中,首要步骤是确保所有先决条件已正确设置。Claude 代理会协助用户将 m.example 文件复制为 .env.local,并指导填入关键凭证。这包括粘贴 API Key,以及填写 SEC(美国证券交易委员会)API 所需的身份信息——即用户的姓名和邮箱。这一要求旨在让 SEC 能够识别调用其 API 的主体身份,确保合规性。

"You're going to want to paste in your API key... you have to put in your name and email."

完成这些配置后,用户即可启动应用。通过克隆仓库并进入 research-desk 目录运行 bun run rundev,即可启动一个 Web 界面。该界面是后续与代理交互的基础环境。

托管架构与部署选项

关于 Claude Managed Agents 的运行基础设施,演示者澄清了多种可能性。虽然 Anthropic 提供自己的托管服务(OneP offering),但用户也可以选择 AWS Cloud Platform,利用自身的 AWS 信用额度进行部署。此外,平台还支持 Self-hosted Sandboxes(自托管沙箱) 方案。

这意味着用户可以将自己的沙箱环境通过不同提供商(如 Burcell、Modal、Daytona 等)接入,甚至可以在 Google Cloud 或 AWS 环境中运行沙箱。这种灵活性允许开发者根据需求选择最适合的计算资源和管理方式,而不仅仅局限于 Anthropic 的默认基础设施。

Agent 创建与 SSE 通信机制

点击按钮后,系统会创建一个包含两个核心部分的代理环境:一是 Sandbox 模板(定义沙箱外观及权限,如访问 SEC 网站和预装 Python 包),二是 Agent 本体(初始状态下无额外工具或技能,仅含基本提示词)。

为了实现类似聊天的交互体验,应用主要依赖 Event Stream(事件流) 进行通信。后端监听来自 API 的事件连接,并将这些 SSE(Server-Sent Events)流直接转发回前端浏览器进行渲染。当用户在聊天框输入内容并按回车时,系统会发送一个包含用户消息内容的 user message event。通过实现这一机制,用户可以立即与代理进行基础对话。

技能增强与多智能体协调

为了超越简单的聊天功能,实现长期异步任务(持续数小时至数月),需要对代理进行增强。下一步是赋予代理 SEC 调用技能,并引入 Multi-Agent Coordination(多智能体协调)。Claude 会实现一个名为 dispatch_analysis 的自定义工具,并更新主代理的描述以创建新版本。

"We want to use multi-agent coordination so that our session can delegate work to sub agents..."

新版本代理将具备调用多个子代理的能力,甚至包含对自身的引用(Self-reference)。这种设计允许主代理在任务复杂或未知时,动态生成子代理副本以执行特定工作。通过这种方式,系统能够构建更复杂的自定义测试框架(Harness),实现从单一任务到复杂协作的智力层级跃升。

技能复用与长期记忆共享机制

在构建研究代理时,系统并不会将上一轮会话的完整转录副本复制到子代理中,而是仅复制工具描述、Schema 以及提示词(Prompt)到新的子代理实例中。这种设计确保了资源的高效利用与逻辑的清晰隔离。

"It doesn't copy the transcript of that session into the sub agent. It just copies over the tool description and the schemas uh and the prompt uh into that sub agent."

为了支持跨会话的知识积累,平台引入了长期记忆存储(Long-running Memory Store)。这一机制允许不同的会话共享知识,例如让各个代理学会识别不同的金融工具(Financial Instruments)。演示者强调,通过这种共享机制,用户可以在长达数月甚至数年的时间里持续优化代理的表现。当技能(Skill)被重新配置后,系统会创建所有必要资源,包括子代理、记忆存储等。此时,主代理拥有其专属的提示词和模型配置,并具备调用已定义技能的能力。

基于 Outcome 的异步任务与自我监督

为了实现非聊天式的异步长周期任务,系统采用了名为 Outcome(结果/成果) 的机制。这是一种实现自我监督(Self-supervision)的方法:用户定义任务目标、评估标准(Rubric)以及最大迭代次数。当主代理认为工作完成时,它会启动一个子代理来对照 Rubric 检查工作成果。如果未达标,系统将尝试重新执行。

在演示中,用户要求分析 Nvidia 的最新 SEC 季度文件。主代理首先检查长期记忆存储,确认是否已有相关分析以避免重复工作。随后,它决定利用子代理处理大部分繁重任务:启动一个金融专家分析/提取器(Financial Expert Analysis Agent)和一个风险评估代理。这种架构确保了主代理能够协调多个专业子任务,同时保持对整体流程的控制。

执行过程与结果验证闭环

在控制台的可观测性视图中,每一行代表一个线程(Thread),即子代理执行的工作单元。主代理在唤醒后接收来自各个子代理的信息,整合数据并生成所需的交付物:一是更新记忆库中的公司笔记,二是按照严格的结构化输出格式(JSON)生成评分卡并保存至指定位置。

"The cell supervision started. So it kicked off a sub agent to verify that the outcome that we defined is being met... and analyze all of work that was done in the session."

生成交付物后,系统启动自我监督流程。一个专门的验证子代理被激活,它审查 Rubric、分析会话中的所有工作记录及生成的工件(Artifacts)。最终验证确认评分卡已交付且数据定义明确,记忆更新正确。虽然演示中该过程仍在运行,但一旦完成,用户即可从会话中提取报告并下载。这种机制确保了异步任务结果的准确性与一致性。

托管代理的编排与技能发布

在演示的最后阶段,演讲者提到了一个称为“做梦(dreaming)”的功能环节。随后进入核心的编排部分,此时代理的技能已经发布完毕。在问答环节中,有观众询问获取API额度所需的时间。演讲者澄清说,尽管表单上显示需要一到两天,但实际上只需五分钟即可看到额度到账。这一细节对于开发者快速上手测试至关重要。此外,针对SEC(美国证券交易委员会)数据访问的凭证问题,演讲者指出对于该特定API,仅需提供电子邮件和姓名即可。在演示中直接将这些信息注入提示词(prompt),但在生产环境中,将采用更安全的“保险库”机制来处理敏感信息。

安全凭证管理:Vaults与域限制

为了解决生产环境中的安全问题,Anthropic引入了“保险库(Vaults)”概念。其工作原理是定义一个需要注入的环境变量,但不在代码中放置真实密钥,而是使用占位符(placeholder)。当Claude代理在工作时需要使用该环境变量时,系统会在特定的主机域名上将该占位符替换为真实值。这种机制确保了只有指定的域才能访问该秘密。例如,如果设定某个密钥仅用于SEC域名,而代理尝试在Anthropic.com上使用它,系统不会进行替换。这是一种类似API的操作方式:用户在控制台中创建保险库并获得ID,然后将该ID包含在会话中。这种方式允许代理通过CLI或沙箱环境安全地调用如Google Workspace等外部服务的API密钥,遵循相同的域限制替换方法。

Agent SDK与托管解决方案的关系

关于技术架构,有观众询问Claude代理SDK(Agent SDK)的具体能力范围以及它与当前托管解决方案的关系。演讲者解释称,Agent SDK是一个无头(headless)的Cloud Code版本。虽然它借鉴了Agent SDK的好处和经验教训,但Anthropic重新构建了运行环境(harness),使其成为一个更通用的框架,而不仅仅是针对编码任务。因此,这可以被视为一个独立的运行环境。Agent SDK本质上是一个可以在任何地方运行的二进制文件形式的Cloud Code,而当前的托管代理则是完全在Anthropic云端运行的一套全托管解决方案。两者保持紧密的技术联系,以便在整个平台范围内进行增强和改进。

多代理编排、错误纠正与集体记忆

在多代理协作中,观众关心如何防止代理陷入无限循环或消耗过多Token。演讲者表示目前尚未提供严格的预算控制功能(如限制每会话的金钱或Token上限),这部分逻辑通常由构建自定义运行环境的开发者自行编排。关于错误纠正,虽然目前不支持“倒带”或“重放(rewind and roll forward)”,但用户可以通过发送新的用户消息事件来引导(steer)代理,系统会将其排队处理。对于更复杂的“会话分叉”需求,Anthropic承认这是客户常问的功能,并确认该功能已在路线图(roadmap)中。最后,关于跨用户的集体记忆或知识库问题,演讲者明确表示该功能今天已经可用(We have it today),并在本次演示中实际使用了这一能力来增强代理的表现。

内存共享与跨会话知识整合

Anthropic Managed Agents 引入了一个记忆存储(Memory Store)机制,允许在不同会话之间共享知识。在演示中可以看到,各个子代理(sub-agents)会各自填充关于其已完成工作的个体信息。这种设计旨在让系统能够持续积累经验,而非每次会话都从零开始。为了进一步利用这些数据,Anthropic 提出了“做梦(Dreaming)”功能。该功能会在后台分析跨多个会话的转录文本和已创建的记忆,从而更新记忆库,确保未来的代理能够获取更准确的信息。随着不同代理遇到各种边缘案例(edge cases),它们可以集体相互学习,从而持续改进记忆存储的质量。这种机制使得系统具备了一种隐性的、随时间推移而增强的能力,尽管目前“做梦”功能主要局限于记忆存储层面。

结论

Anthropic Managed Agents 通过抽象存储与接口虚拟化,实现了基础设施的全托管。其核心优势在于极低的开发门槛:开发者仅需关注业务逻辑与事件交互,无需维护沙箱或扩展性。系统支持从单代理到多智能体协作的复杂编排,利用长期记忆存储与“做梦”功能实现跨会话知识积累及自我监督验证。尽管目前缺乏严格的Token预算控制,但凭借灵活的部署选项、安全的Vault凭证管理及已可用的集体记忆机制,该方案为构建长期运行的异步研究代理提供了坚实且可扩展的技术基础。