AI Agent的“骨架”之争:四种Harness设计哲学深度解构

摘要

当前AI Agent框架百花齐放,但多数争论都集中在模型本身。本文作者通过深度源码分析,揭示了真正的分水岭在于 "Harness"------连接模型与世界的"骨架" 。本文对比了openclaw、deer-flow、hermes-agent和OpenHarness四种截然不同的设计哲学,从核心引擎、工具系统到安全管理六大模块,全面解构了它们在灵活性、严谨性和扩展性上的根本取舍。文章最终指出,所有项目的共性瓶颈指向同一结论:Agent框架的下一个突破点不在于更强的模型,而在于更结构化的Workflow与Workbench层。


核心速览:四种"骨架"的画像

在深入代码之前,我们先为这四个项目分别"画一张像",建立一个直观的第一印象:

openclaw:一个"万能路由器"

一句话:它的使命是连接一切。无论你从微信、Slack还是API来,无论你要调搜索引擎、数据库还是发邮件,它只负责将消息和工具天衣无缝地"接通"。

一句话:它不追求全能,只追求在研究流程上做到极致。每一步都可规划、可执行、可回溯,像一份严谨的实验记录。

  • GitHub: github.com/geekan/Meta...(deer-flow 为 Metagpt 生态项目之一)
    hermes-agent:一个"自我进化的发明家"

一句话:它不仅能用工具,还能在运行中发现不足,自己创造新的工具和技能,像一块会自我迭代的乐高积木。

一句话:它不做任何具体应用,只提供最严谨、最灵活的基础设施。你不是用它,而是基于它"组装"出一个专属Agent,就像用精密零件搭建一台机器。

这四种哲学不是对同一问题给出的不同答案,而是对四个全然不同的问题的回答。理解了它们"为何而生",就能理解其后所有的架构取舍。


引言:当模型不再是唯一壁垒

Agent 工程化的核心命题,正从"模型有多聪明"转向 "如何将模型武装成能干的智能体" 。而这个"武装"过程所需的全部基础设施------指令解析、工具调用、记忆存取、安全护栏------我们称之为 Harness(骨架/线束)

Harness------包裹模型、使其成为功能性 Agent 所需的全部基础设施------是 Agent 工程化的核心命题。当前开源生态中,openclaw [1]、deer-flow [2]、hermes-agent [3]、OpenHarness [4] 四个项目各自展示了 Harness 关键设计决策的不同实现方式。本文基于源码分析,从设计哲学、通用能力模块、架构取舍三个维度展开深度对比,揭示 Harness 工程的设计空间与共性瓶颈。


一、六大模块深度对比:架构取舍的具象化

Harness 工程有六个通用能力模块:QueryEngine(核心引擎)、Tool System(工具系统)、Permission System(权限系统)、Context Management(上下文管理)、Memory(记忆系统)、Extensibility(扩展系统)。下面逐一对比四个项目在每个模块上的实现差异。

1.1 QueryEngine(核心引擎):循环里的"控制论"

QueryEngine 是 Harness 的心脏------它决定了模型如何推理、何时调用工具、如何处理结果、何时停止。四个项目在这一模块上的差异最大。

维度 openclaw deer-flow hermes-agent OpenHarness
实现方式 自研 Orchestrator(进程级 Agent 管理) LangGraph StateGraph(图驱动状态机) 自研 while-loop(AIAgent.chat()while tool_calls → loop) 自研 QueryEngine(712 行 run_query(),管线治理型)
核心循环 Gateway → Agent Orchestrator → Model/Plugin → Tools ChannelManager → LangGraph Server → StateGraph Nodes → Checkpoint handle_function_call()registry.dispatch()tool.execute() → loop run_query() → API Client → LLM → tool_use → Permission + Hook → execute → loop
分支/并行 ACP Spawn 启动外部 Agent,支持并行子任务 StateGraph 的条件边(add_conditional_edges)天然支持 无内建分支,靠 LLM 自由决定 无内建分支,靠 LLM 自由决定
状态持久化 Session Store(文件系统) LangGraph Checkpoint(SQLite/内存) 无内建持久化 会话存储 + tool_metadata 字典
停止条件 Agent 自主决定 + 外部控制 StateGraph 终止节点 + max_turns max_turns + stop_reason max_turns + auto_compact 触发

设计取舍

  • deer-flow 的 StateGraph 优势在于结构化------研究流天然是"搜索→阅读→提取→综合"的 DAG,用 StateGraph 表达比自研 while-loop 更自然,且每一步状态可回溯。代价是强依赖 LangGraph,deerflow-harness 包无法脱离 LangGraph 运行。LangGraph 是由 LangChain 团队开发的用于构建有状态、多角色 Agent 应用的框架 [5]。
  • hermes-agent 的 while-loop 优势在于极简------while tool_calls 循环不到 20 行核心逻辑,没有框架依赖。代价是无分支/并行能力,完全依赖 LLM 的推理来决定下一步。
  • OpenHarness 的 QueryEngine 优势在于管线治理------每轮循环集成了压缩检查、权限检查、Hook 执行、Carry-over 记录,是四个项目中最严谨的 Agent Loop。代价是组装复杂------13 个构造器参数需要手动注入。
  • openclaw 的 Orchestrator 优势在于进程级管理------Agent 生命周期、子 Agent 派生、Session 恢复都是进程级操作。代价是架构最重------Gateway + Channel + Plugin + Session 四层协同。

1.2 Tool System(工具系统):能力边界与加载艺术

工具系统决定了 Agent 的能力边界------有哪些工具可用、如何注册发现、如何按需加载。

维度 openclaw deer-flow hermes-agent OpenHarness
工具数量 40+ Skills(Plugin 提供) 4 层来源(Built-in/Configured/MCP/Community) 50+ 自注册 43+ 内置 + MCP 适配
注册方式 Plugin SDK 清单驱动:openclaw.plugin.json + compat.pluginApi 版本兼容 Config YAML + LangGraph Agent 配置 registry.register() 模块级自动注册:零配置 BaseTool 抽象类 + ToolRegistry:Pydantic 强类型
按需加载 Plugin 按需加载,加载后工具全量注册 tool_search 延迟加载 toolsets 分组(静态) Skills Markdown 按需加载,工具全量注册
Schema 校验 编译期校验(Plugin SDK 边界契约) 无编译期校验(运行时警告冲突) Pydantic model_json_schema() 自动生成
特色能力 200+ subpath exports 边界契约 Community Tools 社区贡献 skill_manage 自进化 + RL Training tool_search 工具搜索 + MCP 适配

设计取舍

  • openclaw 最严谨但扩展成本最高------写一个新 Plugin 需要理解 SDK 的 200+ 个导出点和版本兼容规则。
  • hermes-agent 最灵活但无编译期校验------写一个 .py 文件加一行 registry.register() 就完事,但工具名冲突只在运行时警告。
  • OpenHarness 中间路线------BaseTool 要求 Pydantic 类型定义,兼顾了类型安全和开发便利。Pydantic 是 Python 生态中广泛使用的数据校验库,通过类型注解提供运行时和静态类型检查 [6]。
  • deer-flow 最实用------4 层来源覆盖最广,但发现逻辑复杂。

1.3 Permission System(权限系统):安全底线的四种偏重

权限系统决定了 Agent 的安全边界------哪些操作允许、哪些需要审批、哪些被拒绝。

维度 openclaw deer-flow hermes-agent OpenHarness
权限模型 DM Policy 三模式(Pairing/Open/Gated) Guardrails OAP Policy + Allowlist Security/Redact 敏感信息脱敏 三级模式(DEFAULT/PLAN/FULL_AUTO)+ 敏感路径硬编码
粒度 设备级配对 + 操作级策略 工具级 Allowlist 参数级脱敏 工具级 + 路径级(glob 规则)+ 命令级拒绝
敏感路径 SSRF 防护 + 速率限制 无硬编码 CredPool 凭证轮换 */.ssh/**/.aws/credentials 等 9 个硬编码模式
动态切换 配对认证流程 Guardrails 作为 Middleware 三级模式可运行时切换
偏重方向 安全导向(配对认证) 合规导向(Guardrails) 隐私导向(脱敏) 灵活导向(三级可切换)

源码细节(OpenHarness):

```python

OpenHarness 的三种权限模式

if self._settings.mode == PermissionMode.FULL_AUTO: return PermissionDecision(allowed=True) # 全自动:允许一切 if is_read_only: return PermissionDecision(allowed=True) # 只读工具:始终允许 if self._settings.mode == PermissionMode.PLAN: return PermissionDecision(allowed=False) # Plan 模式:阻止变更 return PermissionDecision(allowed=False, requires_confirmation=True) # Default:需确认 ```

设计取舍 :所有框架都面临"安全与便捷的冲突",但没有一个找到完美解。openclaw 偏安全(配对认证),OpenHarness 偏灵活(三级可切换),deer-flow 偏合规(Guardrails),hermes-agent 偏隐私(脱敏)。安全治理是与业务强耦合的,不存在通用解。

1.4 Context Management(上下文管理):抵抗遗忘的艺术

上下文管理决定了 Agent 的智能上限------如何利用有限的上下文窗口,如何在不丢失关键信息的前提下压缩。

维度 openclaw deer-flow hermes-agent OpenHarness
压缩策略 Compact 命令(手动触发) Summarization Middleware(可插拔) Context Compressor(核心子模块,32KB) Microcompact(低成本)→ LLM 摘要(高成本)→ Carry-over 保护
压缩触发 用户手动 Middleware 链自动 Agent Loop 内建自动 每轮开始前检查 token 阈值自动
分级策略 有:先 microcompact(清除旧工具结果),不够再 LLM 摘要
关键状态保护 Carry-over 机制:_record_tool_carryover() 把关键信息写入 tool_metadata,压缩时不丢失
记忆注入 Active Memory Plugin 自动注入 记忆 Middleware 注入 Memory Manager 注入 无自动注入

源码细节(OpenHarness 的 Carry-over 机制):

```python def _record_tool_carryover(context, *, tool_name, tool_input, tool_output, ...): if tool_name == "read_file": _remember_read_file(context.tool_metadata, path=..., output=...) elif tool_name == "skill": _remember_skill_invocation(context.tool_metadata, skill_name=...) elif tool_name in {"agent", "send_message"}: _remember_async_agent_activity(context.tool_metadata, ...) ```

每次工具调用后,关键信息被写入 tool_metadata 字典------这个字典在压缩时被保护(不随旧消息一起被清除),确保 Agent 压缩后仍然"记得"自己读过的文件、调过的 skill、派过的子 agent。

设计取舍

  • OpenHarness 的分级压缩最精细------先用低成本方式,不够再用高成本方式,且 Carry-over 保护关键状态不丢失。
  • deer-flow 的 Confidence 评分门控(记忆质量 ≥0.7 才持久化)确保只有高质量记忆被存储。
  • hermes-agent 的 Context Compressor 作为 Agent 核心子模块,与 Agent Loop 耦合。
  • openclaw 的手动触发最简单,但依赖用户判断。

1.5 Memory(记忆系统):经验如何积累

记忆系统决定了 Agent 能否积累经验------短期记忆保持对话连贯,长期记忆实现跨会话学习。

维度 openclaw deer-flow hermes-agent OpenHarness
架构 3 个 Plugin 组合:memory-core + memory-lancedb + active-memory LLM 提取事实 → 防抖队列(30s) → Confidence 评分(≥0.7) → Prompt 注入 跨会话 Memory Manager + MEMORY.md 文件 Markdown 持久 + 会话存储
记忆后端 LanceDB(向量检索)+ QMD(本地搜索)+ Wiki(知识库) JSON 文件 MEMORY.md 文本文件 文件系统
检索方式 memory_search(语义搜索)+ memory_recall(向量召回)+ memory_get(精确获取) Confidence 评分过滤 + Prompt 注入 文件读写 无专用检索
存储范围 用户级 + 项目级 + 本地级(MEMORY_SCOPES = ("user", "project", "local") 会话级 跨会话 会话级
自进化 skill_manage:LLM 自主创建/修改/删除 Skill

关键洞察 :openclaw 不是"记忆薄弱",而是记忆是 Plugin ------这是"一切皆 Plugin"哲学的延伸。active-memory 插件在每次回复前启动一个阻塞式子 Agent,检索相关记忆并注入到 Prompt 中。后端可以是 QMD(本地搜索)或 LanceDB(向量搜索),由 searchMode 配置决定。LanceDB 是一个开源的、面向 AI 应用的向量数据库,支持嵌入式运行和云原生部署 [7]。这比 hermes-agent 的 MEMORY.md 文件更灵活,但配置也更复杂。

openclaw 的记忆配置项active-memory Plugin):

``` searchMode: "search" | "vsearch" | "query" # 搜索模式 promptStyle: "balanced" | "strict" | "contextual" | "recall-heavy" | "precision-heavy" | "preference-only" # 检索策略 queryMode: "message" | "recent" | "full" # 查询范围 allowedChatTypes: "direct" | "group" | "channel" | "explicit" # 生效的会话类型 circuitBreakerMaxTimeouts: 1-20 # 熔断器阈值 ```

1.6 Extensibility(扩展系统):生命力的源泉

扩展系统决定了 Harness 的生命力------能否接入新能力、能否定制行为、能否适配新场景。

维度 openclaw deer-flow hermes-agent OpenHarness
扩展单元 Plugin(独立包,含 openclaw.plugin.json 清单) LangGraph Agent(YAML/代码定义) .py 文件(模块级 registry.register() BaseTool 子类 + AgentDefinition YAML/Markdown + Hook 注册
扩展契约 Plugin SDK(200+ subpath exports + 版本兼容声明) LangGraph 协议 无(零配置) Pydantic 类型 + ABC 抽象类
生命周期钩子 Plugin Hooks(before_prompt_build 等) Middleware Chain(9 层) HookExecutor(PreToolUse/PostToolUse/PreCompact/SessionStart/SessionEnd 等)
多 Agent 定义 SubAgent(orchestrator/leaf 角色,Session 级管理) Sub-Agent Executor(线程池) Delegate Tool(上下文隔离,最大深度 2) AgentDefinition(7 种内置 + 用户自定义 + 插件扩展,三层优先级)
多 Agent 后端 ACP Spawn(进程隔离) 线程池 同进程 BackendRegistry(subprocess/tmux/in_process 三后端)
MCP 支持 Plugin 层 MCP 适配 LangChain MCP Adapters mcp_tool.py(动态发现 + 注册) McpClientManager + McpToolAdapter

MCP(Model Context Protocol)是 Anthropic 于2024年发布的开源协议,旨在为 AI 模型提供与外部工具和数据源交互的标准化接口,已成为 Agent 工具集成的行业趋势 [8]。

源码细节(OpenHarness 的三层 Agent 扩展):

```python

OpenHarness 的 Agent 定义系统:三层优先级

def get_all_agent_definitions() -> list[AgentDefinition]: agent_map: dict[str, AgentDefinition] = {} # 1. Built-ins(最低优先级) for agent in get_builtin_agent_definitions(): agent_map[agent.name] = agent # 2. User-defined agents(~/.openharness/agents/) for agent in load_agents_dir(_get_user_agents_dir()): agent_map[agent.name] = agent # 3. Plugin agents(最高优先级) for plugin in load_plugins(settings, cwd): for agent_def in getattr(plugin, "agents", []): agent_map[agent_def.name] = agent_def return list(agent_map.values()) ```

源码细节(openclaw 的子 Agent 系统):

```typescript // openclaw 的子 Agent 角色:orchestrator(可再派生)和 leaf(叶子节点) function normalizeSubagentRole(raw: string): "orchestrator" | "leaf" | undefined { const normalized = normalizeOptionalLowercaseString(raw); if (normalized === "orchestrator" || normalized === "leaf") return normalized; return undefined; }

// 4 种任务运行时,subagent 是一等公民 type TaskRuntime = "subagent" | "acp" | "cli" | "cron"; ```

关键洞察

  • openclaw 的子 Agent 系统比 hermes-agent 更复杂 ------subagent 有 orchestrator/leaf 两种角色,4 种 TaskRuntime,Session 级生命周期管理。只是它通过 Plugin + Session 体系组织,不像 hermes-agent 通过一个 delegate_tool.py 文件那样直观。
  • OpenHarness 的扩展不是"薄弱"而是"结构化" ------你不能像 hermes-agent 那样写一个 .py 文件就完事,你需要遵循 BaseTool/AgentDefinition/HookExecutor 的接口契约。这种结构化扩展在多 Agent 协作、权限治理、可审计性上更有优势。
  • hermes-agent 的扩展是最灵活的------零配置注册、运行时动态组合、提示词驱动的自进化。但灵活的代价是无编译期保障。

二、六大模块综合对比矩阵

模块 openclaw deer-flow hermes-agent OpenHarness
QueryEngine 进程级 Orchestrator,Gateway+Channel+Plugin+Session 四层协同 LangGraph StateGraph,DAG 编排 + Checkpoint 持久化 极简 while-loop,无框架依赖 管线治理型 QueryEngine,13 依赖注入 + 分级压缩 + Carry-over
Tool System Plugin SDK 清单驱动,编译期校验,扩展成本高 4 层来源 + tool_search 延迟加载 零配置自注册 + toolset 分组 + skill_manage 自进化 BaseTool Pydantic 强类型 + ToolRegistry + MCP 适配
Permission DM Policy 三模式 + 配对认证,安全导向 Guardrails OAP + Allowlist,合规导向 Security/Redact 脱敏 + CredPool 轮换,隐私导向 三级模式 + 敏感路径硬编码 + glob 规则,灵活导向
Context Compact 命令手动触发 + Active Memory Plugin 注入 Summarization Middleware 可插拔 + Confidence 门控 Context Compressor 内建 + 与 Agent Loop 耦合 分级压缩(microcompact→LLM 摘要)+ Carry-over 保护
Memory 3 Plugin 组合(memory-core + memory-lancedb + active-memory),后端可替换 LLM 提取 + 防抖 + 评分门控 + Prompt 注入 跨会话 Memory Manager + MEMORY.md + skill_manage 自进化 Markdown 持久 + 会话存储
Extensibility Plugin 生态(200+ exports 边界契约)+ SubAgent(orchestrator/leaf) LangGraph Agent 定义 + Middleware Chain(9 层) 零配置注册 + toolset 递归组合 + RL Training BaseTool + AgentDefinition 三层扩展 + HookExecutor + BackendRegistry 三后端

三、从模块对比看设计取舍

3.1 灵活性 vs 严谨性谱系

``` 最灵活 ←------------------------------------------------------------------------------------→ 最严谨 hermes-agent deer-flow OpenHarness openclaw 零配置注册 Config YAML Pydantic 类型 Plugin SDK 清单 运行时校验 Middleware 构造器注入 编译期校验 skill_manage StateGraph Carry-over 版本兼容声明 ```

这条谱系的两端各有代价:

  • 最灵活端(hermes-agent):工具名冲突只在运行时发现,Skill 质量无保障。
  • 最严谨端(openclaw):扩展成本高,第三方开发者门槛高。

3.2 多 Agent 协调的隔离-通信谱系

``` 强隔离 ←------------------------------------------------------------------------------------→ 弱隔离 openclaw OpenHarness hermes-agent deer-flow ACP Spawn Swarm Delegate Sub-Agent Executor 进程隔离 subprocess/tmux 上下文隔离 线程池 消息通信 Mailbox 上下文传递 SSE 状态追踪 安全性高 中等 中等 安全性低 通信开销大 中等 中等 开销小 ```

3.3 上下文管理的"不丢失"vs"只存高价值"谱系

``` 不丢失关键信息 ←------------------------------------------------------------→ 只存储高价值信息 OpenHarness deer-flow Carry-over 保护 Confidence 评分门控 分级压缩 防抖队列 "压缩后仍记得读过什么" "只持久化评分 ≥0.7 的记忆" ```


四、设计哲学溯源:为何他们如此不同?

在深入技术细节之后,我们需要回到原点,理解每个项目的设计哲学------哲学决定了取舍,取舍决定了架构。

4.1 openclaw:连接优先------"一切皆 Channel,一切皆 Plugin"

核心信念 :Agent 的价值不在于自身有多聪明,而在于能连接多少平台、接入多少能力。openclaw 把自己定位为消息中枢,而非"最聪明的 Agent"。

源码印证 :openclaw 的 Plugin SDK 在 package.json 中签出了 200+ 个 subpath exports------每一个都是一个接入点的类型定义。Plugin 开发者只需 import { xxx } from "@openclaw/plugin-sdk/xxx" 就能接入对应能力,覆盖认证、流式传输、工具、搜索、安全、SSRF 防护等。外部 Plugin 必须在 package.json 中声明 openclaw.compat.pluginApiopenclaw.build.openclawVersion,否则无法发布到 ClawHub------这是连接优先的必然选择:要做消息中枢,就必须保证所有接入的 Plugin 都是版本兼容的。

大白话理解 :openclaw 把自己理解成一个路由器 ------不管你用的是 WiFi、有线、还是 5G,进来都是 IP 包;不管你要访问的是百度、Google 还是 YouTube,出去都是 IP 包。路由器不关心内容,只关心"连通"。当你通过微信说"帮我查天气",微信只是一个 Channel(消息进来被统一包装成 InboundMessage),查天气用的 Web Search 只是一个 Plugin(能力可插拔),回复又是通过微信这个 Channel 发回去------全程 openclaw 只做"连接"。

取舍代价:扩展成本高------写一个新插件需要理解 SDK 的 200+ 个导出点和版本兼容规则。

4.2 deer-flow:深度优先------"以研究流为纲"

核心信念:不追求连接广度,而是追求单一领域(研究流)的极致深度。Agent Loop 用 LangGraph 的 DAG 编排来实现可复现的研究流程。

源码印证 :deer-flow 的 ChannelManager 不直接管理 Agent Loop,消息进来后只做"路由到 LangGraph"这一件事。真正的推理-工具调用循环由 LangGraph 的 StateGraph 驱动------节点即函数,边即条件,天然支持分支与回环。研究流被定义为一个有明确步骤的 DAG:必须先制定计划 → 必须搜索 → 搜索不够必须继续读 → 读完了才能分析 → 分析完了才能写综述。每一步的状态都持久化在 LangGraph 的 Checkpoint 中,可以随时回溯、审计、恢复。

deerflow-harness Python 包硬依赖了 6 个 LangGraph/LangChain 相关包(langgraph>=1.0.6,<1.0.10langgraph-apilanggraph-clilanggraph-runtime-inmemlanggraph-checkpoint-sqlitelanggraph-sdk),版本窗口极窄------这是"深度优先"的代价:框架强耦合。

取舍代价:框架耦合------必须依赖 LangGraph 的 StateGraph/Checkpoint/SDK 体系,无法轻易替换底层编排引擎。

4.3 hermes-agent:进化优先------"Agent 不仅能用工具,还能创造工具、改进工具"

核心信念:工具系统不应该是静态的,Agent 应该能动态注册新工具、自我改进技能、甚至通过 RL Training 进化。

源码印证 :任何一个新的 tools/xxx.py 文件只需 registry.register(...) 一行即可注册工具------没有 Schema 校验、没有版本兼容检查、没有 Plugin 清单。Toolset 支持组合和递归解析------debugging 包含 web + filehermes-gateway 递归组合 15 个平台 toolset。系统提示词里的 SKILLS_GUIDANCE 告诉 LLM:"完成复杂任务后保存为 Skill,发现 Skill 过时立即修改"------进化机制不是算法驱动的自动化,而是提示词驱动的自主进化

取舍代价 :缺乏编译期校验------registry.register() 不校验 Schema 类型正确性,工具名冲突只在运行时警告。

4.4 OpenHarness:基础设施优先------"纯 Harness,不做应用"

核心信念 :不做任何垂直场景,只提供最严谨的 Agent 基础设施------让其他应用可以基于它构建。"The model is the agent. The code is the harness."

源码印证QueryEngine 的构造器接收 13 个依赖------api_client、tool_registry、permission_checker、hook_executor、tool_metadata 等等,每个子系统都通过构造器显式声明,组装方式完全透明。run_query() 的核心循环集成了自动压缩检查、PreHook 拦截、Permission 检查、Carry-over 记录、PostHook 审计------管线治理而非简单循环。build_runtime() 函数有 10 个组装步骤,每个步骤都可以被上层应用定制替换。

取舍代价:上层应用需要自行组装------你需要理解每个零件的接口和依赖关系,组装过程比"装个 Plugin 就跑"复杂得多。

4.5 四种哲学的底层逻辑

openclaw deer-flow hermes-agent OpenHarness
解的问题 连接广度 流程深度 能力进化 基础严谨
核心抽象 Channel + Plugin StateGraph + Middleware Registry + Toolset QueryEngine + Carry-over
语言选择 TypeScript(生态优势) Python + LangGraph Python(灵活性) Python + Pydantic(类型契约)
一句话 让一切连接一切 让研究流可复现 让 Agent 自我进化 让基础设施最可靠

关键洞察 :四种哲学不是对同一问题的四种解法,而是对不同问题的四种回答。


五、共性瓶颈与突破方向

四个项目虽然设计哲学各异,但在六个通用能力模块上不约而同地撞上了相同的天花板:

模块 共性瓶颈 本质原因
QueryEngine Agent Loop 内的推理路径不可预测 LLM 输出有随机性,while-loop 无结构约束
Tool System 全量注册致 Prompt 臃肿 vs 按需加载致发现困难 工具发现是"元问题"------需要"知道所有工具但不在 Prompt 中显示所有工具"
Permission 安全与便捷的根本冲突 权限治理与业务场景强耦合,静态规则无法应对动态场景
Context 压缩的信息损失无法量化评估 "谁来判断什么状态是关键的"本身也是不确定的
Memory 记忆检索的相关性与完整性不可兼得 语义搜索召回率高但精确率低,精确获取覆盖面窄
Extensibility 扩展的灵活性校验强度成反比 零配置=零保障,强校验=高门槛

5.1 突破方向:Workflow/Workbench 架构是什么?

上述瓶颈的根源在于:Agent 层的 while-loop 既承担了"推理",又承担了"流程控制",两者耦合导致了不可预测性。而 Workflow/Workbench 架构的核心思想,是在 Agent 层之上增加一个显式的流程控制层。

Workflow 层 负责定义任务的执行骨架。它将一个复杂任务分解为预定义的步骤序列(DAG),每个步骤指定:该步骤能使用哪些工具子集、必须达成什么产出标准、满足什么条件才进入下一步。Agent 在单个步骤内仍然自由推理,但步骤间的流转由 Workflow 控制,直接解决了引擎的不可预测性和工具的全量注册问题。

Workbench 层负责全局治理。它将工具、Skill、权限规则作为可复用的资产统一管理,形成跨项目的"工具市场"和"规则库"。Agent 按需从市场中加载能力子集,解决了扩展的治理难题和权限的业务耦合问题。

架构关系示意

``` Workbench 层(全局治理:工具市场 + 规则库 + 状态存储) ↓ 加载子集 Workflow 层(流程定义:步骤序列 + 条件分支 + 工具子集 + 权限上下文) ↓ 控制流转 Agent 层(推理执行:while-loop / StateGraph / QueryEngine) ↓ 调用 Tool/Memory/Permission(Harness 的基础能力模块) ```

这本质上是将原先由 LLM 自由决定的"下一步做什么",在关键环节上收归为显式的流程定义------让不确定性被结构约束,让治理规则从隐式变为显式。这正是四个项目的共性瓶颈共同指向的演进方向。

这一架构思想在 LangGraph 的 StateGraph(已内置 DAG 能力)、Anthropic 的 MCP 协议(工具市场的标准化尝试)中已经有了雏形,但尚未形成完整的、被广泛采纳的 Workflow/Workbench 层抽象 [5][8]。


六、总结:选择,始于理解差异

四个项目的深度对比揭示了 Harness 工程的核心设计空间:

  1. QueryEngine 是分水岭------自研 while-loop(灵活但无结构)、LangGraph StateGraph(结构化但框架耦合)、管线治理型 QueryEngine(严谨但组装复杂),三种选择决定了整个 Harness 的气质。
  2. Tool System 是能力边界------零配置注册(hermes-agent)到 Plugin SDK 清单(openclaw),灵活性与严谨性的权衡贯穿始终。
  3. Permission 是安全底线------三级模式(OpenHarness)、Guardrails(deer-flow)、配对认证(openclaw)、脱敏(hermes-agent),四种偏重反映了不同场景的安全需求。
  4. Context Management 是智能上限------Carry-over 保护(OpenHarness)和 Confidence 门控(deer-flow)代表了两种方向:不丢失关键信息 vs 只存储高价值信息。
  5. Memory 是经验积累------Plugin 化记忆(openclaw)vs 文件化记忆(hermes-agent)vs 评分门控记忆(deer-flow),体现了不同的可靠性假设。
  6. Extensibility 是生命力------结构化扩展(OpenHarness 的 AgentDefinition + HookExecutor)vs 零配置扩展(hermes-agent 的 registry.register),决定了谁能在生产环境中走得更远。

最终洞察 :openclaw、deer-flow、hermes-agent 和 OpenHarness 并非成熟度上的高下之分,而是设计目标上的泾渭之别。它们分别回答了 "如何连接"、"如何做深"、"如何进化"和"如何做稳" 四个根本性问题。

一位真正的架构师,不会在这四个选项中简单地"择一而终"。真正的工程智慧,在于理解它们的设计取舍,并在一个更高级的Workflow/Workbench架构中,综合运用这四种风格:让关键的流程像deer-flow一样严谨,让能力的扩展像hermes-agent一样灵活,让服务的连接像openclaw一样广阔,而这一切,都建立在像OpenHarness一样稳固的基础设施之上。

这才是Harness工程的终局想象。


参考链接

1\] openclaw 项目仓库:[github.com/openclaw/op...](https://link.juejin.cn?target=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fopenclaw "https://github.com/openclaw/openclaw") \[2\] deer-flow 项目(Metagpt 生态):[github.com/geekan/Meta...](https://link.juejin.cn?target=https%3A%2F%2Fgithub.com%2Fgeekan%2FMetaGPT "https://github.com/geekan/MetaGPT") \[3\] hermes-agent 项目仓库:[github.com/NousResearc...](https://link.juejin.cn?target=https%3A%2F%2Fgithub.com%2FNousResearch%2Fhermes-agent "https://github.com/NousResearch/hermes-agent") \[4\] OpenHarness 项目仓库:[github.com/PrefectHQ/o...](https://link.juejin.cn?target=https%3A%2F%2Fgithub.com%2FPrefectHQ%2Fopenharness "https://github.com/PrefectHQ/openharness") \[5\] LangGraph 官方文档:[https://langchain-ai](https://link.juejin.cn?target=https%3A%2F%2Flangchain-ai "https://langchain-ai")

相关推荐
GEO从入门到精通1 小时前
2026年GEO课程的学习重点更新了吗?
人工智能·学习·seo·geo·aiseo·市场部
卡次卡次11 小时前
14.2:详细补充:子进程会复制什么
前端·python·php
烟台业荣数据科技有限公司1 小时前
智能建造知识拓展 | AR技术:虚实融合,赋能施工现场
大数据·人工智能·机器人
Kiyra1 小时前
从上传到可问答:Interview Agent 的知识库 RAG 链路
java·人工智能·后端·spring·职场和发展
泽_浪里白条1 小时前
superset 踩过的坑之嵌入式 Dashboard 数据筛选
前端·后端
IOT.FIVE.NO.11 小时前
Codex Skill 内部结构解析:从 SKILL.md 到 scripts、references、assets
前端·javascript·人工智能·笔记·html
dyj0951 小时前
Dify - (二)、AI智能体实现将自然语言转换为SQL
人工智能
PILIPALAPENG1 小时前
第4周 Day 2:多步推理 Agent——让 Agent 学会"先想再干"
前端·人工智能·python