跳至内容
Agent 架构双轴框架:七脉六式

Agent 架构双轴框架:七脉六式

很多团队设计 Agent 时是「堆能力」式的:看到别人用了 RAG 就加 RAG,看到别人多 Agent 就拆多 Agent,最后系统跑起来一长串、线上一出错就找不到是哪一环。这篇提出一套双轴框架——用「七脉」描述 Agent 把资源花在哪、用「六式」描述错误怎么传播——给技术决策和团队评审提供一套通用的 Agent 架构语言,把模糊的「感觉这个 Agent 不够稳」变成可定位的「推理 × 循环没有停止条件、治理 × 路由没有审批门」。

核心目的只有一个:避免「堆能力式」设计,降低复合错误带来的线上事故风险。

一、为什么需要这套框架

业界主流的 Agent 分类方式(Lilian Weng 的《LLM Powered Autonomous Agents》、Anthropic 的《Building Effective Agents》、Chip Huyen 的 Agent 章节、吴恩达的 Agentic Design Patterns 等)各有侧重,但都是从某个侧面对同一系统画「三视图」——单独用任何一种都有盲区。把它们叠起来看,会发现一个共同的结构性缺口。

盲区本质典型表现
感知误以为 LLM 拿到的就是正确输入200K 上下文装不下整个 codebase、检索回来 70% 是噪声、日志洪水把关键信息淹没
反思被折叠进「推理」里,当成一种技巧但 Reflexion 类工作(让 Agent 反思失败并写入记忆)显著提升 coding 任务成功率,它是一个独立维度而非推理的子集
治理demo 阶段可以没有,生产阶段不能没有无审批门、无爆炸半径控制、无审计日志 = 事故候选

举个「感知盲区」的具体例子:一个代码审查 Agent,你把整个仓库塞进上下文,以为模型「看到了全部」。但 200K token 装不下中型项目;就算装得下,模型的注意力也会被无关文件稀释——结果它对真正有 bug 的那 30 行视而不见。信息进入了上下文 ≠ 信息进入了模型的有效注意力。

核心判断可以浓缩成一句:

Model spends, harness budgets —— 模型负责「花」(花 token、花工具调用、花时间、花用户信任),harness(宿主框架)负责「预算」(决定怎么花、花多少、留下什么账)。

基于这个思路,下面整理出一个双轴框架,专门用来给团队做选型和评审。

二、双轴框架总览

  • 纵轴(认知功能) —— 资源花在哪
  • 横轴(执行拓扑) —— 错误怎么传
  • 两轴交叉 —— 每个设计模式都有唯一坐标

一句话骨架:

纵七脉定资源得失,横六式断错误路径。

任何一个 Agent 设计模式,都能用「哪一脉 × 哪一式」精确定位。只说「我们用了 Orchestrator-Workers」是没有信息量的——它落在哪一脉、错误怎么传,才是关键。

三、纵轴 · 七脉(认知功能)

七脉不是 7 个模块名,而是 7 种不同的资源预算问题。按建设顺序分三圈:内圈让 Agent 能用,中圈让 Agent 可靠,外圈让 Agent 能上线

圈层作用
内圈感知 / 记忆 / 推理 / 行动让 Agent 基本可用
中圈反思 / 协作让 Agent 可靠
外圈治理让 Agent 能上线

每一脉对应一种资源预算、回答一个问题、有一个特定的失败信号:

资源预算回答的问题失败信号
感知 Perception注意力什么信息进入模型看到太多 = 什么都没看见
记忆 Memory连续性跨时间保留什么每次 reset 后技能退化
推理 Reasoning不确定性从前提怎么走到结论简单意图也走深度思考,慢且贵
行动 Action不可逆性能对世界做什么推理错可重答,行动错要补偿/回滚
反思 Reflection校正刚才做得对不对Critic 标准不清,制造伪问题
协作 Collaboration分工多 Agent 怎么拆大家都拿全量上下文 = 噪声淹没
治理 Governance信任能力如何被限制/记录/审计能力越强,事故越强

下面逐脉说明,每脉配一个具体例子。

感知 Perception —— 预算的是「注意力」

回答的是「什么信息进入模型」。注意力是稀缺资源:上下文窗口再大,模型的有效注意力也有限。

例:客服 Agent 要同时读工单、聊天历史、CRM 记录。如果一股脑全塞进去,模型会被无关字段干扰;正确做法是做「上下文分诊」(Context Triage)——先判断这个工单需要哪几类信息,只把相关的那部分喂给模型。

失败信号:看到太多 = 什么都没看见。

记忆 Memory —— 预算的是「连续性」

回答的是「跨时间保留什么」。记忆决定 Agent 在多次会话、多次任务之间能否积累。

例:一个编程助手如果每次会话都「失忆」,你上周教它的项目约定(命名规范、目录结构)这周又得重教——这就是「reset 后技能退化」。解决办法是把长期偏好写入持久记忆(如向量库或结构化档案),短期对话状态另存。

失败信号:每次 reset 后技能退化。

推理 Reasoning —— 预算的是「不确定性」

回答的是「从前提怎么走到结论」。推理深度要匹配问题难度。

例:用户问「今天几号」,却触发了一整套多步思维链——慢、贵、还可能想多了出错。正确做法是「复杂度分流」(Complexity Routing):简单意图直接答,复杂问题才启用深度推理。

失败信号:简单意图也走深度思考,慢且贵。

行动 Action —— 预算的是「不可逆性」

回答的是「能对世界做什么」。这是七脉里最危险的一脉,因为行动会改变外部世界。

例:推理算错了可以重新回答一遍,代价是几个 token;但「行动」算错了——比如真的发了一封退款、删了一个云资源——就要补偿或回滚,代价可能是真金白银。所以写操作必须配审批、配回滚路径。

失败信号:推理错可重答,行动错要补偿/回滚。

反思 Reflection —— 预算的是「校正」

回答的是「刚才做得对不对」。它是一个独立维度,不是推理的附属技巧。

例:代码审查 Agent 最怕「假阳性」(false positive,把没问题的代码报成 bug)。加一个 Critic(批评者)角色,对每条 finding 反问「这真的是 bug 吗?复现路径是什么」,能大幅降低误报。但 Critic 的标准必须清晰——标准模糊的 Critic 会无中生有,制造伪问题。

失败信号:Critic 标准不清,制造伪问题。

协作 Collaboration —— 预算的是「分工」

回答的是「多 Agent 怎么拆」。核心不是「拆成几个」,而是「每个 Agent 该看到什么」。

例:把研究任务拆给「搜索 Agent + 分析 Agent + 写作 Agent」,如果三个 Agent 都拿到全量上下文,等于没拆——每个都被无关信息淹没。正确做法是上下文隔离:搜索 Agent 只看查询词,写作 Agent 只看分析结论。

失败信号:大家都拿全量上下文 = 噪声淹没。

治理 Governance —— 预算的是「信任」

回答的是「能力如何被限制、记录、审计」。能力越强,事故越强,治理就越不可省。

例:一个能改云资源的运维 Agent,没有审批门(Approval Gate)就敢执行 terraform destroy,没有审计日志就查不出是谁触发的——这在生产环境是事故候选。治理脉要回答:哪些动作需要人确认、单次操作的爆炸半径多大、出事后能否追溯。

失败信号:能力越强,事故越强。

核心判据:一个 Agent 架构缺哪一脉,它就会在哪一类资源上失控。你可以先不实现某一脉(比如 v1 不做协作),但不能假装它不存在——缺位要是有意识的选择,而非遗漏。

四、横轴 · 六式(执行拓扑)

六式 = 六个动词:传、选、撒、协、转、分。它描述的是多个步骤/Agent 之间怎么连接。

动词适用场景核心风险关键设计点
链式 Chain步骤稳定、依赖清晰错误级联顺流而下中间格式要稳,缩短链
路由 Route输入可分类,处理器固定入口分错就全错分类器质量、可回退
并行 Parallel子任务互不依赖合并出错关键在 merge,不在 fan-out
编排 Orchestrate中心能理解全局目标任务拆错边界plan 要可验证
循环 Loop需要自我修正错误自我强化、过度反思停止条件 + 评价信号 + 改动幅度
层级 Hierarchy多层责任分解隔离没做好就雪崩权限继承控制、上下文隔离

关键洞察:六式本质是「错误传播路径轴」

选了拓扑,就是在选错误怎么移动

拓扑错误传播方式通俗解释
Chain错误级联第一步错了,后面全跟着错(像传话游戏)
Route错误分派入口分错类,整条支路就走错
Parallel错误聚合各路单独没错,合并时冲突
Orchestrate错误分解计划拆错了边界,子任务再对也白搭
Loop错误复合每一轮都可能强化上一轮的错
Hierarchy错误放大 错误隔离隔离做好就限制住,做不好就层层放大

Route vs Orchestrate(最常被混为一谈)

这两个最容易混淆,区别在于「中心是否全程在场」:

维度Route(路由)Orchestrate(编排)
决策内容从固定菜单挑一个临时拆任务
分支来源设计时固定 N 类运行时由输入决定
中心存活决策一次就退场(fire-and-forget)全程在场,回收并综合结果

用代码对比最直观:

# Route:分类器选一个处理器,然后自己退场,不再参与
def route(query):
    kind = classify(query)          # 把输入归到固定的 N 类之一
    return HANDLERS[kind](query)    # 交给对应处理器,路由器使命结束

一个生活化的类比:Route 像医院分诊台——护士看一眼症状把你分到内科还是外科,分完就不管了;Orchestrate 像项目经理——全程盯着项目,根据进展不断调整下一步派谁做什么。

五、双轴正交的工程意义

同一个功能换拓扑,工程后果完全不同;同一个拓扑换功能,含义也完全不同。功能 × 拓扑合起来才是唯一地址。

5.1 设计模式矩阵(7 脉 × 6 式)

7 × 6 = 42 格,业界常见的 Agent 设计模式几乎都能落进去。下表整理了当前在生产或准生产系统里被广泛使用的典型模式:

认知功能 \ 拓扑Chain 链式Parallel 并行Route 路由Loop 循环Orchestrate 编排Hierarchy 层级
感知 Perception语义压缩多模态融合上下文分诊检索自愈
记忆 MemoryRAG Pipeline分层记忆
hot/warm/cold
失败日志进度追踪分层保留
推理 Reasoning思维链并行探索复杂度分流迭代假设
行动 Action提示链工具路由退避重试规划执行委派树
反思 Reflection生成-批评技能包自愈循环经验回放
协作 Collaboration交接链扇出聚合多智能体辩论多层级委派
治理 Governance渐进承诺审批门控人机闭环可观测性框架爆炸半径分层

读法说明:

  • 空白(—):该组合在生产中罕见,或容易退化成相邻格的变体。
  • 结构性不成立:该功能本质上不适用该拓扑。例如「感知 × 层级」——感知是「什么信息进入模型」的问题,本身不是层级委派问题,硬套没有意义。
  • 研究方向:学术界活跃但尚未稳定 production 化(如多智能体辩论),谨慎选用。

举几个格子的具体含义:

  • 感知 × Route = 上下文分诊:进来一个请求,先分类「这需要读哪几类资料」,只检索相关的。
  • 记忆 × Route = 分层记忆:把记忆分成 hot(当前会话)/ warm(近期)/ cold(归档),按需检索,类比 CPU 的多级缓存。
  • 行动 × Loop = 退避重试(Retry-with-Backoff):工具调用失败后等待递增的时间再重试(1s、2s、4s……),避免把下游打挂。
  • 治理 × Loop = 人机闭环(Human-in-the-Loop):高风险动作执行前暂停,等人确认后再继续。
模式矩阵的价值不在「表格漂亮」,而在每个名字背后都有可复用的骨架、清晰的失败模式、可评审的边界。实际选型仍以下文的 ASSESS → ROUTE → SELECT 三步为准,矩阵是查阅工具,不是填空作业。

5.2 同功能不同拓扑(以 Reasoning 为例)

同样是「推理」,放进 Chain 和放进 Loop,token 预算、等待时间、停止条件、错误恢复路径完全不一样。

成本和延迟可预测,但早期分解错了,后面全错:

def reasoning_chain(question):
    decomposition = llm("拆成三个子问题:" + question)
    answers = llm("依次回答:" + decomposition)
    final = llm("基于回答给最终答案:" + answers)
    return final

特点:固定 3 次调用,延迟稳定;但第一步「拆子问题」拆错了,整条链都偏。

两者都属于 Reasoning,但工程画像完全不同——这正是「功能 × 拓扑才是唯一地址」的意思。

5.3 同拓扑不同功能(以 Orchestrate 为例)

反过来,同样是 Orchestrate,落在不同脉上叫法和典型错误都不一样:

落在哪一脉叫什么典型错误
Reasoning × Orchestrate计划-执行 Plan-and-Execute任务拆错
Collaboration × Orchestrate管理者-工作者 Manager-Worker角色边界错
Governance × Orchestrate可观测性框架 Observability Harness观测信号遗漏

所以只说「我们用了 Orchestrator-Workers」是没有信息量的——它到底在协调推理步骤、协调多个 Agent,还是在做可观测性兜底?必须配上「哪一脉」才说得清。

六、选型三步:ASSESS → ROUTE → SELECT

### Step 1 · ASSESS:对七脉打分 对 Perception / Memory / Reasoning / Action / Reflection / Collaboration / Governance 每一脉打分:**None / Light / Heavy**。 先判断需求侧重,**不要一上来就讨论用什么框架、几个 Agent、几个工具**。 ### Step 2 · ROUTE:判断主拓扑 根据需求画像选主拓扑: ```text 低协作 + 短任务 → Chain / Route 中等复杂 + 多步骤 → Orchestrate / Loop 多专家 + 宽任务 → Parallel / Hierarchy 高风险动作 → Governance 优先,再选 Route / Chain / Hierarchy ``` 避免两个极端:一上来设计过重,或在高风险场景里缺治理。 ### Step 3 · SELECT:查矩阵选模式 - 每个 **Heavy** 至少选一个模式 - 第一版总模式数控制在 **3 ~ 7 个** - 超过 7 个 → 优先合并或降级非关键功能 - 目标是**最小可行稳定组合**,不是炫技

示例:代码评审 Agent 选型

评级选型理由
PerceptionHeavyContext Triage(上下文分诊)要读 diff、相关文件、测试、规范,得决定哪些不读
MemoryLight短期 state 即可围绕一次 PR,不需要跨月长期记忆
ReasoningHeavyComplexity Routing / 结构化推理要判 bug 风险、设计风险、测试盲区、兼容性
ActionLight~Mediumv1 只读;v2 升 Plan-and-Executev1 不自动改代码,风险低
ReflectionHeavyGenerator-Critic / Self-Heal最怕假阳性,每个 finding 都要被 critic 复核
CollaborationLightv1 单 AgentPR 太大时再上并行专家
GovernanceLight至少要 trace能写/触发 CI 就必须加 Approval Gate

v1 最小组合:Context Triage + 结构化推理 + Generator-Critic。三个模式,覆盖三个 Heavy,其余降级到 v2。

七、双轴评审法(五问)

评审会上直接套用这五问。每问都给「答不出 = 什么问题」和「✅ 清楚回答示例」的对照。

问题 1 · 七脉状态分别是什么?(None/Light/Heavy)
  • 答不出意味着:在堆能力之前没澄清认知需求。
  • ✅ 清楚回答示例:「Perception=Heavy(要同时读工单 + 聊天历史 + CRM)、Memory=Heavy(跨 session 用户画像)、Reasoning=Light(意图就 20 类)、Action=Medium(能发券不能退款)、Reflection=Light、Collaboration=None、Governance=Heavy(退款要审批)」
问题 2 · 每个 Heavy 落在哪个拓扑?
  • 答不出意味着:团队还没真正设计,只是在堆能力。
  • ✅ 清楚回答示例:「Memory Heavy → 落 Memory × Route(分层 hot/warm/cold 三级检索);Governance Heavy → 落 Governance × Chain(审批门串行:申请 → 复核 → 执行)」
问题 3 · 主要错误传播路径是什么?
  • 答不出意味着:带不出测试策略。
  • ✅ 清楚回答示例:「主拓扑是 Loop → 错误会复合 → 测试必须覆盖:max_iter=3 到顶、DONE 哨兵触发停止、每轮 critic 打分低于阈值就 break」
问题 4 · 哪些格子刻意留空?理由是什么?
  • 答不出意味着:空格没有理由,可能是忘了。
  • ✅ 清楚回答示例:「Collaboration × Hierarchy 留空——v1 单 Agent 能跑通,不需要多级委派;Perception × Hierarchy 留空——结构性不成立,感知本身不是层级问题」
问题 5 · v1 → v2 的升级路径是什么?
  • 答不出意味着:没有为演进留位。
  • ✅ 清楚回答示例:「v1=Chain(只做摘要);v2 当假阳性 >10% 时升级到 Self-Heal Loop;v1 只读,v2 要加写操作时同步加 Approval Gate;v1 单 Agent,v2 PR 变大时引入 Parallel Specialists」

价值:评审从「感觉这个 Agent 不够稳」升级为「推理 × 循环没停止条件,治理 × 路由没审批门,协作 × 层级没子代理隔离」——主观感受变成可定位、可整改的具体缺口。

八、Compound Error 公理(最容易被低估的风险)

Agent 系统的错误会复合。单步 95% 正确率听起来很高,但乘起来就崩:

步数整体成功率
1 步95%
10 步0.95¹⁰ ≈ 60%
20 步0.95²⁰ ≈ 36%

这是所有长链 Agent 的现实,也是 Anthropic 等反复强调 「simple, composable patterns」(简单、可组合的模式) 的根本原因——链越长,复合错误越吃掉成功率。

四条应对策略

策略做法
减少步数能一次可靠完成,就别为了「Agentic」拆成十步
提高单步质量上下文给准、工具描述写清、schema 明确;95%→99% 对长链收益巨大(0.99²⁰ ≈ 82%,比 36% 翻倍还多)
加 verification不等最终结果,中间就加 Reflection 或外部 checker
fail fast明显错了就停——Agent 世界也需要 Circuit Breaker(熔断器)

拓扑 × 错误对策速查

拓扑错误点对策
Chain错误沿链传缩短链 + 强化中间 schema
Route错误在入口classifier 可观测、可回退
Parallel错误在合并设计 merge logic
Orchestrate错误在拆解验证 plan
Loop错误在迭代停止条件
Hierarchy错误在边界隔离 + 权限继承控制
拷问每一个模式:它到底在减少步数、提高单步质量、增加校验,还是让系统更早失败?四个都不沾边 = 它只是装饰,砍掉。

九、给团队的落地建议

  1. 评审会强制走「评审五问」,取代「感觉不稳」的主观讨论。
  2. 新项目立项先交 ASSESS → ROUTE → SELECT 三步结论,而不是直接报技术栈。
  3. 高风险动作(能改云资源、能退款、能发外部消息)必须落 Governance,无论 v1 多紧。
  4. 长链 Agent 先跑复合错误估算——20 步链即便单步 95%,整体也只有 36% 成功率。
  5. 第一版架构目标是「最小可行稳定组合」,不是炫技。

一句话小结

纵七脉定资源得失(资源花在哪),横六式断错误路径(错误怎么传)。 给每个 Agent 模式一个「功能 × 拓扑」的唯一坐标,团队就能把「堆能力」的随性设计,换成可评审、可演进、可控制爆炸半径的工程决策。

最后更新于