托管代理框架与自托管代理循环:你得到什么,失去什么

“自托管代理”这个说法如今至少隐藏了三种不同的架构。你可以使用由 OpenAI 托管计算资源的托管式执行框架,也可以使用连接到你自己运营的基础设施的托管式执行框架,或者自行运行执行框架和代理循环。这些选择在控制权、恢复能力、上下文管理、安全性、延迟和运维负担方面有着截然不同的影响。
错误:把自托管当作一个单一决策
在传统软件中,“自托管”通常意味着应用程序运行在你控制的基础设施上。代理系统使这个定义变得复杂,因为运行时可以被拆分。模型与工具的循环可以在一个地方运行,而代码执行、文件和私有网络访问则在另一个地方进行。
OpenAI 当前的 Agents API 架构明确体现了这种拆分:OpenAI 运行执行框架,而执行环境可以不存在、由 OpenAI 托管或自托管。因此,自托管环境并不意味着代理循环是自托管的。
这种区分很重要,因为许多团队选择了比实际需要更复杂的运行时。他们想要私有网络访问或自定义软件包,于是断定整个代理都必须自托管,结果意外地承担了本可以保持托管的上下文管理、编排、恢复和生命周期管理。
三种常被称为“自托管”的架构
| 架构 | 谁运行执行框架? | 代码/文件在哪里执行 | 你主要拥有什么 |
|---|---|---|---|
| 托管式执行框架 + 托管式环境 | 平台 | 平台托管的沙箱 | 应用程序、工具、产品逻辑、授权 |
| 托管式执行框架 + 自托管环境 | 平台 | 你的容器、虚拟机、笔记本电脑、私有云或其他计算资源 | 环境配置、网络、文件和生命周期;平台仍然拥有执行框架 |
| 自行运营的执行框架/代理循环 | 你 | 你选择的环境 | 执行框架进程、编排、上下文策略、托管、恢复、执行和应用程序生命周期 |
双平面模型
将执行框架平面与执行平面分开
| 平面 | 它拥有什么 | 需要问的问题 | |
|---|---|---|---|
| 执行框架平面 | |||
| 执行平面 | |||
| 应用平面 |
托管式执行框架:你实际获得了什么
托管式执行框架消除的不仅仅是一个 while 循环。OpenAI 当前的 Agents API 管理会话、编排、上下文压缩和恢复。Anthropic 在托管代理方面的工作描述了同样的更广泛动机:执行框架包含关于模型行为的假设,而这些假设需要随着模型的改进而演变。
这意味着好处不仅仅是更少的代码行数。平台可以更新运行时行为、长周期上下文处理、子代理协调和恢复,而无需每个应用团队重新构建这些机制。
- 更少的应用自有编排代码。
- 托管的持久会话行为。
- 托管的上下文压缩和恢复。
- 能够随模型能力演变的运行时。
- 更简单地采用平台原生的子代理和长时间运行代理功能。
- 对于差异化不在于执行框架本身的团队,可能降低运维负担。
托管式执行框架:你需要放弃什么
将执行框架委托出去,也意味着委托出部分控制权。你的应用不再拥有迭代、上下文策略、编排和运行时演进的每一个细节。平台更新可以改进系统,但也可能改变你的产品隐式依赖的行为。
这带来了一种不同的工程需求:强大的评估、明确的产品边界,以及一个集成层,防止托管会话行为成为你的业务事实来源。
| 托管式执行框架的权衡 | 在运维层面意味着什么 |
|---|---|
| 更少的循环控制 | 你不能假设每个编排细节都由应用定义 |
| 平台演进 | 执行框架行为可能在你的代码不变的情况下改进或改变 |
| 供应商特定的生命周期 | 会话、事件和恢复语义成为集成接口的一部分 |
| 可观测性边界 | 平台追踪必须与应用审计数据关联 |
| 可移植性成本 | 以后迁移到另一个执行框架可能不仅仅是更换模型端点 |
自托管执行环境:中间架构
OpenAI 的自托管环境模型很重要,因为它将私有计算与执行框架所有权解耦。平台仍然运行 Codex 执行框架,而执行器在你的环境中运行,并通过出站连接接收命令。
你控制资源调配、文件、依赖、网络访问和清理。因此,执行框架可以针对私有基础设施或自定义软件工作,而无需将整个代理运行时迁移到你的应用中。
代价是生命周期责任。你的应用必须将会话映射到计算资源,避免重复调配,重新连接环境,协调关闭,并保留任何必须比环境存活更久的文件。
何时自托管执行就足够了
- 代理需要访问私有 VPC 或内部服务。
- 代理需要自定义二进制文件、软件包、驱动程序或系统软件。
- 工作负载必须在你控制的硬件或云账户上运行。
- 文件必须保留在受控环境中。
- 你需要自己的沙箱提供商或隔离模型。
- 你想要平台管理的编排,但由基础设施控制的执行。
何时你可能也需要拥有执行框架
当执行框架本身成为产品差异化或约束集的一部分时,拥有执行框架就变得合理。OpenAI 当前的运行时概览将 Codex SDK 定位为在你运营的基础设施中运行 Codex 执行框架,而当你想要自己拥有代理循环时,Responses 是更低层级的选择。
关键在于识别一个真正存在于执行框架层面而非执行层面的需求。
| 需求 | 执行层面问题还是执行框架层面问题? | 可能的方向 |
|---|---|---|
| 私有数据库访问 | 执行层面 | 托管式执行框架 + 自托管环境可能就足够了 |
| 自定义 Linux 软件包 | 执行层面 | 托管式执行框架 + 自托管环境 |
| 自定义 GPU 硬件 | 执行层面 | 在支持的情况下使用托管式执行框架 + 自托管环境 |
| 自定义代理停止逻辑 | 执行框架层面 | 自行运营的执行框架 / 自定义循环 |
| 每一步都进行跨提供商模型路由 | 执行框架层面 | 自定义循环或你运营的执行框架 |
| 自定义上下文压缩算法 | 执行框架层面 | 如果托管运行时无法暴露该能力,则自行运营执行框架 |
| 产品所需的确定性编排语义 | 执行框架层面 | 自行运营的执行框架或严格控制的自定义循环 |
| 仅本地部署且不依赖托管式执行框架的产品 | 执行框架层面 + 执行层面 | 自行运营的运行时 |
控制升级测试
使用满足实际需求的最少自托管架构。一次只升级一层控制。
控制升级测试
当你拥有执行框架时,运维负担会非线性增长
自运营循环在演示中听起来很简单:调用模型、检查工具调用、执行工具、追加结果、重复。生产环境增加了持久状态、重试、重复事件、取消、审批、上下文溢出、工具超时、进程重启、跟踪持久化、背压、并发工作和部分副作用后的恢复。
Anthropic 的长期运行代理研究反复表明,框架设计对性能有实质性影响。他们在长期运行应用程序开发方面的工作使用显式规划、结构化产物和评估代理,因为朴素循环往往会丢失进度或过早终止。因此,框架是生产逻辑,而不是管道。
| 如果你拥有框架,你还需要回答 | 为什么重要 |
|---|---|
| 持久会话状态 | 进程会重启;长期运行的工作必须正确恢复 |
| 上下文压缩 | 历史最终会超出实际工作上下文 |
| 工具幂等性 | 重试不得重复不可逆的副作用 |
| 取消和中断 | 用户和系统需要停止或重定向工作 |
| 部分执行后的恢复 | 即使代理从未收到结果,工具也可能成功 |
| 并发 | 多个任务、工作者或代理可能触及共享状态 |
| 可观测性 | 最终输出不足以调试运行时故障 |
| 版本控制 | 即使提示保持不变,框架更新也可能改变行为 |
| 评估 | 运行时变更需要在代表性轨迹上进行回归测试 |
安全边界:自托管计算不会自动使代理私有
自托管执行环境控制命令运行的位置和文件所在的位置,但托管框架和模型交互仍然跨越服务边界。因此,团队应明确映射数据流,而不是将“自托管”用作隐私属性的简写。
OpenAI 的自托管执行器使用受限的环境凭据和出站连接。这是有用的隔离,但你的应用程序仍然需要自己的规则来处理机密、私有网络暴露、用户到环境的隔离、文件保留、工具授权和数据分类。
延迟和成本:控制可以移动瓶颈,而不是消除瓶颈
自托管可能会减少一些数据路径或环境启动成本,但也可能增加配置时间、WebSocket 生命周期、冷启动、沙箱清理、可观测性基础设施和工程开销。托管环境可能每单位计算成本更高,但在低量或不规则量下运营成本更低。
正确的比较是总系统成本:模型和工具使用、环境时间、基础设施、工程努力、待命负担、故障恢复以及较慢迭代的成本。
生产决策矩阵
| 约束 | 托管框架 + 托管环境 | 托管框架 + 自托管环境 | 自运营框架 / 循环 |
|---|---|---|---|
| 最快进入生产 | 强 | 中等 | 最弱 |
| 私有网络执行 | 弱 / 取决于连接设计 | 强 | 强 |
| 自定义包 / 系统软件 | 中等 | 强 | 强 |
| 框架级控制 | 低 | 低 | 最高 |
| 运营负担 | 最低 | 中等 | 最高 |
| 可移植性 | 最低 | 中等 | 如果有意设计,可能最高 |
| 上下文策略控制 | 平台管理 | 平台管理 | 应用程序控制 |
| 执行基础设施控制 | 低 | 高 | 高 |
| 从托管框架更新中受益的能力 | 最高 | 最高 | 你负责采用 |
| 最适合 | 在产品/工具层差异化的团队 | 需要私有/自定义计算而不拥有编排的团队 | 运行时语义本身就是需求的团队 |
混合不是妥协——它通常是清晰的架构
托管框架与自托管执行不是“半自托管”。这是有意的关注点分离。平台拥有长周期代理运行时的复杂性,而你的基础设施拥有执行、私有连接和文件。
该边界类似于其他云架构:托管控制平面,客户控制的数据或执行平面。重要的设计工作是定义它们之间的契约——会话身份、环境身份、凭据、文件、工具权限、生命周期事件和清理。
什么会改变这个答案?
如果托管框架暴露更多的运行时控制,如果自托管框架获得更简单的持久会话和恢复原语,或者如果法规要求整个代理循环和模型交互保持在你运营的基础设施内,那么建议会改变。
它也会随着模型能力的变化而变化。Anthropic 明确指出,随着模型改进,harness 假设可能会过时。今天必不可少的控制机制,以后可能变得不再必要,而新的模型能力则可能产生新的治理要求。
局限性
本文区分的是架构职责;它并不声称某一种托管模型普遍更安全、更便宜或更可靠。这些结果取决于实现、工作负载、合规要求、团队技能和提供商行为。
OpenAI Agents API 仍处于公开测试阶段,不同供应商的托管代理产品暴露出不同的边界。双平面模型旨在帮助比较这些架构,而不假设每个供应商都使用相同的术语。
结论
有用的问题不是“我们应该自托管代理吗?”而是:我们实际需要控制哪个平面?
如果需求是私有计算、自定义包、本地文件或内部网络访问,就自托管执行平面,并保持 harness 托管。如果需求是编排语义、上下文策略、提供商控制或运行时生命周期本身,那么 harness 所有权可能是合理的。只按需求所要求的程度升级控制。
常见问题
托管 harness 与自托管代理运行时
OpenAI Agents API 的自托管环境是自托管代理吗?
什么时候自托管环境就足够了?
什么时候我应该自己运行 harness?
自托管会自动提高安全性吗?
拥有代理循环的主要运营成本是什么?
术语表
关键架构术语
- Harness 平面
- 负责循环执行、编排、上下文管理、会话连续性和恢复的代理运行时层。
- 执行平面
- 运行命令、执行代码以及访问文件、包和本地资源的环境。
- 托管 harness
- 其运行时、会话管理和编排由平台提供商运营的代理 harness。
- 自托管环境
- 由应用程序所有者运营的计算和文件,而单独的代理 harness 可能仍托管在其他地方。
- 自运营 harness
- 其循环、托管、上下文策略和生命周期由应用程序团队运营的代理运行时。
- 控制升级测试
- 一种决策方法,仅当需求无法在较低控制层满足时,才增加基础设施和运行时所有权。
主要来源与延伸阅读
OpenAI — Agents API 架构当前托管 harness、执行环境和应用服务器之间的分离。
OpenAI — 自托管沙箱客户运营的执行环境如何连接到托管 harness,以及哪些生命周期职责仍由应用程序承担。
OpenAI — 沙箱生命周期自托管计算的配置、重新连接、防止重复环境和清理职责。
OpenAI — 代理运行时选项按托管与应用程序运营职责对 Agents API、Codex SDK 和 Responses API 的当前比较。
OpenAI — 作为平台的 Codex面向希望获得更深运行时控制的应用程序的开源 Codex harness 和集成层。
Anthropic — 扩展托管代理:将大脑与手解耦关于托管代理架构的讨论,以及为什么 harness 假设需要随模型能力而演进。
Anthropic — 面向长期运行智能体的高效执行框架工程经验表明,长期运行智能体的性能在很大程度上取决于执行框架的设计与持久化工件。
Related Articles

搜索引擎优化:实现顶级排名的可靠工作流程
搜索引擎优化(SEO)的详细分析,包括其技术基础、网络爬虫的作用,以及实现有机搜索排名前列的战略步骤。

全面评估指南:精通LLM性能评估
本指南详细介绍了评估工具(Evaluation Harness),这是一个在企业级LLMOps流程中严格评估大型语言模型(LLM)能力的关键框架。您将学习其设置方法、最佳实践以及高级技巧,以确保模型基准测试与优化的可靠性。

Mastering the SEO Workflow: Essential Optimization Strategies for Organic Growth
A structured SEO workflow is crucial for sustainable organic growth. Learn the ten foundational strategies, from keyword research and technical optimization to content quality and performance analysis.

Ollama 并非产品:构建可投入生产的开源大语言模型应用
使用Ollama运行本地模型很简单。但构建一个可用于生产环境的开源大语言模型(Open-LLM)应用则更具挑战性:它需要RAG(检索增强生成)、访问控制、供应商抽象、评估、日志记录、部署规范,以及围绕模型构建受控的应用层。

RAG失败了——但究竟是哪一层真正失败了?一种诊断方法
当RAG答案出错时,将问题归咎于检索或模型过于笼统。这种诊断方法将来源覆盖、查询构建、检索、排序、上下文组装、生成、证据归因和时效性逐一隔离,从而使实际故障能够被复现并修复。

ZBT Z8102AX 双SIM卡故障切换:有效功能、缺失功能及固件需改进之处
ZBT Z8102AX是一款双SIM卡5G OpenWrt路由器,但仅具备双SIM卡硬件并不等同于智能故障切换。该路由器能识别SIM卡并成功连接,但自动切换、调制解调器恢复、基于信号的决策以及清晰的故障切换逻辑仍需更深入的测试。