主流 Agent 框架深度分析:从架构本质到生产可用性
主流 Agent 框架深度分析:从架构本质到生产可用性
本文综合了对 Hermes Agent 开源代码库的架构分析,以及在企业级 AI 安全平台(AEGIS)设计过程中对 9 个主流框架的系统性选型评估。两个视角相互补充:前者是”框架作者视角”,后者是”框架消费者视角”。
一、为什么框架选型如此困难
AI Agent 框架的选型是一道比它看起来更难的题。
大多数框架的 README 都能让你在 30 分钟内跑起一个 Demo,但真正的问题要 3 个月后才会暴露:上下文管理撑不住生产规模、多用户并发没有会话隔离、权限控制是事后打补丁而非架构原生、工具数量膨胀后模型选择准确率开始下降……
这些问题有一个共同根因:多数 Agent 框架是为原型验证设计的,不是为生产系统设计的。
因此本文不做”功能对比矩阵”,而是从架构本质出发,回答三个问题:
- 每个框架的核心设计抽象是什么?
- 这个抽象在哪些场景下成立,在哪些场景下会崩溃?
- 如果要基于它构建生产系统,你会踩进哪些坑?
二、框架全景:三种产品形态
按运行形态,当前主流框架分为三类,这个分类比”功能有没有”更根本——形态决定了适用场景的上限。
┌──────────────────────────────────────────────────────────────────┐
│ Agent 框架全景 │
│ │
│ ┌─────────────────────┐ ┌───────────────────┐ ┌───────────┐ │
│ │ 本地工具型 │ │ 通用编排库 │ │ 平台型 │ │
│ │ │ │ │ │ │ │
│ │ Claude Code │ │ LangGraph │ │ Dify │ │
│ │ Cursor │ │ CrewAI │ │ Coze │ │
│ │ OpenAI Codex CLI │ │ AutoGen │ │ Hermes │ │
│ │ │ │ │ │ │ │
│ │ 单用户 / 本地 CLI │ │ Python 库 │ │ 完整系统 │ │
│ │ 面向开发者 │ │ 可包装为微服务 │ │ 含前端 │ │
│ └─────────────────────┘ └───────────────────┘ └───────────┘ │
│ │
│ 设计理念成熟 ←───── 参考价值 ──────→ 生态最完整 │
│ 不可直接用于服务端 难以嵌入 │
└──────────────────────────────────────────────────────────────────┘
这个分类的关键洞察:产品形态不匹配 ≠ 没有参考价值。Claude Code 是架构设计最成熟的 Agent 系统之一,但它是本地 CLI,无法直接用于多用户服务端。Hermes 是功能最完整的开源平台,但它是完整产品,不是可嵌入的引擎框架。两者都有极高的学习价值,只是”不能直接用”。
三、本地工具型:架构设计的天花板
Claude Code(Anthropic)
定位:面向开发者的 AI 编程 Agent,本地 CLI,TypeScript/Bun 实现。
核心架构模型:
用户输入
│
▼
┌───────────────────────────────────────────────────────┐
│ Agent Loop(核心循环) │
│ │
│ LLM Call → Tool Selection → 权限评估 → Tool Execute │
│ ↑ │ │
│ └───────────── 结果回传 ─────────────┘ │
│ │
│ 内建机制: │
│ · CLAUDE.md(上下文文件,项目感知) │
│ · Hook 体系(15+ 生命周期事件,AOP 拦截) │
│ · Compaction(上下文自动压缩,含断路器) │
│ · ToolSearch(工具按需加载,高频常驻 / 低频休眠) │
│ · Prompt Cache(会话内 System Prompt 不重建) │
│ · SubAgent / Teammate / Task(三级委托模型) │
└───────────────────────────────────────────────────────┘
为什么说它架构最成熟
Claude Code 经历了日活百万级用户的生产验证,它的每一个设计决策背后都有真实的失败案例支撑:
- Compaction 带断路器:连续压缩仍超限就终止,而不是无限重试——这是压缩丢失核心指令的教训
- ToolSearch 三档加载:高频工具常驻上下文,低频工具休眠按需唤醒——这是工具膨胀导致模型混乱的教训
- Hook 体系而非侵入式修改:审计、权限、监控通过 Hook 注入,不动 Agent 循环内核——这是框架可维护性的教训
- Prompt Cache 作为硬约束:会话中途不重建 System Prompt,不改变工具集——这是 LLM API 成本的教训
适用场景:个人 / 团队开发辅助,IDE 集成,代码自动化
不适用场景:多用户服务端(单用户设计),私有化部署(本地 CLI 形态),安全敏感系统(无多租户隔离)
OpenAI Codex CLI
核心模式:统一 App Server + CodeAct(代码即行动)
CodeAct 的设计哲学值得关注:与其为 Agent 设计一套工具 API,不如让 Agent 直接写代码来执行。这消除了”工具设计”这个需要持续维护的层,但同时也带来了沙箱隔离和安全边界的挑战。
这是一个有趣的架构取舍——用工具设计的复杂性换取沙箱安全的复杂性。哪个更难管理,取决于你的团队和场景。
适用场景:代码生成与执行,轻量本地自动化
不适用场景:需要结构化工具调用、审批流程或多用户的场景
Cursor
核心模式:VS Code Fork + Composer(多文件编辑协调)
Cursor 的特殊之处在于它把 Agent 深度嵌入了编辑器状态——Git 历史、打开的文件、光标位置都是上下文的一部分。这是典型的”深度垂直整合”路线,在代码编辑场景内效果极佳,但这种上下文模型只对编辑器有意义。
适用场景:纯代码编辑辅助,IDE 内多文件重构
不适用场景:编辑器之外的任何场景
四、通用编排库:生产可用性的真实差距
LangGraph(LangChain 旗下)
核心抽象:状态图 DAG(有向无环图)+ 检查点恢复
节点 A ──► 节点 B ──► 条件判断 ──► 节点 C(路径 1)
└──────► 节点 D(路径 2)
检查点:每个节点执行后自动快照,失败可从任意点恢复
Human-in-the-loop:审批作为图中的一个特殊节点
真正的亮点:Human-in-the-loop 是一等公民。LangGraph 是少数几个把”人工审批”设计到框架骨架里的框架——不是作为回调,而是作为图中一个正式节点,有完整的暂停 / 恢复语义。这在需要审批流的业务场景中非常有价值。
被高估的地方:状态图 DAG 适合固定工作流,不适合开放式推理。当 Agent 的每轮工具选择不可预测时,用 DAG 建模会变成一件荒诞的事——你在试图把不确定性装进确定性的盒子里。
生产使用的真实挑战:
- 无多用户会话隔离(面向单用户设计)
- 无权限控制体系(通用框架不理解”谁能调用什么工具”)
- 无审计日志(可选,不是架构原生)
- 大型上下文管理能力有限
适合:有明确流程图的工作流自动化,需要审批节点的 RPA 类场景
不适合:开放式推理型 Agent,多用户 SaaS,安全敏感系统
CrewAI
核心抽象:角色化 Agent 团队 + Manager 分派
Manager Agent(协调者)
│
├──► Researcher(研究员):专注信息收集
├──► Analyst(分析员):专注数据分析
└──► Writer(写作员):专注内容输出
每个 Agent 有独立的角色 Prompt、工具权限、执行边界
真正的亮点:角色化分工的直觉极好。把复杂任务拆分给专业化的子 Agent,让每个 Agent 的上下文更聚焦、工具集更精简,是应对”工具膨胀”问题的一个优雅思路。
被高估的地方:CrewAI 本质上是一个轻量原型框架,被过度宣传了。它的上下文管理是最小化的,几乎没有生产就绪的能力(无权限、无审计、无 Hook)。
生产使用的真实挑战:
- 上下文管理最小化,撑不住真实业务规模的工具清单
- 无权限控制、无审计、无生命周期钩子
- 定位是”快速原型”,用于生产系统长期演进风险较高
适合:快速验证多 Agent 协作思路,教学演示
不适合:生产级多用户系统,安全要求高的场景
AutoGen(微软)
核心抽象:事件驱动消息传递 + 异步拓扑
Agent A ──[消息]──► Agent B
↑ │
└───[消息]──────────┘
Agent 间通过结构化消息通信,消息类型和路由完全可定制
支持异步、并发、跨进程的多 Agent 拓扑
真正的亮点:消息传递架构的设计扩展性最好。Agent 之间不是函数调用,而是消息——这意味着 Agent 可以跨进程、跨机器、异步协作,拓扑完全可重组。
被高估的地方:这种架构复杂度对大多数场景是 over-engineering。如果你的 Agent 都运行在同一个进程里,引入事件总线反而增加了心智负担。
最大的现实问题:AutoGen 正在向 AG2(AutoGen 0.4)迁移,核心 API 重写中。在一个核心框架重构期间把它选为生产系统的基础,等于主动引入了”跟踪上游重写”的维护负担。
适合:分布式多 Agent 场景,研究型 Agent 系统
不适合:生产时间线紧张的系统,单进程内的多 Agent 协作
通用编排库的共同盲点
三个框架共同缺失的能力,是它们作为通用框架无法解决的,因为这些需求超出了它们的设计目标:
┌─────────────────────────────────────────────────────────┐
│ 通用编排库的共同盲点 │
│ │
│ · 多用户会话隔离:面向单用户或小团队设计 │
│ · 信任层级原生化:权限是配置,不是引擎数据结构 │
│ · 合规级审计:审计日志可选,不是架构约束 │
│ · 大规模工具管理:100+ 工具时模型召回准确率无保障 │
│ · 领域感知上下文:不理解业务系统的异步处理管线 │
└─────────────────────────────────────────────────────────┘
这不是框架的”缺陷”,而是设计目标不同。通用框架做的是”可能性空间”,领域系统做的是”约束空间”。两者之间的 gap,用定制代码填不满——填到一定程度,维护成本不低于自研。
五、平台型:完整产品的两面
Dify
核心模式:可视化工作流 DAG + 多模型 + MCP 集成
Dify 的定位是”AI 应用开发平台”——通过拖拽构建 Agent 工作流,配置模型、工具、知识库,然后部署为 API 或 Web 应用。这个模式对非技术人员友好,但有一个根本性的范式冲突:
Dify 的 Agent 是工作流中的一个节点;对于真正的 Agent 系统,Agent 应该是整个系统的入口,而不是流程图里的一格。一旦你试图用 Dify 构建”意图驱动、开放推理”的 Agent,就会感受到这个范式的天花板。
适合:有固定流程的 AI 应用,RAG 增强问答,非技术团队快速上线
不适合:开放式推理 Agent,需要深度定制的领域系统
Coze / 扣子(字节跳动)
核心模式:全生命周期 Skill 管理 + 全链路 Tracing
Coze 最值得借鉴的不是它的 Agent 能力,而是它的全链路 Tracing 体系——每次推理、每次工具调用、每个子任务都有完整的可观测链路。这在 Agent 系统调试和问题定位上是刚需,但很多框架把它当可选项而不是必选项。
其次是 Skill 生态:Coze 通过 Skill 市场形成了规模化的能力共享生态,这个理念在 Hermes 的 agentskills.io 和 AEGIS 的制品生态中都有体现。
不适合:需要私有化部署的场景(闭源商业平台)
Hermes Agent(Nous Research)
Hermes 是目前开源 Agent 框架中产品形态最完整的,也是架构设计上最有原创思路的。
架构全景:
┌────────────────────────────────────────────────────────────┐
│ 用户交互层(16 个平台) │
│ CLI / Telegram / Discord / Slack / WhatsApp / Signal │
│ iMessage / WeChat / DingTalk / Feishu / Matrix … │
└────────────────────────┬───────────────────────────────────┘
│
┌────────────────────────▼───────────────────────────────────┐
│ Agent 核心层 │
│ │
│ AIAgent ←→ Tool Registry ←→ Prompt Builder │
│ │ │ │ │
│ Agent Loop 工具自动发现 上下文压缩 │
│ (同步主循环) Toolset 分组 Prompt Cache │
└────────────────────────┬───────────────────────────────────┘
│
┌────────────────────────▼───────────────────────────────────┐
│ 持久化 & 学习层 │
│ │
│ Session DB Memory Skills System │
│ (SQLite FTS5) (MEMORY.md) (程序记忆 / agentskills.io)│
│ 跨会话搜索 用户画像(Honcho) 技能自创建 / 自优化 │
└────────────────────────────────────────────────────────────┘
Hermes 的核心创新:封闭学习闭环
┌────────────────── 封闭学习闭环 ───────────────────┐
│ │
对话 ──► 执行 ──► 总结 ──► 写入记忆 ──► 下次对话更好 │
│ │ │ │
│ 复杂任务 用户画像更新 │
│ │ (Honcho 辩证建模) │
│ ▼ │
│ 技能自提炼 ──► Skills 库 ──► agentskills.io │
│ │
└────────────────────────────────────────────────── ┘
四个机制相互强化:
- 片段记忆:重要信息主动写入 MEMORY.md,周期性”nudge”触发
- 用户画像:Honcho 辩证建模,持续迭代用户认知
- 技能自创建:复杂任务结束后自动提炼为可复用 Skill
- 跨会话搜索:SQLite FTS5 全文索引 + LLM 摘要,历史上下文可召回
适合:个人 AI 助手,跨平台 Agent,学习闭环场景,RL 数据收集
不适合:多用户企业服务端(同步架构),需要强安全审计的场景
六、从 9 个框架提炼的 12 条设计理念
这是最有价值的部分——不是选哪个框架,而是从所有框架中学到什么。
┌─────────────────────────────────────────────────────────────────┐
│ # │ 设计理念 │ 来源 │ 核心价值 │
├─────┼──────────────────────────┼──────────────┼──────────────────┤
│ 1 │ Agent 循环引擎 │ Claude Code │ 同步推理骨架, │
│ │ LLM→权限→执行→循环 │ │ 每步内建检查点 │
├─────┼──────────────────────────┼──────────────┼──────────────────┤
│ 2 │ 事件钩子体系 │ Claude Code │ AOP 模式,不动 │
│ │ 生命周期 15+ 事件 │ │ 内核做外围拦截 │
├─────┼──────────────────────────┼──────────────┼──────────────────┤
│ 3 │ 上下文分层管理 │ Claude Code │ Compaction 断路 │
│ │ Compaction + ToolSearch │ │ 器 + 工具三档 │
├─────┼──────────────────────────┼──────────────┼──────────────────┤
│ 4 │ 五层纵深权限模型 │ Claude Code │ 企业策略→信任→ │
│ │ 多层递进评估链 │ │ Hook→审计→确认 │
├─────┼──────────────────────────┼──────────────┼──────────────────┤
│ 5 │ MCP 工具协议 │ Claude Code │ 工具标准化接口 │
│ │ 标准化工具接口 │ + Dify │ 跨系统互操作 │
├─────┼──────────────────────────┼──────────────┼──────────────────┤
│ 6 │ 状态图 + 检查点恢复 │ LangGraph │ 任务状态机管理 │
│ │ 任务暂停/恢复语义 │ │ 会话中断恢复 │
├─────┼──────────────────────────┼──────────────┼──────────────────┤
│ 7 │ Human-in-the-loop │ LangGraph │ 审批是"正常流程 │
│ │ 一等公民 │ │ 不是异常路径" │
├─────┼──────────────────────────┼──────────────┼──────────────────┤
│ 8 │ 角色化 Agent + Manager │ CrewAI │ 上下文聚焦, │
│ │ 专业化分工 │ │ 工具权限分离 │
├─────┼──────────────────────────┼──────────────┼──────────────────┤
│ 9 │ 事件驱动消息传递 │ AutoGen │ Agent 间解耦, │
│ │ 结构化 task→conclusion │ │ 异步拓扑支持 │
├─────┼──────────────────────────┼──────────────┼──────────────────┤
│ 10 │ 递归任务分解 │ Hermes / │ 多步任务自主 │
│ │ 深度自主规划 │ 自研 │ 规划与执行 │
├─────┼──────────────────────────┼──────────────┼──────────────────┤
│ 11 │ Skill 市场架构 │ Hermes / │ 过程记忆可复用 │
│ │ 程序记忆可分发 │ Coze │ 可分发可共享 │
├─────┼──────────────────────────┼──────────────┼──────────────────┤
│ 12 │ 全链路 Tracing │ Coze │ 每步推理和工具 │
│ │ 完整可观测链路 │ │ 调用可追溯 │
└─────┴──────────────────────────┴──────────────┴──────────────────┘
来源分布的含义:Claude Code 贡献 5 条(最多),因为它是唯一经过日活百万级生产验证的 Agent 系统,其 Agent 循环 + Hook 体系 + 上下文管理的组合是目前工程成熟度最高的。LangGraph 贡献 2 条,CrewAI、AutoGen、Hermes、Coze 各贡献 1~2 条。每个框架都有值得学习的地方,只是学的是思想,不一定是代码。
七、一个被普遍忽视的维度:可观测性
在所有框架对比文章中,可观测性(Observability)几乎从未作为独立维度出现。但它恰恰是 Agent 系统从”可以运行”到”可以信任”的关键差距。
Agent 系统的可观测性挑战比传统分布式系统更复杂,原因在于不确定性的叠加:模型本身的不确定性(同样的输入可能有不同的输出)+ 工具调用的副作用 + 多轮对话的上下文依赖。
在这个背景下,一个无法被观测和追溯的 Agent 系统,在生产环境中是一个黑盒。当它出错时,你无法系统性地判断是模型问题、工具问题还是上下文问题。
目前在这个维度做得最好的是 Coze(全链路 Tracing 是核心产品能力)和 Claude Code(Hook 体系天然支持审计注入)。大多数编排库把 Tracing 当作可选配置,而不是架构约束。
建议:在设计生产 Agent 系统时,把”完整的 Trace 链路”作为非功能需求写入设计文档,而不是在系统上线后再补救。
八、选型方法论:先问场景,再看框架
没有最好的框架,只有最合适的框架。在评估任何框架之前,先把这 4 个问题的答案确定清楚:
Q1: 部署形态
├── 本地单用户工具 → Claude Code / Codex CLI / Cursor 值得参考
├── 服务端多用户 → LangGraph / CrewAI / AutoGen 或自研
└── 完整平台产品 → Hermes / Dify / Coze
Q2: 工作流确定性
├── 固定流程图 → LangGraph(状态图 DAG 正好)
├── 半结构化 → CrewAI(角色分工 + 有限编排)
└── 开放推理 → 自研循环引擎(框架会过度约束)
Q3: 多 Agent 需求
├── 无需多 Agent → 单 Agent 循环足够,不要引入不需要的复杂度
├── 角色化协作 → CrewAI 理念,自研实现
└── 异步分布式 → AutoGen 理念(注意 AG2 迁移风险)
Q4: 安全与合规要求
├── 无特殊要求 → 任意框架
├── 审计日志需求 → 确认框架是否原生支持,还是可选插件
└── 信任层级 / 多租户 / 合规审计
→ 通用框架不满足,考虑自研引擎
设计模式从框架精华提炼
九、自研引擎的决策临界点
自研不是银弹,但在以下条件同时成立时,自研优于定制开源框架:
- 领域需求与框架设计目标根本冲突(不是”缺功能”,是”方向不同”)
- 定制深度已经侵入框架内核(改框架代码而非扩展框架)
- 需要跟踪上游版本的维护成本 ≥ 自研成本(尤其是框架处于重构期)
- 团队有足够的设计参考(从成熟框架提炼设计精华,不从零发明)
如果自研,建议的资源策略:
- 复用:工具协议(MCP)、LLM 调用 SDK、持久化基础设施、观测系统(OpenTelemetry)
- 提炼:从本文 12 条设计理念中选取符合场景的,不要全盘照搬
- 自研:Agent 循环引擎内核、领域特有的权限 / 审计 / 隔离机制
十、总结:框架选型的本质是架构决策
框架选型表面上是技术问题,本质上是架构决策——你在决定哪些约束可以接受,哪些必须自己控制。
主流框架的发展轨迹有一个共同规律:从”Demo 友好”到”生产可用”之间,有一个巨大的工程鸿沟。大多数框架还停留在跨越这个鸿沟的途中。
Hermes 是目前开源框架中离这个鸿沟彼岸最近的——它有真实用户、有生产规模的验证(v0.9.0 已有 24 位贡献者、487 commits、16 个平台),但它的设计重心是”个人智能体”而非”企业服务端”,这个定位决定了它在多用户并发和安全合规方向上的天然局限。
Claude Code 是架构思想最值得学习的,但它的设计是为了让”一个开发者变得更强大”,不是为了让”一百个用户并发调用”。
真正的生产级 Agent 系统,今天基本上都是自研的。 框架提供的不是”可以直接用的产品”,而是”有价值的设计参考”。
这不是一个令人沮丧的结论——恰恰相反,这说明 Agent 基础设施还处于早期,有大量值得构建的空间。
分析时间:2026 年 4 月
资料来源:Hermes Agent v0.9.0 代码库、AEGIS 总体设计说明书(SFRD-TS-AEGIS-01 V1.9)