code Survey

2 papers

Code 领域综述:AI Agent 框架的自治-编排分化 #

1. 现状快照 #

2026 年上半年,开源 AI Agent 框架从 PoC 进入工程化阶段,两条路线正在分化:以 Hermes Agent 为代表的自治型 Agent 运行时追求跨会话自我改进、平台无关部署和 RL 训练闭环 [NousResearch-hermes-agent];以 OpenAI Agents SDK 为代表的声明式编排框架聚焦多 Agent 协作、安全护栏、可中断恢复和沙箱隔离 [openai-openai-agents-python]。两者都将 MCP 视为工具集成的一等公民,但在自治程度、状态管理和 Provider 绑定策略上做出了对称相反的选择。

2. Taxonomy #

维度定义 #

维度描述取值范围
A: 自治程度Agent 在无人工干预下的自主进化能力高自治(闭环学习)/ 低自治(声明式编排)
B: 架构风格核心代码的组织方式单体内聚 / 模块化解耦
C: Provider 绑定对特定 LLM Provider 的依赖程度模型无关 / Provider-First

论文在 Taxonomy 中的位置 #

项目A: 自治程度B: 架构风格C: Provider 绑定
Hermes Agent高自治:Skill 自动创建/patch + 持久记忆 + 用户建模 [NousResearch-hermes-agent]单体内聚run_agent.py 10K 行,传输/编排/恢复耦合 [NousResearch-hermes-agent]模型无关:200+ 模型,api_mode 分支适配 OpenAI/Anthropic/Codex [NousResearch-hermes-agent]
OpenAI Agents SDK低自治:声明式定义 + Guardrails 约束 + HitL 中断 [openai-openai-agents-python]模块化解耦:agent.py / run.py / run_state.py / tool.py 独立模块,mypy strict [openai-openai-agents-python]Provider-First:内部格式绑定 OpenAI Responses API,LiteLLM 作为 extension [openai-openai-agents-python]

Taxonomy 空位 #

A × B × C 组合现有覆盖空位状态
高自治 × 模块化 × 模型无关技术可行——将 Hermes 的闭环学习移植到模块化架构上
低自治 × 单体 × Provider-First价值不大——单体+绑定 Provider 的编排框架缺乏差异化
高自治 × 模块化 × Provider-First有空间——OpenAI 可以给 Agents SDK 加学习闭环
低自治 × 模块化 × 模型无关无(接近 LangChain 等但不在 scope 内)已被社区框架部分覆盖

3. 主线与分支 #

主线:Agent 框架从「调用 LLM+工具」走向「系统级运行时」 #

2025 年的 Agent 框架主要解决「如何调用 LLM + 工具」;2026 年的竞争焦点已转向更高层的系统性问题——持久化、学习、安全、多 Agent 协作、跨平台部署。两个 scope 内项目代表了这一转折的两条具体路径。

分支一:自我改进闭环(Hermes Agent) #

Hermes Agent 的核心命题是跨会话知识积累:Agent 完成复杂任务后自动创建 Skill(YAML+Markdown),后续使用中发现不足会自动 patch 改进 [NousResearch-hermes-agent]。MEMORY.md/USER.md 实现持久记忆与用户建模,将 Agent 从「一次性执行器」变为「随时间变好的助理」[NousResearch-hermes-agent]。配合 Atropos RL 环境和轨迹生成管线,形成从运行时经验到模型训练的完整数据闭环 [NousResearch-hermes-agent]

多平台接入(Gateway + BasePlatformAdapter,覆盖 Telegram/Discord/Slack/WhatsApp/飞书/钉钉等 20+ 平台)是此路线的差异化部署策略 [NousResearch-hermes-agent]

分支二:声明式多 Agent 编排(OpenAI Agents SDK) #

OpenAI Agents SDK 走声明式路线:用 @dataclass 定义 Agent 的指令、工具、护栏和委托关系,由 Runner 自动执行 turn loop [openai-openai-agents-python]。Handoff 机制允许 Agent 间委托并继承完整对话历史,与 Agent-as-Tool(子任务调用、原 Agent 保持控制权)形成互补 [openai-openai-agents-python]

安全层面,Guardrails 与模型执行并行运行不增加延迟;RunState 可序列化支持 human-in-the-loop 中断恢复 [openai-openai-agents-python]。v0.14 的 Sandbox 系统(Docker/E2B/Modal/Cloudflare 等 7+ 后端)提供隔离执行环境 [openai-openai-agents-python]

分支三:工具系统与 MCP 集成——两种工具哲学 #

Hermes 内置 40+ 工具,采用双路径执行(registry.dispatch + _invoke_tool),MCP 双向集成(既是客户端也是服务端)[NousResearch-hermes-agent]。OpenAI SDK 的工具系统更结构化:12 种 Tool 子类型统一通过 tool_execution.py + asyncio.gather() 并行执行,MCP 原生集成且运行时自动发现 [openai-openai-agents-python]

4. 跨论文对比表 #

维度Hermes AgentOpenAI Agents SDK
定位自治型 Agent 运行时声明式多 Agent 编排框架
核心 LOC~400K (Python) [NousResearch-hermes-agent]~87K src / ~245K total (Python) [openai-openai-agents-python]
测试 LOC未报告~158K (~1.8x 源码) [openai-openai-agents-python]
类型安全Dict 为主,缺乏类型注解 [NousResearch-hermes-agent]dataclass + Generic[TContext],mypy strict + pyright [openai-openai-agents-python]
模型支持数200+ (OpenAI/Anthropic/OpenRouter) [NousResearch-hermes-agent]100+ (OpenAI 原生 + LiteLLM/any-llm extension) [openai-openai-agents-python]
内置工具数40+ [NousResearch-hermes-agent]12 种 Tool 子类型 [openai-openai-agents-python]
多 Agent子代理委托 [NousResearch-hermes-agent]Handoff + Agent-as-Tool [openai-openai-agents-python]
安全护栏无形式化护栏InputGuardrail + OutputGuardrail,tripwire 机制 [openai-openai-agents-python]
自我改进Skill 自动创建/patch + 持久记忆 [NousResearch-hermes-agent]
会话持久化JSONL + SQLite FTS5 [NousResearch-hermes-agent]SQLite / OpenAI Conversations / Redis / SQLAlchemy / Dapr [openai-openai-agents-python]
中断恢复无 HitL 机制RunState 序列化 + 人工审批 [openai-openai-agents-python]
沙箱执行Docker / E2B / Modal / Cloudflare 等 7+ 后端 [openai-openai-agents-python]
MCP 集成双向(客户端+服务端)[NousResearch-hermes-agent]单向(客户端),hosted + local [openai-openai-agents-python]
多平台接入20+ 平台(Telegram/Discord/Slack/飞书等)[NousResearch-hermes-agent]无内置网关
实时语音WebSocket + gpt-realtime-1.5 [openai-openai-agents-python]
追踪系统组件级日志 [NousResearch-hermes-agent]内建 Trace → Span 层级结构 → OpenAI Dashboard [openai-openai-agents-python]
RL 训练管线Atropos RL + 轨迹生成/压缩 [NousResearch-hermes-agent]
并发模型单线程 Agent + ThreadPoolExecutor(8) 工具并行 [NousResearch-hermes-agent]asyncio 全栈 + asyncio.gather() 工具并行 [openai-openai-agents-python]
代码开源开源 (MIT) [NousResearch-hermes-agent]开源 (MIT) [openai-openai-agents-python]
可复现性复现(需自备 LLM API key)[NousResearch-hermes-agent]复现(需自备 LLM API key)[openai-openai-agents-python]

5. Strength-Weakness Matrix #

项目StrengthsWeaknessesBest-for Scenario
Hermes Agent(1) 闭环学习:Skill 自动创建/patch 实现跨会话进化 [NousResearch-hermes-agent];(2) 平台覆盖:20+ 平台统一网关 [NousResearch-hermes-agent];(3) RL 管线:Atropos 轨迹生成为模型训练提供数据闭环 [NousResearch-hermes-agent];(4) MCP 双向集成 [NousResearch-hermes-agent](1) 单文件 10K 行,可维护性差 [NousResearch-hermes-agent];(2) 缺乏类型系统,Dict 传递核心数据 [NousResearch-hermes-agent];(3) 工具执行双路径有逻辑重复 [NousResearch-hermes-agent];(4) 无安全护栏和 HitL 机制需要 7×24 多平台运行、随时间自我改进的个人 AI 助理;需要 RL 训练数据生成的研究团队
OpenAI Agents SDK(1) 声明式 API:dataclass 定义 Agent 极简 [openai-openai-agents-python];(2) 安全层完善:Guardrails + HitL + Sandbox [openai-openai-agents-python];(3) 工程质量高:158K LOC 测试 + mypy strict [openai-openai-agents-python];(4) 生态丰富:7 种 Sandbox 后端 + 5 种 Session 后端 [openai-openai-agents-python](1) 深度绑定 OpenAI Responses API 格式 [openai-openai-agents-python];(2) run_state.py 3304 行状态序列化过于集中 [openai-openai-agents-python];(3) 无学习闭环,不能从经验中改进 ;(4) Runner turn loop 不易扩展 [openai-openai-agents-python]需要多 Agent 协作 + 安全护栏的企业应用;以 OpenAI 为主力 LLM 的生产系统;需要 HitL 审批流程的合规场景

6. 核心 trade-off 轴 #

轴一:自治性 ↔ 可控性 #

Hermes Agent 追求高度自治——Skill 自动创建与 patch、记忆自动积累、子代理自动委托 [NousResearch-hermes-agent]。这带来「随时间变好」的体验,但行为不完全可预测,且无法在关键步骤前暂停等待人工确认。

OpenAI Agents SDK 偏向可控性——Guardrails 可在输入/输出层面 tripwire 阻断,HitL 可在工具调用前暂停,RunState 序列化使任何步骤可中断和恢复 [openai-openai-agents-python]。代价是 Agent 不会从经验中进化,每次运行都是「无状态」的。

量化参照:Hermes 的 IterationBudget 是唯一的自治约束(限制单次对话最大迭代轮数)[NousResearch-hermes-agent];OpenAI SDK 有 max_turns + Guardrail tripwire + needs_approval 三层控制 [openai-openai-agents-python]

轴二:单体内聚 ↔ 模块化解耦 #

Hermes 的 run_agent.py(~10,500 行)将传输层、业务编排、错误恢复耦合在一起。优势:错误恢复链完整(错误分类→credential pool 轮换→fallback provider→jittered backoff→stale stream 检测→可中断重试)[NousResearch-hermes-agent]。劣势:难以独立测试和修改 [NousResearch-hermes-agent]

OpenAI SDK 模块化设计,最大单文件 run_state.py 3304 行 [openai-openai-agents-python]。优势:测试代码 ~1.8x 源码、mypy strict [openai-openai-agents-python]。劣势:extensions 目录膨胀(7 sandbox + 5 session + 2 LLM),复杂度从代码转移到了生态管理 [openai-openai-agents-python]

轴三:模型无关 ↔ Provider-First #

Hermes 的 200+ 模型支持通过 api_mode 分支在 Agent 循环内适配 OpenAI/Anthropic/Codex [NousResearch-hermes-agent]。代价:多 Provider 适配逻辑膨胀了核心文件。

OpenAI SDK 内部统一为 Responses API 格式,其他 Provider 通过 chatcmpl_converter.py 转换 [openai-openai-agents-python]。代价:非 OpenAI 场景存在格式来回转换的开销和 feature parity 差距。

7. 冲突与调和 #

冲突一:数据结构选型——Dict vs Dataclass #

Hermes Agent 大量使用 Dict 传递核心数据(messages、result、api_kwargs),无类型检查 [NousResearch-hermes-agent]。OpenAI Agents SDK 以 @dataclass + Generic[TContext] 为基础,配合 mypy strict + pyright [openai-openai-agents-python]

矛盾根源:项目成熟度和开发节奏不同。Hermes 从 OpenClaw fork 后快速迭代到 v0.8.0(8 个大版本),优先功能交付而非类型安全 [NousResearch-hermes-agent]。OpenAI SDK 是一家商业公司的公开产品,从立项即按生产标准设计(158K LOC 测试代码 / 87K 源码 = ~1.8x 覆盖)[openai-openai-agents-python]。两者的取舍在各自约束下都是合理的,但在 ~400K 行规模下 Dict 的灵活性已经变成维护负担。

冲突二:工具执行路径——双路径 vs 统一路径 #

Hermes 的工具执行存在 registry.dispatch(普通工具)和 _invoke_tool(有状态工具)两条并行路径,逻辑有重复 [NousResearch-hermes-agent]。OpenAI SDK 虽然工具类型更多(12 种),但通过统一的 tool_execution.py 执行 [openai-openai-agents-python]

矛盾根源:有状态工具(需要访问 Agent 内部的 TodoStore、SessionDB 等)与无状态工具(纯函数)的边界问题。Hermes 选择了在 Agent 循环内直接处理有状态工具来避免向 registry 传递 Agent 内部状态 [NousResearch-hermes-agent];OpenAI SDK 通过 RunContextWrapper[TContext] 泛型将上下文注入工具函数,实现了架构统一但增加了泛型复杂度 [openai-openai-agents-python]

冲突三:并发模型——threading vs asyncio #

Hermes 使用单线程 Agent 循环 + ThreadPoolExecutor(最多 8 worker)工具并行 [NousResearch-hermes-agent]。OpenAI SDK 全栈 asyncio + asyncio.gather() [openai-openai-agents-python]

矛盾根源:Hermes 的 Gateway 系统需要同时支持 python-telegram-bot(asyncio)和 discord.py(asyncio)等不同的异步框架,在 Agent 核心用线程+同步避免了 event loop 冲突;AIAgent 本身不是线程安全的,通过 _active_conversations 锁排队 [NousResearch-hermes-agent]。OpenAI SDK 不需要管多平台兼容,asyncio 全栈更自然、更高效。

8. Gaps #

基于 Taxonomy 三维度和两项目覆盖情况,以下是技术可行但无人做的空白:

Gap描述技术可行性论据
自我改进 + 安全护栏融合Hermes 有学习闭环但无形式化护栏 [NousResearch-hermes-agent],OpenAI SDK 有护栏但无学习闭环。将 Skill 自动创建/patch 过程置于 Guardrail 约束下(如:Skill 变更需过 output guardrail 审核)是技术上直接的组合Guardrail 检查函数可以审核 Skill 内容是否引入不安全操作
MCP 双向 + Sandbox 隔离Hermes 的 MCP 服务端模式(暴露给 Cursor/Claude Code)[NousResearch-hermes-agent] 与 OpenAI SDK 的 Sandbox 系统 [openai-openai-agents-python] 未被组合——一个在 Sandbox 中运行的 Agent 同时作为 MCP 服务端暴露给外部MCP 是 stdio/SSE 协议,Sandbox 可以转发端口或 stdio
高自治 × 模块化架构Hermes 的闭环学习绑定在单体内聚架构中 [NousResearch-hermes-agent]。将 Skill 系统、Memory 系统、RL 管线作为独立可插拔模块实现,可以让其他框架复用Hermes 的 Skill 已经是文件系统存储的独立实体,解耦技术障碍不大
结构化追踪 + 自我改进反馈OpenAI SDK 的 Trace → Span 结构化追踪数据 [openai-openai-agents-python] 可以作为 Skill 改进的信号源(如:某个 Skill 调用总是出现 error span → 自动触发 patch),但无人做此融合Trace 数据已有结构化格式,Skill patch 只需文件写入
跨框架 Agent 互操作Hermes 的 MCP 双向集成 + ACP 适配器 [NousResearch-hermes-agent] 和 OpenAI SDK 的 MCP 一等公民 [openai-openai-agents-python] 暗示了互操作可能,但无项目真正实现跨框架 Agent 委托(如 OpenAI SDK 的 Handoff 目标是 Hermes Agent 实例)MCP 协议已标准化,ACP 正在标准化

9. Practical Recommendation #

场景推荐理由
7×24 多平台个人助理(从 Telegram/Discord/飞书等随时操控)Hermes Agent唯一内置 20+ 平台统一网关的开源方案;从 5 美元 VPS 即可运行;持久记忆和用户建模让 Agent 越用越好 [NousResearch-hermes-agent]
企业级多 Agent 系统(需安全护栏 + 审批流程 + 可观测性)OpenAI Agents SDKGuardrails tripwire 阻断不安全行为;HitL 中断恢复满足合规需求;内建 Tracing → OpenAI Dashboard 提供结构化可观测性 [openai-openai-agents-python]
以 OpenAI 为主力 LLM 的生产应用OpenAI Agents SDKOpenAI-First 设计获得最佳 feature parity 和最低转换开销;Responses API 原生支持 [openai-openai-agents-python]
多 Provider 模型切换(需在 OpenAI/Anthropic/开源模型间灵活切换)Hermes Agent从设计之初模型无关,200+ 模型开箱可用,smart routing 内置 [NousResearch-hermes-agent]
RL 训练数据生成(需要 Agent 轨迹用于训练工具调用模型)Hermes AgentAtropos RL 环境 + batch_runner.py 批量轨迹生成 + trajectory_compressor.py 离线压缩,是目前唯一内置 RL 闭环的开源 Agent 框架 [NousResearch-hermes-agent]
沙箱隔离执行(Agent 需在容器中安全运行代码)OpenAI Agents SDKv0.14 Sandbox 系统支持 Docker/E2B/Modal/Cloudflare 等 7+ 后端,Capabilities 插件化(Shell/Filesystem/Patch)[openai-openai-agents-python]
需要 HitL 审批的关键操作OpenAI Agents SDKRunState 可序列化 → 工具调用前暂停 → 人工审批 → 恢复执行,这是生产级 HitL 方案 [openai-openai-agents-python]

10. 参考 #

ID标题类型关键贡献L2 链接
NousResearch-hermes-agentHermes Agent: Self-Improving AI Agent with Closed Learning Loopcode (开源项目)自我改进闭环(Skill 创建/patch)、20+ 平台网关、MCP 双向集成、Atropos RL 训练管线[ref:NousResearch-hermes-agent]
openai-openai-agents-pythonOpenAI Agents SDK: Lightweight Multi-Agent Workflow Frameworkcode (开源项目)声明式多 Agent 编排、Guardrails + HitL 中断恢复、Sandbox 执行、结构化 Tracing[ref:openai-openai-agents-python]

Papers in code (12)

deepseek-ai-DeepSpec · Synthesis
2505.21136 · Synthesis
HKUDS-OpenHarness
ROCm-mori
ZhaiFeiyue-claude-code-source-code
ZhaiFeiyue-mori-scheduler
ai-dynamo-dynamo
sgl-project-sglang
vllm-project-router
vllm-project-vllm
NousResearch-hermes-agent · Synthesis
openai-openai-agents-python · Synthesis