真实架构拆解与设计选型:没有最好的架构,只有最合适的

Agent; 架构设计; 技术选型; DeerFlow; pi-agent 2139 字 11 min read

前十四篇拆的都是”零件”

、工具契约、记忆、压缩、持久化、规划、编排、Harness、生产化、进阶模式。这一篇把零件放回真实系统里检验——看几个开源 Agent 各自怎么落地,再回答那个最容易问错的问题:哪个架构最好?

先说结论

。研究得越深,越会发现每个项目的架构都不是偶然,而是它的约束逼出来的。所以正确的问题是——给定你的约束,哪个架构最合适?

本文主要参考

《总体设计哲学与选型指南》《16 个开源项目差异对比总览》,how-pi-agent-works、how-deerflow-works、deepagents-in-action 三套真实架构文档。文中项目名、约束、结论均来自对公开源码与文档的分析。

一、三个真实系统,三种落地

pi-agent

pi-agent(how-pi-agent-works 拆解的对象)的核心洞察是:Agent 的状态本质是一棵会话树。每一次交互是树上的一个节点,fork 就是从某个节点长出新枝。这套模型把前面讲的”中断恢复""子智能体上下文继承”统一成了一件事——都是树的操作。

它的价值在于用一个数据结构统一了多个概念

,持久化是把树写盘,恢复是重放树,子智能体是子树。当你发现几个看似独立的机制能被一个模型统一,通常说明你抓到了问题的本质。

DeerFlow
静态图编排

DeerFlow(how-deerflow-works 拆解的对象)走的是另一条路:用 LangGraph 的 StateGraph 把多智能体协作写成一张静态图。Coordinator、Supervisor、Researcher、Coder 是图上的节点,条件边决定路由,全部用 Python 代码写死。

对照第 9 篇的”谁决定并行度”

是典型的代码决定——LLM 只输出符合格式的 JSON,图结构负责路由。它的人机交互(第 11 篇)通过 escalation 工具实现
,等用户输入后带相同 thread_id 从 Checkpointer 快照恢复。这印证了第 7 篇的”从哪里恢复执行”——DeerFlow 的恢复是节点级的。

DeerFlow 的构建路线图(build-00 到 build-05)本身就是一份”从状态到模型到工具到中间件到子智能体”的渐进搭建教程,和第 10 篇的六步 Harness 路线图遥相呼应。

deepagents
Harness 实战

deepagents-in-action 从另一个角度切入:虚拟文件系统 + 任务规划 + 子智能体 + 长期记忆,一步步搭出一个能用的 Harness。它的 ch03 虚拟文件系统对应第 3 篇的工具契约(把文件操作抽象成 Agent 可安全调用的工具),ch04 任务规划对应第 8 篇,ch05/06 子智能体(含异步)对应第 9 篇,ch08 长期记忆对应第 6 篇。

三个系统放在一起看,你会发现:它们用的零件是同一套,拼法完全不同。pi-agent 追求极简统一,DeerFlow 追求确定性编排,deepagents 追求完整能力。没有谁对谁错,只有约束不同。

二、四象限
个项目的派别地图

agent开发系列横评了 16 个开源 Agent,发现它们不是随机散落,而是形成四个清晰派别(按”约束强度 × 知识广度”两轴划分):

                        约束强度 ↑

    快速原型派                │         企业基础设施派
    ┌──────────────┐         │       ┌──────────────┐
    │ DeerFlow      │         │       │ Goose (Rust)  │
    │ Hermes Agent  │         │       │ Eino (Go)     │
    │ Oh My OpenAgent│        │       │ OpenCode (TS) │
    └──────────────┘         │       └──────────────┘
    ─────────────────────────┼───────────────────────→ 知识广度

    行为塑造派                │         多平台通信派
    ┌──────────────┐         │       ┌──────────────┐
    │ Superpowers   │         │       │ OpenClaw      │
    │ ECC           │         │       │ NanoClaw      │
    │ Karpathy Skills│        │       │ Hermes Gateway│
    └──────────────┘         │       └──────────────┘
  • 企业基础设施派(Goose/Eino/OpenCode)
    ,插件有稳定公开 API,安全是一等公民,为多团队协作设计。愿意为长期可维护性付出前期复杂性。
  • 快速原型派(DeerFlow/Hermes/Oh My OpenAgent)
    动态类型或无框架循环,承担运行时类型错误的风险,换迭代速度。适配 ML/研究场景。
  • 行为塑造派(Superpowers/ECC/Karpathy)
    “LLM 行为主要靠上下文决定,最佳载体是 Markdown”。不写代码工具,只注入知识和规则(见第 12 篇)。
  • 多平台通信派(OpenClaw/NanoClaw)
    ,channel 抽象是架构一等公民(见第 11 篇)。

四个派别不互斥。最好的系统往往跨象限

+ 领域知识注入 + 多平台部署。

三、约束 → 架构的映射

这套横评最有价值的产出,是把”约束”直接映射到”技术选择”。

语言选择

需求技术选择代表项目
桌面应用轻量、无 ElectronRust + TauriGoose
类型安全图编排 + Go 生态Go 泛型Eino
函数式依赖注入 + 穷举错误处理TypeScript + EffectOpenCode
ML 生态 + 快速迭代PythonDeerFlow、Hermes
知识注入而非代码、非程序员参与MarkdownECC、Superpowers

注意:语言选择不是品味问题,是约束的直接后果。Goose 用 Rust 是因为 Block 要做桌面应用且看重企业安全;Eino 用 Go 是因为字节有 Go 生态;Hermes 用 Python 是因为要快速支持 200+ 模型。

插件架构

约束场景插件方式代表项目
支持任意语言工具、需进程隔离MCP 协议Goose
100+ 插件、启动性能优先manifest + 懒加载OpenClaw
编译时类型安全Go interface 分层Eino
非程序员可贡献Markdown 文件ECC
单人使用简单即可直接注册函数小型项目

四、四个反复出现的规律

横评 16 个项目后,有四条规律在几乎每个设计良好的系统里都出现:

  1. 隔离是一切可维护性的基础——所有好系统都在把变化的部分和稳定的部分隔离开(对应第 4 篇的 prefix/tail、第 10 篇的 harness/application 分界)。
  2. 协议比实现重要——MCP、Plugin SDK、Runnable 接口才是长期价值的锚点。实现会重写,协议会留存。
  3. 约束驱动的设计比最佳实践驱动的设计更健壮——最好的架构决策来自清晰认识你自己的约束,而不是照搬别人的”最佳实践”。
  4. 知识和能力是两件事,混淆会造成架构混乱——Markdown Skill 是知识(塑造判断),MCP 工具是能力(执行操作)。这正是第 12 篇三种形态的核心。

五、如果你要从零开始

不要一上来就问”用什么框架”。先回答三个问题,答案会自动缩小选择范围:

  1. 你的主要用户是谁? 单开发者 / 小团队 / 企业大团队
  2. 你的核心需求是什么? 工具执行 / 知识注入 / 工作流编排 / 多模型 / 插件生态
  3. 你的团队背景是什么? Python·ML / Go 后端 / TypeScript 函数式

然后按本专题的顺序搭

(第 3 篇)→ 包进循环(第 2 篇)→ 加工具契约和权限(第 3、11 篇)→ 上下文和记忆(第 4-6 篇)→ 持久化(第 7 篇)→ 需要时再加规划、编排、生产化(第 8-13 篇)。从最小可运行开始,让下一步的需求自己浮现出来。

收束
,不是标准答案

这 16 个项目、三个真实系统的真正价值,不是让你复制某一个,而是给你一个工具箱

,你知道谁解决过类似问题、他们的解法是什么、代价是什么。

没有最好的架构,只有最适合你约束的架构。

这也是整个专题的落点。前十四篇给你的是”零件和原理”,这一篇给你的是”怎么按自己的约束把零件拼起来”。下一篇(也是最后一篇),我们把这 16 个项目的 11 个维度横评摊开成一张完整地图,作为你日后选型时可以随时回来查的索引。


本文为「Agent 系列」第 15 篇。主要参考

《总体设计哲学与选型指南》《项目差异对比总览》,how-pi-agent-works、how-deerflow-works、deepagents-in-action。