主流 Agent 框架深度分析:从架构本质到生产可用性

#AI技术#架构设计#Agent#框架选型

主流 Agent 框架深度分析:从架构本质到生产可用性

本文综合了对 Hermes Agent 开源代码库的架构分析,以及在企业级 AI 安全平台(AEGIS)设计过程中对 9 个主流框架的系统性选型评估。两个视角相互补充:前者是”框架作者视角”,后者是”框架消费者视角”。


一、为什么框架选型如此困难

AI Agent 框架的选型是一道比它看起来更难的题。

大多数框架的 README 都能让你在 30 分钟内跑起一个 Demo,但真正的问题要 3 个月后才会暴露:上下文管理撑不住生产规模、多用户并发没有会话隔离、权限控制是事后打补丁而非架构原生、工具数量膨胀后模型选择准确率开始下降……

这些问题有一个共同根因:多数 Agent 框架是为原型验证设计的,不是为生产系统设计的。

因此本文不做”功能对比矩阵”,而是从架构本质出发,回答三个问题:

  1. 每个框架的核心设计抽象是什么?
  2. 这个抽象在哪些场景下成立,在哪些场景下会崩溃?
  3. 如果要基于它构建生产系统,你会踩进哪些坑

二、框架全景:三种产品形态

按运行形态,当前主流框架分为三类,这个分类比”功能有没有”更根本——形态决定了适用场景的上限。

┌──────────────────────────────────────────────────────────────────┐
│                      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: 安全与合规要求
    ├── 无特殊要求      → 任意框架
    ├── 审计日志需求    → 确认框架是否原生支持,还是可选插件
    └── 信任层级 / 多租户 / 合规审计
                        → 通用框架不满足,考虑自研引擎
                          设计模式从框架精华提炼

九、自研引擎的决策临界点

自研不是银弹,但在以下条件同时成立时,自研优于定制开源框架:

  1. 领域需求与框架设计目标根本冲突(不是”缺功能”,是”方向不同”)
  2. 定制深度已经侵入框架内核(改框架代码而非扩展框架)
  3. 需要跟踪上游版本的维护成本 ≥ 自研成本(尤其是框架处于重构期)
  4. 团队有足够的设计参考(从成熟框架提炼设计精华,不从零发明)

如果自研,建议的资源策略:

  • 复用:工具协议(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)