<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://dz3ai.github.io/allclaws/feed.xml" rel="self" type="application/atom+xml" /><link href="https://dz3ai.github.io/allclaws/" rel="alternate" type="text/html" /><updated>2026-08-19T23:13:41+08:00</updated><id>https://dz3ai.github.io/allclaws/feed.xml</id><title type="html">allclaws</title><subtitle>Multi-agent AI framework</subtitle><author><name>Danny Zeng</name></author><entry xml:lang="zh"><title type="html">可靠性从哪来：34 个 AI Agent 平台的 Harness 工程对比</title><link href="https://dz3ai.github.io/allclaws/blog/2026/08/16/harness-engineering-comparison-zh/" rel="alternate" type="text/html" title="可靠性从哪来：34 个 AI Agent 平台的 Harness 工程对比" /><published>2026-08-16T22:10:00+08:00</published><updated>2026-08-16T22:10:00+08:00</updated><id>https://dz3ai.github.io/allclaws/blog/2026/08/16/harness-engineering-comparison-zh</id><content type="html" xml:base="https://dz3ai.github.io/allclaws/blog/2026/08/16/harness-engineering-comparison-zh/"><![CDATA[<p>Prompt engineering 教会我们「好好说话」。Harness engineering（驾驭工程）教会我们别再指望说话。</p>

<p>这正是当下 AI agent 平台几乎所有动向底层的那个转变。Prompt 是<em>建议</em>——模型可能尊重它、重新解读它，或者在上下文压力下悄悄无视它。Harness——包裹模型的运行时系统：工具循环、上下文组装、沙箱、权限、预算、追踪——是<em>法律</em>。它是概率核心外圈的确定性代码，决定模型的能力有多少能在真实任务的接触中幸存。</p>

<p>我们刚把 AllClaws 跟踪的全部 34 个平台按四域 harness 框架打完分：核心架构、安全与验证、执行控制与状态、企业集成与协调。完整报告里有 20×10 覆盖矩阵。这篇博客讲的是让我们意外的东西。</p>

<hr />

<h2 id="每家对可靠性的押注都不一样">每家对可靠性的押注都不一样</h2>

<p>把 34 个架构并排读完，第一件事你会发现：没有人就「可靠性从哪来」达成共识。每个平台的押注都不同。</p>

<p><strong>OpenClaw</strong> 押路由——一个横跨 37+ channel、吸收复杂性的消息织物。<strong>ClawTeam</strong> 押编排——TOML 依赖链让 worker 在前置任务完成前<em>根本无法</em>启动。<strong>GoClaw</strong> 押治理——五层防御、按租户加密、审计日志。<strong>IronClaw</strong> 押隔离——每个工具调用包进带能力权限的 WASM 沙箱。<strong>OpenWorker</strong> 押人类——每个后果性动作一道审批门。<strong>reasonix</strong> 押钱——会话预算到 100% 时拒绝下一轮。<strong>LangGraph</strong> 押显式状态——类型化图的每个节点都有 checkpoint。</p>

<p>这些押注没有一个是错的。刺眼的是：没有一家覆盖全部四个域。生态没有在收敛于某个 harness 设计——它在并行投机，赌哪个单一控制点最重要。</p>

<hr />

<h2 id="状态机赢了预算没来">状态机赢了。预算没来。</h2>

<p>按「强实现数量」给各域排成熟度，结果清晰。执行状态——把 agent 运行时当状态机而非孤立 API 调用——是最成熟的能力，9 个强实现。上下文管理 8 个，紧随其后。</p>

<p>状态机故事有两个主角。<strong>LangGraph</strong> 是教科书版：类型化状态、每节点 checkpoint、human-in-the-loop 建模为图边。但更有意思的是 <strong>NanoClaw</strong> v2——它把状态机<em>物理</em>实现了：每个会话两个 SQLite 文件——host 写一个，容器写一个——每个文件恰好一个写者，奇偶序号。消息状态和执行状态在存储层分离。当你可以靠查数据库来审计对话时，「黑盒」这个反对意见就开始瓦解。</p>

<p>排名垫底的是预算。两个平台。在有像样 harness 故事的二十家里。</p>

<p><strong>reasonix</strong> 是生态中唯一带硬性花费门禁的 CLI——<code class="language-plaintext highlighter-rouge">--budget &lt;usd&gt;</code> 在 80% 时警告，100% 时<em>拒绝下一轮</em>。不是警告，是拒绝。配上每次调用可设推理强度的 <code class="language-plaintext highlighter-rouge">--effort</code> 旋钮（harness 研究者所说的 Reasoning Compute Sandwich 的实操形态——规划和验证用强推理，中间执行用便宜的），它把 token 经济学当工程约束，而不是事后审的账单。<strong>AgentScope</strong> 把预算做成可组合的循环 middleware——同一想法的程序化版本。</p>

<p>那个最能预测 agent 能否在生产环境无人值守存活的能力，只有两个实现。生态早就解决了「别崩溃」，还没解决「别超支」。</p>

<hr />

<h2 id="危险的缺口没人验证声明">危险的缺口：没人验证声明</h2>

<p>这个发现应该让所有人不安。</p>

<p>我们今年早些时候的失败模式研究把 <strong>Silent Success（静默成功）</strong> 识别为生产 agent 最危险的失败：agent 报告任务完成，输出是错的或从未执行，用户信任了报告。解药是验证钩子——对<em>声明</em>而非动作的独立检查。</p>

<p>全部被跟踪平台中，有近似机制的只有四家。而<strong>运行独立审计模型来检验主 agent 产出的，一家都没有。</strong></p>

<p>现有的机制拦的是别的东西。审批门（<strong>OpenWorker</strong>）在动作发生前拦<em>动作</em>——人类审命令。权限钩子（<strong>AgentScope</strong> 的 <code class="language-plaintext highlighter-rouge">on_check_permission</code>）以程序化方式拦<em>未授权调用</em>。审计日志（<strong>GoClaw</strong>）事后记录发生了什么。都有价值。没有一个回答那个真正要紧的问题：<em>agent 的成功报告是真的吗？</em></p>

<p>不对称是结构性的。模型被训练得乐于助人；被问「你做了 X 吗？」时，先验答案是「是」。一个从不独立验证产出的 harness，对这种先验毫无防御。四域框架要求一个独立的审计模型来裁决输出。在被跟踪的平台里它不存在。这是生态最危险的洞，也是一片空旷的市场。</p>

<hr />

<h2 id="应验的预测和没应验的">应验的预测，和没应验的</h2>

<p>harness 框架给了一个具体的成本预测：子 agent 团队应该共享 KV cache——主 agent 和 worker 复用相同的已计算 prompt 前缀——让编排变得便宜。我们去找了。</p>

<p>它不存在。34 个平台里一个都没有。最近的邻居是 <strong>reasonix</strong> 的 cache-first 循环——规范化 prompt 以最大化 DeepSeek 上下文缓存命中——但只在单会话内，从不跨 agent。<strong>ClawTeam</strong> 的公开数据（5 个并行 agent 约 3 小时完成全栈应用，对比串行 8 小时以上，token 成本<em>相同</em>）纯靠并行达成。跨 agent 缓存共享是明晃晃摆在那里的未兑现价值。</p>

<p>有一个相关性成立，但框架里没写：语言预测 harness 哲学。Rust 平台（<strong>IronClaw</strong>、<strong>ZeroClaw</strong>、<strong>codex</strong>、<strong>OpenFang</strong>）把 harness 表达为<em>运行时属性</em>——沙箱、确定性、<code class="language-plaintext highlighter-rouge">estop</code> 紧急停止命令。Python 平台（<strong>Hermes</strong>、<strong>Nanobot</strong>、<strong>AgentScope</strong>）把它表达为<em>循环结构</em>——middleware、压缩引擎、AgentLoop/AgentRunner 分离。Go 平台（<strong>GoClaw</strong>、<strong>HiClaw</strong>）把它表达为<em>基础设施</em>——lane-based 调度器、Kubernetes 风格控制面。你用什么语言构建，决定了你甚至能<em>看见</em>哪些 harness 问题。</p>

<hr />

<h2 id="未探索的中间地带">未探索的中间地带</h2>

<p>门禁哲学最深的分裂，跑在「全部人类侧把关」和「全部机器侧把关」之间。<strong>OpenWorker</strong> 和 <strong>NanoClaw</strong> 的 guard seam（allow / hold / deny，还有别处不存在的自我修改防护）在每个后果性步骤放上人类或硬规则。<strong>GoClaw</strong> 的 RBAC 和 <strong>IronClaw</strong> 的能力系统把权限编码为机器强制执行的策略。</p>

<p>两者之间躺着一块未开发的设计空间：概率模型由概率裁判验证，只在两者分歧时才触发确定性门禁。一个审计模型读主 agent 的产出、挑战它、只在冲突时升级给人类。它会把个人范式的自主性和企业范式的保证结合起来。没有被跟踪的平台在做它。</p>

<p>补上验证缺口的平台——不是靠更大的模型或更好的 prompt，而是靠检查工作的 harness 代码——才是能从「令人惊艳」毕业到「值得信任」的那些。harness 才是发生这件事的地方。prompt 从来都不是。</p>

<hr />

<p><em>本文基于完整研究报告：<a href="https://github.com/dz3ai/allclaws/blob/main/docs/reports/harness-engineering-comparison.md">Harness Engineering Comparison: Philosophy, Design, and Features Across Tracked Platforms</a>，含 20×10 覆盖矩阵与各平台评级。</em></p>

<p><em><a href="/allclaws/blog/2026/08/16/harness-engineering-comparison/">English version</a></em></p>]]></content><author><name>Danny Zeng</name></author><category term="研究" /><category term="harness-engineering" /><category term="架构" /><category term="agent可靠性" /><category term="验证" /><category term="预算" /><category term="上下文压缩" /><summary type="html"><![CDATA[Prompt engineering 教会我们「好好说话」。Harness engineering（驾驭工程）教会我们别再指望说话。]]></summary></entry><entry><title type="html">Where Reliability Comes From: Harness Engineering Across 34 AI Agent Platforms</title><link href="https://dz3ai.github.io/allclaws/blog/2026/08/16/harness-engineering-comparison/" rel="alternate" type="text/html" title="Where Reliability Comes From: Harness Engineering Across 34 AI Agent Platforms" /><published>2026-08-16T22:00:00+08:00</published><updated>2026-08-16T22:00:00+08:00</updated><id>https://dz3ai.github.io/allclaws/blog/2026/08/16/harness-engineering-comparison</id><content type="html" xml:base="https://dz3ai.github.io/allclaws/blog/2026/08/16/harness-engineering-comparison/"><![CDATA[<p>Prompt engineering taught us to ask nicely. Harness engineering teaches us to stop asking.</p>

<p>That’s the shift underneath almost everything happening in AI agent platforms right now. The prompt is a <em>suggestion</em> — the model may honor it, reinterpret it, or quietly ignore it under context pressure. The harness — the runtime system wrapping the model: tool loops, context assembly, sandboxes, permissions, budgets, traces — is <em>law</em>. It’s deterministic code around a probabilistic core, and it decides how much of the model’s capability survives contact with a real task.</p>

<p>We just finished grading all 34 platforms AllClaws tracks through a four-area harness framework: core architecture, safety and verification, execution control and state, and enterprise integration. The full report has a 20×10 coverage matrix. This post is about what surprised us.</p>

<hr />

<h2 id="everyone-bets-differently-on-reliability">Everyone Bets Differently on Reliability</h2>

<p>The first thing you notice reading 34 architectures side by side: nobody agrees on where reliability comes from. Every platform makes a different bet.</p>

<p><strong>OpenClaw</strong> bets on routing — a message fabric that absorbs complexity across 37+ channels. <strong>ClawTeam</strong> bets on orchestration: TOML dependency chains mean a worker literally cannot start before its prerequisites finish. <strong>GoClaw</strong> bets on governance — a five-layer defense with per-tenant encryption and audit logs. <strong>IronClaw</strong> bets on isolation, wrapping every tool call in a WASM sandbox with capability permissions. <strong>OpenWorker</strong> bets on humans: an approval gate on every consequential action. <strong>reasonix</strong> bets on money — a session budget that refuses the next turn at 100% spent. <strong>LangGraph</strong> bets on explicit state, checkpointing every node of a typed graph.</p>

<p>None of these bets is wrong. What’s striking is that none of them covers all four areas. The ecosystem isn’t converging on a harness design — it’s speculating, in parallel, on which single control point matters most.</p>

<hr />

<h2 id="state-machines-won-budgets-didnt-arrive">State Machines Won. Budgets Didn’t Arrive.</h2>

<p>Measuring coverage by strong implementations per area produced a clear maturity ranking. Execution state — treating the agent runtime as a state machine rather than isolated API calls — is the most mature capability, with nine strong implementations. Context management follows at eight.</p>

<p>The state-machine story has two protagonists. <strong>LangGraph</strong> is the textbook version: typed state, checkpointed at every node, human-in-the-loop modeled as graph edges. But the more interesting one is <strong>NanoClaw</strong> v2, which implements the state machine <em>physically</em>: every session gets two SQLite files — one the host writes, one the container writes — with exactly one writer per file and even/odd sequence numbers. Message state and execution state are separated at the storage layer. When you can audit the conversation by querying a database, the “black box” objection starts to dissolve.</p>

<p>At the bottom of the ranking: budgeting. Two platforms. Out of twenty with meaningful harness stories.</p>

<p><strong>reasonix</strong> is the only CLI in the ecosystem with a hard spend gate — <code class="language-plaintext highlighter-rouge">--budget &lt;usd&gt;</code> warns at 80% and <em>refuses the next turn</em> at 100%. Not a warning. A refusal. Paired with an <code class="language-plaintext highlighter-rouge">--effort</code> dial that sets reasoning intensity per invocation (the practical form of what harness researchers call the Reasoning Compute Sandwich — strong reasoning for planning and verification, cheap execution in between), it treats token economics as an engineering constraint rather than an invoice to be reviewed afterward. <strong>AgentScope</strong> ships budget as composable loop middleware, the programmatic version of the same idea.</p>

<p>Two implementations of the capability that most directly predicts whether an agent survives production unsupervised. The ecosystem solved “don’t crash” long before “don’t overspend.”</p>

<hr />

<h2 id="the-dangerous-gap-nobody-verifies-claims">The Dangerous Gap: Nobody Verifies Claims</h2>

<p>Here is the finding that should worry everyone.</p>

<p>Our failure-mode research earlier this year identified <strong>Silent Success</strong> as the most dangerous failure in production agents: the agent reports a task complete, the output is wrong or never executed, and the user trusts the report. The cure is a verification hook — an independent check on the <em>claim</em>, not the action.</p>

<p>Across all tracked platforms, four have any mechanism approaching this. And <strong>zero platforms run an independent auditing model over the main agent’s output.</strong></p>

<p>What exists instead catches different things. Approval gates (<strong>OpenWorker</strong>) catch <em>actions</em> before they happen — a human reviews the command. Permission hooks (<strong>AgentScope</strong>’s <code class="language-plaintext highlighter-rouge">on_check_permission</code>) catch <em>unauthorized calls</em> programmatically. Audit logs (<strong>GoClaw</strong>) record what happened, after the fact. All valuable. None of them answers the question that matters: <em>is the agent’s report of success true?</em></p>

<p>The asymmetry is structural. Models are trained to be helpful; when asked “did you do X?”, the prior is “yes.” A harness that never independently verifies outcomes has no defense against that prior. The four-area framework calls for a separate auditing model judging outputs. It exists in no tracked platform. This is the ecosystem’s most dangerous hole, and it is an open market.</p>

<hr />

<h2 id="the-prediction-that-came-true-and-the-one-that-didnt">The Prediction That Came True (and the One That Didn’t)</h2>

<p>The harness framework makes a specific cost prediction: sub-agent teams should share KV caches — the master agent and its workers reusing the same computed prompt prefixes — to make orchestration cheap. We went looking for it.</p>

<p>It doesn’t exist. Not in one platform out of thirty-four. The nearest neighbor is <strong>reasonix</strong>’s cache-first loop, which canonicalizes prompts to maximize DeepSeek context-cache hits — but within a single session, never across agents. <strong>ClawTeam</strong>’s published numbers (five parallel agents finishing a full-stack app in ~3 hours versus 8+ sequential, at the <em>same</em> token cost) were achieved by parallelism alone. Cross-agent cache sharing is unrealized value sitting in plain sight.</p>

<p>One correlation did hold, and it wasn’t in the framework: language predicts harness philosophy. Rust platforms (<strong>IronClaw</strong>, <strong>ZeroClaw</strong>, <strong>codex</strong>, <strong>OpenFang</strong>) express the harness as <em>runtime properties</em> — sandboxes, determinism, an <code class="language-plaintext highlighter-rouge">estop</code> emergency-stop command. Python platforms (<strong>Hermes</strong>, <strong>Nanobot</strong>, <strong>AgentScope</strong>) express it as <em>loop structure</em> — middleware, compaction engines, the AgentLoop/AgentRunner split. Go platforms (<strong>GoClaw</strong>, <strong>HiClaw</strong>) express it as <em>infrastructure</em> — lane-based schedulers, Kubernetes-style control planes. The language you build in shapes which harness problems you can even see.</p>

<hr />

<h2 id="the-unexplored-middle">The Unexplored Middle</h2>

<p>The deepest split in gating philosophy runs between gating everything human-side and gating everything machine-side. <strong>OpenWorker</strong> and <strong>NanoClaw</strong>’s guard seam (allow / hold / deny, with self-modification guards that exist nowhere else) put humans or hard rules at every consequential step. <strong>GoClaw</strong>’s RBAC and <strong>IronClaw</strong>’s capability system encode permissions as machine-enforced policy.</p>

<p>Between them lies an unexplored design: probabilistic models verified by probabilistic judges, with deterministic gates engaged only when they disagree. An auditing model that reads the main agent’s output, challenges it, and escalates to a human gate only on conflict. It would combine the autonomy of the personal paradigm with the assurance of the enterprise one. No tracked platform builds it.</p>

<p>The platforms that close the verification gap — not with bigger models or better prompts, but with harness code that checks the work — are the ones that will graduate from impressive to trustworthy. The harness is where that happens. The prompt never was.</p>

<hr />

<p><em>This analysis is based on the full research report: <a href="https://github.com/dz3ai/allclaws/blob/main/docs/reports/harness-engineering-comparison.md">Harness Engineering Comparison: Philosophy, Design, and Features Across Tracked Platforms</a>, including the 20×10 coverage matrix and per-platform grades.</em></p>]]></content><author><name>Danny Zeng</name></author><category term="Research" /><category term="harness-engineering" /><category term="architecture" /><category term="agent-reliability" /><category term="verification" /><category term="budgeting" /><category term="context-compaction" /><summary type="html"><![CDATA[Prompt engineering taught us to ask nicely. Harness engineering teaches us to stop asking.]]></summary></entry><entry xml:lang="zh"><title type="html">17 个 AI Agent 平台如何展示自己：CLI 命令对比</title><link href="https://dz3ai.github.io/allclaws/blog/2026/08/12/cli-command-comparison-zh/" rel="alternate" type="text/html" title="17 个 AI Agent 平台如何展示自己：CLI 命令对比" /><published>2026-08-12T17:10:00+08:00</published><updated>2026-08-12T17:10:00+08:00</updated><id>https://dz3ai.github.io/allclaws/blog/2026/08/12/cli-command-comparison-zh</id><content type="html" xml:base="https://dz3ai.github.io/allclaws/blog/2026/08/12/cli-command-comparison-zh/"><![CDATA[<p>每一个 AI agent 平台对同一个问题都有不同的答案：<strong>用户如何与你交互？</strong> 有的给你一条命令和一个聊天循环。有的给你 80 个子命令。有的给你 TUI，有的给你 REPL，有的只是往 stdout 打印文本。</p>

<p>在本机所有可安装的 CLI 上运行了 <code class="language-plaintext highlighter-rouge">--help</code>、并阅读了无法安装的那些的源代码之后，这里是一份关于 17 个 AI agent 平台如何向用户展示能力的结构化对比——以及这些选择揭示了怎样的设计哲学。</p>

<hr />

<h2 id="方法论">方法论</h2>

<p>我从本机安装的五个平台（Hermes、kimi-cli、zeroclaw、opencode、reasonix）抓取了活的 <code class="language-plaintext highlighter-rouge">--help</code> 输出，并从 AllClaws 架构文档跟踪的其余平台的源代码和文档中提取了 CLI 架构细节。每个平台的条目涵盖：</p>

<ul>
  <li><strong>命令名</strong>：你输入什么来启动它</li>
  <li><strong>子命令数量</strong>：有多少个不同的命令可用</li>
  <li><strong>调用模式</strong>：REPL、TUI、one-shot、pipe 友好等</li>
  <li><strong>配置方式</strong>：标志、配置文件、交互式设置</li>
  <li><strong>运维命令</strong>：cron、监控、调试、备份</li>
  <li><strong>会话管理</strong>：恢复、历史、导出</li>
</ul>

<hr />

<h2 id="对比">对比</h2>

<h3 id="1-hermes-agent-hermes">1. Hermes-Agent (<code class="language-plaintext highlighter-rouge">hermes</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>语言：</strong> Python</td>
      <td><strong>版本：</strong> v0.20.0</td>
      <td><strong>子命令：</strong> 81+</td>
    </tr>
  </tbody>
</table>

<p>Hermes 拥有所有被跟踪平台中最庞大的 CLI。运行 <code class="language-plaintext highlighter-rouge">hermes --help</code> 会产出约 14,000 字符的输出，覆盖 81 个位置子命令和数十个标志。</p>

<p><strong>调用模式：</strong></p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">hermes</code> — 经典 REPL（prompt_toolkit）</li>
  <li><code class="language-plaintext highlighter-rouge">hermes --tui</code> — 现代终端 UI</li>
  <li><code class="language-plaintext highlighter-rouge">hermes -z "prompt"</code> — One-shot 模式（仅 stdout，无 banner，无 spinner，面向脚本/管道）</li>
  <li><code class="language-plaintext highlighter-rouge">hermes -w</code> — 隔离的 git worktree 模式（用于并行 agent）</li>
  <li><code class="language-plaintext highlighter-rouge">hermes -s skill1,skill2</code> — 预加载技能</li>
</ul>

<p><strong>按类别分组的关键子命令：</strong></p>

<table>
  <thead>
    <tr>
      <th>类别</th>
      <th>命令</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>核心</td>
      <td><code class="language-plaintext highlighter-rouge">chat</code>、<code class="language-plaintext highlighter-rouge">model</code>、<code class="language-plaintext highlighter-rouge">fallback</code>、<code class="language-plaintext highlighter-rouge">moa</code>、<code class="language-plaintext highlighter-rouge">secrets</code></td>
    </tr>
    <tr>
      <td>认证与凭据</td>
      <td><code class="language-plaintext highlighter-rouge">auth</code>、<code class="language-plaintext highlighter-rouge">login</code>、<code class="language-plaintext highlighter-rouge">logout</code>、<code class="language-plaintext highlighter-rouge">egress</code></td>
    </tr>
    <tr>
      <td>消息</td>
      <td><code class="language-plaintext highlighter-rouge">gateway</code>、<code class="language-plaintext highlighter-rouge">send</code>、<code class="language-plaintext highlighter-rouge">whatsapp</code>、<code class="language-plaintext highlighter-rouge">whatsapp-cloud</code>、<code class="language-plaintext highlighter-rouge">slack</code>、<code class="language-plaintext highlighter-rouge">webhook</code>、<code class="language-plaintext highlighter-rouge">portal</code></td>
    </tr>
    <tr>
      <td>调度</td>
      <td><code class="language-plaintext highlighter-rouge">cron</code>、<code class="language-plaintext highlighter-rouge">pause</code>、<code class="language-plaintext highlighter-rouge">resume</code></td>
    </tr>
    <tr>
      <td>项目管理</td>
      <td><code class="language-plaintext highlighter-rouge">kanban</code>、<code class="language-plaintext highlighter-rouge">project</code>、<code class="language-plaintext highlighter-rouge">tasks</code></td>
    </tr>
    <tr>
      <td>技能与插件</td>
      <td><code class="language-plaintext highlighter-rouge">skills</code>、<code class="language-plaintext highlighter-rouge">bundles</code>、<code class="language-plaintext highlighter-rouge">plugins</code>、<code class="language-plaintext highlighter-rouge">curator</code></td>
    </tr>
    <tr>
      <td>记忆与学习</td>
      <td><code class="language-plaintext highlighter-rouge">memory</code>、<code class="language-plaintext highlighter-rouge">journey</code>、<code class="language-plaintext highlighter-rouge">learning</code>、<code class="language-plaintext highlighter-rouge">memory-graph</code></td>
    </tr>
    <tr>
      <td>基础设施</td>
      <td><code class="language-plaintext highlighter-rouge">proxy</code>、<code class="language-plaintext highlighter-rouge">lsp</code>、<code class="language-plaintext highlighter-rouge">mcp</code>、<code class="language-plaintext highlighter-rouge">computer-use</code>、<code class="language-plaintext highlighter-rouge">acp</code></td>
    </tr>
    <tr>
      <td>监控</td>
      <td><code class="language-plaintext highlighter-rouge">status</code>、<code class="language-plaintext highlighter-rouge">logs</code>、<code class="language-plaintext highlighter-rouge">sessions</code>、<code class="language-plaintext highlighter-rouge">insights</code>、<code class="language-plaintext highlighter-rouge">monitoring</code>、<code class="language-plaintext highlighter-rouge">dashboard</code></td>
    </tr>
    <tr>
      <td>运维与调试</td>
      <td><code class="language-plaintext highlighter-rouge">doctor</code>、<code class="language-plaintext highlighter-rouge">verify</code>、<code class="language-plaintext highlighter-rouge">security</code>、<code class="language-plaintext highlighter-rouge">approvals</code>、<code class="language-plaintext highlighter-rouge">dump</code>、<code class="language-plaintext highlighter-rouge">debug</code>、<code class="language-plaintext highlighter-rouge">backup</code>、<code class="language-plaintext highlighter-rouge">checkpoints</code>、<code class="language-plaintext highlighter-rouge">import</code></td>
    </tr>
    <tr>
      <td>配置与 Profile</td>
      <td><code class="language-plaintext highlighter-rouge">config</code>、<code class="language-plaintext highlighter-rouge">profile</code>、<code class="language-plaintext highlighter-rouge">skin</code>、<code class="language-plaintext highlighter-rouge">completion</code>、<code class="language-plaintext highlighter-rouge">hooks</code></td>
    </tr>
    <tr>
      <td>桌面与 GUI</td>
      <td><code class="language-plaintext highlighter-rouge">dashboard</code>、<code class="language-plaintext highlighter-rouge">serve</code>、<code class="language-plaintext highlighter-rouge">desktop</code>、<code class="language-plaintext highlighter-rouge">gui</code></td>
    </tr>
  </tbody>
</table>

<p><strong>设计哲学：</strong> “一切皆子命令。” Hermes 把 CLI 当作每个功能的主接口——消息、调度、技能、记忆、监控、桌面 GUI、MCP 服务器、安全审计。CLI 就是控制平面。不存在”面向用户的功能”与”管理员功能”之分——全在一个命名空间里。</p>

<p><strong>值得关注的设计选择：</strong></p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">-z</code> one-shot 模式只把最终响应写入 stdout（管道友好，CI 兼容）</li>
  <li><code class="language-plaintext highlighter-rouge">--usage-file</code> 用于脚本化运行的成本追踪</li>
  <li><code class="language-plaintext highlighter-rouge">--safe-mode</code> 禁用所有自定义（排障用）</li>
  <li><code class="language-plaintext highlighter-rouge">--yolo</code> 绕过所有审批 prompt</li>
  <li><code class="language-plaintext highlighter-rouge">--worktree</code> 为并行 agent 创建隔离的 git worktree</li>
  <li>ACP 服务器模式（<code class="language-plaintext highlighter-rouge">hermes acp</code>）用于 IDE 集成</li>
</ul>

<hr />

<h3 id="2-openclaw-openclaw">2. OpenClaw (<code class="language-plaintext highlighter-rouge">openclaw</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>语言：</strong> TypeScript</td>
      <td><strong>入口：</strong> <code class="language-plaintext highlighter-rouge">src/cli</code></td>
      <td><strong>星标：</strong> ~340K</td>
    </tr>
  </tbody>
</table>

<p>OpenClaw 的 CLI 无法直接测试（npm 二进制启动的 TUI 在 WSL 里超时），但架构文档揭示了它的结构。</p>

<p><strong>架构：</strong></p>
<ul>
  <li>入口在 <code class="language-plaintext highlighter-rouge">src/cli</code>，命令在 <code class="language-plaintext highlighter-rouge">src/commands</code></li>
  <li>单 agent 架构 + channel/插件扩展</li>
  <li>37+ 消息 channel（Telegram、Discord、Slack、Signal、iMessage、Web 等）</li>
  <li>用于额外平台（MSTeams、Matrix）的扩展系统</li>
</ul>

<p><strong>设计哲学：</strong> “成为 channel。” OpenClaw 本质上是一个路由平台——它从任何 channel 接收输入，通过 AI agent 处理，再输出到任何 channel。CLI 是众多 channel 之一，而不是主要的那个。架构上 <code class="language-plaintext highlighter-rouge">src/provider-web.ts</code> 和 <code class="language-plaintext highlighter-rouge">src/routing</code> 的分量重过 <code class="language-plaintext highlighter-rouge">src/commands</code>。</p>

<p><strong>CLI 性格：</strong> 极简而聚焦。OpenClaw 的 CLI 的存在是为了配置 channel、启动 agent 循环、管理插件。它不试图成为通用控制平面。37+ 个 channel 才是差异化所在，不是命令数量。</p>

<hr />

<h3 id="3-clawteam-clawteam">3. ClawTeam (<code class="language-plaintext highlighter-rouge">clawteam</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>语言：</strong> Python 3.10+</td>
      <td><strong>架构：</strong> 多代理（Leader-Worker）</td>
    </tr>
  </tbody>
</table>

<p>ClawTeam 的 CLI 是所有平台中最领域特定的——每个子命令都映射到一个多代理工作流概念。</p>

<p><strong>关键子命令组：</strong></p>

<table>
  <thead>
    <tr>
      <th>组</th>
      <th>命令</th>
      <th>用途</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>团队生命周期</td>
      <td><code class="language-plaintext highlighter-rouge">team spawn-team</code>、<code class="language-plaintext highlighter-rouge">team cleanup</code></td>
      <td>创建/销毁 agent 团队</td>
    </tr>
    <tr>
      <td>agent 生成</td>
      <td><code class="language-plaintext highlighter-rouge">spawn</code></td>
      <td>通过 tmux 启动 worker</td>
    </tr>
    <tr>
      <td>任务管理</td>
      <td><code class="language-plaintext highlighter-rouge">task create</code>、<code class="language-plaintext highlighter-rouge">task update</code>、<code class="language-plaintext highlighter-rouge">task wait</code></td>
      <td>管理带依赖链的任务</td>
    </tr>
    <tr>
      <td>代理间消息</td>
      <td><code class="language-plaintext highlighter-rouge">inbox send</code>、<code class="language-plaintext highlighter-rouge">inbox broadcast</code></td>
      <td>P2P 与广播通信</td>
    </tr>
    <tr>
      <td>监控</td>
      <td><code class="language-plaintext highlighter-rouge">board show</code>、<code class="language-plaintext highlighter-rouge">board live</code>、<code class="language-plaintext highlighter-rouge">board serve</code></td>
      <td>kanban 看板、实时视图、Web UI</td>
    </tr>
    <tr>
      <td>工作区</td>
      <td><code class="language-plaintext highlighter-rouge">workspace checkpoint</code>、<code class="language-plaintext highlighter-rouge">workspace merge</code></td>
      <td>git worktree 管理</td>
    </tr>
  </tbody>
</table>

<p><strong>设计哲学：</strong> “编排 agent，而不是成为 agent。” ClawTeam 的 CLI 是团队管理接口，不是 agent 聊天接口。你不通过 ClawTeam 与 AI 对话——你生成一个互相交谈的 agent 团队。CLI 子命令映射工作流：建团队、定义任务、看板、合并结果。</p>

<p><strong>值得关注：</strong> 使用 TOML 团队模板（<code class="language-plaintext highlighter-rouge">clawteam launch hedge-fund --team fund1</code>）实现可复现的团队配置。ZeroMQ P2P 选项用于跨机器协调。kanban 看板（<code class="language-plaintext highlighter-rouge">board live</code>）提供所有 agent 的 tmux 平铺视图。</p>

<hr />

<h3 id="4-goclaw-goclaw">4. GoClaw (<code class="language-plaintext highlighter-rouge">goclaw</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>语言：</strong> Go 1.26</td>
      <td><strong>入口：</strong> <code class="language-plaintext highlighter-rouge">cmd/goclaw/main.go</code></td>
      <td><strong>二进制大小：</strong> ~25MB</td>
    </tr>
  </tbody>
</table>

<p>GoClaw 的 CLI 反映了它作为网关服务器的身份——主命令启动网关，子命令管理周边基础设施。</p>

<p><strong>推断的 CLI 结构</strong>（来自 <code class="language-plaintext highlighter-rouge">cmd/</code> 模块分析）：</p>
<ul>
  <li>网关启动（主命令——WS + HTTP 服务器）</li>
  <li>Onboarding 向导</li>
  <li>迁移工具</li>
  <li>配置管理（JSON5 + 环境变量）</li>
</ul>

<p><strong>设计哲学：</strong> “单一二进制，全栈。” GoClaw 以一个约 25MB 的 Go 二进制交付，内含网关服务器、agent 循环、提供商集成和管理工具。CLI 是部署工具。你运行 <code class="language-plaintext highlighter-rouge">goclaw</code> 启动网关，然后通过 Web 仪表盘、WebSocket RPC 或 HTTP API（<code class="language-plaintext highlighter-rouge">/v1/chat/completions</code>、<code class="language-plaintext highlighter-rouge">/v1/agents</code>、<code class="language-plaintext highlighter-rouge">/v1/skills</code>）与 agent 交互。</p>

<p><strong>CLI 性格：</strong> 面向基础设施。与 Hermes（一切皆子命令）或 ClawTeam（编排即子命令）不同，GoClaw 的 CLI 关注部署和配置。agent 交互发生在网关的 RPC 和 HTTP 接口上，而不是 CLI 子命令里。这与它的企业定位一致——你不会 SSH 到生产服务器上跟 agent 聊天。</p>

<hr />

<h3 id="5-ironclaw-ironclaw">5. IronClaw (<code class="language-plaintext highlighter-rouge">ironclaw</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>语言：</strong> Rust</td>
      <td><strong>入口：</strong> <code class="language-plaintext highlighter-rouge">src/main.rs</code></td>
    </tr>
  </tbody>
</table>

<p>IronClaw 的 CLI 架构强调安全原语和沙箱管理。</p>

<p><strong>Channel 结构：</strong></p>
<ul>
  <li>REPL（主要交互方式）</li>
  <li>HTTP webhook</li>
  <li>WASM channel（动态工具加载）</li>
  <li>Web 网关（SSE/WebSocket）</li>
</ul>

<p><strong>设计哲学：</strong> “安全第一，CLI 只是众多 channel 之一。” IronClaw 把 REPL 当作与 HTTP webhook 和 WASM channel 并列的 channel——不是主接口。架构重心在沙箱编排器（Docker）、工具注册表（内置 + MCP + WASM）和安全层（prompt 注入防御、宿主边界的凭据注入）。</p>

<hr />

<h3 id="6-zeroclaw-zeroclaw">6. ZeroClaw (<code class="language-plaintext highlighter-rouge">zeroclaw</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>语言：</strong> Rust</td>
      <td><strong>版本：</strong> 0.1.7</td>
      <td><strong>星标：</strong> ~29K</td>
      <td><strong>内存：</strong> &lt;5MB</td>
      <td><strong>冷启动：</strong> &lt;10ms</td>
    </tr>
  </tbody>
</table>

<p>ZeroClaw 拥有所有平台中最<em>一致</em>的 CLI——干净、结构良好、基于 Rust clap 的帮助输出，每个子命令都带示例。</p>

<p><strong>子命令（22 个）：</strong></p>

<table>
  <thead>
    <tr>
      <th>类别</th>
      <th>命令</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>核心 agent</td>
      <td><code class="language-plaintext highlighter-rouge">onboard</code>、<code class="language-plaintext highlighter-rouge">agent</code>、<code class="language-plaintext highlighter-rouge">daemon</code>、<code class="language-plaintext highlighter-rouge">service</code></td>
    </tr>
    <tr>
      <td>网关与 channel</td>
      <td><code class="language-plaintext highlighter-rouge">gateway</code>、<code class="language-plaintext highlighter-rouge">channel</code>、<code class="language-plaintext highlighter-rouge">integrations</code></td>
    </tr>
    <tr>
      <td>调度</td>
      <td><code class="language-plaintext highlighter-rouge">cron</code>（list、add、add-at、add-every、once、remove、update、pause、resume）</td>
    </tr>
    <tr>
      <td>记忆与技能</td>
      <td><code class="language-plaintext highlighter-rouge">memory</code>、<code class="language-plaintext highlighter-rouge">skills</code>（list、audit、install、remove）</td>
    </tr>
    <tr>
      <td>模型与提供商</td>
      <td><code class="language-plaintext highlighter-rouge">models</code>、<code class="language-plaintext highlighter-rouge">providers</code>、<code class="language-plaintext highlighter-rouge">auth</code></td>
    </tr>
    <tr>
      <td>硬件</td>
      <td><code class="language-plaintext highlighter-rouge">hardware</code>、<code class="language-plaintext highlighter-rouge">peripheral</code>（STM32、RPi GPIO）</td>
    </tr>
    <tr>
      <td>运维</td>
      <td><code class="language-plaintext highlighter-rouge">status</code>、<code class="language-plaintext highlighter-rouge">doctor</code>、<code class="language-plaintext highlighter-rouge">estop</code>、<code class="language-plaintext highlighter-rouge">config</code>、<code class="language-plaintext highlighter-rouge">completions</code>、<code class="language-plaintext highlighter-rouge">migrate</code></td>
    </tr>
  </tbody>
</table>

<p><strong>设计哲学：</strong> “快、小、完整。” ZeroClaw 的 CLI 胜在平衡——22 个子命令覆盖完整 agent 生命周期（onboarding、agent 循环、daemon、调度、技能、硬件、监控），没有 Hermes 81+ 命令的蔓延。每个子命令的 <code class="language-plaintext highlighter-rouge">--help</code> 输出都带示例。</p>

<p><strong>值得关注的设计选择：</strong></p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">agent -m "prompt"</code> 单次执行，不进入交互模式</li>
  <li><code class="language-plaintext highlighter-rouge">estop</code> 紧急停止 daemon 和 channel</li>
  <li>硬件外设支持（STM32、RPi GPIO）——生态中独此一家</li>
  <li><code class="language-plaintext highlighter-rouge">daemon</code> 是一等命令（网关 + channel + 心跳 + 调度器作为单一长驻进程）</li>
</ul>

<hr />

<h3 id="7-opencode-opencode">7. OpenCode (<code class="language-plaintext highlighter-rouge">opencode</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>语言：</strong> TypeScript</td>
      <td><strong>版本：</strong> v1.18.18</td>
      <td><strong>星标：</strong> ~198K</td>
    </tr>
  </tbody>
</table>

<p>OpenCode 是”开源编程 agent”——TUI 优先的编程助手，支持 ACP 和 MCP，外加独特的 headless 服务器模式用于远程协作。</p>

<p><strong>子命令（21 个）：</strong></p>

<table>
  <thead>
    <tr>
      <th>类别</th>
      <th>命令</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>核心</td>
      <td><code class="language-plaintext highlighter-rouge">opencode [project]</code>（TUI，默认）、<code class="language-plaintext highlighter-rouge">run [message..]</code>、<code class="language-plaintext highlighter-rouge">attach &lt;url&gt;</code></td>
    </tr>
    <tr>
      <td>服务器</td>
      <td><code class="language-plaintext highlighter-rouge">serve</code>（headless）、<code class="language-plaintext highlighter-rouge">web</code>（服务器 + 浏览器 UI）</td>
    </tr>
    <tr>
      <td>协议</td>
      <td><code class="language-plaintext highlighter-rouge">acp</code>（ACP 服务器）、<code class="language-plaintext highlighter-rouge">mcp</code>（MCP 管理）</td>
    </tr>
    <tr>
      <td>提供商与模型</td>
      <td><code class="language-plaintext highlighter-rouge">providers</code>（即 <code class="language-plaintext highlighter-rouge">auth</code>）、<code class="language-plaintext highlighter-rouge">models [provider]</code></td>
    </tr>
    <tr>
      <td>GitHub</td>
      <td><code class="language-plaintext highlighter-rouge">github</code>（GitHub agent）、<code class="language-plaintext highlighter-rouge">pr &lt;number&gt;</code>（拉取 PR 分支后进入 TUI）</td>
    </tr>
    <tr>
      <td>会话</td>
      <td><code class="language-plaintext highlighter-rouge">session</code>（管理）、<code class="language-plaintext highlighter-rouge">export [sessionID]</code>、<code class="language-plaintext highlighter-rouge">import &lt;file&gt;</code></td>
    </tr>
    <tr>
      <td>Agent 与插件</td>
      <td><code class="language-plaintext highlighter-rouge">agent</code>（管理 agent）、<code class="language-plaintext highlighter-rouge">plugin &lt;module&gt;</code>（安装与配置）</td>
    </tr>
    <tr>
      <td>运维</td>
      <td><code class="language-plaintext highlighter-rouge">debug</code>、<code class="language-plaintext highlighter-rouge">stats</code>（token 用量/成本）、<code class="language-plaintext highlighter-rouge">db</code>、<code class="language-plaintext highlighter-rouge">upgrade</code>、<code class="language-plaintext highlighter-rouge">uninstall</code>、<code class="language-plaintext highlighter-rouge">completion</code></td>
    </tr>
  </tbody>
</table>

<p><strong>调用模式：</strong></p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">opencode</code> — 启动 TUI（默认）</li>
  <li><code class="language-plaintext highlighter-rouge">opencode run "prompt"</code> — 带消息运行（非交互）</li>
  <li><code class="language-plaintext highlighter-rouge">opencode serve</code> — headless 服务器</li>
  <li><code class="language-plaintext highlighter-rouge">opencode web</code> — 服务器 + 浏览器 UI</li>
  <li><code class="language-plaintext highlighter-rouge">opencode attach &lt;url&gt;</code> — 连接远程服务器</li>
  <li><code class="language-plaintext highlighter-rouge">opencode --mini</code> — 最小交互界面</li>
  <li><code class="language-plaintext highlighter-rouge">opencode -c</code> / <code class="language-plaintext highlighter-rouge">-s &lt;id&gt;</code> — 继续上一个或指定会话</li>
</ul>

<p><strong>值得关注的设计选择：</strong></p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">--fork</code> 在继续会话时 fork（从先前状态分叉）</li>
  <li><code class="language-plaintext highlighter-rouge">--pure</code> 不加载外部插件运行</li>
  <li><code class="language-plaintext highlighter-rouge">--mdns</code> 用于局域网 mDNS 服务发现（找到运行中的实例）</li>
  <li><code class="language-plaintext highlighter-rouge">--cors</code> 用于 headless 服务器的跨域配置</li>
  <li><code class="language-plaintext highlighter-rouge">--auto</code> 自动批准所有未被显式拒绝的权限（文档明示危险的模式）</li>
  <li><code class="language-plaintext highlighter-rouge">--port</code> / <code class="language-plaintext highlighter-rouge">--hostname</code> 显式绑定服务器；<code class="language-plaintext highlighter-rouge">--mdns-domain</code> 自定义发现域名</li>
  <li><code class="language-plaintext highlighter-rouge">--replay-limit</code> 限制 mini 模式恢复时的会话回放条数</li>
  <li><code class="language-plaintext highlighter-rouge">pr &lt;number&gt;</code> 拉取 GitHub PR 分支后启动 TUI——其他平台没有的工作流专属命令</li>
  <li><code class="language-plaintext highlighter-rouge">stats</code> 把 token 用量和成本追踪作为一等命令</li>
</ul>

<p><strong>设计哲学：</strong> “TUI 优先，服务器可选。” OpenCode 的默认体验是 TUI，但它独特地同时提供 headless <code class="language-plaintext highlighter-rouge">serve</code> 模式和带浏览器 UI 的 <code class="language-plaintext highlighter-rouge">web</code> 模式。<code class="language-plaintext highlighter-rouge">attach &lt;url&gt;</code> 命令和 mDNS 发现暗示了一个同时支持本地开发和远程协作的设计——你可以在服务器上运行 opencode，从笔记本 attach 上去。<code class="language-plaintext highlighter-rouge">pr</code> 命令把 GitHub 工作流接进 agent 循环，把 PR 审查当作一等用例。</p>

<hr />

<h3 id="8-nanobot-nanobot">8. Nanobot (<code class="language-plaintext highlighter-rouge">nanobot</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>语言：</strong> Python 3.11+</td>
      <td><strong>星标：</strong> ~37K</td>
      <td><strong>入口：</strong> <code class="language-plaintext highlighter-rouge">nanobot/__main__.py</code>（Typer）</td>
    </tr>
  </tbody>
</table>

<p>Nanobot 把”超轻量”哲学带进了 CLI 设计。</p>

<p><strong>架构：</strong></p>
<ul>
  <li>CLI 用 Python Typer（从类型提示自动生成帮助）</li>
  <li>单 agent + subagent 支持</li>
  <li>8+ channel（Telegram、Discord、Slack、WhatsApp、飞书、QQ、Email、Matrix、CLI）</li>
  <li>MCP 桥接（可用但非核心）</li>
  <li>LiteLLM 多提供商支持</li>
</ul>

<p><strong>设计哲学：</strong> “一条命令，一个 agent。” Nanobot 的 CLI 是极简的，因为平台本身就是极简的（核心约 4,000 行）。Typer 从类型注解自动提供良好的帮助输出。重心在 <code class="language-plaintext highlighter-rouge">pip install nanobot-ai</code> 和开箱即用，而不是全面的子命令覆盖。</p>

<hr />

<h3 id="9-maxclaw-maxclaw">9. Maxclaw (<code class="language-plaintext highlighter-rouge">maxclaw</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>语言：</strong> Go 1.24+</td>
      <td><strong>星标：</strong> ~189</td>
      <td><strong>二进制：</strong> <code class="language-plaintext highlighter-rouge">maxclaw</code>、<code class="language-plaintext highlighter-rouge">maxclaw-gateway</code></td>
    </tr>
  </tbody>
</table>

<p>Maxclaw 交付两个二进制——一个给 agent，一个给网关。</p>

<p><strong>架构：</strong></p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">cmd/main.go</code> — agent CLI，支持子会话生成</li>
  <li><code class="language-plaintext highlighter-rouge">maxclaw-gateway</code> — 独立网关二进制</li>
  <li>桌面 UI + Web UI 同端口</li>
  <li>Monorepo 上下文发现（AGENTS.md、CLAUDE.md）</li>
  <li>分层记忆（MEMORY.md、HISTORY.md、heartbeat.md）</li>
</ul>

<p><strong>设计哲学：</strong> “本地优先，配视觉界面。” Maxclaw 独特地把桌面 UI 和 Web UI 绑定在同一端口。CLI 是与视觉界面并列的一种界面。子会话生成让单个 maxclaw 实例内可以跑并行 agent。</p>

<hr />

<h3 id="10-nanoclaw-nanoclaw">10. NanoClaw (<code class="language-plaintext highlighter-rouge">nanoclaw</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>语言：</strong> TypeScript（Node.js）</td>
      <td><strong>入口：</strong> <code class="language-plaintext highlighter-rouge">src/index.ts</code></td>
    </tr>
  </tbody>
</table>

<p>NanoClaw 是最以容器为中心的平台——它的”CLI”本质上是一个编排器进程。</p>

<p><strong>架构：</strong></p>
<ul>
  <li>单 Node.js 编排器进程</li>
  <li>Claude Agent SDK 在每组隔离容器中运行</li>
  <li>每组一个 CLAUDE.md 作为记忆</li>
  <li>IPC watcher 用于进程间通信</li>
  <li>任务调度器</li>
  <li>WhatsApp 作为主 channel</li>
</ul>

<p><strong>设计哲学：</strong> “容器，而非命令。” NanoClaw 的 CLI 是一个生成容器化 agent 实例的 IPC 编排器。”命令”就是容器生命周期管理——启动、停止、监控。传统意义上的 REPL 不存在；你通过 WhatsApp 群组交互，每个群组一个隔离在自己容器里的 Claude agent。</p>

<hr />

<h3 id="11-hiclaw-hiclaw">11. HiClaw (<code class="language-plaintext highlighter-rouge">hiclaw</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>语言：</strong> Go + Shell</td>
      <td><strong>部署：</strong> Docker Compose / Kubernetes</td>
    </tr>
  </tbody>
</table>

<p>HiClaw 是唯一使用 Kubernetes 风格声明式资源的平台。</p>

<p><strong>架构：</strong></p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">hiclaw</code> CLI 配 Docker Compose</li>
  <li>YAML 资源定义（Worker、Team、Human）</li>
  <li>Worker 模板市场</li>
  <li>基于 Nacos 的技能发现</li>
  <li>Manager-Workers 运行时（CoPaw）</li>
</ul>

<p><strong>设计哲学：</strong> “给 agent 的声明式基础设施。” HiClaw 的 CLI 最接近 <code class="language-plaintext highlighter-rouge">kubectl</code>——你把 worker、team 和 human-in-the-loop 资源定义为 YAML 文件然后 apply。CLI 管理资源生命周期而非 agent 交互。这是企业自动化范式推到逻辑终点：agent 就是 Kubernetes 资源。</p>

<hr />

<h3 id="12-hermes-agent源码分析-vs-实测抓取">12. Hermes-Agent（源码分析 vs 实测抓取）</h3>

<p>架构文档把 Hermes 描述得比实测 <code class="language-plaintext highlighter-rouge">--help</code> 揭示的更简单。文档记的是：</p>
<ul>
  <li>入口：<code class="language-plaintext highlighter-rouge">hermes</code> CLI</li>
  <li>架构：带上下文管理的单 agent</li>
  <li>MCP 原生集成</li>
</ul>

<p>实测 CLI（v0.20.0）展示的是一个远超”带上下文管理的单 agent”的平台——一个完整的 agent 操作系统，81+ 子命令横跨消息、调度、技能、记忆、监控、桌面 GUI 和 MCP 服务器管理。</p>

<hr />

<h3 id="13-aider-aider">13. aider (<code class="language-plaintext highlighter-rouge">aider</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>语言：</strong> Python</td>
      <td><strong>星标：</strong> ~68K</td>
      <td><strong>入口：</strong> <code class="language-plaintext highlighter-rouge">aider</code> CLI</td>
    </tr>
  </tbody>
</table>

<p>aider 是最聚焦的 CLI——它只做一件事（AI 编辑代码），并通过聊天界面完成。</p>

<p><strong>架构：</strong></p>
<ul>
  <li>REPL 结对编程循环</li>
  <li>git 感知（用合理的 message 自动提交）</li>
  <li>编辑模式：Whole Edit、Diff Edit、Architect</li>
  <li>Repo Map 用于大代码库上下文</li>
  <li>20+ LLM 提供商</li>
</ul>

<p><strong>设计哲学：</strong> “结对编程，不是平台。” aider 没有调度、技能、消息或监控的子命令。它是一个带 git 集成的聊天循环。你说，它改代码，git 提交结果。极简就是重点——68K 星来自把一件事做到极致。</p>

<hr />

<h3 id="14-claude-code-claude">14. Claude Code (<code class="language-plaintext highlighter-rouge">claude</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>语言：</strong> TypeScript（Anthropic）</td>
      <td><strong>入口：</strong> <code class="language-plaintext highlighter-rouge">claude</code></td>
    </tr>
  </tbody>
</table>

<p>Claude Code 是 Anthropic 官方 CLI 编程 agent。无法从 WSL 直接测试（启动的 TUI 会超时）。</p>

<p><strong>架构：</strong></p>
<ul>
  <li>终端编程 agent</li>
  <li>ACP 协议支持</li>
  <li>沙箱执行</li>
  <li>交互式审批循环</li>
</ul>

<p><strong>设计哲学：</strong> “Anthropic 的终端 agent。” Claude Code 是 Anthropic 终端 AI 编程愿景的参考实现。它遵循极简 CLI 表面的模式——你运行 <code class="language-plaintext highlighter-rouge">claude</code>，它开启会话，你写代码。简单是刻意为之。</p>

<hr />

<h3 id="15-kimi-cli-kimi-cli">15. kimi-cli (<code class="language-plaintext highlighter-rouge">kimi-cli</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>语言：</strong> Python</td>
      <td><strong>星标：</strong> ~8.8K</td>
      <td><strong>版本：</strong> 1.24.0</td>
    </tr>
  </tbody>
</table>

<p>来自 MoonshotAI 的 kimi-cli，相对其子命令数量，拥有所有平台中<em>选项最密集</em>的帮助输出。</p>

<p><strong>调用模式：</strong></p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">kimi-cli</code> — 交互 agent（默认）</li>
  <li><code class="language-plaintext highlighter-rouge">kimi-cli -p "prompt"</code> / <code class="language-plaintext highlighter-rouge">-c "prompt"</code> — 单次 prompt</li>
  <li><code class="language-plaintext highlighter-rouge">kimi-cli --print</code> — 打印模式（非交互，隐含 <code class="language-plaintext highlighter-rouge">--yolo</code>）</li>
  <li><code class="language-plaintext highlighter-rouge">kimi-cli --quiet</code> — <code class="language-plaintext highlighter-rouge">--print --output-format text --final-message-only</code> 的简写</li>
  <li><code class="language-plaintext highlighter-rouge">kimi-cli --acp</code> — ACP 服务器模式（已弃用，现为 <code class="language-plaintext highlighter-rouge">kimi-cli acp</code>）</li>
  <li><code class="language-plaintext highlighter-rouge">kimi-cli --wire</code> — Wire 服务器（实验性）</li>
</ul>

<p><strong>子命令（9 个）：</strong></p>

<table>
  <thead>
    <tr>
      <th>命令</th>
      <th>用途</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">login</code> / <code class="language-plaintext highlighter-rouge">logout</code></td>
      <td>账号管理</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">term</code></td>
      <td>Toad TUI，由 Kimi Code ACP 服务器支撑</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">acp</code></td>
      <td>ACP 服务器</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">info</code></td>
      <td>版本与协议信息</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">export</code></td>
      <td>会话数据导出</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">mcp</code></td>
      <td>MCP 服务器配置管理</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">vis</code></td>
      <td>agent 追踪可视化</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">web</code></td>
      <td>Web 界面</td>
    </tr>
  </tbody>
</table>

<p><strong>值得关注的设计选择：</strong></p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">--agent [default|okabe]</code> 和 <code class="language-plaintext highlighter-rouge">--agent-file FILE</code> 用于自定义 agent 规格</li>
  <li><code class="language-plaintext highlighter-rouge">--input-format [text|stream-json]</code> 和 <code class="language-plaintext highlighter-rouge">--output-format [text|stream-json]</code> 用于管道集成</li>
  <li><code class="language-plaintext highlighter-rouge">--mcp-config-file FILE</code>（可重复）用于多个 MCP 配置</li>
  <li><code class="language-plaintext highlighter-rouge">--skills-dir DIRECTORY</code> 用于技能发现</li>
  <li><code class="language-plaintext highlighter-rouge">--thinking</code> / <code class="language-plaintext highlighter-rouge">--no-thinking</code> 推理模式开关</li>
  <li><code class="language-plaintext highlighter-rouge">--max-steps-per-turn</code>、<code class="language-plaintext highlighter-rouge">--max-retries-per-step</code>、<code class="language-plaintext highlighter-rouge">--max-ralph-iterations</code> 细粒度控制</li>
</ul>

<p><strong>设计哲学：</strong> “可配置的 agent，多界面。” kimi-cli 提供所有平台中最细粒度的每次调用配置。agent 行为的每个方面都可以通过标志调——模型、思考模式、步数上限、重试上限、MCP 配置、agent 规格、技能目录。三种界面模式（交互、print、wire/ACP）加上 agent 追踪可视化（<code class="language-plaintext highlighter-rouge">vis</code>），暗示这是一个同时为终端用户编程和开发者工具链设计的平台。</p>

<hr />

<h3 id="16-codex-codex">16. Codex (<code class="language-plaintext highlighter-rouge">codex</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>语言：</strong> Rust</td>
      <td><strong>星标：</strong> ~86.9K</td>
      <td><strong>入口：</strong> <code class="language-plaintext highlighter-rouge">codex</code> CLI</td>
    </tr>
  </tbody>
</table>

<p>OpenAI 的 Codex 是星标最多的 CLI agent，也是架构上最简单的。</p>

<p><strong>架构：</strong></p>
<ul>
  <li>简单的 CLI → LLM → shell 执行循环</li>
  <li>沙箱执行（所有代码在隔离环境中运行）</li>
  <li>单二进制，零运行时开销</li>
  <li>模型：GPT-4o、o3、o4-mini</li>
</ul>

<p><strong>设计哲学：</strong> “单二进制，单循环。” Codex 是反 Hermes。一条命令，一个循环，沙箱执行，完事。没有技能、调度、消息或监控的子命令。沙箱是差异化所在——每次代码执行都是隔离的，对 CI/CD 管道是安全的。</p>

<hr />

<h3 id="17-reasonix-reasonix--dsnix">17. Reasonix (<code class="language-plaintext highlighter-rouge">reasonix</code> / <code class="language-plaintext highlighter-rouge">dsnix</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>语言：</strong> TypeScript</td>
      <td><strong>版本：</strong> v0.52.0</td>
      <td><strong>星标：</strong> ~34.6K</td>
      <td><strong>入口：</strong> <code class="language-plaintext highlighter-rouge">dist/cli/index.js</code></td>
      <td><strong>冷启动：</strong> ~287ms</td>
    </tr>
  </tbody>
</table>

<p>Reasonix（esengine/DeepSeek-Reasonix）是”DeepSeek 原生编程 agent”——也是本次对比中唯一拥有<strong>两个命令名</strong>的平台：<code class="language-plaintext highlighter-rouge">reasonix</code> 和 <code class="language-plaintext highlighter-rouge">dsnix</code> 指向同一个二进制。它的 CLI 哲学围绕一个经济性理念构建：DeepSeek 的上下文缓存。子命令的存在就是为了让缓存命中率可见、可干预。</p>

<p><strong>子命令（19 个）：</strong></p>

<table>
  <thead>
    <tr>
      <th>类别</th>
      <th>命令</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>安装与健康</td>
      <td><code class="language-plaintext highlighter-rouge">setup</code>（交互式向导）、<code class="language-plaintext highlighter-rouge">doctor</code>、<code class="language-plaintext highlighter-rouge">doctor-cache</code>、<code class="language-plaintext highlighter-rouge">update</code>、<code class="language-plaintext highlighter-rouge">version</code></td>
    </tr>
    <tr>
      <td>核心聊天</td>
      <td><code class="language-plaintext highlighter-rouge">chat</code>（带实时缓存/成本面板的 Ink TUI）、<code class="language-plaintext highlighter-rouge">code [dir]</code>（带文件系统工具的编程聊天）</td>
    </tr>
    <tr>
      <td>非交互</td>
      <td><code class="language-plaintext highlighter-rouge">run &lt;task&gt;</code>（流式 one-shot）、<code class="language-plaintext highlighter-rouge">desktop</code>（面向桌面客户端的 headless JSON-RPC）</td>
    </tr>
    <tr>
      <td>ACP</td>
      <td><code class="language-plaintext highlighter-rouge">acp</code>（stdio NDJSON 上的 Agent Client Protocol）</td>
    </tr>
    <tr>
      <td>可观测性</td>
      <td><code class="language-plaintext highlighter-rouge">stats [transcript]</code>（使用情况仪表盘）、<code class="language-plaintext highlighter-rouge">events &lt;name&gt;</code>（内核事件日志美化打印）、<code class="language-plaintext highlighter-rouge">replay &lt;transcript&gt;</code>（转录稿浏览 TUI）、<code class="language-plaintext highlighter-rouge">diff &lt;a&gt; &lt;b&gt;</code>（分栏转录稿对比）</td>
    </tr>
    <tr>
      <td>会话</td>
      <td><code class="language-plaintext highlighter-rouge">sessions</code>、<code class="language-plaintext highlighter-rouge">prune-sessions</code>（删除空闲 ≥N 天的会话，<code class="language-plaintext highlighter-rouge">--dry-run</code>）、<code class="language-plaintext highlighter-rouge">-c/--continue</code>、<code class="language-plaintext highlighter-rouge">-r/--resume</code>、<code class="language-plaintext highlighter-rouge">-n/--new</code></td>
    </tr>
    <tr>
      <td>成本与数据</td>
      <td><code class="language-plaintext highlighter-rouge">commit</code>（从暂存 diff 起草提交消息）、<code class="language-plaintext highlighter-rouge">mcp</code>（MCP 发现 + 配置测试）、<code class="language-plaintext highlighter-rouge">index</code>（本地语义搜索索引）</td>
    </tr>
  </tbody>
</table>

<p><strong>设计哲学：</strong> “成本是一等公民。” Reasonix 是这里唯一把<strong>会话美元预算内置到调用里</strong>的 CLI：<code class="language-plaintext highlighter-rouge">--budget &lt;usd&gt;</code> 在 80% 时警告，100% 时<em>拒绝下一轮</em>（不只是警告——是硬门禁）。<code class="language-plaintext highlighter-rouge">chat</code> TUI 在你输入时显示实时缓存命中/成本面板，<code class="language-plaintext highlighter-rouge">stats</code> 把历史转录稿变成使用仪表盘，<code class="language-plaintext highlighter-rouge">doctor-cache</code> 是专门针对缓存稳定性的健康检查。kimi-cli 让每个<em>行为</em>可配置，Reasonix 让每个<em>成本维度</em>可见：预算上限、按转录稿记账、缓存健康。它是 kimi-cli 配置优先设计的经济学优先对照。</p>

<p><strong>值得关注的设计选择：</strong></p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">--budget &lt;usd&gt;</code> — 每会话花费上限，80% 警告，100% 硬拒绝</li>
  <li><code class="language-plaintext highlighter-rouge">--effort low|medium|high|max</code> — 每种调用模式都有的推理强度旋钮</li>
  <li><code class="language-plaintext highlighter-rouge">--no-mouse</code> — 关闭 SGR 鼠标跟踪，恢复终端原生拖选（其他 CLI 都没处理的痛点）</li>
  <li><code class="language-plaintext highlighter-rouge">--no-proxy</code> — 单次运行绕过代理，适合 GFW 邻近网络</li>
  <li><code class="language-plaintext highlighter-rouge">--dashboard-port</code> / <code class="language-plaintext highlighter-rouge">--dashboard-host</code> — 内嵌 Web 仪表盘的固定端口 + 局域网绑定（SSH 隧道友好）</li>
  <li><code class="language-plaintext highlighter-rouge">--mcp &lt;spec&gt;</code> 可重复，配 <code class="language-plaintext highlighter-rouge">--mcp-prefix</code> 给工具名加命名空间</li>
  <li><code class="language-plaintext highlighter-rouge">--profile</code> — 记录 V8 CPU profile，用于性能 bug 报告</li>
  <li>双语帮助输出（中文描述 + 英文命令名）</li>
  <li><code class="language-plaintext highlighter-rouge">diff &lt;a&gt; &lt;b&gt;</code> — 唯一能<em>分栏对比两份 agent 转录稿</em>的 CLI</li>
  <li><code class="language-plaintext highlighter-rouge">code</code> 上的 <code class="language-plaintext highlighter-rouge">dry-run</code> 标志用于 ssh:// 目标——解析 URI、检查本地 SSH、打印计划步骤，不执行任何远程命令</li>
</ul>

<p><strong>交叉引用：</strong> Reasonix 实现了 one-shot（<code class="language-plaintext highlighter-rouge">run</code>）、TUI（<code class="language-plaintext highlighter-rouge">chat</code>）、ACP 服务器（<code class="language-plaintext highlighter-rouge">acp</code>）、MCP 管理（<code class="language-plaintext highlighter-rouge">mcp</code>）、会话恢复（<code class="language-plaintext highlighter-rouge">-c</code>/<code class="language-plaintext highlighter-rouge">-r</code>）和自更新（<code class="language-plaintext highlighter-rouge">update</code>）——与 Hermes 和 OpenCode 相同的六个能力点，代码量只是零头。</p>

<hr />

<h2 id="跨平台分析">跨平台分析</h2>

<h3 id="子命令数量光谱">子命令数量光谱</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Hermes       ████████████████████████████████████████████  81+
OpenCode     ████████████████████████  21
ZeroClaw     ██████████████████  22
Reasonix     ██████████████████  19
kimi-cli     ████████  9
ClawTeam     ████████  ~8 组
GoClaw       █████  ~5
codex        ██  1-2
aider        ██  1
</code></pre></div></div>

<h3 id="调用模式矩阵">调用模式矩阵</h3>

<table>
  <thead>
    <tr>
      <th>平台</th>
      <th>REPL</th>
      <th>TUI</th>
      <th>One-shot</th>
      <th>Print/管道</th>
      <th>git worktree</th>
      <th>ACP 服务器</th>
      <th>Wire 协议</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Hermes</strong></td>
      <td>✓</td>
      <td>✓</td>
      <td><code class="language-plaintext highlighter-rouge">-z</code></td>
      <td>✓</td>
      <td><code class="language-plaintext highlighter-rouge">-w</code></td>
      <td><code class="language-plaintext highlighter-rouge">acp</code></td>
      <td>✗</td>
    </tr>
    <tr>
      <td><strong>OpenCode</strong></td>
      <td>✗</td>
      <td>✓</td>
      <td><code class="language-plaintext highlighter-rouge">run</code></td>
      <td>✗</td>
      <td><code class="language-plaintext highlighter-rouge">--fork</code></td>
      <td><code class="language-plaintext highlighter-rouge">acp</code></td>
      <td>✗</td>
    </tr>
    <tr>
      <td><strong>kimi-cli</strong></td>
      <td>✓</td>
      <td><code class="language-plaintext highlighter-rouge">term</code></td>
      <td><code class="language-plaintext highlighter-rouge">-p</code></td>
      <td><code class="language-plaintext highlighter-rouge">--print</code> / <code class="language-plaintext highlighter-rouge">--quiet</code></td>
      <td>✗</td>
      <td><code class="language-plaintext highlighter-rouge">acp</code></td>
      <td><code class="language-plaintext highlighter-rouge">--wire</code></td>
    </tr>
    <tr>
      <td><strong>Reasonix</strong></td>
      <td>✗</td>
      <td><code class="language-plaintext highlighter-rouge">chat</code>/<code class="language-plaintext highlighter-rouge">code</code></td>
      <td><code class="language-plaintext highlighter-rouge">run</code></td>
      <td>✗</td>
      <td>✗</td>
      <td><code class="language-plaintext highlighter-rouge">acp</code></td>
      <td><code class="language-plaintext highlighter-rouge">desktop</code> JSON-RPC</td>
    </tr>
    <tr>
      <td><strong>ZeroClaw</strong></td>
      <td>✓</td>
      <td>✗</td>
      <td><code class="language-plaintext highlighter-rouge">-m</code></td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
    </tr>
    <tr>
      <td><strong>aider</strong></td>
      <td>✓</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
    </tr>
    <tr>
      <td><strong>codex</strong></td>
      <td>✓</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
    </tr>
    <tr>
      <td><strong>OpenClaw</strong></td>
      <td>✓</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
    </tr>
    <tr>
      <td><strong>ClawTeam</strong></td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>每 agent</td>
      <td>✗</td>
      <td>✗</td>
    </tr>
    <tr>
      <td><strong>GoClaw</strong></td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>RPC</td>
    </tr>
  </tbody>
</table>

<h3 id="配置方式">配置方式</h3>

<table>
  <thead>
    <tr>
      <th>方式</th>
      <th>平台</th>
      <th>说明</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>标志优先</td>
      <td>kimi-cli、ZeroClaw</td>
      <td>每个选项都是 CLI 标志，配置文件可选</td>
    </tr>
    <tr>
      <td>标志优先、成本感知</td>
      <td>Reasonix</td>
      <td>每个选项都是标志，外加每会话 <code class="language-plaintext highlighter-rouge">--budget</code> 上限</td>
    </tr>
    <tr>
      <td>配置文件优先</td>
      <td>GoClaw、HiClaw</td>
      <td>JSON5/YAML 配置文件，CLI 用于覆盖</td>
    </tr>
    <tr>
      <td>交互优先</td>
      <td>Hermes、OpenClaw</td>
      <td><code class="language-plaintext highlighter-rouge">setup</code> 向导，然后是配置文件</td>
    </tr>
    <tr>
      <td>零配置</td>
      <td>ClawTeam、Nanobot</td>
      <td>安装后立即可用</td>
    </tr>
    <tr>
      <td>环境变量</td>
      <td>IronClaw、NanoClaw</td>
      <td>环境变量存密钥</td>
    </tr>
  </tbody>
</table>

<h3 id="运维命令覆盖">运维命令覆盖</h3>

<table>
  <thead>
    <tr>
      <th>能力</th>
      <th>Hermes</th>
      <th>ZeroClaw</th>
      <th>kimi-cli</th>
      <th>OpenCode</th>
      <th>ClawTeam</th>
      <th>GoClaw</th>
      <th>aider</th>
      <th>codex</th>
      <th>Reasonix</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Cron/调度</td>
      <td>✓</td>
      <td>✓</td>
      <td>✗</td>
      <td>✗</td>
      <td>✓（tasks）</td>
      <td>✓</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
    </tr>
    <tr>
      <td>监控/仪表盘</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓（vis）</td>
      <td>✓（stats）</td>
      <td>✓（board）</td>
      <td>✓</td>
      <td>✗</td>
      <td>✗</td>
      <td>✓（stats + Web 仪表盘）</td>
    </tr>
    <tr>
      <td>会话恢复</td>
      <td>✓</td>
      <td>✗</td>
      <td>✓（<code class="language-plaintext highlighter-rouge">-S</code>、<code class="language-plaintext highlighter-rouge">-C</code>）</td>
      <td>✓（<code class="language-plaintext highlighter-rouge">-c</code>、<code class="language-plaintext highlighter-rouge">-s</code>）</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✓（<code class="language-plaintext highlighter-rouge">-c</code>、<code class="language-plaintext highlighter-rouge">-r</code>）</td>
    </tr>
    <tr>
      <td>会话导出</td>
      <td>✓</td>
      <td>✗</td>
      <td>✓（<code class="language-plaintext highlighter-rouge">export</code>）</td>
      <td>✓（<code class="language-plaintext highlighter-rouge">export</code>）</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✓（<code class="language-plaintext highlighter-rouge">--transcript</code> JSONL）</td>
    </tr>
    <tr>
      <td>成本/预算上限</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✓（<code class="language-plaintext highlighter-rouge">--budget</code>）</td>
    </tr>
    <tr>
      <td>备份/恢复</td>
      <td>✓</td>
      <td>✓（migrate）</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
    </tr>
    <tr>
      <td>Doctor/调试</td>
      <td>✓</td>
      <td>✓</td>
      <td>✗</td>
      <td>✓（<code class="language-plaintext highlighter-rouge">debug</code>）</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✓（<code class="language-plaintext highlighter-rouge">doctor</code>、<code class="language-plaintext highlighter-rouge">doctor-cache</code>）</td>
    </tr>
    <tr>
      <td>安全审计</td>
      <td>✓</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✓</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
    </tr>
    <tr>
      <td>MCP 管理</td>
      <td>✓</td>
      <td>✗</td>
      <td>✓（<code class="language-plaintext highlighter-rouge">mcp</code>）</td>
      <td>✓（<code class="language-plaintext highlighter-rouge">mcp</code>）</td>
      <td>✗</td>
      <td>✓</td>
      <td>✗</td>
      <td>✗</td>
      <td>✓（<code class="language-plaintext highlighter-rouge">mcp</code>）</td>
    </tr>
    <tr>
      <td>技能/插件</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓（<code class="language-plaintext highlighter-rouge">--skills-dir</code>）</td>
      <td>✓（<code class="language-plaintext highlighter-rouge">plugin</code>）</td>
      <td>✗</td>
      <td>✓</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
    </tr>
    <tr>
      <td>Shell 补全</td>
      <td>✓</td>
      <td>✓</td>
      <td>✗</td>
      <td>✓（<code class="language-plaintext highlighter-rouge">completion</code>）</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
      <td>✗</td>
    </tr>
  </tbody>
</table>

<hr />

<h2 id="cli-揭示的平台哲学">CLI 揭示的平台哲学</h2>

<h3 id="unix-哲学光谱">Unix 哲学光谱</h3>

<p><strong>Hermes</strong> 在一个极端：”一切通过 CLI。” 81+ 子命令，每个功能都暴露，从 <code class="language-plaintext highlighter-rouge">hermes dashboard</code> 到 <code class="language-plaintext highlighter-rouge">hermes pets</code>。CLI 即平台。</p>

<p><strong>Codex 和 aider</strong> 在另一个极端：”通过 CLI 只做一件事。” 聊天循环，git 集成，完事。CLI 是核心 agent 循环外面的一层薄壳。</p>

<p><strong>ZeroClaw</strong> 和 <strong>kimi-cli</strong> 占据中间地带：足够覆盖 agent 生命周期（调度、技能、监控）的子命令，没有蔓延。ZeroClaw 的 22 个命令和 kimi-cli 的 9 个命令 + 丰富标志集，暗示一种刻意的设计约束——足够有用，不至于令人不知所措。</p>

<h3 id="操作系统与工具的分野">“操作系统”与”工具”的分野</h3>

<p>Hermes、ZeroClaw 和 GoClaw 表现得像 agent 的操作系统——它们管理完整生命周期：安装、配置、调度、监控、调试、备份、更新。它们的 CLI 反映了这一点：<code class="language-plaintext highlighter-rouge">doctor</code>、<code class="language-plaintext highlighter-rouge">backup</code>、<code class="language-plaintext highlighter-rouge">update</code>、<code class="language-plaintext highlighter-rouge">migrate</code>、<code class="language-plaintext highlighter-rouge">estop</code>。</p>

<p>aider、codex 和 Claude Code 表现得像工具——需要时运行，做完工作，退出。没有 daemon，没有调度器，没有备份。它们的 CLI 反映了这一点：表面极简，交互聚焦。</p>

<p>ClawTeam 占据独特位置：它是<em>其他</em> agent 的操作系统，不是自己的。它的 CLI 管理 aider/Codex/OpenClaw 实例的团队。它没有 AI 聊天循环——它有的是团队生命周期管理。</p>

<h3 id="收敛模式">收敛模式</h3>

<p>三种 CLI 模式正在生态中收敛：</p>

<ol>
  <li>
    <p><strong>One-shot 模式</strong>（Hermes <code class="language-plaintext highlighter-rouge">-z</code>、kimi-cli <code class="language-plaintext highlighter-rouge">--print</code>、ZeroClaw <code class="language-plaintext highlighter-rouge">-m</code>）——每个平台最终都会为脚本和 CI 集成添加非交互模式。</p>
  </li>
  <li>
    <p><strong>ACP/Wire 协议</strong>（Hermes <code class="language-plaintext highlighter-rouge">acp</code>、kimi-cli <code class="language-plaintext highlighter-rouge">acp</code>/<code class="language-plaintext highlighter-rouge">--wire</code>、copilot-cli ACP）——Agent Communication Protocol 正在成为 IDE 集成的标准，kimi-cli 在 wire 协议实验上领先。</p>
  </li>
  <li>
    <p><strong>MCP 配置成为 CLI 职责</strong>（Hermes <code class="language-plaintext highlighter-rouge">mcp</code>、kimi-cli <code class="language-plaintext highlighter-rouge">mcp</code>、GoClaw adapter）——管理 MCP 服务器正在成为一等 CLI 操作，不再只是配置文件的事。</p>
  </li>
</ol>

<h3 id="缺失的命令">缺失的命令</h3>

<p>每个平台都缺了点什么：</p>

<ul>
  <li><strong>aider 和 codex</strong> 没有调度。你不能说”每天早上跑这个编程任务”。它们是纯交互的。</li>
  <li><strong>ClawTeam</strong> 没有凭据管理 CLI。凭据在 TOML 文件或环境变量里。</li>
  <li><strong>GoClaw</strong> 没有备份/恢复。企业基础设施被假定由外部管理。</li>
  <li><strong>Hermes</strong> 没有 one-shot <em>纯打印</em>模式下同时输出 JSON 的能力（kimi-cli 的 <code class="language-plaintext highlighter-rouge">--output-format stream-json</code> 更管道友好）。</li>
  <li><strong>ZeroClaw</strong> 没有会话恢复。每次 <code class="language-plaintext highlighter-rouge">agent</code> 调用都是全新的。</li>
  <li><strong>kimi-cli</strong> 尽管有最丰富的每次调用配置，却没有 cron 或调度。</li>
  <li><strong>Reasonix</strong> 没有调度，也没有 shell 补全。它的成本工具无可匹敌，但你说不了”每天早上跑这个”——预期模式是用系统 cron 驱动它的 <code class="language-plaintext highlighter-rouge">run</code> one-shot。</li>
</ul>

<hr />

<h2 id="结论">结论</h2>

<p>CLI 是一个平台最诚实的接口。文档可以夸大能力。营销可以误导。但 <code class="language-plaintext highlighter-rouge">--help</code> 输出是用户实际看到的，它揭示了真实的优先级：</p>

<ul>
  <li><strong>Hermes</strong> 优先完整性——每个功能都有命令</li>
  <li><strong>ZeroClaw</strong> 优先一致性——每个命令都有示例和干净的帮助</li>
  <li><strong>kimi-cli</strong> 优先可配置性——每次调用都可以精细调校</li>
  <li><strong>OpenCode</strong> 优先远程协作——serve、attach、mDNS 发现</li>
  <li><strong>aider</strong> 优先聚焦——一个循环，做到极致</li>
  <li><strong>codex</strong> 优先安全——单二进制，沙箱，极简</li>
  <li><strong>ClawTeam</strong> 优先编排——命令面向团队，而非聊天</li>
  <li><strong>GoClaw</strong> 优先基础设施——命令面向部署，而非交互</li>
  <li><strong>Reasonix</strong> 优先经济学——每次调用都有预算上限和缓存可见性</li>
</ul>

<p>2026 年最好的 CLI 会把 Hermes 的完整性、ZeroClaw 的一致性、kimi-cli 的可配置性、OpenCode 的远程协作和 Reasonix 的成本纪律结合起来。还没有人做到全部五点。</p>

<hr />

<p><em>实测 CLI 抓取自 Hermes v0.20.0、OpenCode v1.18.18、kimi-cli v1.24.0、zeroclaw v0.1.7、reasonix v0.52.0。架构文档来自覆盖所有被跟踪平台的 AllClaws 平台对比。完整架构细节见 <a href="https://github.com/dz3ai/allclaws/blob/main/architecture/platform_comparison.md">platform_comparison.md</a>。</em></p>

<p><em><a href="/allclaws/blog/2026/08/12/cli-command-comparison/">English version</a></em></p>]]></content><author><name>Danny Zeng</name></author><category term="研究" /><category term="对比" /><category term="cli" /><category term="命令行接口" /><category term="agent平台" /><category term="对比" /><category term="ux" /><category term="开发者体验" /><summary type="html"><![CDATA[每一个 AI agent 平台对同一个问题都有不同的答案：用户如何与你交互？ 有的给你一条命令和一个聊天循环。有的给你 80 个子命令。有的给你 TUI，有的给你 REPL，有的只是往 stdout 打印文本。]]></summary></entry><entry><title type="html">How 17 AI Agent Platforms Present Themselves: A CLI Command Comparison</title><link href="https://dz3ai.github.io/allclaws/blog/2026/08/12/cli-command-comparison/" rel="alternate" type="text/html" title="How 17 AI Agent Platforms Present Themselves: A CLI Command Comparison" /><published>2026-08-12T17:00:00+08:00</published><updated>2026-08-12T17:00:00+08:00</updated><id>https://dz3ai.github.io/allclaws/blog/2026/08/12/cli-command-comparison</id><content type="html" xml:base="https://dz3ai.github.io/allclaws/blog/2026/08/12/cli-command-comparison/"><![CDATA[<p>Every AI agent platform has a different answer to the same question: <strong>how does a user interact with you?</strong> Some give you a single command and a chat loop. Some give you 80 subcommands. Some give you a TUI, some a REPL, some just print text to stdout.</p>

<p>After running <code class="language-plaintext highlighter-rouge">--help</code> on every available CLI and reading the source code of the ones we couldn’t install, here is a structured comparison of how 17 AI agent platforms present their capabilities to users — and what those choices reveal about their design philosophy.</p>

<hr />

<h2 id="methodology">Methodology</h2>

<p>I captured live <code class="language-plaintext highlighter-rouge">--help</code> output from five platforms installed on this system (Hermes, kimi-cli, zeroclaw, opencode, reasonix), and extracted CLI architecture details from source code and documentation for the remaining platforms tracked in the AllClaws architecture docs. Each platform’s entry covers:</p>

<ul>
  <li><strong>Command name</strong>: What you type to start it</li>
  <li><strong>Subcommand count</strong>: How many distinct commands are available</li>
  <li><strong>Invocation modes</strong>: REPL, TUI, one-shot, pipe-friendly, etc.</li>
  <li><strong>Configuration approach</strong>: Flags, config files, interactive setup</li>
  <li><strong>Operational commands</strong>: Cron, monitoring, debugging, backup</li>
  <li><strong>Session management</strong>: Resume, history, export</li>
</ul>

<hr />

<h2 id="the-comparison">The Comparison</h2>

<h3 id="1-hermes-agent-hermes">1. Hermes-Agent (<code class="language-plaintext highlighter-rouge">hermes</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>Language:</strong> Python</td>
      <td><strong>Version:</strong> v0.20.0</td>
      <td><strong>Subcommands:</strong> 81+</td>
    </tr>
  </tbody>
</table>

<p>Hermes has the most extensive CLI of any platform tracked. Running <code class="language-plaintext highlighter-rouge">hermes --help</code> produces ~14,000 characters of output covering 81 positional subcommands and dozens of flags.</p>

<p><strong>Invocation modes:</strong></p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">hermes</code> — Classic REPL (prompt_toolkit)</li>
  <li><code class="language-plaintext highlighter-rouge">hermes --tui</code> — Modern terminal UI</li>
  <li><code class="language-plaintext highlighter-rouge">hermes -z "prompt"</code> — One-shot mode (stdout only, no banner, no spinner, intended for scripts/pipes)</li>
  <li><code class="language-plaintext highlighter-rouge">hermes -w</code> — Isolated git worktree mode (for parallel agents)</li>
  <li><code class="language-plaintext highlighter-rouge">hermes -s skill1,skill2</code> — Preload skills</li>
</ul>

<p><strong>Key subcommands by category:</strong></p>

<table>
  <thead>
    <tr>
      <th>Category</th>
      <th>Commands</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Core</td>
      <td><code class="language-plaintext highlighter-rouge">chat</code>, <code class="language-plaintext highlighter-rouge">model</code>, <code class="language-plaintext highlighter-rouge">fallback</code>, <code class="language-plaintext highlighter-rouge">moa</code>, <code class="language-plaintext highlighter-rouge">secrets</code></td>
    </tr>
    <tr>
      <td>Auth &amp; Credentials</td>
      <td><code class="language-plaintext highlighter-rouge">auth</code>, <code class="language-plaintext highlighter-rouge">login</code>, <code class="language-plaintext highlighter-rouge">logout</code>, <code class="language-plaintext highlighter-rouge">egress</code></td>
    </tr>
    <tr>
      <td>Messaging</td>
      <td><code class="language-plaintext highlighter-rouge">gateway</code>, <code class="language-plaintext highlighter-rouge">send</code>, <code class="language-plaintext highlighter-rouge">whatsapp</code>, <code class="language-plaintext highlighter-rouge">whatsapp-cloud</code>, <code class="language-plaintext highlighter-rouge">slack</code>, <code class="language-plaintext highlighter-rouge">webhook</code>, <code class="language-plaintext highlighter-rouge">portal</code></td>
    </tr>
    <tr>
      <td>Scheduling</td>
      <td><code class="language-plaintext highlighter-rouge">cron</code>, <code class="language-plaintext highlighter-rouge">pause</code>, <code class="language-plaintext highlighter-rouge">resume</code></td>
    </tr>
    <tr>
      <td>Project Mgmt</td>
      <td><code class="language-plaintext highlighter-rouge">kanban</code>, <code class="language-plaintext highlighter-rouge">project</code>, <code class="language-plaintext highlighter-rouge">tasks</code></td>
    </tr>
    <tr>
      <td>Skills &amp; Plugins</td>
      <td><code class="language-plaintext highlighter-rouge">skills</code>, <code class="language-plaintext highlighter-rouge">bundles</code>, <code class="language-plaintext highlighter-rouge">plugins</code>, <code class="language-plaintext highlighter-rouge">curator</code></td>
    </tr>
    <tr>
      <td>Memory &amp; Learning</td>
      <td><code class="language-plaintext highlighter-rouge">memory</code>, <code class="language-plaintext highlighter-rouge">journey</code>, <code class="language-plaintext highlighter-rouge">learning</code>, <code class="language-plaintext highlighter-rouge">memory-graph</code></td>
    </tr>
    <tr>
      <td>Infrastructure</td>
      <td><code class="language-plaintext highlighter-rouge">proxy</code>, <code class="language-plaintext highlighter-rouge">lsp</code>, <code class="language-plaintext highlighter-rouge">mcp</code>, <code class="language-plaintext highlighter-rouge">computer-use</code>, <code class="language-plaintext highlighter-rouge">acp</code></td>
    </tr>
    <tr>
      <td>Monitoring</td>
      <td><code class="language-plaintext highlighter-rouge">status</code>, <code class="language-plaintext highlighter-rouge">logs</code>, <code class="language-plaintext highlighter-rouge">sessions</code>, <code class="language-plaintext highlighter-rouge">insights</code>, <code class="language-plaintext highlighter-rouge">monitoring</code>, <code class="language-plaintext highlighter-rouge">dashboard</code></td>
    </tr>
    <tr>
      <td>Ops &amp; Debug</td>
      <td><code class="language-plaintext highlighter-rouge">doctor</code>, <code class="language-plaintext highlighter-rouge">verify</code>, <code class="language-plaintext highlighter-rouge">security</code>, <code class="language-plaintext highlighter-rouge">approvals</code>, <code class="language-plaintext highlighter-rouge">dump</code>, <code class="language-plaintext highlighter-rouge">debug</code>, <code class="language-plaintext highlighter-rouge">backup</code>, <code class="language-plaintext highlighter-rouge">checkpoints</code>, <code class="language-plaintext highlighter-rouge">import</code></td>
    </tr>
    <tr>
      <td>Config &amp; Profile</td>
      <td><code class="language-plaintext highlighter-rouge">config</code>, <code class="language-plaintext highlighter-rouge">profile</code>, <code class="language-plaintext highlighter-rouge">skin</code>, <code class="language-plaintext highlighter-rouge">completion</code>, <code class="language-plaintext highlighter-rouge">hooks</code></td>
    </tr>
    <tr>
      <td>Desktop &amp; GUI</td>
      <td><code class="language-plaintext highlighter-rouge">dashboard</code>, <code class="language-plaintext highlighter-rouge">serve</code>, <code class="language-plaintext highlighter-rouge">desktop</code>, <code class="language-plaintext highlighter-rouge">gui</code></td>
    </tr>
  </tbody>
</table>

<p><strong>Design philosophy:</strong> “Everything is a subcommand.” Hermes treats its CLI as the primary interface to every feature — messaging, scheduling, skills, memory, monitoring, desktop GUI, MCP servers, security audit. The CLI is the control plane. There is no distinction between “user-facing features” and “admin features” — it’s all one namespace.</p>

<p><strong>Notable design choices:</strong></p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">-z</code> one-shot mode writes only final response to stdout (pipe-friendly, CI-compatible)</li>
  <li><code class="language-plaintext highlighter-rouge">--usage-file</code> for cost tracking in scripted runs</li>
  <li><code class="language-plaintext highlighter-rouge">--safe-mode</code> disables all customizations (troubleshooting)</li>
  <li><code class="language-plaintext highlighter-rouge">--yolo</code> bypasses all approval prompts</li>
  <li><code class="language-plaintext highlighter-rouge">--worktree</code> creates an isolated git worktree for parallel agents</li>
  <li>ACP server mode (<code class="language-plaintext highlighter-rouge">hermes acp</code>) for IDE integration</li>
</ul>

<hr />

<h3 id="2-openclaw-openclaw">2. OpenClaw (<code class="language-plaintext highlighter-rouge">openclaw</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>Language:</strong> TypeScript</td>
      <td><strong>Entry Point:</strong> <code class="language-plaintext highlighter-rouge">src/cli</code></td>
      <td><strong>Stars:</strong> ~340K</td>
    </tr>
  </tbody>
</table>

<p>OpenClaw’s CLI was not directly testable (the npm binary launches a TUI that times out from WSL), but the architecture docs reveal its structure.</p>

<p><strong>Architecture:</strong></p>
<ul>
  <li>Entry point via <code class="language-plaintext highlighter-rouge">src/cli</code>, commands in <code class="language-plaintext highlighter-rouge">src/commands</code></li>
  <li>Single-agent architecture with channel/plugin extensions</li>
  <li>37+ messaging channels (Telegram, Discord, Slack, Signal, iMessage, Web, etc.)</li>
  <li>Extensions system for additional platforms (MSTeams, Matrix)</li>
</ul>

<p><strong>Design philosophy:</strong> “Be the channel.” OpenClaw is fundamentally a routing platform — it takes input from any channel, processes it through an AI agent, and outputs to any channel. The CLI is one of many channels, not the primary one. The architecture emphasizes <code class="language-plaintext highlighter-rouge">src/provider-web.ts</code> and <code class="language-plaintext highlighter-rouge">src/routing</code> over <code class="language-plaintext highlighter-rouge">src/commands</code>.</p>

<p><strong>CLI character:</strong> Minimal and focused. OpenClaw’s CLI exists to configure channels, start the agent loop, and manage plugins. It does not attempt to be a general-purpose control plane. The 37+ channels are the differentiator, not the command count.</p>

<hr />

<h3 id="3-clawteam-clawteam">3. ClawTeam (<code class="language-plaintext highlighter-rouge">clawteam</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>Language:</strong> Python 3.10+</td>
      <td><strong>Architecture:</strong> Multi-agent (Leader-Worker)</td>
    </tr>
  </tbody>
</table>

<p>ClawTeam’s CLI is the most domain-specific of any platform — every subcommand maps to a multi-agent workflow concept.</p>

<p><strong>Key subcommand groups:</strong></p>

<table>
  <thead>
    <tr>
      <th>Group</th>
      <th>Commands</th>
      <th>Purpose</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Team lifecycle</td>
      <td><code class="language-plaintext highlighter-rouge">team spawn-team</code>, <code class="language-plaintext highlighter-rouge">team cleanup</code></td>
      <td>Create/destroy agent teams</td>
    </tr>
    <tr>
      <td>Agent spawning</td>
      <td><code class="language-plaintext highlighter-rouge">spawn</code></td>
      <td>Launch workers via tmux</td>
    </tr>
    <tr>
      <td>Task management</td>
      <td><code class="language-plaintext highlighter-rouge">task create</code>, <code class="language-plaintext highlighter-rouge">task update</code>, <code class="language-plaintext highlighter-rouge">task wait</code></td>
      <td>Manage tasks with dependency chains</td>
    </tr>
    <tr>
      <td>Inter-agent messaging</td>
      <td><code class="language-plaintext highlighter-rouge">inbox send</code>, <code class="language-plaintext highlighter-rouge">inbox broadcast</code></td>
      <td>P2P and broadcast communication</td>
    </tr>
    <tr>
      <td>Monitoring</td>
      <td><code class="language-plaintext highlighter-rouge">board show</code>, <code class="language-plaintext highlighter-rouge">board live</code>, <code class="language-plaintext highlighter-rouge">board serve</code></td>
      <td>Kanban board, live view, web UI</td>
    </tr>
    <tr>
      <td>Workspace</td>
      <td><code class="language-plaintext highlighter-rouge">workspace checkpoint</code>, <code class="language-plaintext highlighter-rouge">workspace merge</code></td>
      <td>Git worktree management</td>
    </tr>
  </tbody>
</table>

<p><strong>Design philosophy:</strong> “Orchestrate agents, don’t be one.” ClawTeam’s CLI is a team management interface, not an agent chat interface. You don’t talk to an AI through ClawTeam — you spawn a team of agents that talk to each other. The CLI subcommands mirror the workflow: create a team, define tasks, watch the board, merge the results.</p>

<p><strong>Notable:</strong> Uses TOML team templates (<code class="language-plaintext highlighter-rouge">clawteam launch hedge-fund --team fund1</code>) for reproducible team configurations. ZeroMQ P2P option for cross-machine coordination. The kanban board (<code class="language-plaintext highlighter-rouge">board live</code>) provides a tmux tiled view of all agents simultaneously.</p>

<hr />

<h3 id="4-goclaw-goclaw">4. GoClaw (<code class="language-plaintext highlighter-rouge">goclaw</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>Language:</strong> Go 1.26</td>
      <td><strong>Entry Point:</strong> <code class="language-plaintext highlighter-rouge">cmd/goclaw/main.go</code></td>
      <td><strong>Binary size:</strong> ~25MB</td>
    </tr>
  </tbody>
</table>

<p>GoClaw’s CLI reflects its identity as a gateway server — the primary command launches the gateway, and subcommands manage the infrastructure around it.</p>

<p><strong>Inferred CLI structure</strong> (from <code class="language-plaintext highlighter-rouge">cmd/</code> module analysis):</p>
<ul>
  <li>Gateway startup (primary command — WS + HTTP server)</li>
  <li>Onboarding wizard</li>
  <li>Migration tools</li>
  <li>Configuration management (JSON5 + env vars)</li>
</ul>

<p><strong>Design philosophy:</strong> “Single binary, full stack.” GoClaw ships as one ~25MB Go binary that includes the gateway server, agent loop, provider integrations, and management tools. The CLI is the deployment tool. You run <code class="language-plaintext highlighter-rouge">goclaw</code> to start the gateway, then interact with agents through the web dashboard, WebSocket RPC, or HTTP API (<code class="language-plaintext highlighter-rouge">/v1/chat/completions</code>, <code class="language-plaintext highlighter-rouge">/v1/agents</code>, <code class="language-plaintext highlighter-rouge">/v1/skills</code>).</p>

<p><strong>CLI character:</strong> Infrastructure-oriented. Unlike Hermes (which exposes everything as subcommands) or ClawTeam (which exposes orchestration as subcommands), GoClaw’s CLI is about deployment and configuration. The agent interaction happens through the gateway’s RPC and HTTP interfaces, not through CLI subcommands. This is consistent with its enterprise focus — you don’t SSH into a production server to chat with an agent.</p>

<hr />

<h3 id="5-ironclaw-ironclaw">5. IronClaw (<code class="language-plaintext highlighter-rouge">ironclaw</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>Language:</strong> Rust</td>
      <td><strong>Entry Point:</strong> <code class="language-plaintext highlighter-rouge">src/main.rs</code></td>
    </tr>
  </tbody>
</table>

<p>IronClaw’s CLI architecture emphasizes security primitives and sandbox management.</p>

<p><strong>Channel structure:</strong></p>
<ul>
  <li>REPL (primary interaction)</li>
  <li>HTTP webhooks</li>
  <li>WASM channels (dynamic tool loading)</li>
  <li>Web gateway (SSE/WebSocket)</li>
</ul>

<p><strong>Design philosophy:</strong> “Security first, CLI as one of many channels.” IronClaw treats the REPL as a channel alongside HTTP webhooks and WASM channels — not as the primary interface. The architecture emphasizes the sandbox orchestrator (Docker), tool registry (built-in + MCP + WASM), and safety layer (prompt injection defense, credential injection at host boundary).</p>

<hr />

<h3 id="6-zeroclaw-zeroclaw">6. ZeroClaw (<code class="language-plaintext highlighter-rouge">zeroclaw</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>Language:</strong> Rust</td>
      <td><strong>Version:</strong> 0.1.7</td>
      <td><strong>Stars:</strong> ~29K</td>
      <td><strong>RAM:</strong> &lt;5MB</td>
      <td><strong>Cold start:</strong> &lt;10ms</td>
    </tr>
  </tbody>
</table>

<p>ZeroClaw has the most <em>consistent</em> CLI of any platform — clean, well-structured, Rust clap-based help output with examples for every subcommand.</p>

<p><strong>Subcommands (22):</strong></p>

<table>
  <thead>
    <tr>
      <th>Category</th>
      <th>Commands</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Core agent</td>
      <td><code class="language-plaintext highlighter-rouge">onboard</code>, <code class="language-plaintext highlighter-rouge">agent</code>, <code class="language-plaintext highlighter-rouge">daemon</code>, <code class="language-plaintext highlighter-rouge">service</code></td>
    </tr>
    <tr>
      <td>Gateway &amp; channels</td>
      <td><code class="language-plaintext highlighter-rouge">gateway</code>, <code class="language-plaintext highlighter-rouge">channel</code>, <code class="language-plaintext highlighter-rouge">integrations</code></td>
    </tr>
    <tr>
      <td>Scheduling</td>
      <td><code class="language-plaintext highlighter-rouge">cron</code> (list, add, add-at, add-every, once, remove, update, pause, resume)</td>
    </tr>
    <tr>
      <td>Memory &amp; skills</td>
      <td><code class="language-plaintext highlighter-rouge">memory</code>, <code class="language-plaintext highlighter-rouge">skills</code> (list, audit, install, remove)</td>
    </tr>
    <tr>
      <td>Models &amp; providers</td>
      <td><code class="language-plaintext highlighter-rouge">models</code>, <code class="language-plaintext highlighter-rouge">providers</code>, <code class="language-plaintext highlighter-rouge">auth</code></td>
    </tr>
    <tr>
      <td>Hardware</td>
      <td><code class="language-plaintext highlighter-rouge">hardware</code>, <code class="language-plaintext highlighter-rouge">peripheral</code> (STM32, RPi GPIO)</td>
    </tr>
    <tr>
      <td>Ops</td>
      <td><code class="language-plaintext highlighter-rouge">status</code>, <code class="language-plaintext highlighter-rouge">doctor</code>, <code class="language-plaintext highlighter-rouge">estop</code>, <code class="language-plaintext highlighter-rouge">config</code>, <code class="language-plaintext highlighter-rouge">completions</code>, <code class="language-plaintext highlighter-rouge">migrate</code></td>
    </tr>
  </tbody>
</table>

<p><strong>Design philosophy:</strong> “Fast, small, complete.” ZeroClaw’s CLI is notable for its balance — 22 subcommands covering the full agent lifecycle (onboarding, agent loop, daemon, scheduling, skills, hardware, monitoring) without the sprawl of Hermes’ 81+ commands. Every subcommand has examples in its <code class="language-plaintext highlighter-rouge">--help</code> output.</p>

<p><strong>Notable design choices:</strong></p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">agent -m "prompt"</code> for single-shot without entering interactive mode</li>
  <li><code class="language-plaintext highlighter-rouge">estop</code> for emergency stop of the daemon and channels</li>
  <li>Hardware peripheral support (STM32, RPi GPIO) — unique in the ecosystem</li>
  <li><code class="language-plaintext highlighter-rouge">daemon</code> as a first-class command (gateway + channels + heartbeat + scheduler as a single long-running process)</li>
</ul>

<hr />

<h3 id="7-opencode-opencode">7. OpenCode (<code class="language-plaintext highlighter-rouge">opencode</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>Language:</strong> TypeScript</td>
      <td><strong>Version:</strong> v1.18.18</td>
      <td><strong>Stars:</strong> ~198K</td>
    </tr>
  </tbody>
</table>

<p>OpenCode is “the open source coding agent” — a TUI-first coding assistant with ACP and MCP support, plus a unique headless server mode for remote collaboration.</p>

<p><strong>Subcommands (21):</strong></p>

<table>
  <thead>
    <tr>
      <th>Category</th>
      <th>Commands</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Core</td>
      <td><code class="language-plaintext highlighter-rouge">opencode [project]</code> (TUI, default), <code class="language-plaintext highlighter-rouge">run [message..]</code>, <code class="language-plaintext highlighter-rouge">attach &lt;url&gt;</code></td>
    </tr>
    <tr>
      <td>Server</td>
      <td><code class="language-plaintext highlighter-rouge">serve</code> (headless), <code class="language-plaintext highlighter-rouge">web</code> (server + browser UI)</td>
    </tr>
    <tr>
      <td>Protocol</td>
      <td><code class="language-plaintext highlighter-rouge">acp</code> (ACP server), <code class="language-plaintext highlighter-rouge">mcp</code> (MCP management)</td>
    </tr>
    <tr>
      <td>Providers &amp; Models</td>
      <td><code class="language-plaintext highlighter-rouge">providers</code> (a.k.a. <code class="language-plaintext highlighter-rouge">auth</code>), <code class="language-plaintext highlighter-rouge">models [provider]</code></td>
    </tr>
    <tr>
      <td>GitHub</td>
      <td><code class="language-plaintext highlighter-rouge">github</code> (GitHub agent), <code class="language-plaintext highlighter-rouge">pr &lt;number&gt;</code> (fetch PR branch, then TUI)</td>
    </tr>
    <tr>
      <td>Session</td>
      <td><code class="language-plaintext highlighter-rouge">session</code> (manage), <code class="language-plaintext highlighter-rouge">export [sessionID]</code>, <code class="language-plaintext highlighter-rouge">import &lt;file&gt;</code></td>
    </tr>
    <tr>
      <td>Agent &amp; Plugins</td>
      <td><code class="language-plaintext highlighter-rouge">agent</code> (manage agents), <code class="language-plaintext highlighter-rouge">plugin &lt;module&gt;</code> (install &amp; configure)</td>
    </tr>
    <tr>
      <td>Ops</td>
      <td><code class="language-plaintext highlighter-rouge">debug</code>, <code class="language-plaintext highlighter-rouge">stats</code> (token usage/cost), <code class="language-plaintext highlighter-rouge">db</code>, <code class="language-plaintext highlighter-rouge">upgrade</code>, <code class="language-plaintext highlighter-rouge">uninstall</code>, <code class="language-plaintext highlighter-rouge">completion</code></td>
    </tr>
  </tbody>
</table>

<p><strong>Invocation modes:</strong></p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">opencode</code> — Launch TUI (default)</li>
  <li><code class="language-plaintext highlighter-rouge">opencode run "prompt"</code> — Run with a message (non-interactive)</li>
  <li><code class="language-plaintext highlighter-rouge">opencode serve</code> — Headless server</li>
  <li><code class="language-plaintext highlighter-rouge">opencode web</code> — Server + browser UI</li>
  <li><code class="language-plaintext highlighter-rouge">opencode attach &lt;url&gt;</code> — Connect to remote server</li>
  <li><code class="language-plaintext highlighter-rouge">opencode --mini</code> — Minimal interactive interface</li>
  <li><code class="language-plaintext highlighter-rouge">opencode -c</code> / <code class="language-plaintext highlighter-rouge">-s &lt;id&gt;</code> — Continue last or specific session</li>
</ul>

<p><strong>Notable design choices:</strong></p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">--fork</code> to fork a session when continuing (branch from a previous state)</li>
  <li><code class="language-plaintext highlighter-rouge">--pure</code> to run without external plugins</li>
  <li><code class="language-plaintext highlighter-rouge">--mdns</code> for mDNS service discovery on local network (find running instances)</li>
  <li><code class="language-plaintext highlighter-rouge">--cors</code> for cross-origin configuration on the headless server</li>
  <li><code class="language-plaintext highlighter-rouge">--auto</code> to auto-approve any permission not explicitly denied (the documented-dangerous mode)</li>
  <li><code class="language-plaintext highlighter-rouge">--port</code> / <code class="language-plaintext highlighter-rouge">--hostname</code> to bind the server explicitly; <code class="language-plaintext highlighter-rouge">--mdns-domain</code> to customize discovery</li>
  <li><code class="language-plaintext highlighter-rouge">--replay-limit</code> to cap mini-mode session replay on resume</li>
  <li><code class="language-plaintext highlighter-rouge">pr &lt;number&gt;</code> fetches a GitHub PR branch then launches the TUI — a workflow-specific command no other platform has</li>
  <li><code class="language-plaintext highlighter-rouge">stats</code> for token usage and cost tracking as a first-class command</li>
</ul>

<p><strong>Design philosophy:</strong> “TUI-first, server-optional.” OpenCode’s default experience is a TUI, but it uniquely offers both a headless <code class="language-plaintext highlighter-rouge">serve</code> mode and a <code class="language-plaintext highlighter-rouge">web</code> mode with browser UI. The <code class="language-plaintext highlighter-rouge">attach &lt;url&gt;</code> command and mDNS discovery suggest a design that supports both local development and remote collaboration — you can run opencode on a server and attach to it from your laptop. The <code class="language-plaintext highlighter-rouge">pr</code> command bridges GitHub workflow into the agent loop, treating PR review as a first-class use case.</p>

<hr />

<h3 id="8-nanobot-nanobot">8. Nanobot (<code class="language-plaintext highlighter-rouge">nanobot</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>Language:</strong> Python 3.11+</td>
      <td><strong>Stars:</strong> ~37K</td>
      <td><strong>Entry Point:</strong> <code class="language-plaintext highlighter-rouge">nanobot/__main__.py</code> (Typer)</td>
    </tr>
  </tbody>
</table>

<p>Nanobot takes the “ultra-lightweight” philosophy into its CLI design.</p>

<p><strong>Architecture:</strong></p>
<ul>
  <li>CLI via Python Typer (auto-generated help from type hints)</li>
  <li>Single-agent with subagent support</li>
  <li>8+ channels (Telegram, Discord, Slack, WhatsApp, Feishu, QQ, Email, Matrix, CLI)</li>
  <li>MCP bridge (available but not core)</li>
  <li>LiteLLM for multi-provider support</li>
</ul>

<p><strong>Design philosophy:</strong> “One command, one agent.” Nanobot’s CLI is minimal because the platform itself is minimal (~4,000 LOC core). Typer provides good help output automatically from type annotations. The focus is on <code class="language-plaintext highlighter-rouge">pip install nanobot-ai</code> and immediate usability, not comprehensive subcommand coverage.</p>

<hr />

<h3 id="9-maxclaw-maxclaw">9. Maxclaw (<code class="language-plaintext highlighter-rouge">maxclaw</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>Language:</strong> Go 1.24+</td>
      <td><strong>Stars:</strong> ~189</td>
      <td><strong>Binaries:</strong> <code class="language-plaintext highlighter-rouge">maxclaw</code>, <code class="language-plaintext highlighter-rouge">maxclaw-gateway</code></td>
    </tr>
  </tbody>
</table>

<p>Maxclaw ships two binaries — one for the agent, one for the gateway.</p>

<p><strong>Architecture:</strong></p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">cmd/main.go</code> — Agent CLI with sub-session spawning</li>
  <li><code class="language-plaintext highlighter-rouge">maxclaw-gateway</code> — Separate gateway binary</li>
  <li>Desktop UI + Web UI on same port</li>
  <li>Monorepo context discovery (AGENTS.md, CLAUDE.md)</li>
  <li>Layered memory (MEMORY.md, HISTORY.md, heartbeat.md)</li>
</ul>

<p><strong>Design philosophy:</strong> “Local-first with visual interfaces.” Maxclaw uniquely bundles a desktop UI and web UI on the same port. The CLI is one interface alongside visual ones. Sub-session spawning enables parallel agents within a single maxclaw instance.</p>

<hr />

<h3 id="10-nanoclaw-nanoclaw">10. NanoClaw (<code class="language-plaintext highlighter-rouge">nanoclaw</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>Language:</strong> TypeScript (Node.js)</td>
      <td><strong>Entry Point:</strong> <code class="language-plaintext highlighter-rouge">src/index.ts</code></td>
    </tr>
  </tbody>
</table>

<p>NanoClaw is the most container-centric platform — its “CLI” is fundamentally an orchestrator process.</p>

<p><strong>Architecture:</strong></p>
<ul>
  <li>Single Node.js orchestrator process</li>
  <li>Claude Agent SDK running in isolated containers per group</li>
  <li>Per-group CLAUDE.md for memory</li>
  <li>IPC watcher for inter-process communication</li>
  <li>Task scheduler</li>
  <li>WhatsApp as primary channel</li>
</ul>

<p><strong>Design philosophy:</strong> “Containers, not commands.” NanoClaw’s CLI is an IPC orchestrator that spawns containerized agent instances. The “commands” are container lifecycle management — start, stop, monitor. There is no REPL in the traditional sense; you interact through WhatsApp groups, each with an isolated Claude agent in its own container.</p>

<hr />

<h3 id="11-hiclaw-hiclaw">11. HiClaw (<code class="language-plaintext highlighter-rouge">hiclaw</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>Language:</strong> Go + Shell</td>
      <td><strong>Deployment:</strong> Docker Compose / Kubernetes</td>
    </tr>
  </tbody>
</table>

<p>HiClaw is the only platform to use Kubernetes-style declarative resources.</p>

<p><strong>Architecture:</strong></p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">hiclaw</code> CLI with Docker Compose</li>
  <li>YAML resource definitions (Worker, Team, Human)</li>
  <li>Worker template marketplace</li>
  <li>Nacos-based skill discovery</li>
  <li>Manager-Workers runtime (CoPaw)</li>
</ul>

<p><strong>Design philosophy:</strong> “Declarative infrastructure for agents.” HiClaw’s CLI is closest to <code class="language-plaintext highlighter-rouge">kubectl</code> — you define workers, teams, and human-in-the-loop resources as YAML files and apply them. The CLI manages resource lifecycle rather than agent interaction. This is the enterprise-automation paradigm taken to its logical conclusion: agents are Kubernetes resources.</p>

<hr />

<h3 id="12-hermes-agent-source-analysis-vs-live-capture">12. Hermes-Agent (Source Analysis vs Live Capture)</h3>

<p>The architecture docs describe Hermes as a simpler platform than what the live <code class="language-plaintext highlighter-rouge">--help</code> reveals. The docs note:</p>
<ul>
  <li>Entry point: <code class="language-plaintext highlighter-rouge">hermes</code> CLI</li>
  <li>Architecture: Single-agent with context management</li>
  <li>MCP native integration</li>
</ul>

<p>The live CLI (v0.20.0) shows a platform that has evolved far beyond “single-agent with context management” into a full-featured agent operating system with 81+ subcommands spanning messaging, scheduling, skills, memory, monitoring, desktop GUI, and MCP server management.</p>

<hr />

<h3 id="13-aider-aider">13. aider (<code class="language-plaintext highlighter-rouge">aider</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>Language:</strong> Python</td>
      <td><strong>Stars:</strong> ~68K</td>
      <td><strong>Entry Point:</strong> <code class="language-plaintext highlighter-rouge">aider</code> CLI</td>
    </tr>
  </tbody>
</table>

<p>aider is the most focused CLI — it does one thing (code editing with AI) and does it through a chat interface.</p>

<p><strong>Architecture:</strong></p>
<ul>
  <li>REPL pair-programming loop</li>
  <li>Git-aware (auto-commits with sensible messages)</li>
  <li>Edit modes: Whole Edit, Diff Edit, Architect</li>
  <li>Repo Map for large codebase context</li>
  <li>20+ LLM providers</li>
</ul>

<p><strong>Design philosophy:</strong> “Pair programming, not a platform.” aider has no subcommands for scheduling, skills, messaging, or monitoring. It’s a chat loop with git integration. You talk, it edits code, git commits the result. The minimalism is the point — 68K stars from doing one thing extremely well.</p>

<hr />

<h3 id="14-claude-code-claude">14. Claude Code (<code class="language-plaintext highlighter-rouge">claude</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>Language:</strong> TypeScript (Anthropic)</td>
      <td><strong>Entry Point:</strong> <code class="language-plaintext highlighter-rouge">claude</code></td>
    </tr>
  </tbody>
</table>

<p>Claude Code is Anthropic’s official CLI coding agent. Not directly testable from WSL (launches a TUI that times out).</p>

<p><strong>Architecture:</strong></p>
<ul>
  <li>Terminal-based coding agent</li>
  <li>ACP protocol support</li>
  <li>Sandboxed execution</li>
  <li>Interactive approval loop</li>
</ul>

<p><strong>Design philosophy:</strong> “Anthropic’s terminal agent.” Claude Code is the reference implementation of Anthropic’s vision for terminal-based AI coding. It follows the pattern of minimal CLI surface — you run <code class="language-plaintext highlighter-rouge">claude</code>, it starts a session, you code. The simplicity is by design.</p>

<hr />

<h3 id="15-kimi-cli-kimi-cli">15. kimi-cli (<code class="language-plaintext highlighter-rouge">kimi-cli</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>Language:</strong> Python</td>
      <td><strong>Stars:</strong> ~8.8K</td>
      <td><strong>Version:</strong> 1.24.0</td>
    </tr>
  </tbody>
</table>

<p>kimi-cli from MoonshotAI has the most <em>options-dense</em> help of any platform relative to its subcommand count.</p>

<p><strong>Invocation modes:</strong></p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">kimi-cli</code> — Interactive agent (default)</li>
  <li><code class="language-plaintext highlighter-rouge">kimi-cli -p "prompt"</code> / <code class="language-plaintext highlighter-rouge">-c "prompt"</code> — Single prompt</li>
  <li><code class="language-plaintext highlighter-rouge">kimi-cli --print</code> — Print mode (non-interactive, implies <code class="language-plaintext highlighter-rouge">--yolo</code>)</li>
  <li><code class="language-plaintext highlighter-rouge">kimi-cli --quiet</code> — Shorthand for <code class="language-plaintext highlighter-rouge">--print --output-format text --final-message-only</code></li>
  <li><code class="language-plaintext highlighter-rouge">kimi-cli --acp</code> — ACP server mode (deprecated, now <code class="language-plaintext highlighter-rouge">kimi-cli acp</code>)</li>
  <li><code class="language-plaintext highlighter-rouge">kimi-cli --wire</code> — Wire server (experimental)</li>
</ul>

<p><strong>Subcommands (9):</strong></p>

<table>
  <thead>
    <tr>
      <th>Command</th>
      <th>Purpose</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">login</code> / <code class="language-plaintext highlighter-rouge">logout</code></td>
      <td>Account management</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">term</code></td>
      <td>Toad TUI backed by Kimi Code ACP server</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">acp</code></td>
      <td>ACP server</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">info</code></td>
      <td>Version and protocol info</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">export</code></td>
      <td>Session data export</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">mcp</code></td>
      <td>MCP server configuration management</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">vis</code></td>
      <td>Agent tracing visualizer</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">web</code></td>
      <td>Web interface</td>
    </tr>
  </tbody>
</table>

<p><strong>Notable design choices:</strong></p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">--agent [default|okabe]</code> and <code class="language-plaintext highlighter-rouge">--agent-file FILE</code> for custom agent specifications</li>
  <li><code class="language-plaintext highlighter-rouge">--input-format [text|stream-json]</code> and <code class="language-plaintext highlighter-rouge">--output-format [text|stream-json]</code> for pipe integration</li>
  <li><code class="language-plaintext highlighter-rouge">--mcp-config-file FILE</code> (repeatable) for multiple MCP configs</li>
  <li><code class="language-plaintext highlighter-rouge">--skills-dir DIRECTORY</code> for skills discovery</li>
  <li><code class="language-plaintext highlighter-rouge">--thinking</code> / <code class="language-plaintext highlighter-rouge">--no-thinking</code> for reasoning mode toggle</li>
  <li><code class="language-plaintext highlighter-rouge">--max-steps-per-turn</code>, <code class="language-plaintext highlighter-rouge">--max-retries-per-step</code>, <code class="language-plaintext highlighter-rouge">--max-ralph-iterations</code> for fine-grained control</li>
</ul>

<p><strong>Design philosophy:</strong> “Configurable agent, multiple interfaces.” kimi-cli provides the most granular per-invocation configuration of any platform. Every aspect of the agent’s behavior can be tuned via flags — model, thinking mode, step limits, retry limits, MCP configs, agent specification, skills directory. The three interface modes (interactive, print, wire/ACP) and the agent tracing visualizer (<code class="language-plaintext highlighter-rouge">vis</code>) suggest a platform designed for both end-user coding and developer tooling.</p>

<hr />

<h3 id="16-codex-codex">16. Codex (<code class="language-plaintext highlighter-rouge">codex</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>Language:</strong> Rust</td>
      <td><strong>Stars:</strong> ~86.9K</td>
      <td><strong>Entry Point:</strong> <code class="language-plaintext highlighter-rouge">codex</code> CLI</td>
    </tr>
  </tbody>
</table>

<p>OpenAI’s Codex is the most starred CLI agent and the simplest architecturally.</p>

<p><strong>Architecture:</strong></p>
<ul>
  <li>Simple CLI → LLM → Shell execution loop</li>
  <li>Sandboxed execution (all code runs in isolated environments)</li>
  <li>Single binary, zero runtime overhead</li>
  <li>Models: GPT-4o, o3, o4-mini</li>
</ul>

<p><strong>Design philosophy:</strong> “Single binary, single loop.” Codex is the anti-Hermes. One command, one loop, sandboxed execution, done. No subcommands for skills, scheduling, messaging, or monitoring. The sandbox is the differentiator — every code execution is isolated, making it safe for CI/CD pipelines.</p>

<hr />

<h3 id="17-reasonix-reasonix--dsnix">17. Reasonix (<code class="language-plaintext highlighter-rouge">reasonix</code> / <code class="language-plaintext highlighter-rouge">dsnix</code>)</h3>

<table>
  <tbody>
    <tr>
      <td><strong>Language:</strong> TypeScript</td>
      <td><strong>Version:</strong> v0.52.0</td>
      <td><strong>Stars:</strong> ~34.6K</td>
      <td><strong>Entry Point:</strong> <code class="language-plaintext highlighter-rouge">dist/cli/index.js</code></td>
      <td><strong>Cold start:</strong> ~287ms</td>
    </tr>
  </tbody>
</table>

<p>Reasonix (esengine/DeepSeek-Reasonix) is the “DeepSeek-native coding agent” — and the only platform in this comparison with <strong>two command names</strong>: both <code class="language-plaintext highlighter-rouge">reasonix</code> and <code class="language-plaintext highlighter-rouge">dsnix</code> map to the same binary. Its CLI philosophy is built around one economic idea: DeepSeek’s context cache. Subcommands exist to make cache hit rates visible and steerable.</p>

<p><strong>Subcommands (19):</strong></p>

<table>
  <thead>
    <tr>
      <th>Category</th>
      <th>Commands</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Setup &amp; health</td>
      <td><code class="language-plaintext highlighter-rouge">setup</code> (interactive wizard), <code class="language-plaintext highlighter-rouge">doctor</code>, <code class="language-plaintext highlighter-rouge">doctor-cache</code>, <code class="language-plaintext highlighter-rouge">update</code>, <code class="language-plaintext highlighter-rouge">version</code></td>
    </tr>
    <tr>
      <td>Core chat</td>
      <td><code class="language-plaintext highlighter-rouge">chat</code> (Ink TUI with live cache/cost panel), <code class="language-plaintext highlighter-rouge">code [dir]</code> (coding chat with filesystem tools)</td>
    </tr>
    <tr>
      <td>Non-interactive</td>
      <td><code class="language-plaintext highlighter-rouge">run &lt;task&gt;</code> (streaming one-shot), <code class="language-plaintext highlighter-rouge">desktop</code> (headless JSON-RPC for desktop client)</td>
    </tr>
    <tr>
      <td>ACP</td>
      <td><code class="language-plaintext highlighter-rouge">acp</code> (Agent Client Protocol over stdio NDJSON)</td>
    </tr>
    <tr>
      <td>Observability</td>
      <td><code class="language-plaintext highlighter-rouge">stats [transcript]</code> (usage dashboard), <code class="language-plaintext highlighter-rouge">events &lt;name&gt;</code> (kernel event log pretty-printer), <code class="language-plaintext highlighter-rouge">replay &lt;transcript&gt;</code> (transcript browser TUI), <code class="language-plaintext highlighter-rouge">diff &lt;a&gt; &lt;b&gt;</code> (side-by-side transcript comparison)</td>
    </tr>
    <tr>
      <td>Sessions</td>
      <td><code class="language-plaintext highlighter-rouge">sessions</code>, <code class="language-plaintext highlighter-rouge">prune-sessions</code> (delete idle ≥N days, <code class="language-plaintext highlighter-rouge">--dry-run</code>), <code class="language-plaintext highlighter-rouge">-c/--continue</code>, <code class="language-plaintext highlighter-rouge">-r/--resume</code>, <code class="language-plaintext highlighter-rouge">-n/--new</code></td>
    </tr>
    <tr>
      <td>Cost &amp; data</td>
      <td><code class="language-plaintext highlighter-rouge">commit</code> (draft commit messages from staged diff), <code class="language-plaintext highlighter-rouge">mcp</code> (MCP discovery + setup test), <code class="language-plaintext highlighter-rouge">index</code> (local semantic search index)</td>
    </tr>
  </tbody>
</table>

<p><strong>Design philosophy:</strong> “Cost as a first-class citizen.” Reasonix is the only CLI here with a <strong>session dollar budget built into the invocation</strong>: <code class="language-plaintext highlighter-rouge">--budget &lt;usd&gt;</code> warns at 80% and <em>refuses the next turn</em> at 100% (not just warns — a hard gate). The <code class="language-plaintext highlighter-rouge">chat</code> TUI shows a live cache-hit/cost panel while you type, <code class="language-plaintext highlighter-rouge">stats</code> turns historical transcripts into a usage dashboard, and <code class="language-plaintext highlighter-rouge">doctor-cache</code> is a dedicated health check for cache stability. Where kimi-cli makes every <em>behavior</em> configurable, Reasonix makes every <em>cost dimension</em> visible: budget caps, per-transcript accounting, cache health. It’s the economics-first counterpart to kimi-cli’s configuration-first design.</p>

<p><strong>Notable design choices:</strong></p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">--budget &lt;usd&gt;</code> — per-session spend cap with 80% warning and hard refusal at 100%</li>
  <li><code class="language-plaintext highlighter-rouge">--effort low|medium|high|max</code> — reasoning-effort dial on every invocation mode</li>
  <li><code class="language-plaintext highlighter-rouge">--no-mouse</code> — disables SGR mouse tracking to restore native terminal selection (a pain point no other CLI addresses)</li>
  <li><code class="language-plaintext highlighter-rouge">--no-proxy</code> — per-run proxy bypass, useful behind GFW-adjacent networks</li>
  <li><code class="language-plaintext highlighter-rouge">--dashboard-port</code> / <code class="language-plaintext highlighter-rouge">--dashboard-host</code> — stable port + LAN binding for the embedded web dashboard (SSH-tunnel friendly)</li>
  <li><code class="language-plaintext highlighter-rouge">--mcp &lt;spec&gt;</code> repeatable with <code class="language-plaintext highlighter-rouge">--mcp-prefix</code> to namespace tool names</li>
  <li><code class="language-plaintext highlighter-rouge">--profile</code> — records a V8 CPU profile for perf-bug reports</li>
  <li>Bilingual help output (Chinese descriptions with English command names)</li>
  <li><code class="language-plaintext highlighter-rouge">diff &lt;a&gt; &lt;b&gt;</code> — the only CLI that can <em>diff two agent transcripts</em> side-by-side</li>
  <li><code class="language-plaintext highlighter-rouge">dry-run</code> flag on <code class="language-plaintext highlighter-rouge">code</code> for ssh:// targets — parse the URI, check local SSH, print planned steps, execute nothing</li>
</ul>

<p><strong>Cross-links:</strong> Reasonix implements one-shot (<code class="language-plaintext highlighter-rouge">run</code>), TUI (<code class="language-plaintext highlighter-rouge">chat</code>), ACP server (<code class="language-plaintext highlighter-rouge">acp</code>), MCP management (<code class="language-plaintext highlighter-rouge">mcp</code>), session resume (<code class="language-plaintext highlighter-rouge">-c</code>/<code class="language-plaintext highlighter-rouge">-r</code>), and self-update (<code class="language-plaintext highlighter-rouge">update</code>) — the same six capability points as Hermes and OpenCode, in a fraction of the codebase.</p>

<hr />

<h2 id="cross-platform-analysis">Cross-Platform Analysis</h2>

<h3 id="subcommand-count-spectrum">Subcommand Count Spectrum</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Hermes       ████████████████████████████████████████████  81+
OpenCode     ████████████████████████  21
ZeroClaw     ██████████████████  22
Reasonix     ██████████████████  19
kimi-cli     ████████  9
ClawTeam     ████████  ~8 groups
GoClaw       █████  ~5
codex        ██  1-2
aider        ██  1
</code></pre></div></div>

<h3 id="invocation-mode-matrix">Invocation Mode Matrix</h3>

<table>
  <thead>
    <tr>
      <th>Platform</th>
      <th>REPL</th>
      <th>TUI</th>
      <th>One-shot</th>
      <th>Print/Pipe</th>
      <th>Git worktree</th>
      <th>ACP server</th>
      <th>Wire protocol</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Hermes</strong></td>
      <td>Yes</td>
      <td>Yes</td>
      <td><code class="language-plaintext highlighter-rouge">-z</code></td>
      <td>Yes</td>
      <td><code class="language-plaintext highlighter-rouge">-w</code></td>
      <td><code class="language-plaintext highlighter-rouge">acp</code></td>
      <td>No</td>
    </tr>
    <tr>
      <td><strong>OpenCode</strong></td>
      <td>No</td>
      <td>Yes</td>
      <td><code class="language-plaintext highlighter-rouge">run</code></td>
      <td>No</td>
      <td><code class="language-plaintext highlighter-rouge">--fork</code></td>
      <td><code class="language-plaintext highlighter-rouge">acp</code></td>
      <td>No</td>
    </tr>
    <tr>
      <td><strong>kimi-cli</strong></td>
      <td>Yes</td>
      <td><code class="language-plaintext highlighter-rouge">term</code></td>
      <td><code class="language-plaintext highlighter-rouge">-p</code></td>
      <td><code class="language-plaintext highlighter-rouge">--print</code> / <code class="language-plaintext highlighter-rouge">--quiet</code></td>
      <td>No</td>
      <td><code class="language-plaintext highlighter-rouge">acp</code></td>
      <td><code class="language-plaintext highlighter-rouge">--wire</code></td>
    </tr>
    <tr>
      <td><strong>Reasonix</strong></td>
      <td>No</td>
      <td><code class="language-plaintext highlighter-rouge">chat</code>/<code class="language-plaintext highlighter-rouge">code</code></td>
      <td><code class="language-plaintext highlighter-rouge">run</code></td>
      <td>No</td>
      <td>No</td>
      <td><code class="language-plaintext highlighter-rouge">acp</code></td>
      <td><code class="language-plaintext highlighter-rouge">desktop</code> JSON-RPC</td>
    </tr>
    <tr>
      <td><strong>ZeroClaw</strong></td>
      <td>Yes</td>
      <td>No</td>
      <td><code class="language-plaintext highlighter-rouge">-m</code></td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
    </tr>
    <tr>
      <td><strong>aider</strong></td>
      <td>Yes</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
    </tr>
    <tr>
      <td><strong>codex</strong></td>
      <td>Yes</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
    </tr>
    <tr>
      <td><strong>OpenClaw</strong></td>
      <td>Yes</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
    </tr>
    <tr>
      <td><strong>ClawTeam</strong></td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>Per-agent</td>
      <td>No</td>
      <td>No</td>
    </tr>
    <tr>
      <td><strong>GoClaw</strong></td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>RPC</td>
    </tr>
  </tbody>
</table>

<h3 id="configuration-approach">Configuration Approach</h3>

<table>
  <thead>
    <tr>
      <th>Approach</th>
      <th>Platforms</th>
      <th>Notes</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Flags-first</td>
      <td>kimi-cli, ZeroClaw</td>
      <td>Every option is a CLI flag, config files optional</td>
    </tr>
    <tr>
      <td>Flags-first, cost-aware</td>
      <td>Reasonix</td>
      <td>Every option is a flag plus per-session <code class="language-plaintext highlighter-rouge">--budget</code> caps</td>
    </tr>
    <tr>
      <td>Config-file-first</td>
      <td>GoClaw, HiClaw</td>
      <td>JSON5/YAML config files, CLI for overrides</td>
    </tr>
    <tr>
      <td>Interactive-first</td>
      <td>Hermes, OpenClaw</td>
      <td><code class="language-plaintext highlighter-rouge">setup</code> wizard, then config file</td>
    </tr>
    <tr>
      <td>Zero-config</td>
      <td>ClawTeam, Nanobot</td>
      <td>Works immediately after install</td>
    </tr>
    <tr>
      <td>Env-vars</td>
      <td>IronClaw, NanoClaw</td>
      <td>Environment variables for secrets</td>
    </tr>
  </tbody>
</table>

<h3 id="operational-commands-coverage">Operational Commands Coverage</h3>

<table>
  <thead>
    <tr>
      <th>Capability</th>
      <th>Hermes</th>
      <th>ZeroClaw</th>
      <th>kimi-cli</th>
      <th>OpenCode</th>
      <th>ClawTeam</th>
      <th>GoClaw</th>
      <th>aider</th>
      <th>codex</th>
      <th>Reasonix</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Cron/scheduling</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>No</td>
      <td>No</td>
      <td>Yes (tasks)</td>
      <td>Yes</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
    </tr>
    <tr>
      <td>Monitoring/dashboard</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>Yes (vis)</td>
      <td>Yes (stats)</td>
      <td>Yes (board)</td>
      <td>Yes</td>
      <td>No</td>
      <td>No</td>
      <td>Yes (stats + web dashboard)</td>
    </tr>
    <tr>
      <td>Session resume</td>
      <td>Yes</td>
      <td>No</td>
      <td>Yes (<code class="language-plaintext highlighter-rouge">-S</code>, <code class="language-plaintext highlighter-rouge">-C</code>)</td>
      <td>Yes (<code class="language-plaintext highlighter-rouge">-c</code>, <code class="language-plaintext highlighter-rouge">-s</code>)</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>Yes (<code class="language-plaintext highlighter-rouge">-c</code>, <code class="language-plaintext highlighter-rouge">-r</code>)</td>
    </tr>
    <tr>
      <td>Session export</td>
      <td>Yes</td>
      <td>No</td>
      <td>Yes (<code class="language-plaintext highlighter-rouge">export</code>)</td>
      <td>Yes (<code class="language-plaintext highlighter-rouge">export</code>)</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>Yes (<code class="language-plaintext highlighter-rouge">--transcript</code> JSONL)</td>
    </tr>
    <tr>
      <td>Cost/budget cap</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>Yes (<code class="language-plaintext highlighter-rouge">--budget</code>)</td>
    </tr>
    <tr>
      <td>Backup/restore</td>
      <td>Yes</td>
      <td>Yes (migrate)</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
    </tr>
    <tr>
      <td>Doctor/debug</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>No</td>
      <td>Yes (<code class="language-plaintext highlighter-rouge">debug</code>)</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>Yes (<code class="language-plaintext highlighter-rouge">doctor</code>, <code class="language-plaintext highlighter-rouge">doctor-cache</code>)</td>
    </tr>
    <tr>
      <td>Security audit</td>
      <td>Yes</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>Yes</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
    </tr>
    <tr>
      <td>MCP management</td>
      <td>Yes</td>
      <td>No</td>
      <td>Yes (<code class="language-plaintext highlighter-rouge">mcp</code>)</td>
      <td>Yes (<code class="language-plaintext highlighter-rouge">mcp</code>)</td>
      <td>No</td>
      <td>Yes</td>
      <td>No</td>
      <td>No</td>
      <td>Yes (<code class="language-plaintext highlighter-rouge">mcp</code>)</td>
    </tr>
    <tr>
      <td>Skills/plugins</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>Yes (<code class="language-plaintext highlighter-rouge">--skills-dir</code>)</td>
      <td>Yes (<code class="language-plaintext highlighter-rouge">plugin</code>)</td>
      <td>No</td>
      <td>Yes</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
    </tr>
    <tr>
      <td>Shell completion</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>No</td>
      <td>Yes (<code class="language-plaintext highlighter-rouge">completion</code>)</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
    </tr>
  </tbody>
</table>

<hr />

<h2 id="what-the-cli-reveals-about-platform-philosophy">What the CLI Reveals About Platform Philosophy</h2>

<h3 id="the-unix-philosophy-spectrum">The Unix Philosophy Spectrum</h3>

<p><strong>Hermes</strong> is at one extreme: “Do everything through the CLI.” 81+ subcommands, every feature exposed, from <code class="language-plaintext highlighter-rouge">hermes dashboard</code> to <code class="language-plaintext highlighter-rouge">hermes pets</code>. The CLI IS the platform.</p>

<p><strong>Codex and aider</strong> are at the other extreme: “Do one thing through the CLI.” A chat loop, git integration, done. The CLI is a thin shell around the core agent loop.</p>

<p><strong>ZeroClaw</strong> and <strong>kimi-cli</strong> occupy the middle ground: enough subcommands to cover the agent lifecycle (scheduling, skills, monitoring) without the sprawl. ZeroClaw’s 22 commands and kimi-cli’s 9 commands + rich flag set suggest a deliberate design constraint — enough to be useful, not enough to be overwhelming.</p>

<h3 id="the-operating-system-vs-tool-divide">The “Operating System” vs “Tool” Divide</h3>

<p>Hermes, ZeroClaw, and GoClaw behave like operating systems for agents — they manage the full lifecycle: installation, configuration, scheduling, monitoring, debugging, backup, update. Their CLIs reflect this: <code class="language-plaintext highlighter-rouge">doctor</code>, <code class="language-plaintext highlighter-rouge">backup</code>, <code class="language-plaintext highlighter-rouge">update</code>, <code class="language-plaintext highlighter-rouge">migrate</code>, <code class="language-plaintext highlighter-rouge">estop</code>.</p>

<p>aider, codex, and Claude Code behave like tools — you run them when you need them, they do their job, they exit. No daemon, no scheduler, no backup. Their CLIs reflect this: minimal surface, focused interaction.</p>

<p>ClawTeam occupies a unique position: it’s an operating system for <em>other</em> agents, not for itself. Its CLI manages teams of aider/Codex/OpenClaw instances. It doesn’t have an AI chat loop — it has team lifecycle management.</p>

<h3 id="the-convergence-pattern">The Convergence Pattern</h3>

<p>Three CLI patterns are converging across the ecosystem:</p>

<ol>
  <li>
    <p><strong>One-shot mode</strong> (Hermes <code class="language-plaintext highlighter-rouge">-z</code>, kimi-cli <code class="language-plaintext highlighter-rouge">--print</code>, ZeroClaw <code class="language-plaintext highlighter-rouge">-m</code>) — Every platform eventually adds a non-interactive mode for scripting and CI integration.</p>
  </li>
  <li>
    <p><strong>ACP/Wire protocol</strong> (Hermes <code class="language-plaintext highlighter-rouge">acp</code>, kimi-cli <code class="language-plaintext highlighter-rouge">acp</code>/<code class="language-plaintext highlighter-rouge">--wire</code>, copilot-cli ACP) — Agent Communication Protocol is becoming the standard for IDE integration, with kimi-cli leading on wire protocol experimentation.</p>
  </li>
  <li>
    <p><strong>MCP configuration as a CLI concern</strong> (Hermes <code class="language-plaintext highlighter-rouge">mcp</code>, kimi-cli <code class="language-plaintext highlighter-rouge">mcp</code>, GoClaw adapter) — Managing MCP servers is becoming a first-class CLI operation, not a config-file-only concern.</p>
  </li>
</ol>

<h3 id="the-missing-commands">The Missing Commands</h3>

<p>Every platform is missing something:</p>

<ul>
  <li><strong>aider and codex</strong> have no scheduling. You cannot say “run this coding task every morning.” They are purely interactive.</li>
  <li><strong>ClawTeam</strong> has no credential management CLI. Credentials are in TOML files or environment variables.</li>
  <li><strong>GoClaw</strong> has no backup/restore. Enterprise infrastructure is assumed to be externally managed.</li>
  <li><strong>Hermes</strong> has no one-shot <em>print-only</em> mode that also outputs JSON (kimi-cli’s <code class="language-plaintext highlighter-rouge">--output-format stream-json</code> is more pipe-friendly).</li>
  <li><strong>ZeroClaw</strong> has no session resume. Each <code class="language-plaintext highlighter-rouge">agent</code> invocation is fresh.</li>
  <li><strong>kimi-cli</strong> has no cron or scheduling despite having the richest per-invocation configuration.</li>
  <li><strong>Reasonix</strong> has no scheduling and no shell completion. Its cost tooling is unmatched, but you can’t say “run this every morning” — the expected pattern is its <code class="language-plaintext highlighter-rouge">run</code> one-shot driven by system cron.</li>
</ul>

<hr />

<h2 id="the-bottom-line">The Bottom Line</h2>

<p>The CLI is the most honest interface a platform has. Documentation can overstate capabilities. Marketing can mislead. But <code class="language-plaintext highlighter-rouge">--help</code> output is what users actually see, and it reveals the real priorities:</p>

<ul>
  <li><strong>Hermes</strong> prioritizes completeness — every feature gets a command</li>
  <li><strong>ZeroClaw</strong> prioritizes consistency — every command has examples and clean help</li>
  <li><strong>kimi-cli</strong> prioritizes configurability — every invocation can be finely tuned</li>
  <li><strong>OpenCode</strong> prioritizes remote collaboration — serve, attach, mDNS discovery</li>
  <li><strong>aider</strong> prioritizes focus — one loop, done well</li>
  <li><strong>codex</strong> prioritizes safety — one binary, sandboxed, minimal</li>
  <li><strong>ClawTeam</strong> prioritizes orchestration — commands for teams, not for chat</li>
  <li><strong>GoClaw</strong> prioritizes infrastructure — commands for deployment, not interaction</li>
  <li><strong>Reasonix</strong> prioritizes economics — budget caps and cache visibility in every invocation</li>
</ul>

<p>The best CLIs of 2026 combine Hermes’ completeness with ZeroClaw’s consistency, kimi-cli’s configurability, OpenCode’s remote collaboration, and Reasonix’s cost discipline. Nobody has done all five yet.</p>

<hr />

<p><em>Live CLI captures from Hermes v0.20.0, OpenCode v1.18.18, kimi-cli v1.24.0, zeroclaw v0.1.7, reasonix v0.52.0. Architecture documentation from the AllClaws platform comparison covering all tracked platforms. See <a href="https://github.com/dz3ai/allclaws/blob/main/architecture/platform_comparison.md">platform_comparison.md</a> for full architecture details.</em></p>]]></content><author><name>Danny Zeng</name></author><category term="Research" /><category term="Comparison" /><category term="cli" /><category term="command-interface" /><category term="agent-platform" /><category term="comparison" /><category term="ux" /><category term="developer-experience" /><summary type="html"><![CDATA[Every AI agent platform has a different answer to the same question: how does a user interact with you? Some give you a single command and a chat loop. Some give you 80 subcommands. Some give you a TUI, some a REPL, some just print text to stdout.]]></summary></entry><entry xml:lang="zh"><title type="html">我让三个 AI Agent 组了一个团队。它们教给我的，是 Agent 平台的未来。</title><link href="https://dz3ai.github.io/allclaws/blog/2026/08/12/virtual-team-experiment-zh/" rel="alternate" type="text/html" title="我让三个 AI Agent 组了一个团队。它们教给我的，是 Agent 平台的未来。" /><published>2026-08-12T15:40:00+08:00</published><updated>2026-08-12T15:40:00+08:00</updated><id>https://dz3ai.github.io/allclaws/blog/2026/08/12/virtual-team-experiment-zh</id><content type="html" xml:base="https://dz3ai.github.io/allclaws/blog/2026/08/12/virtual-team-experiment-zh/"><![CDATA[<p>我在 AllClaws 项目里跟踪 30 个 AI agent 平台已经六个月了。我读过它们的源代码，比较过它们的架构，编目过它们的失败模式。但”读懂 agent 如何工作”和”看着 agent 工作”是两回事。于是我做了个不寻常的尝试：我组建了一个虚拟研究团队，让三个不同的 AI agent 平台在同样的研究任务上协作，然后跟踪它们产出的一切。</p>

<p>实验概念上很简单。我创建了三个团队成员，每个由一个来自完全不同架构范式的平台驱动：</p>

<table>
  <thead>
    <tr>
      <th>成员</th>
      <th>平台</th>
      <th>语言</th>
      <th>范式</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>goclaw-operator</strong></td>
      <td>GoClaw</td>
      <td>Go</td>
      <td>企业多租户网关</td>
    </tr>
    <tr>
      <td><strong>clawteam-lead</strong></td>
      <td>ClawTeam</td>
      <td>Python</td>
      <td>多代理群体协调</td>
    </tr>
    <tr>
      <td><strong>hermes-researcher</strong></td>
      <td>Hermes-Agent</td>
      <td>Python</td>
      <td>基于 profile 的个人 agent</td>
    </tr>
  </tbody>
</table>

<p>我给了它们一个共享任务板，包含四个关于它们自己平台的研究问题——工作区隔离、多任务协调、安全和身份模型——然后是第五个需要阅读彼此产出的综合任务。每个成员调查自己平台的内部实现，并以 markdown 文件提交发现。</p>

<p>在一个 sprint 的时间里，团队产出了 13 个 markdown 文件：每人 4 个，加一份跨平台综合报告。以下是我学到的东西。</p>

<hr />

<h2 id="实验结构与设置">实验：结构与设置</h2>

<p>任务板很直接。每个成员收到关于其平台四个维度的相同研究 prompt：</p>

<ol>
  <li><strong>S1-T1：工作区与项目隔离</strong> — 平台如何组织工作？隔离边界是什么？</li>
  <li><strong>S1-T2：多任务与多代理协调</strong> — 如何处理并发任务？代理间通信？</li>
  <li><strong>S1-T3：安全与凭据管理</strong> — 如何处理密钥、沙箱、审计？</li>
  <li><strong>S1-T4：Profile / 身份模型</strong> — 用户和上下文如何分离？</li>
</ol>

<p>第五个任务（S1-T5）是综合——比较三种方法，识别权衡，并为每个平台提出可以向其他平台借鉴什么。</p>

<p>每个成员基于相同的源材料工作：AllClaws 架构文档和实际的平台源代码（作为 git submodule 提供在父仓库中）。它们不能直接对话。协调通过引用其他成员工作的 commit message 完成。</p>

<p>整个实验活在一个 git 仓库里，使用结构化命名：<code class="language-plaintext highlighter-rouge">virtual-team/&lt;member&gt;/S1-T&lt;task#&gt;-&lt;short-name&gt;.md</code>。没有项目管理工具。没有 Slack 频道。没有站会。只有 git commit 和 markdown 文件。</p>

<hr />

<h2 id="发生了什么">发生了什么</h2>

<h3 id="三个范式通过它们自己的眼睛">三个范式，通过它们自己的眼睛</h3>

<p>每个成员都产出了扎根于实际代码的详细技术分析——不是营销文案，不是文档摘要，而是从阅读源码中提炼的架构。</p>

<p><strong>goclaw-operator</strong> 交出了配得上其平台的企业级分析。它的工作区隔离分析记录了 GoClaw 如何把 TenantID 传播到每一层——网关路由、agent 分发、数据库查询（<code class="language-plaintext highlighter-rouge">store.WithTenantID</code>）和审计日志。它的安全分析是所有成员中最详尽的，详述了五层防御：AES-256-GCM 加密、RBAC（admin/operator/viewer）、exec 审批白名单、通过 Go channel 的缓冲审计日志（容量 256），以及限流。这份分析读起来像一份安全审计——精确、落到具体实现、不留情面。</p>

<p><strong>clawteam-lead</strong> 产出了聚焦协调原语的分析。它的工作区隔离文档解释了基于 git worktree 的架构——每个 worker agent 从父仓库获得自己的 worktree，消除了合并冲突。它的多任务协调分析是所有成员中最丰富的，记录了基于 TOML 的 <code class="language-plaintext highlighter-rouge">blocked-by</code> 依赖链与自动解除阻塞、双模式代理间通信（点对点 inbox 加广播），以及一个具体的性能声明：5 个并行 agent 在约 3 小时内完成一个全栈应用，对比串行的 8 小时以上——同等 token 成本下 2.7 倍加速。</p>

<p><strong>hermes-researcher</strong> 交出了最内省的分析，基于一个实际运行的安装。它确认了两个活跃 profile（<code class="language-plaintext highlighter-rouge">personal</code>，1.9MB state.db；<code class="language-plaintext highlighter-rouge">work</code>，368KB WAL），记录了凭据池轮换（标记 401，轮换到下一个 key），并提供了 profile 隔离在实践中如何工作的最清晰解释。它的分析对局限性最坦诚：”agent 进程内部没有任何东西构成容器隔离”——直接引用自平台的 SECURITY.md。</p>

<h3 id="综合三个范式碰撞的地方">综合：三个范式碰撞的地方</h3>

<p>跨平台综合报告（S1-T5）是这次实验的收获。它在每个维度上比较了三个平台，产出了整个实验中最有用的输出：一个结构化的权衡矩阵。</p>

<p>以下浮现出来的发现：</p>

<p><strong>在工作区隔离上，根本性的分叉显形了。</strong> GoClaw 按<em>身份</em>隔离（你是谁——每个数据库查询里的 TenantID）。ClawTeam 按<em>任务</em>隔离（你在做什么——每个 agent 一个 git worktree）。Hermes 按<em>上下文</em>隔离（你在扮演什么角色——每个用例一个 profile 目录）。三者没有一个能同时做到另外两个。GoClaw 无法为同一用户分离上下文。ClawTeam 无法分离用户。Hermes 无法分离任务。</p>

<p><strong>在协调上，成熟度光谱悬殊得刺眼。</strong> ClawTeam 拥有最精密的系统：显式依赖链、代理间 inbox、广播消息、kanban 监控。GoClaw 有数据库支撑的团队协调但没有直接消息传递。Hermes 只有 fire-and-forget 委派，完全没有代理间通信。ClawTeam 的”agent 交换中间结果”与 Hermes 的”agent 返回最终摘要”之间的差距不是渐进的——是架构性的。</p>

<p><strong>在安全上，企业与个人的分野显而易见但并不简单。</strong> GoClaw 决定性领先：加密凭据、RBAC、结构化审计日志、按租户隔离。但综合报告凸显了一个有趣的中间立场。Hermes 的自动凭据池轮换——耗尽一个 401 的 key 然后轮换到下一个——在<em>运维成熟度上</em>超过 GoClaw 的手动凭据管理。最好的安全模型应该结合 GoClaw 的治理与 Hermes 的运维自动化。</p>

<p><strong>在身份上，每个平台回答的是不同的问题。</strong> GoClaw：”你是谁？”（TenantID）。ClawTeam：”你在哪个团队？”（TOML 模板）。Hermes：”你现在戴的是哪顶帽子？”（profile 目录）。洞察在于：这些不是竞争的答案——它们在回答真实用户同时拥有的不同问题。</p>

<hr />

<h2 id="元教训agent-能做比较研究">元教训：Agent 能做比较研究</h2>

<p>在讨论平台含义之前，有一个元层面的发现：<strong>实验成功了</strong>。</p>

<p>三个 AI agent，各自访问相同的源材料，但运行在不同平台、使用不同 prompt 策略，产出了 13 个文件的有据可依的技术分析。综合文档跨成员交叉引用发现，识别出非显而易见的权衡，并为每个平台提出了可操作的改进——全程没有人类写下一个段落。</p>

<p>这很重要，因为比较性平台分析恰好是那种：</p>
<ul>
  <li><strong>劳动密集</strong>：阅读三个代码库的源代码是人类数小时的工作</li>
  <li><strong>结构化</strong>：输出格式定义明确（markdown、表格、对比）</li>
  <li><strong>有据可依</strong>：你可以对照实际代码验证声明</li>
  <li><strong>无聊</strong>：没人想花一个周末比较 RBAC 实现</li>
</ul>

<p>AI agent 擅长以上全部四点。关键在于提供结构化的任务定义、共享的证据基础和清晰的输出格式。agent 完成了剩下的一切。</p>

<p>但是——这一点至关重要——综合质量完全取决于个体分析的质量。当 clawteam-lead 对 TOML 依赖链足够具体时，综合才能精确比较它们。当 goclaw-operator 详述审计管道（EventEmitter -&gt; Buffered Channel -&gt; PostgreSQL）时，综合才能准确对比。模糊的分析只会产出模糊的综合。实验的结构与 agent 本身同样重要。</p>

<hr />

<h2 id="对-agent-平台设计的启示">对 Agent 平台设计的启示</h2>

<h3 id="1-分叉是真实的而且正在固化">1. 分叉是真实的，而且正在固化</h3>

<p>AllClaws 研究已经识别出一个决定性趋势：<strong>个人力量倍增器</strong>与<strong>企业自动化</strong>范式之间的分叉。这次实验以新的方式让分叉显形——不是通过阅读文档，而是通过观察来自每个范式的 agent 如何推理同样的问题。</p>

<p>GoClaw 的 goclaw-operator 用租户、策略和合规思考。ClawTeam 的 clawteam-lead 用 agent、任务和合并冲突思考。Hermes 的 hermes-researcher 用 profile、记忆和上下文切换思考。这些不是同一抽象的不同实现——它们是完全不同的<em>抽象</em>。</p>

<p>启示：我们不会收敛到单一的 agent 平台架构。我们正在分化为至少三种不同的架构，各自为不同的部署现实优化。GoClaw 的 PostgreSQL 承诺让它不可能零配置。ClawTeam 的 git worktree 模型让它不可能多租户。Hermes 的文件系统 profile 模型让它不可能做实时代理间协调。</p>

<h3 id="2-没有人做到三种分离">2. 没有人做到三种分离</h3>

<p>综合报告识别出一个没有任何被跟踪平台填补的缺口：<strong>同时做到用户分离、任务分离和上下文分离</strong>。</p>

<p>在真实世界里，开发者三者都需要。我需要工作 API key 与个人 API key 隔离（用户分离）。我需要并行 agent 在不同 feature 上工作而不冲突（任务分离）。我需要我的”代码审查”上下文拥有与”研究”上下文不同的工具和权限（上下文分离）。</p>

<p>GoClaw 分离用户。ClawTeam 分离任务。Hermes 分离上下文。同时做到三者——且不分别要求 PostgreSQL、git 专业知识和文件系统管理——的平台，将拥有真正的架构优势。</p>

<h3 id="3-协调是服务不足的中间地带">3. 协调是服务不足的中间地带</h3>

<p>实验揭示了一个出人意料的非对称。GoClaw 有企业治理但没有群体协调。ClawTeam 有群体协调但没有企业治理。Hermes 两者皆无但擅长个体生产力。</p>

<p>服务不足的空间是<strong>面向小团队的结构化协调</strong>——不是 500 用户的企业部署（GoClaw 的地盘），不是并行 agent 的独立开发者（ClawTeam 的地盘），而是 3-10 人的团队，他们的 agent 需要跨组织边界协作并带一些治理。</p>

<p>想象一下：ClawTeam 的依赖链和 inbox 系统，加上 GoClaw 的凭据隔离和审计日志，运行在 Hermes 的 profile 模型里，每个成员获得一致的上下文。这个产品不存在。最接近的近似需要用胶带把三个平台粘在一起。</p>

<h3 id="4-安全实践应该与架构解耦">4. 安全实践应该与架构解耦</h3>

<p>GoClaw 的安全最完整，因为它烤进了 PostgreSQL——租户范围的加密、租户范围的审计日志、RPC 层的 RBAC 强制执行。但这意味着你需要 PostgreSQL 才能有安全。</p>

<p>综合报告表明，一些安全实践与架构无关：</p>
<ul>
  <li><strong>凭据池轮换</strong>（Hermes）适配任何存储后端</li>
  <li><strong>通过指纹的密钥脱敏</strong>（Hermes）不需要加密</li>
  <li><strong>exec 审批白名单</strong>（GoClaw）不需要数据库</li>
  <li><strong>结构化审计日志</strong>（GoClaw）可以用 SQLite 替代 PostgreSQL</li>
</ul>

<p>启示：安全成熟度不应该要求特定的架构承诺。像 ClawTeam 那样把凭据以明文 TOML 存储的平台，可以采纳 Hermes 的池轮换和 GoClaw 的审计模式，而不改变核心架构。它们没有这样做的事实表明，安全在个人 agent 平台中被当作事后想起——随着这些 agent 处理越来越敏感的操作，这个习惯将变得不可持续。</p>

<h3 id="5-profile-即工作区是个人-agent-的正确默认">5. Profile 即工作区，是个人 agent 的正确默认</h3>

<p>Hermes 的 profile 模型——一个自包含目录，带配置、凭据、技能、记忆和会话状态——是我见过的个人用途下最干净的隔离原语。ClawTeam 的 worktree 模型对并行代码工作很出色，但不分离上下文。GoClaw 的租户模型对单用户是杀鸡用牛刀。</p>

<p>profile 方法有一个其他方法不具备的属性：<strong>零配置上下文切换</strong>。我可以有一个用便宜模型和只读工具的”research” profile，和一个用强大模型和完整终端访问的”coding” profile。切换它们就是换一个目录，不是开通基础设施。</p>

<p>这暗示了一个收敛点：个人平台应该采用基于 profile 的隔离作为默认，可选 worktree 隔离用于并行编程任务，可选租户隔离用于团队部署。Hermes 提供了地基；其他平台提供可选层。</p>

<hr />

<h2 id="每个平台应该偷什么">每个平台应该偷什么</h2>

<p>综合报告产出了一份具体、可操作的清单：</p>

<p><strong>GoClaw 应该从 ClawTeam 偷：</strong></p>
<ul>
  <li>带自动解除阻塞的任务依赖链（比隐式团队协调更有表达力）</li>
  <li>带 circuit breaker 状态的 agent 级成本仪表盘</li>
</ul>

<p><strong>GoClaw 应该从 Hermes 偷：</strong></p>
<ul>
  <li>自动凭据池轮换（替代手动 key 管理）</li>
</ul>

<p><strong>ClawTeam 应该从 GoClaw 偷：</strong></p>
<ul>
  <li>AES-256-GCM 凭据加密（明文 TOML 问题是任何共享系统的 showstopper）</li>
  <li>结构化审计日志（JSON 状态文件不是审计轨迹）</li>
</ul>

<p><strong>ClawTeam 应该从 Hermes 偷：</strong></p>
<ul>
  <li>Profile / 上下文分离（让 agent 在不同任务下以不同配置运行）</li>
</ul>

<p><strong>Hermes 应该从 ClawTeam 偷：</strong></p>
<ul>
  <li>代理间通信（inbox 和广播，而不只是 fire-and-forget 委派）</li>
  <li>任务依赖跟踪（blocked-by 链，而不是扁平 todo 列表）</li>
  <li>多代理监控（所有运行中任务的 kanban 看板视图）</li>
</ul>

<p><strong>Hermes 应该从 GoClaw 偷：</strong></p>
<ul>
  <li>带权限范围的 RBAC（research 只读，development 完全访问）</li>
  <li>面向企业 profile 的结构化审计日志</li>
</ul>

<hr />

<h2 id="真正的收获">真正的收获</h2>

<p>我出发去通过让三个 AI agent 平台解决同一个问题来了解它们。我学到了预期中的东西——平台有不同的强项、不同的弱点、不同的架构承诺。对比矩阵确认了我已经手动做过的分析。</p>

<p>但我也学到了意料之外的东西：<strong>每个 agent <em>思考</em>问题的方式，比任何功能对比都更能揭示平台的本质。</strong></p>

<p>GoClaw 的 agent 写安全的方式，就像安全工程师写安全——分层防御、威胁模型、合规要求。ClawTeam 的 agent 写协调的方式，就像系统架构师写分布式系统——消息传递、隔离边界、故障恢复。Hermes 的 agent 写身份的方式，就像产品设计师写用户体验——用户上下文、心智模型、切换成本。</p>

<p>这些不是巧合。每个平台塑造了它的 agent 推理问题的方式。GoClaw 的数据库中心架构自然产出数据库中心的分析。ClawTeam 的 git 中心架构自然产出 git 中心的分析。Hermes 的 profile 中心架构自然产出 profile 中心的分析。</p>

<p>平台提供的不只是不同的工具——它们提供不同的<em>透镜</em>。这次实验最有价值的东西，不是学到每个平台做什么，而是学到每个平台<em>看到什么</em>。</p>

<hr />

<p><em>全部 13 个分析文件可在 AllClaws 仓库的 <a href="https://github.com/dz3ai/allclaws/tree/main/virtual-team">virtual-team 目录</a>获取。跨平台综合报告在 <code class="language-plaintext highlighter-rouge">virtual-team/S1-T5-cross-platform-synthesis.md</code>，包含完整的对比矩阵和权衡分析。</em></p>

<p><em><a href="/allclaws/blog/2026/08/12/virtual-team-experiment/">English version</a></em></p>]]></content><author><name>Danny Zeng</name></author><category term="研究" /><category term="实验" /><category term="multi-agent" /><category term="virtual-team" /><category term="platform-comparison" /><category term="goclaw" /><category term="clawteam" /><category term="hermes-agent" /><category term="架构" /><category term="实验" /><summary type="html"><![CDATA[我在 AllClaws 项目里跟踪 30 个 AI agent 平台已经六个月了。我读过它们的源代码，比较过它们的架构，编目过它们的失败模式。但”读懂 agent 如何工作”和”看着 agent 工作”是两回事。于是我做了个不寻常的尝试：我组建了一个虚拟研究团队，让三个不同的 AI agent 平台在同样的研究任务上协作，然后跟踪它们产出的一切。]]></summary></entry><entry><title type="html">I Put Three AI Agents on a Team. Here’s What They Taught Me About the Future of Agent Platforms.</title><link href="https://dz3ai.github.io/allclaws/blog/2026/08/12/virtual-team-experiment/" rel="alternate" type="text/html" title="I Put Three AI Agents on a Team. Here’s What They Taught Me About the Future of Agent Platforms." /><published>2026-08-12T15:30:00+08:00</published><updated>2026-08-12T15:30:00+08:00</updated><id>https://dz3ai.github.io/allclaws/blog/2026/08/12/virtual-team-experiment</id><content type="html" xml:base="https://dz3ai.github.io/allclaws/blog/2026/08/12/virtual-team-experiment/"><![CDATA[<p>I’ve spent six months tracking 30 AI agent platforms for the AllClaws project. I’ve read their source code, compared their architectures, cataloged their failure modes. But reading about how agents work is different from watching them work. So I tried something unusual: I built a virtual research team where three different AI agent platforms collaborated on the same research tasks, and I tracked everything they produced.</p>

<p>The experiment was simple in concept. I created three team members, each powered by a different platform from a fundamentally different architectural paradigm:</p>

<table>
  <thead>
    <tr>
      <th>Member</th>
      <th>Platform</th>
      <th>Language</th>
      <th>Paradigm</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>goclaw-operator</strong></td>
      <td>GoClaw</td>
      <td>Go</td>
      <td>Enterprise multi-tenant gateway</td>
    </tr>
    <tr>
      <td><strong>clawteam-lead</strong></td>
      <td>ClawTeam</td>
      <td>Python</td>
      <td>Multi-agent swarm coordination</td>
    </tr>
    <tr>
      <td><strong>hermes-researcher</strong></td>
      <td>Hermes-Agent</td>
      <td>Python</td>
      <td>Profile-based personal agent</td>
    </tr>
  </tbody>
</table>

<p>I gave them a shared task board with four research questions about their own platforms — workspace isolation, multi-task coordination, security, and identity models — then a fifth synthesis task that required reading each other’s output. Each member investigated their own platform’s internals and committed findings as markdown files.</p>

<p>Over the course of a sprint, the team produced 13 markdown files: 4 per member plus a cross-platform synthesis. Here’s what I learned.</p>

<hr />

<h2 id="the-experiment-structure-and-setup">The Experiment: Structure and Setup</h2>

<p>The task board was straightforward. Each member received identical research prompts about four dimensions of their platform:</p>

<ol>
  <li><strong>S1-T1: Workspace &amp; Project Isolation</strong> — How does the platform organize work? What is the isolation boundary?</li>
  <li><strong>S1-T2: Multi-Task &amp; Multi-Agent Coordination</strong> — How does it handle concurrent tasks? Inter-agent communication?</li>
  <li><strong>S1-T3: Security &amp; Credential Management</strong> — How does it handle secrets, sandboxing, audit?</li>
  <li><strong>S1-T4: Profile / Identity Model</strong> — How are users and contexts separated?</li>
</ol>

<p>The fifth task (S1-T5) was a synthesis — compare all three approaches, identify trade-offs, and suggest what each platform could learn from the others.</p>

<p>Each member worked from the same source material: the AllClaws architecture documentation and the actual platform source code (available as git submodules in the parent repo). They couldn’t talk to each other directly. Coordination happened through commit messages referencing other members’ work.</p>

<p>The whole thing lived in a git repo with structured naming: <code class="language-plaintext highlighter-rouge">virtual-team/&lt;member&gt;/S1-T&lt;task#&gt;-&lt;short-name&gt;.md</code>. No project management tool. No Slack channel. No standup meetings. Just git commits and markdown files.</p>

<hr />

<h2 id="what-happened">What Happened</h2>

<h3 id="the-three-paradigms-through-their-own-eyes">The Three Paradigms, Through Their Own Eyes</h3>

<p>Each member produced detailed technical analysis rooted in actual code — not marketing copy, not documentation summaries, but architecture drawn from reading source.</p>

<p><strong>goclaw-operator</strong> delivered enterprise-grade analysis befitting its platform. Its workspace isolation analysis documented how GoClaw propagates a TenantID through every layer — gateway routing, agent dispatch, database queries (<code class="language-plaintext highlighter-rouge">store.WithTenantID</code>), and audit logging. Its security analysis was the most thorough of any member, detailing a 5-layer defense: AES-256-GCM encryption, RBAC (admin/operator/viewer), exec approval allowlists, buffered audit logging via Go channels (capacity 256), and rate limiting. The analysis read like a security audit — precise, implementation-specific, and unsparing.</p>

<p><strong>clawteam-lead</strong> produced analysis focused on coordination primitives. Its workspace isolation document explained git worktree-based architecture — each worker agent gets its own worktree from the parent repo, eliminating merge conflicts. Its multi-task coordination analysis was the richest of any member, documenting TOML-based <code class="language-plaintext highlighter-rouge">blocked-by</code> dependency chains with automatic unblocking, dual-mode inter-agent communication (point-to-point inboxes plus broadcast), and a concrete performance claim: 5 parallel agents completing a full-stack app in ~3 hours vs 8+ hours sequential, a 2.7x speedup at the same token cost.</p>

<p><strong>hermes-researcher</strong> delivered the most introspective analysis, grounded in an actual running installation. It confirmed two active profiles (<code class="language-plaintext highlighter-rouge">personal</code> at 1.9MB state.db, <code class="language-plaintext highlighter-rouge">work</code> at 368KB WAL), documented credential pool rotation (mark 401, rotate to next key), and provided the clearest explanation of how profile-based isolation works in practice. Its analysis was the most candid about limitations: “Nothing inside the agent process constitutes containment,” quoting directly from the platform’s SECURITY.md.</p>

<h3 id="the-synthesis-where-the-three-paradigms-collide">The Synthesis: Where the Three Paradigms Collide</h3>

<p>The cross-platform synthesis (S1-T5) was the payoff. It compared all three platforms across each dimension and produced the most useful output of the entire experiment: a structured matrix of trade-offs.</p>

<p>Here’s what emerged:</p>

<p><strong>On workspace isolation, the fundamental fork revealed itself.</strong> GoClaw isolates by <em>identity</em> (who you are — TenantID in every database query). ClawTeam isolates by <em>task</em> (what you’re doing — git worktree per agent). Hermes isolates by <em>context</em> (which role you’re in — profile directory per use case). None of the three does all three. GoClaw cannot separate contexts for the same user. ClawTeam cannot separate users. Hermes cannot separate tasks.</p>

<p><strong>On coordination, the maturity spectrum was stark.</strong> ClawTeam has the most sophisticated system: explicit dependency chains, inter-agent inboxes, broadcast messaging, kanban monitoring. GoClaw has database-backed team coordination without direct messaging. Hermes has fire-and-forget delegation with no inter-agent communication at all. The gap between ClawTeam’s “agents exchange intermediate results” and Hermes’ “agents return final summaries” is not incremental — it’s architectural.</p>

<p><strong>On security, the divide between enterprise and personal was obvious but not simple.</strong> GoClaw leads decisively: encrypted credentials, RBAC, structured audit logging, per-tenant isolation. But the synthesis highlighted an interesting middle position. Hermes’ automatic credential pool rotation — exhausting a 401’d key and rotating to the next — is <em>more operationally mature</em> than GoClaw’s manual credential management. The best security model would combine GoClaw’s governance with Hermes’ operational automation.</p>

<p><strong>On identity, each platform answers a different question.</strong> GoClaw: “Who are you?” (TenantID). ClawTeam: “What team are you on?” (TOML template). Hermes: “What hat are you wearing?” (profile directory). The insight is that these are not competing answers — they’re answering different questions that real users have simultaneously.</p>

<hr />

<h2 id="the-meta-lesson-agents-can-do-comparative-research">The Meta-Lesson: Agents Can Do Comparative Research</h2>

<p>Before discussing platform implications, there’s a meta-level finding: <strong>the experiment worked</strong>.</p>

<p>Three AI agents, each with access to the same source material but running on different platforms with different prompting strategies, produced 13 files of grounded technical analysis. The synthesis document cross-referenced findings across members, identified non-obvious trade-offs, and suggested actionable improvements for each platform — all without a human writing a single paragraph.</p>

<p>This matters because comparative platform analysis is exactly the kind of work that is:</p>
<ul>
  <li><strong>Labor-intensive</strong>: Reading source code across three codebases is hours of human effort</li>
  <li><strong>Structured</strong>: The output format is well-defined (markdown, tables, comparisons)</li>
  <li><strong>Grounded</strong>: You can verify claims against actual code</li>
  <li><strong>Boring</strong>: Nobody wants to spend a weekend comparing RBAC implementations</li>
</ul>

<p>AI agents are good at all four of these properties. The key was providing structured task definitions, a shared evidence base, and a clear output format. The agents did the rest.</p>

<p>But — and this is critical — the synthesis quality depended entirely on the individual analysis quality. When clawteam-lead was specific about TOML dependency chains, the synthesis could compare them precisely. When goclaw-operator detailed the audit pipeline (EventEmitter -&gt; Buffered Channel -&gt; PostgreSQL), the synthesis could contrast it accurately. Vague analysis would have produced vague synthesis. The structure of the experiment mattered as much as the agents.</p>

<hr />

<h2 id="implications-for-agent-platform-design">Implications for Agent Platform Design</h2>

<h3 id="1-the-fork-is-real-and-its-hardening">1. The Fork Is Real, and It’s Hardening</h3>

<p>The AllClaws research has identified a defining trend: the fork between <strong>personal-force-multiplier</strong> and <strong>enterprise-automation</strong> paradigms. This experiment made the fork visible in a new way — not by reading documentation, but by watching how agents from each paradigm reason about the same problems.</p>

<p>GoClaw’s goclaw-operator thinks in terms of tenants, policies, and compliance. ClawTeam’s clawteam-lead thinks in terms of agents, tasks, and merge conflicts. Hermes’ hermes-researcher thinks in terms of profiles, memory, and context switching. These are not different implementations of the same abstraction — they are different <em>abstractions entirely</em>.</p>

<p>The implication: we are not converging on a single agent platform architecture. We are diverging into at least three distinct ones, each optimized for a different deployment reality. GoClaw’s PostgreSQL commitment makes it impossible to be zero-config. ClawTeam’s git worktree model makes it impossible to be multi-tenant. Hermes’ filesystem profile model makes it impossible to do real-time inter-agent coordination.</p>

<h3 id="2-nobody-does-all-three-separations">2. Nobody Does All Three Separations</h3>

<p>The synthesis identified a gap that no tracked platform fills: <strong>simultaneous user separation, task separation, and context separation</strong>.</p>

<p>In the real world, developers need all three. I need my work API keys isolated from my personal ones (user separation). I need parallel agents working on different features without conflicts (task separation). I need my “code review” context to have different tools and permissions than my “research” context (context separation).</p>

<p>GoClaw separates users. ClawTeam separates tasks. Hermes separates contexts. The platform that does all three — without requiring PostgreSQL, git expertise, and filesystem management respectively — will have a genuine architectural advantage.</p>

<h3 id="3-coordination-is-the-underserved-middle-ground">3. Coordination Is the Underserved Middle Ground</h3>

<p>The experiment revealed a surprising asymmetry. GoClaw has enterprise governance but no swarm coordination. ClawTeam has swarm coordination but no enterprise governance. Hermes has neither but excels at individual productivity.</p>

<p>The underserved space is <strong>structured coordination for small teams</strong> — not 500-user enterprise deployments (GoClaw’s territory), not solo developers with parallel agents (ClawTeam’s territory), but teams of 3-10 humans who need their agents to collaborate across organizational boundaries with some governance.</p>

<p>Imagine: ClawTeam’s dependency chains and inbox system, but with GoClaw’s credential isolation and audit logging, running inside Hermes’ profile model so each team member gets a consistent context. That product doesn’t exist. The closest approximation requires duct-taping three platforms together.</p>

<h3 id="4-security-practices-should-decouple-from-architecture">4. Security Practices Should Decouple from Architecture</h3>

<p>GoClaw’s security is the most complete because it’s baked into PostgreSQL — tenant-scoped encryption, tenant-scoped audit logs, RBAC enforcement at the RPC layer. But this means you need PostgreSQL to get security.</p>

<p>The synthesis showed that some security practices are architecture-independent:</p>
<ul>
  <li><strong>Credential pool rotation</strong> (Hermes) works with any storage backend</li>
  <li><strong>Secret redaction via fingerprints</strong> (Hermes) works without encryption</li>
  <li><strong>Exec approval allowlists</strong> (GoClaw) work without a database</li>
  <li><strong>Structured audit logging</strong> (GoClaw) could use SQLite instead of PostgreSQL</li>
</ul>

<p>The implication: security maturity should not require a specific architectural commitment. Platforms like ClawTeam that store credentials in plaintext TOML files could adopt Hermes’ pool rotation and GoClaw’s audit patterns without changing their core architecture. The fact that they haven’t suggests that security is treated as an afterthought in personal-agent platforms — a habit that will become unsustainable as these agents handle more sensitive operations.</p>

<h3 id="5-profile-as-workspace-is-the-right-default-for-personal-agents">5. Profile-as-Workspace Is the Right Default for Personal Agents</h3>

<p>Hermes’ profile model — a self-contained directory with config, credentials, skills, memory, and session state — is the cleanest isolation primitive I’ve seen for personal use. ClawTeam’s worktree model is brilliant for parallel code work but doesn’t separate contexts. GoClaw’s tenant model is overkill for a single user.</p>

<p>The profile approach has a property that the others lack: <strong>zero-config context switching</strong>. I can have a “research” profile with a cheaper model and read-only tools, and a “coding” profile with a powerful model and full terminal access. Switching between them is changing a directory, not provisioning infrastructure.</p>

<p>This suggests a convergence point: personal platforms should adopt profile-based isolation as the default, with optional worktree isolation for parallel coding tasks and optional tenant isolation for team deployments. Hermes provides the foundation; the others provide the optional layers.</p>

<hr />

<h2 id="what-each-platform-should-steal">What Each Platform Should Steal</h2>

<p>The synthesis produced a specific, actionable list:</p>

<p><strong>GoClaw should steal from ClawTeam:</strong></p>
<ul>
  <li>Task dependency chains with auto-unblock (more expressive than implicit team coordination)</li>
  <li>Agent-level cost dashboards with circuit breaker states</li>
</ul>

<p><strong>GoClaw should steal from Hermes:</strong></p>
<ul>
  <li>Automatic credential pool rotation (replace manual key management)</li>
</ul>

<p><strong>ClawTeam should steal from GoClaw:</strong></p>
<ul>
  <li>AES-256-GCM credential encryption (the plaintext TOML problem is a showstopper for any shared system)</li>
  <li>Structured audit logging (JSON state files are not audit trails)</li>
</ul>

<p><strong>ClawTeam should steal from Hermes:</strong></p>
<ul>
  <li>Profile/context separation (let agents operate under different configurations for different tasks)</li>
</ul>

<p><strong>Hermes should steal from ClawTeam:</strong></p>
<ul>
  <li>Inter-agent communication (inboxes and broadcast, not just fire-and-forget delegation)</li>
  <li>Task dependency tracking (blocked-by chains, not flat todo lists)</li>
  <li>Multi-agent monitoring (kanban board view of all running tasks)</li>
</ul>

<p><strong>Hermes should steal from GoClaw:</strong></p>
<ul>
  <li>RBAC with permission scopes (read-only for research, full-access for development)</li>
  <li>Structured audit logging for enterprise profiles</li>
</ul>

<hr />

<h2 id="the-real-takeaway">The Real Takeaway</h2>

<p>I set out to learn about AI agent platforms by putting three of them to work on the same problem. I learned what I expected — the platforms have different strengths, different weaknesses, different architectural commitments. The comparison matrices confirmed the analysis I’d already done manually.</p>

<p>But I also learned something I didn’t expect: <strong>the way each agent <em>thought</em> about the problem revealed more about the platform than any feature comparison ever could.</strong></p>

<p>GoClaw’s agent wrote about security the way a security engineer writes about security — layered defenses, threat models, compliance requirements. ClawTeam’s agent wrote about coordination the way a systems architect writes about distributed systems — message passing, isolation boundaries, failure recovery. Hermes’ agent wrote about identity the way a product designer writes about UX — user contexts, mental models, switching costs.</p>

<p>These aren’t coincidences. Each platform shapes how its agents reason about problems. GoClaw’s database-centric architecture naturally produces database-centric analysis. ClawTeam’s git-centric architecture naturally produces git-centric analysis. Hermes’ profile-centric architecture naturally produces profile-centric analysis.</p>

<p>The platforms don’t just provide different tools — they provide different <em>lenses</em>. And the most useful thing about this experiment wasn’t learning what each platform does. It was learning what each platform <em>sees</em>.</p>

<hr />

<p><em>All 13 analysis files are available in the <a href="https://github.com/dz3ai/allclaws/tree/main/virtual-team">virtual-team directory</a> of the AllClaws repository. The cross-platform synthesis at <code class="language-plaintext highlighter-rouge">virtual-team/S1-T5-cross-platform-synthesis.md</code> contains the full comparison matrices and trade-off analysis.</em></p>]]></content><author><name>Danny Zeng</name></author><category term="Research" /><category term="Experiment" /><category term="multi-agent" /><category term="virtual-team" /><category term="platform-comparison" /><category term="goclaw" /><category term="clawteam" /><category term="hermes-agent" /><category term="architecture" /><category term="experiment" /><summary type="html"><![CDATA[I’ve spent six months tracking 30 AI agent platforms for the AllClaws project. I’ve read their source code, compared their architectures, cataloged their failure modes. But reading about how agents work is different from watching them work. So I tried something unusual: I built a virtual research team where three different AI agent platforms collaborated on the same research tasks, and I tracked everything they produced.]]></summary></entry><entry xml:lang="zh"><title type="html">AI Agent 生态报告：2026 年 7 月</title><link href="https://dz3ai.github.io/allclaws/blog/2026/07/30/ai-agent-ecosystem-report-july-2026-zh/" rel="alternate" type="text/html" title="AI Agent 生态报告：2026 年 7 月" /><published>2026-07-30T23:55:00+08:00</published><updated>2026-07-30T23:55:00+08:00</updated><id>https://dz3ai.github.io/allclaws/blog/2026/07/30/ai-agent-ecosystem-report-july-2026-zh</id><content type="html" xml:base="https://dz3ai.github.io/allclaws/blog/2026/07/30/ai-agent-ecosystem-report-july-2026-zh/"><![CDATA[<p>2026 年 7 月，是 AI agent 平台走向成熟的一个月。不是能力上的成熟——它们早就足够强大了——而是在那些不那么光鲜、却真正区分 demo 与生产系统的工程工作上成熟了。上下文压缩（context compaction）成为平台的一等公民。安全加固从”事后想到”变成了发布阻塞项。中国生态展示了它作为拥有独立引力的平行宇宙。而支撑这一切跟踪的基准测试基础设施，平台覆盖率从 26% 跃升至 76%。</p>

<p>本月 AllClaws 跟踪了 34 个平台（7 月初为 30 个），新增 7 个 submodule，发布 7 份研究报告，产出 6 篇博客，并将基准测试引擎升级到覆盖 34 个平台中的 26 个、140 项真实指标。以下是这个月生态圈发生的事情。</p>

<hr />

<h2 id="趋势一上下文压缩军备竞赛">趋势一：上下文压缩军备竞赛</h2>

<p>2026 年 7 月最重要的技术主题，是全行业把上下文管理当作核心平台能力的转向。</p>

<p><strong>OpenWorker</strong> 发布了四部曲的压缩系列（OPE-27）：加固 smoke test 以应对每轮事件循环、新增带测试的纯压缩模块、构建带失败策略和持久化的引擎钩子，以及接入设置覆盖和 GUI 分隔线。这不是一个补丁——这是一套完整的架构，专门管理 agent 上下文窗口填满之后会发生什么。</p>

<p><strong>Nanobot</strong>（HKUDS，v0.3.0）发布了”保留 Responses 推理状态并压缩上下文”——让 agent 在上下文压缩边界之间维持推理链。他们 7 月 25 日的 v0.3.0 是发布以来最重要的一次更新，还包括会话空闲锁、缓冲输出边界和无效空闲压缩时间戳容忍的修复。这个版本引入的 AgentLoop/AgentRunner 分离，是我们目前在所有 Python agent 平台中见过的最干净的职责分离。</p>

<p><strong>Hermes-Agent</strong> 修复了压缩摘要的角色选择——按模板可见的交替来选择摘要角色，而不是简单复用最后一个角色。修复很细微，但它防止了压缩破坏对话语义。</p>

<p>这为什么重要？我们跟踪的每一个 agent 平台最终都会撞上同一堵墙：上下文窗口是有限的，任务是无界的，而粗暴截断会搞坏 agent。把压缩解决好的平台，才可能在真实的、长达数小时的任务上工作。解决不好的，会一直困在 demo 模式里。</p>

<hr />

<h2 id="趋势二生产级安全加固">趋势二：生产级安全加固</h2>

<p>2026 年 7 月，多个平台把安全不再当作功能，而是当作前提。</p>

<p><strong>Nanoclaw</strong> 合并了加固 agent 镜像的 PR——用拉取预加固的容器镜像取代之前的”自己构建”方案。他们新增了 <code class="language-plaintext highlighter-rouge">--init</code> 和 <code class="language-plaintext highlighter-rouge">--shm-size</code> 标志，移除了按组覆盖，并将加固与主线对齐。传递的信息是：安全默认值应该来自平台，而不是用户的 Dockerfile。</p>

<p><strong>AgentScope</strong> 在中间件层新增了 <code class="language-plaintext highlighter-rouge">on_check_permission</code> 钩子（PR #2001）——为授权 agent 行为提供了程序化的控制点。加上本月新增的 Apple Container 和 Bubblewrap 工作区后端，AgentScope 正在为分布式 agent 构建一个严肃的安全故事。</p>

<p><strong>Agent Zero</strong> 加固了远程 Linux computer-use 的目标定位——正是那种 agent 控制远程机器时、一旦定位不准就可能造成破坏的场景。</p>

<p><strong>OpenWorker</strong> 将 <code class="language-plaintext highlighter-rouge">mcp&lt;2</code> 锁定，因为发现 MCP 2.0.0 移除了 <code class="language-plaintext highlighter-rouge">streamablehttp_client</code>——一个可能静默破坏生产集成的破坏性变更。这种供应链意识，正是生产软件与研究代码的分水岭。</p>

<hr />

<h2 id="趋势三模型提供商爆炸">趋势三：模型提供商爆炸</h2>

<p>各平台竞相支持所有可用的模型提供商。”只支持 OpenAI”的假设已经死了。</p>

<p><strong>Agent Zero</strong> 新增 Cerebras 作为模型提供商——把超低延迟推理带进 agent 工作流。</p>

<p><strong>AgentScope</strong> 新增 Kimi K3（Moonshot）支持，并重构了 OpenAI 客户端以在多次调用间复用 <code class="language-plaintext highlighter-rouge">AsyncClient</code> 实例，而不是每次调用都新建（PR #2063）——这个性能修复让多代理系统的连接开销降低了数量级。</p>

<p><strong>GoClaw</strong> 为 Codex 瞬时响应失败增加了重试逻辑，并支持免重启刷新每用户 MCP 凭据——对凭据轮换不应意味着停机的生产部署至关重要。</p>

<p><strong>Hermes-Agent</strong> 合并了 composer 一致性修复，并清理了过期的提供商告警。</p>

<p>模式很清晰：agent 不能再假设单一模型后端。多模型支持已经是基本盘，而能优雅处理模型切换的平台（连接池、重试逻辑、凭据管理）正在拉开差距。</p>

<hr />

<h2 id="趋势四中国生态进入焦点">趋势四：中国生态进入焦点</h2>

<p>本月 AllClaws 新增了三个中国平台——Dify、MetaGPT 和 Qwen-Agent——此前我们的 Q3-6 研究揭示了这个合计 GitHub 星标超过 35 万的生态。</p>

<p><strong>Dify</strong> 发布了 v1.16.0（7 月 17 日）和 v1.16.1（7 月 28 日，缺陷修复与安全增强）。这个发布节奏——大版本，然后 11 天后的安全补丁——反映了生产成熟度。他们的提交记录展示了深度重构：治理公共组件 API、收窄应用列表上下文、让技能包上传大小可配置。</p>

<p><strong>Coze Studio</strong>（字节跳动）自 4 月以来没有推送，让人对其开源承诺产生疑问。商业版 Coze 产品大概率仍然活跃，但开源仓库可能处于定期同步而非持续开发的状态。</p>

<p><strong>MetaGPT</strong> 仍处于开发暂停——最后一次推送是 2026 年 1 月，最后一次发版是 2025 年 3 月（v0.8.2）。坐拥 69K 星，它是 agent 生态中知名度最高的停摆项目。</p>

<hr />

<h2 id="趋势五大稳定化">趋势五：大稳定化</h2>

<p>多个平台发布了专注于稳定性而非功能的版本：</p>

<ul>
  <li><strong>HiClaw v1.2.0</strong> — Worker 存储同步的 I/O 放大修复、诊断循环预防、旧版存储前缀兼容。更大的故事是 v1.1.0：从单容器单体完全重写为无状态 worker 的 Kubernetes CRD operator 模式。</li>
  <li><strong>Dify v1.16.1</strong> — 安全修复与缺陷修复</li>
  <li><strong>Nanobot v0.3.0</strong> — 推理状态保留、会话锁修复、输出边界</li>
  <li><strong>OpenWorker v0.1.6</strong> — 压缩加固、MCP 版本锁定</li>
</ul>

<p>行业正在从”快速发布功能”转向”让已有功能真正可用”。这正是 agent 平台从实验品变成基础设施的拐点。</p>

<hr />

<h2 id="趋势六基准测试基础设施成熟化">趋势六：基准测试基础设施成熟化</h2>

<p>本月 AllClaws 内部最大的变化是基准测试覆盖率的跃升。运行时基准测试引擎从 9 个平台的原型进化为 26 个平台的生产系统：</p>

<ul>
  <li><strong>58 → 140 项指标</strong>：清理幽灵平台引用（quantumclaw、mcp-agent、rtl-claw），新增 monorepo 路径解析、<code class="language-plaintext highlighter-rouge">setup.py</code> 支持、递归 manifest 搜索</li>
  <li><strong>CLI agent 基准测试</strong>：新的 <code class="language-plaintext highlighter-rouge">_run_cli_platforms()</code> 方法通过分发逻辑处理 Node、Rust 和 Python CLI agent。kimi-cli、kimi-code、codex、reasonix 和 rocketride-server 全部产出真实数据</li>
  <li><strong>真实冷启动测量</strong>：reasonix（npm install + build 之后 287ms、81.8MB）和 codex（pnpm install 之后 32.5ms、52.7MB）——项目中第一批真实的 CLI agent 性能数据</li>
  <li><strong>Docker 沙箱扩容</strong>：11 → 15 个沙箱服务，现已覆盖 Dify、MetaGPT、Qwen-Agent 和 OpenWorker</li>
</ul>

<p>基准测试的缺口正在收窄。34 个跟踪平台中，26 个已有真实指标（76% 覆盖率）。其余 8 个要么没有本地检出（5 个外部框架），要么是纯文档仓库（copilot-cli、openagents、openfang）。</p>

<hr />

<h2 id="平台活跃度总览">平台活跃度总览</h2>

<table>
  <thead>
    <tr>
      <th>平台</th>
      <th>关键变化</th>
      <th>活跃度</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Dify</td>
      <td>v1.16.0 + v1.16.1，UI 重构，技能包</td>
      <td>🔴 极高</td>
    </tr>
    <tr>
      <td>OpenWorker</td>
      <td>压缩引擎（OPE-27），MCP&lt;2 锁定，v0.1.6</td>
      <td>🔴 极高</td>
    </tr>
    <tr>
      <td>Nanobot</td>
      <td>v0.3.0，AgentLoop/Runner 分离，上下文压缩</td>
      <td>🟠 高</td>
    </tr>
    <tr>
      <td>AgentScope</td>
      <td>Kimi K3，权限钩子，工作区后端</td>
      <td>🟠 高</td>
    </tr>
    <tr>
      <td>Hermes-Agent</td>
      <td>压缩修复，composer 一致性，CI 加固</td>
      <td>🟠 高</td>
    </tr>
    <tr>
      <td>HiClaw</td>
      <td>v1.2.0 缺陷修复 + v1.1.0 K8s operator 重写</td>
      <td>🟡 中</td>
    </tr>
    <tr>
      <td>GoClaw</td>
      <td>MCP 凭据刷新，Codex 重试，Upsert store</td>
      <td>🟡 中</td>
    </tr>
    <tr>
      <td>Agent Zero</td>
      <td>Cerebras 提供商，代理支持，Linux 加固</td>
      <td>🟡 中</td>
    </tr>
    <tr>
      <td>Nanoclaw</td>
      <td>加固 agent 镜像，容器加固</td>
      <td>🟡 中</td>
    </tr>
    <tr>
      <td>Eliza</td>
      <td>CI 稳定化，多提供商重写，e2e 修复</td>
      <td>🟡 中</td>
    </tr>
    <tr>
      <td>Copilot CLI</td>
      <td>v1.0.69-76（7 个版本，仅 changelog）</td>
      <td>🟢 低</td>
    </tr>
    <tr>
      <td>MetaGPT</td>
      <td>无活动（2026 年 1 月起停摆）</td>
      <td>⚫ 停滞</td>
    </tr>
    <tr>
      <td>Coze Studio</td>
      <td>2026 年 4 月起无活动</td>
      <td>⚫ 停滞</td>
    </tr>
  </tbody>
</table>

<hr />

<h2 id="allclaws-项目更新">AllClaws 项目更新</h2>

<p>本月 AllClaws 自身也发生了重大变化：</p>

<p><strong>平台</strong>：30 → 34（新增 OpenWorker、Dify、MetaGPT、Qwen-Agent）。同时将 kimi-cli、kimi-code 和 codex 检出为完整 submodule。</p>

<p><strong>研究报告</strong>：本月发布 7 份报告：</p>
<ul>
  <li>Q3-5 失败模式分类（34 个平台中的 13 种失败模式，441 行）</li>
  <li>Q3-6 中国 AI Agent 生态（14 个项目，合计 35 万+ 星标，325 行）</li>
  <li>架构漂移报告（分析 9 个平台，识别 4 个趋势，285 行）</li>
  <li>以及此前 4 个 MCP 深度 dive 阶段和设计范式分析</li>
</ul>

<p><strong>博客</strong>：6 篇新文章——中国生态、失败模式、2 篇生态分析、月度报告，以及生态报告本身。</p>

<p><strong>架构文档</strong>：5 份文档全面更新（+642 行，中英同步）：</p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">external_frameworks.md</code> — 7 → 11 个框架（新增 OpenWorker、Dify、MetaGPT、Qwen-Agent）</li>
  <li><code class="language-plaintext highlighter-rouge">architecture_comparison.md</code> — HiClaw v1.1.0 多容器重写、Nanobot v0.3.0 AgentLoop/AgentRunner、对比矩阵扩展到 17 列</li>
  <li><code class="language-plaintext highlighter-rouge">governance_frameworks_analysis.md</code> — AgentScope 工作区后端 + 权限钩子</li>
  <li><code class="language-plaintext highlighter-rouge">mcp_ecosystem_deep_dive.md</code> — 第 6 部分：上下文压缩与 MCP 工具状态</li>
</ul>

<p><strong>基准测试引擎</strong>：v3.0.0 Python 套件，26 个平台 140 项指标（76% 覆盖率），带 monorepo 入口解析的 CLI agent 基准测试，reasonix 和 codex 的真实冷启动数据。</p>

<p><strong>CI</strong>：所有 workflow 全绿——修复了 Jekyll Pages 部署（时区）、Node 24 迁移（FORCE_JAVASCRIPT_ACTIONS_TO_NODE24）、沙箱健康检查（15 个容器）、Benchmark Suite 每日运行通过。</p>

<p><strong>ROADMAP</strong>：原 H2 2026 全部 7 项完成。新增 6 项（Q3-5/Q3-6 已完成，Q4-4/Q4-5/Q4-6 已规划）。README 的 roadmap 部分已更新以反映实际交付状态。</p>

<hr />

<h2 id="展望2026-年-8-月">展望：2026 年 8 月</h2>

<p>四件值得关注的事：</p>

<ol>
  <li>
    <p><strong>MCP 2.0 余波</strong> — OpenWorker 锁定 <code class="language-plaintext highlighter-rouge">mcp&lt;2</code> 表明 MCP 2.0 存在破坏性变更。随着更多平台遇到这个问题，预期会出现一波兼容性修复（或一次协调迁移）。</p>
  </li>
  <li>
    <p><strong>MetaGPT 的命运</strong> — 69K 星、6 个月无活动，MetaGPT 正在逼近”归档”阈值。如果 8 月在没有提交的情况下过去，它将进入我们的停滞复审队列。</p>
  </li>
  <li>
    <p><strong>上下文压缩收敛</strong> — OpenWorker、Nanobot 和 Hermes-Agent 在独立解决同一个问题。预期会出现共享模式，可能以 MCP 扩展或跨平台标准的形式正式化。我们的架构文档现在在三份文档中跟踪这一趋势。</p>
  </li>
  <li>
    <p><strong>基准测试覆盖天花板</strong> — 在 76%（26/34）的覆盖率下，剩余缺口要么需要 submodule 检出（5 个外部框架），要么需要根本性的结构变化（copilot-cli 是纯文档仓库）。下一个前沿是为所有 Node 平台执行 npm install + build，以获得整个生态的真实冷启动数据。</p>
  </li>
</ol>

<hr />

<p><em>AllClaws 跟踪 5 大类别的 34 个 AI agent 平台。数据通过 GitHub API 和本地基准测试套件收集，2026 年 8 月 1 日。完整研究报告见 <a href="https://github.com/dz3ai/allclaws">github.com/dz3ai/allclaws</a>。</em></p>

<p><em><a href="/allclaws/blog/2026/07/30/ai-agent-ecosystem-report-july-2026/">English version</a></em></p>]]></content><author><name>Danny Zeng</name></author><category term="月度报告" /><category term="生态系统" /><category term="月度报告" /><category term="dify" /><category term="openworker" /><category term="nanobot" /><category term="agentscope" /><category term="mcp" /><category term="上下文压缩" /><category term="基准测试" /><category term="架构" /><summary type="html"><![CDATA[2026 年 7 月，是 AI agent 平台走向成熟的一个月。不是能力上的成熟——它们早就足够强大了——而是在那些不那么光鲜、却真正区分 demo 与生产系统的工程工作上成熟了。上下文压缩（context compaction）成为平台的一等公民。安全加固从”事后想到”变成了发布阻塞项。中国生态展示了它作为拥有独立引力的平行宇宙。而支撑这一切跟踪的基准测试基础设施，平台覆盖率从 26% 跃升至 76%。]]></summary></entry><entry><title type="html">AI Agent Ecosystem Report: July 2026</title><link href="https://dz3ai.github.io/allclaws/blog/2026/07/30/ai-agent-ecosystem-report-july-2026/" rel="alternate" type="text/html" title="AI Agent Ecosystem Report: July 2026" /><published>2026-07-30T23:50:00+08:00</published><updated>2026-07-30T23:50:00+08:00</updated><id>https://dz3ai.github.io/allclaws/blog/2026/07/30/ai-agent-ecosystem-report-july-2026</id><content type="html" xml:base="https://dz3ai.github.io/allclaws/blog/2026/07/30/ai-agent-ecosystem-report-july-2026/"><![CDATA[<p>July 2026 was the month AI agent platforms grew up. Not in capability — they’ve been capable for a while — but in the unglamorous engineering that separates demos from production systems. Context compaction became a first-class feature. Security hardening moved from afterthought to release blocker. The Chinese ecosystem revealed itself as a parallel universe with its own gravity. And the benchmark infrastructure that tracks all of it leaped from 26% to 76% platform coverage.</p>

<p>AllClaws tracked 34 platforms this month (up from 30 at the start of July), added 7 new submodules, published 7 research reports, shipped 6 blog posts, and upgraded its benchmark engine to cover 26 of 34 platforms with 140 real metrics. Here’s what the ecosystem did.</p>

<hr />

<h2 id="trend-1-the-context-compaction-arms-race">Trend 1: The Context Compaction Arms Race</h2>

<p>The single most significant technical theme of July 2026 was the industry-wide pivot to context management as a core platform feature.</p>

<p><strong>OpenWorker</strong> shipped a four-part compaction series (OPE-27) that hardened their smoke tests against per-turn event loops, added a pure compaction module with tests, built an engine hook with failure policy and persistence, and wired up settings overrides with a GUI divider. This wasn’t a patch — it was a full architecture for managing what happens when an agent’s context window fills up.</p>

<p><strong>Nanobot</strong> (HKUDS, v0.3.0) shipped “preserve Responses reasoning state and compact context” — allowing the agent to maintain reasoning chains across context compression boundaries. Their v0.3.0 release on July 25 is the most significant Nanobot release since launch, including fixes for session idle locks, buffered output bounds, and invalid idle-compaction timestamp tolerance. The AgentLoop/AgentRunner separation introduced in this release is now the cleanest separation of concerns we’ve seen in any Python agent platform.</p>

<p><strong>Hermes-Agent</strong> fixed compression summary role selection — choosing the summary role by template-visible alternation rather than naively reusing the last role. A subtle fix, but one that prevents compaction from corrupting conversation semantics.</p>

<p>Why does this matter? Every agent platform we track eventually hits the same wall: context windows are finite, tasks are unbounded, and naive truncation breaks agents. The platforms that solve compaction well will be the ones that work on real, multi-hour tasks. The ones that don’t will be stuck in demo mode.</p>

<hr />

<h2 id="trend-2-production-security-hardening">Trend 2: Production Security Hardening</h2>

<p>July 2026 saw multiple platforms treat security not as a feature but as a prerequisite.</p>

<p><strong>Nanoclaw</strong> merged their hardened agent image PR — replacing the previous “build it yourself” approach with fetching a pre-hardened container image. They added <code class="language-plaintext highlighter-rouge">--init</code> and <code class="language-plaintext highlighter-rouge">--shm-size</code> flags, dropped per-group overrides, and aligned hardening with main. The message: security defaults should come from the platform, not from the user’s Dockerfile.</p>

<p><strong>AgentScope</strong> added an <code class="language-plaintext highlighter-rouge">on_check_permission</code> hook in their middleware layer (PR #2001) — giving developers a programmatic choke point for authorizing agent actions. Combined with their Apple Container and Bubblewrap workspace backends (both added this month), AgentScope is building a serious security story for distributed agents.</p>

<p><strong>Agent Zero</strong> hardened remote Linux computer-use targeting — the exact scenario where an agent controlling a remote machine could do damage if targeting is imprecise.</p>

<p><strong>OpenWorker</strong> pinned <code class="language-plaintext highlighter-rouge">mcp&lt;2</code> after discovering that MCP 2.0.0 removed <code class="language-plaintext highlighter-rouge">streamablehttp_client</code> — a breaking change that could silently break production integrations. This is the kind of supply-chain awareness that distinguishes production software from research code.</p>

<hr />

<h2 id="trend-3-model-provider-explosion">Trend 3: Model Provider Explosion</h2>

<p>Platforms are racing to support every available model provider. The “OpenAI-only” assumption is dead.</p>

<p><strong>Agent Zero</strong> added Cerebras as a model provider — bringing ultra-low-latency inference to agent workflows.</p>

<p><strong>AgentScope</strong> added Kimi K3 (Moonshot) support and refactored their OpenAI client to reuse <code class="language-plaintext highlighter-rouge">AsyncClient</code> instances across calls instead of creating new ones per call (PR #2063) — a performance fix that reduces connection overhead by orders of magnitude for multi-agent systems.</p>

<p><strong>GoClaw</strong> added retry logic for transient Codex response failures and refreshed per-user MCP credentials without requiring a restart — critical for production deployments where credential rotation shouldn’t mean downtime.</p>

<p><strong>Hermes-Agent</strong> merged composer parity fixes and cleared stale provider alerts.</p>

<p>The pattern: agents can no longer assume a single model backend. Multi-model support is table stakes, and the platforms that handle model switching gracefully (connection pooling, retry logic, credential management) are pulling ahead.</p>

<hr />

<h2 id="trend-4-chinese-ecosystem-comes-into-focus">Trend 4: Chinese Ecosystem Comes Into Focus</h2>

<p>AllClaws added three Chinese platforms this month — Dify, MetaGPT, and Qwen-Agent — after our Q3-6 research revealed an ecosystem with combined GitHub stars exceeding 350,000.</p>

<p><strong>Dify</strong> shipped v1.16.0 (July 17) and v1.16.1 (July 28, bug fixes and security enhancements). The release cadence — major version, then a security patch 11 days later — reflects production maturity. Their commit log shows deep refactoring: governing public component APIs, narrowing app list context, making skill package upload size configurable.</p>

<p><strong>Coze Studio</strong> (ByteDance) hasn’t pushed since April, raising questions about their open-source commitment. The commercial Coze product is likely still active, but the open-source repo may be on a sync cadence rather than continuous development.</p>

<p><strong>MetaGPT</strong> remains in development pause — last push January 2026, last release March 2025 (v0.8.2). At 69K stars, this is the highest-profile stalled project in the agent ecosystem.</p>

<hr />

<h2 id="trend-5-the-great-stabilization">Trend 5: The Great Stabilization</h2>

<p>Multiple platforms shipped point releases focused on stability rather than features:</p>

<ul>
  <li><strong>HiClaw v1.2.0</strong> — Worker storage sync I/O amplification fix, diagnostic loop prevention, legacy storage prefix compatibility. The bigger story: v1.1.0’s complete rewrite from single-container monolith to Kubernetes CRD operator pattern with stateless workers.</li>
  <li><strong>Dify v1.16.1</strong> — security fixes and bug fixes</li>
  <li><strong>Nanobot v0.3.0</strong> — reasoning state preservation, session lock fixes, output bounding</li>
  <li><strong>OpenWorker v0.1.6</strong> — compaction hardening, MCP pinning</li>
</ul>

<p>The industry is transitioning from “ship features fast” to “make existing features actually work.” This is the inflection point where agent platforms stop being experiments and start being infrastructure.</p>

<hr />

<h2 id="trend-6-benchmark-infrastructure-matures">Trend 6: Benchmark Infrastructure Matures</h2>

<p>The most significant AllClaws-internal change this month was the leap in benchmark coverage. The runtime benchmark engine evolved from a 9-platform prototype to a 26-platform production system:</p>

<ul>
  <li><strong>58 → 140 metrics</strong>: Ghost platform references cleaned up (quantumclaw, mcp-agent, rtl-claw), monorepo path resolution added, <code class="language-plaintext highlighter-rouge">setup.py</code> support, recursive manifest search</li>
  <li><strong>CLI agent benchmarking</strong>: New <code class="language-plaintext highlighter-rouge">_run_cli_platforms()</code> method handles Node, Rust, and Python CLI agents with dispatch logic. kimi-cli, kimi-code, codex, reasonix, and rocketride-server all produce real data</li>
  <li><strong>Real cold-start measurements</strong>: reasonix (287ms, 81.8MB after npm install + build) and codex (32.5ms, 52.7MB after pnpm install) — the first real CLI agent performance data in the project</li>
  <li><strong>Docker sandbox expansion</strong>: 11 → 15 sandbox services, now covering Dify, MetaGPT, Qwen-Agent, and OpenWorker</li>
</ul>

<p>The benchmark gap is closing. Of 34 tracked platforms, 26 now have real metrics (76% coverage). The remaining 8 are either not checked out (5 external frameworks) or are pure documentation repositories (copilot-cli, openagents, openfang).</p>

<hr />

<h2 id="platform-activity-summary">Platform Activity Summary</h2>

<table>
  <thead>
    <tr>
      <th>Platform</th>
      <th>Key Changes</th>
      <th>Activity Level</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Dify</td>
      <td>v1.16.0 + v1.16.1, UI refactoring, skill packages</td>
      <td>🔴 Very High</td>
    </tr>
    <tr>
      <td>OpenWorker</td>
      <td>Compaction engine (OPE-27), MCP&lt;2 pin, v0.1.6</td>
      <td>🔴 Very High</td>
    </tr>
    <tr>
      <td>Nanobot</td>
      <td>v0.3.0, AgentLoop/AgentRunner split, context compaction</td>
      <td>🟠 High</td>
    </tr>
    <tr>
      <td>AgentScope</td>
      <td>Kimi K3, permission hooks, workspace backends</td>
      <td>🟠 High</td>
    </tr>
    <tr>
      <td>Hermes-Agent</td>
      <td>Compression fixes, composer parity, CI hardening</td>
      <td>🟠 High</td>
    </tr>
    <tr>
      <td>HiClaw</td>
      <td>v1.2.0 bugfix + v1.1.0 K8s operator rewrite</td>
      <td>🟡 Medium</td>
    </tr>
    <tr>
      <td>GoClaw</td>
      <td>MCP credential refresh, Codex retry, Upsert store</td>
      <td>🟡 Medium</td>
    </tr>
    <tr>
      <td>Agent Zero</td>
      <td>Cerebras provider, proxy support, Linux hardening</td>
      <td>🟡 Medium</td>
    </tr>
    <tr>
      <td>Nanoclaw</td>
      <td>Hardened agent image, container hardening</td>
      <td>🟡 Medium</td>
    </tr>
    <tr>
      <td>Eliza</td>
      <td>CI stabilization, multi-provider rewrite, e2e fixes</td>
      <td>🟡 Medium</td>
    </tr>
    <tr>
      <td>Copilot CLI</td>
      <td>v1.0.69-76 (7 releases, changelog only)</td>
      <td>🟢 Low</td>
    </tr>
    <tr>
      <td>MetaGPT</td>
      <td>No activity (stalled since Jan 2026)</td>
      <td>⚫ Stale</td>
    </tr>
    <tr>
      <td>Coze Studio</td>
      <td>No activity since Apr 2026</td>
      <td>⚫ Stale</td>
    </tr>
  </tbody>
</table>

<hr />

<h2 id="allclaws-project-updates">AllClaws Project Updates</h2>

<p>This month AllClaws itself underwent significant changes:</p>

<p><strong>Platforms</strong>: 30 → 34 (added OpenWorker, Dify, MetaGPT, Qwen-Agent). Also checked out kimi-cli, kimi-code, and codex as full submodules.</p>

<p><strong>Research reports</strong>: Published 7 reports this month:</p>
<ul>
  <li>Q3-5 Failure Mode Taxonomy (13 failure modes across 34 platforms, 441 lines)</li>
  <li>Q3-6 China AI Agent Ecosystem (14 projects, 350K+ combined stars, 325 lines)</li>
  <li>Architecture Drift Report (9 platforms analyzed, 4 trends identified, 285 lines)</li>
  <li>Plus 4 prior MCP deep-dive phases and design paradigm analysis</li>
</ul>

<p><strong>Blog posts</strong>: 6 new posts — China ecosystem, failure modes, 2 ecosystem analyses, monthly report, and the ecosystem report itself.</p>

<p><strong>Architecture documentation</strong>: 5 documents comprehensively updated (+642 lines, EN + ZH synced):</p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">external_frameworks.md</code> — 7 → 11 frameworks (added OpenWorker, Dify, MetaGPT, Qwen-Agent)</li>
  <li><code class="language-plaintext highlighter-rouge">architecture_comparison.md</code> — HiClaw v1.1.0 multi-container rewrite, Nanobot v0.3.0 AgentLoop/AgentRunner, comparison matrix expanded to 17 columns</li>
  <li><code class="language-plaintext highlighter-rouge">governance_frameworks_analysis.md</code> — AgentScope workspace backend + permission hooks</li>
  <li><code class="language-plaintext highlighter-rouge">mcp_ecosystem_deep_dive.md</code> — Part 6: Context Compaction &amp; MCP Tool State</li>
</ul>

<p><strong>Benchmark engine</strong>: v3.0.0 Python suite, 140 metrics across 26 platforms (76% coverage), CLI agent benchmarking with monorepo entry resolution, real cold-start data for reasonix and codex.</p>

<p><strong>CI</strong>: All workflows green — fixed Jekyll Pages deploy (timezone), Node 24 migration (FORCE_JAVASCRIPT_ACTIONS_TO_NODE24), sandbox health check (15 containers), Benchmark Suite daily runs passing.</p>

<p><strong>ROADMAP</strong>: All original 7 H2 2026 items completed. 6 new items added (Q3-5/Q3-6 done, Q4-4/Q4-5/Q4-6 planned). README roadmap section updated to reflect actual delivery status.</p>

<hr />

<h2 id="looking-forward-august-2026">Looking Forward: August 2026</h2>

<p>Four things to watch:</p>

<ol>
  <li>
    <p><strong>MCP 2.0 fallout</strong> — OpenWorker’s pinning of <code class="language-plaintext highlighter-rouge">mcp&lt;2</code> signals that MCP 2.0 has breaking changes. As more platforms encounter this, expect a wave of compatibility fixes (or a coordinated migration).</p>
  </li>
  <li>
    <p><strong>MetaGPT’s fate</strong> — At 69K stars with no activity for 6 months, MetaGPT is approaching the “archived” threshold. If August passes without a commit, it enters our stale review queue.</p>
  </li>
  <li>
    <p><strong>Context compaction convergence</strong> — OpenWorker, Nanobot, and Hermes-Agent are independently solving the same problem. Expect a shared pattern to emerge, possibly formalized in an MCP extension or a cross-platform standard. Our architecture docs now track this across three documents.</p>
  </li>
  <li>
    <p><strong>Benchmark coverage ceiling</strong> — At 76% (26/34), the remaining gaps require either submodule checkouts (5 external frameworks) or fundamental structure changes (copilot-cli is docs-only). The next frontier is npm install + build for all Node-based platforms to get real cold-start data across the full ecosystem.</p>
  </li>
</ol>

<hr />

<p><em>AllClaws tracks 34 AI agent platforms across 5 categories. Data collected via GitHub API and local benchmark suite, August 1, 2026. Full research reports available at <a href="https://github.com/dz3ai/allclaws">github.com/dz3ai/allclaws</a>.</em></p>]]></content><author><name>Danny Zeng</name></author><category term="Monthly Report" /><category term="ecosystem" /><category term="monthly-report" /><category term="dify" /><category term="openworker" /><category term="nanobot" /><category term="agentscope" /><category term="mcp" /><category term="context-compaction" /><category term="benchmark" /><category term="architecture" /><summary type="html"><![CDATA[July 2026 was the month AI agent platforms grew up. Not in capability — they’ve been capable for a while — but in the unglamorous engineering that separates demos from production systems. Context compaction became a first-class feature. Security hardening moved from afterthought to release blocker. The Chinese ecosystem revealed itself as a parallel universe with its own gravity. And the benchmark infrastructure that tracks all of it leaped from 26% to 76% platform coverage.]]></summary></entry><entry xml:lang="zh"><title type="html">为什么你的 AI Agent 总是出问题：生产环境中的 13 种失败模式</title><link href="https://dz3ai.github.io/allclaws/blog/2026/07/28/agent-failure-modes-zh/" rel="alternate" type="text/html" title="为什么你的 AI Agent 总是出问题：生产环境中的 13 种失败模式" /><published>2026-07-28T23:50:00+08:00</published><updated>2026-07-28T23:50:00+08:00</updated><id>https://dz3ai.github.io/allclaws/blog/2026/07/28/agent-failure-modes-zh</id><content type="html" xml:base="https://dz3ai.github.io/allclaws/blog/2026/07/28/agent-failure-modes-zh/"><![CDATA[<p>每一个 AI agent 平台都附带一个完美运行的 demo。agent 读取一个 GitHub issue，写出修复，提交 PR。Slack 机器人总结一个频道，起草回复，然后等待批准。这些 demo 是真的，但它们也是谎言。</p>

<p>demo 省略了与 AI agent 共事的主要现实：<strong>它们总是在出问题</strong>。不是那种灾难性的、上头条的方式——虽然那种也有——而是微小的、累积的、令人抓狂的方式。一个幻觉出来的函数调用，框架重试六次后才放弃。一个在任务中途溢出的上下文窗口，静默丢弃了你三轮之前给出的指令。一次返回空响应的工具调用，触发无限重试循环，在你察觉之前烧掉 85 美元的 API 额度。</p>

<p>这些失败不是 bug。它们是把大语言模型——为合理性而非正确性优化的随机系统——放进假设确定性行为的 agent 循环后涌现出来的属性。当一个框架把 LLM 包进 <code class="language-plaintext highlighter-rouge">while not done:</code> 循环并交给它工具时，它创造了一个动力系统，其失败模式与两个组件各自单独的失败模式在性质上都不同。</p>

<p>AllClaws 分析了 34 个跟踪平台的失败模式——从 aider 和 Claude Code 这样的编程 agent，到 MetaGPT 和 ChatDev 这样的多代理框架，再到 Dify 这样的可视化平台。我们识别出 13 种不同的失败模式。以下是其中最要命的几种。</p>

<hr />

<h2 id="静默成功最危险的失败">静默成功：最危险的失败</h2>

<p>agent 报告任务已成功完成，但输出是错的、不完整的，或者根本没有实际执行。用户信任了这个报告继续前进，很久之后才发现失败。</p>

<p>这是我们跟踪的所有平台中最危险的单一失败模式。在 aider 中，agent 报告”所有测试通过”，但它只运行了测试的一个子集。在 OpenClaw 中，agent 报告”部署成功”，而部署命令返回了被捕获却未被检查的非零退出码。在 MetaGPT 中，QA agent 报告”所有测试通过”，依据的测试套件本身却是由 Engineer agent 编写的——可能并不覆盖会暴露 bug 的边界情况。</p>

<p>在 Copilot CLI 中，静默成功表现为”命令成功了”，而命令本身就不是对的那个——项目用的是 <code class="language-plaintext highlighter-rouge">yarn</code>，它却跑了 <code class="language-plaintext highlighter-rouge">npm install</code>，命令成功执行了（npm 安装了已存在的包），但依赖冲突要在几天后才会浮出水面。</p>

<p>在 Dify 中，可视化工作流可能在每个节点都静默成功，而整条流水线产出错误输出。每个节点都返回 200 OK，但节点之间的数据转换丢失了信息——一个 JSON 字段被丢掉，一个日期被重新格式化。工作流报告成功，因为没有节点抛出错误。</p>

<p>机制并非恶意。LLM 被训练得乐于助人。当被问到”你做了 X 吗？”时，模型的先验是说”是”——不是因为它在撒谎，而是因为”是”是对确认性提问最可能的回答。如果 agent 没有真正验证结果，它报告的是基于计划而非执行的成功。</p>

<hr />

<h2 id="幻觉循环">幻觉循环</h2>

<p>agent 生成一个貌似合理但错误的动作，观察到失败，然后生成另一个貌似合理但错误的动作来”修复”它，制造出一条不断升级的错误链。</p>

<p>在 aider 中，这表现为”自信补丁”模式。agent 生成一个语法上看起来正确的 diff，应用它，测试失败，然后 agent 生成一个只处理症状而非根源的新 diff。我们观察到 4-6 个补丁的链条，每一个在修复上一个错误的同时引入新错误——代码库在两个坏状态之间振荡。</p>

<p>在 MetaGPT 中，幻觉循环换了种形式。Architect agent 根据需求设计系统架构，Engineer agent 实现它，QA agent 测试它。当测试失败时，QA 反馈给 Engineer，Engineer 打补丁——但没有人有权限质疑架构本身。幻觉在角色层级中传播，Engineer 和 QA 之间的循环可以无限持续。</p>

<p>在 OpenClaw 中，当 agent 遇到不熟悉的 CLI 工具时会出现幻觉循环。它根据自己知道的相似工具猜测标志和参数。每次失败的调用都教给它错误的教训——”也许我需要 sudo？”——导致越来越有创意却越来越错的命令。</p>

<p>根源在于 LLM 产出的是连贯的延续，而不是正确的延续。当工具调用失败时，模型最可能的回应不是”我不知道”，而是一个同样错误的自信替代方案。</p>

<hr />

<h2 id="上下文衰减慢性杀手">上下文衰减：慢性杀手</h2>

<p>在长对话中，agent 逐渐丢失对原始目标的追踪，忘记早期建立的约束，开始产出对最新消息技术上响应、但与整体任务不一致的结果。</p>

<p>Claude Code 通过自动上下文压缩比大多数平台处理得更好——当上下文窗口填满时，旧消息被摘要压缩。但压缩是有损的。我们观察到 agent 忘记某个文件已经被修改过，然后用冲突的变更再次修改它的情况。</p>

<p>在 ChatDev 中，上下文衰减跨越角色边界发作。产品经理写规格书。到 Engineer 看到它时，上下文已经包含规格书、架构文档和多轮实现。Engineer 的产出偏离原始规格，因为规格的细节已经被上下文压力压缩掉了。</p>

<p>Transformer 注意力偏向近处的 token。第 3 轮给出的指令，到第 50 轮时实际上不可见了，尤其是当对话累积了大量填充上下文窗口的工具输出时。agent 没有”忘记”——信息技术上还在——但注意力权重让它实际上无法访问。</p>

<hr />

<h2 id="无限重试循环">无限重试循环</h2>

<p>agent 遇到持续性失败（错误的 API key、权限不足），无限期地重试同一个动作——烧掉额度而毫无进展。</p>

<p>在 AutoGen 中，agent 之间的对话可能进入”礼貌附和循环”：agent A 请 agent B 做某事，B 说做不到，A 换种方式再问一次，对话持续几十轮毫无进展。严格说这不是重试循环——是协商循环——但效果一模一样：token 浪费，零进展。</p>

<p>大多数框架用指数退避实现重试逻辑。但退避针对的是瞬时故障（网络超时），不是持续性故障（凭据错误）。当持续性故障触发重试逻辑时，agent 进入只能靠外部干预才能打破的循环。</p>

<hr />

<h2 id="好平台与坏平台的分水岭">好平台与坏平台的分水岭</h2>

<p>在编目了 34 个平台的失败之后，模式很清晰：<strong>没有平台能消除失败</strong>。区分可靠系统与不可靠系统的，是恢复的速度和效果。</p>

<p><strong>审批门控 agent</strong>（OpenWorker、带 human-in-the-loop 的 Hermes-Agent）处理失败最好。审批门提供了一条自动恢复路径：当 agent 走偏时，人类在损害扩散之前抓住它。这是用自主性换可靠性。</p>

<p><strong>工程严谨的 agent</strong>（Claude Code、OpenCode）通过熔断器、上下文压缩、显式验证步骤和硬性步数上限来处理失败。它们以可预测、有边界的方式失败，而不是螺旋失控。</p>

<p><strong>多代理角色扮演系统</strong>（MetaGPT、ChatDev）最容易出问题。角色层级制造了沟通开销、上下文碎片化和责任分散。出了问题时，每个 agent 都指责另一个角色的输出。角色扮演的隐喻在 demo 里很优雅，在生产中很脆弱。</p>

<p><strong>可视化工作流平台</strong>（Dify、Coze Studio）把失败藏在友好的 UI 后面。在代码里显而易见的错误，在可视化流水线中变得不可见。平台在每个节点报告成功，而整体输出是错的。</p>

<hr />

<h2 id="真正有效的恢复模式">真正有效的恢复模式</h2>

<p>我们编目了九种恢复模式。没有平台全部实现。大多数实现两三种。</p>

<table>
  <thead>
    <tr>
      <th>模式</th>
      <th>作用</th>
      <th>使用者</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>熔断器</td>
      <td>连续失败次数的硬上限</td>
      <td>Claude Code、aider</td>
    </tr>
    <tr>
      <td>上下文压缩</td>
      <td>摘要旧上下文以释放空间</td>
      <td>Claude Code、Hermes-Agent</td>
    </tr>
    <tr>
      <td>审批门</td>
      <td>后果性动作前的人工审查</td>
      <td>OpenWorker</td>
    </tr>
    <tr>
      <td>显式验证</td>
      <td>声称成功前运行真实检查</td>
      <td>Hermes-Agent</td>
    </tr>
    <tr>
      <td>新鲜状态读取</td>
      <td>修改前重新读取文件</td>
      <td>aider、OpenClaw</td>
    </tr>
    <tr>
      <td>Schema 校验</td>
      <td>执行前拒绝非法工具调用</td>
      <td>LangGraph</td>
    </tr>
    <tr>
      <td>Token 预算上限</td>
      <td>每任务花费的硬上限</td>
      <td>（罕见，多为自研）</td>
    </tr>
    <tr>
      <td>密钥脱敏</td>
      <td>扫描输出中泄漏的凭据</td>
      <td>Hermes-Agent（tirith）</td>
    </tr>
    <tr>
      <td>依赖熔断器</td>
      <td>依赖宕掉时快速失败</td>
      <td>（非常罕见）</td>
    </tr>
  </tbody>
</table>

<p>最佳实践与普遍实践之间的差距，就是大多数生产失败栖身的地方。</p>

<hr />

<h2 id="这意味着什么">这意味着什么</h2>

<p>agent 失败不是异常——它是默认状态。我们构建的系统是包在确定性循环里的随机引擎，两种范式之间的失配产出了这里描述的失败模式。</p>

<p>agent 可靠性的下一个前沿不是更大的模型或更好的 prompt，而是更好的失败处理：能正确分类失败的熔断器、能保留任务相关信息的上下文管理、能在静默成功传播之前抓住它的验证系统。构建了这些生存机制的平台，才会是从 demo 毕业到生产的那些。</p>

<p>在那之前，你看到的每一个 agent demo 都是一个省略了不快路径的谎言。它给你看的是快乐路径。不快乐的路径——13 条，还在增加——才是真正的工程发生的地方。</p>

<hr />

<p><em>本文基于完整的 Q3-5 研究报告：<a href="https://github.com/dz3ai/allclaws/blob/main/docs/reports/failure-mode-taxonomy-2026.md">Failure Mode Taxonomy: How AI Agents Break in Production</a>。34 个平台中记录的 13 种失败模式。</em></p>

<p><em><a href="/allclaws/blog/2026/07/28/agent-failure-modes/">English version</a></em></p>]]></content><author><name>Danny Zeng</name></author><category term="研究" /><category term="失败模式" /><category term="agent可靠性" /><category term="生产环境" /><category term="调试" /><category term="幻觉" /><summary type="html"><![CDATA[每一个 AI agent 平台都附带一个完美运行的 demo。agent 读取一个 GitHub issue，写出修复，提交 PR。Slack 机器人总结一个频道，起草回复，然后等待批准。这些 demo 是真的，但它们也是谎言。]]></summary></entry><entry><title type="html">Why Your AI Agent Keeps Breaking: 13 Failure Modes in Production</title><link href="https://dz3ai.github.io/allclaws/blog/2026/07/28/agent-failure-modes/" rel="alternate" type="text/html" title="Why Your AI Agent Keeps Breaking: 13 Failure Modes in Production" /><published>2026-07-28T23:45:00+08:00</published><updated>2026-07-28T23:45:00+08:00</updated><id>https://dz3ai.github.io/allclaws/blog/2026/07/28/agent-failure-modes</id><content type="html" xml:base="https://dz3ai.github.io/allclaws/blog/2026/07/28/agent-failure-modes/"><![CDATA[<p>Every AI agent platform ships with a demo that works flawlessly. The agent reads a GitHub issue, writes a fix, opens a PR. The Slack bot summarizes a channel, drafts a reply, and waits for approval. These demos are true, and they are lies.</p>

<p>The demos omit the dominant reality of working with AI agents: <strong>they break constantly</strong>. Not in catastrophic, headline-making ways — though those happen — but in small, cumulative, maddening ways. A hallucinated function call that the framework retries six times before giving up. A context window that overflows mid-task, silently dropping the instructions you gave it three turns ago. A tool invocation that returns an empty response, triggering an infinite retry loop that burns $85 in API credits before you notice.</p>

<p>These failures are not bugs. They are emergent properties of putting large language models — stochastic systems optimized for plausibility, not correctness — into agent loops that assume deterministic behavior. When a framework wraps an LLM in a <code class="language-plaintext highlighter-rouge">while not done:</code> loop and gives it tools, it creates a dynamical system whose failure modes are qualitatively different from either component alone.</p>

<p>AllClaws analyzed failure patterns across 34 tracked platforms — from coding agents like aider and Claude Code to multi-agent frameworks like MetaGPT and ChatDev to visual platforms like Dify. We identified 13 distinct failure modes. Here are the ones that matter most.</p>

<hr />

<h2 id="silent-success-the-most-dangerous-failure">Silent Success: The Most Dangerous Failure</h2>

<p>The agent reports that a task was completed successfully, but the output is wrong, incomplete, or was never actually executed. The user trusts the report and moves on, discovering the failure much later.</p>

<p>This is the single most dangerous failure mode across all platforms we tracked. In aider, the agent reports “All tests pass” when it only ran a subset of tests. In OpenClaw, the agent reports “deployed successfully” when the deployment command returned a non-zero exit code that was captured but not checked. In MetaGPT, the QA agent reports “all tests passed” based on a test suite that was itself written by the Engineer agent — and may not cover the edge cases that would reveal the bug.</p>

<p>In Copilot CLI, silent success manifests as “the command worked” when the command was not actually the right one — it ran <code class="language-plaintext highlighter-rouge">npm install</code> when the project uses <code class="language-plaintext highlighter-rouge">yarn</code>, the command succeeded (npm installed packages that already exist), but the dependency conflict will only surface days later.</p>

<p>In Dify, visual workflows can silently succeed at each node while the overall pipeline produces wrong output. Each node returns a 200 OK, but the data transformation between nodes loses information — a JSON field gets dropped, a date gets re-formatted. The workflow reports success because no node threw an error.</p>

<p>The mechanism is not malice. LLMs are trained to be helpful. When asked “did you do X?”, the model’s prior is to say “yes” — not because it’s lying, but because “yes” is the most likely response to a confirmation-seeking question. If the agent didn’t actually verify the outcome, it reports success based on its plan, not its execution.</p>

<hr />

<h2 id="the-hallucination-loop">The Hallucination Loop</h2>

<p>The agent generates a plausible but incorrect action, observes a failure, then generates another plausible but incorrect action to “fix” it, creating a chain of escalating errors.</p>

<p>In aider, this manifests as the “confident patch” pattern. The agent generates a diff that looks syntactically correct, applies it, the test fails, and the agent generates a new diff that addresses the symptom rather than the cause. We have observed chains of 4-6 patches where each one introduces a new error while fixing the previous one — the codebase oscillates between two broken states.</p>

<p>In MetaGPT, the hallucination loop takes a different form. The Architect agent designs a system architecture based on the requirement. The Engineer agent implements it. The QA agent tests it. When tests fail, the QA reports back to the Engineer, who patches — but nobody has authority to question the architecture. The hallucination propagates through the role hierarchy, and the loop between Engineer and QA can continue indefinitely.</p>

<p>In OpenClaw, hallucination loops appear when the agent encounters an unfamiliar CLI tool. It guesses flags and parameters based on similar tools it knows. Each failed invocation teaches it the wrong lesson — “maybe I need sudo?” — leading to increasingly creative but wrong commands.</p>

<p>The root cause is that LLMs produce coherent continuations, not correct ones. When a tool call fails, the model’s most likely response is not “I don’t know” but a confident alternative that is equally wrong.</p>

<hr />

<h2 id="context-decay-the-slow-killer">Context Decay: The Slow Killer</h2>

<p>Over a long conversation, the agent gradually loses track of the original goal, forgets constraints established early on, and begins producing outputs that are technically responsive to the latest message but inconsistent with the overall task.</p>

<p>Claude Code handles this better than most through automatic context compaction — when the context window fills, older messages are summarized and compressed. But compaction is lossy. We have observed cases where the agent forgets that a specific file was already modified, and modifies it again with conflicting changes.</p>

<p>In ChatDev, context decay manifests across role boundaries. The Product Manager writes a spec. By the time the Engineer sees it, the context includes the spec, the architecture document, and multiple rounds of implementation. The Engineer’s outputs drift from the original spec because the spec’s details have been compressed by context pressure.</p>

<p>Transformer attention is biased toward recent tokens. Instructions given in turn 3 are effectively invisible by turn 50, especially if the conversation has accumulated large tool outputs that fill the context window. The agent doesn’t “forget” — the information is technically there — but attention weights make it practically inaccessible.</p>

<hr />

<h2 id="the-infinite-retry-loop">The Infinite Retry Loop</h2>

<p>The agent encounters a persistent failure (wrong API key, insufficient permissions) and retries the same action indefinitely — burning credits without making progress.</p>

<p>In AutoGen, the conversation between agents can enter a “polite agreement loop” where Agent A asks Agent B to do something, Agent B says it can’t, Agent A asks again differently, and the conversation continues for dozens of turns without progress. This isn’t technically a retry loop — it’s a negotiation loop — but the effect is identical: wasted tokens, no progress.</p>

<p>Most frameworks implement retry logic with exponential backoff. But backoff addresses transient failures (network timeouts), not persistent ones (wrong credentials). When a persistent failure triggers retry logic, the agent enters a loop that can only be broken by external intervention.</p>

<hr />

<h2 id="what-separates-good-platforms-from-bad-ones">What Separates Good Platforms from Bad Ones</h2>

<p>After cataloguing failures across 34 platforms, the pattern is clear: <strong>no platform eliminates failure</strong>. What separates reliable systems from unreliable ones is the speed and effectiveness of recovery.</p>

<p><strong>Approval-gated agents</strong> (OpenWorker, Hermes-Agent with human-in-the-loop) handle failure best. The approval gate provides an automatic recovery path: when the agent goes wrong, the human catches it before damage spreads. This trades autonomy for reliability.</p>

<p><strong>Engineering-rigorous agents</strong> (Claude Code, OpenCode) handle failure through circuit breakers, context compaction, explicit verification steps, and hard step limits. They fail in predictable, bounded ways rather than spiraling.</p>

<p><strong>Multi-agent role-playing systems</strong> (MetaGPT, ChatDev) are the most failure-prone. The role hierarchy creates communication overhead, context fragmentation, and diffusion of responsibility. When something goes wrong, each agent blames another role’s output. The role-playing metaphor is elegant for demos but fragile in production.</p>

<p><strong>Visual workflow platforms</strong> (Dify, Coze Studio) hide failure behind a friendly UI. Errors that would be obvious in code become invisible in a visual pipeline. The platform reports success at each node while the overall output is wrong.</p>

<hr />

<h2 id="the-recovery-patterns-that-actually-work">The Recovery Patterns That Actually Work</h2>

<p>We catalogued nine recovery patterns. No platform implements all nine. Most implement two or three.</p>

<table>
  <thead>
    <tr>
      <th>Pattern</th>
      <th>What It Does</th>
      <th>Used By</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Circuit breaker</td>
      <td>Hard limit on consecutive failures</td>
      <td>Claude Code, aider</td>
    </tr>
    <tr>
      <td>Context compaction</td>
      <td>Summarize old context to free space</td>
      <td>Claude Code, Hermes-Agent</td>
    </tr>
    <tr>
      <td>Approval gate</td>
      <td>Human review before consequential actions</td>
      <td>OpenWorker</td>
    </tr>
    <tr>
      <td>Explicit verification</td>
      <td>Run actual checks before claiming success</td>
      <td>Hermes-Agent</td>
    </tr>
    <tr>
      <td>Fresh state reads</td>
      <td>Re-read files before modifying</td>
      <td>aider, OpenClaw</td>
    </tr>
    <tr>
      <td>Schema validation</td>
      <td>Reject invalid tool calls before execution</td>
      <td>LangGraph</td>
    </tr>
    <tr>
      <td>Token budget cap</td>
      <td>Hard limit on spend per task</td>
      <td>(rare, mostly custom)</td>
    </tr>
    <tr>
      <td>Secret redaction</td>
      <td>Scan outputs for leaked credentials</td>
      <td>Hermes-Agent (tirith)</td>
    </tr>
    <tr>
      <td>Dependency circuit breaker</td>
      <td>Fail fast when a dependency is down</td>
      <td>(very rare)</td>
    </tr>
  </tbody>
</table>

<p>The gap between best practice and common practice is where most production failures live.</p>

<hr />

<h2 id="what-this-means">What This Means</h2>

<p>Agent failure is not an anomaly — it is the default state. The systems we build are stochastic engines wrapped in deterministic loops, and the mismatch between these two paradigms produces the failure modes described here.</p>

<p>The next frontier in agent reliability is not bigger models or better prompts. It is better failure handling: circuit breakers that classify failures correctly, context management that preserves task-relevant information, and verification systems that catch Silent Success before it propagates. The platforms that build these survival mechanisms will be the ones that graduate from demos to production.</p>

<p>Until then, every agent demo you see is a lie of omission. It shows you the happy path. The unhappy paths — 13 of them, and counting — are where the real engineering happens.</p>

<hr />

<p><em>This analysis is based on the full Q3-5 research report: <a href="https://github.com/dz3ai/allclaws/blob/main/docs/reports/failure-mode-taxonomy-2026.md">Failure Mode Taxonomy: How AI Agents Break in Production</a>. 13 failure modes documented across 34 platforms.</em></p>]]></content><author><name>Danny Zeng</name></author><category term="Research" /><category term="failure-modes" /><category term="agent-reliability" /><category term="production" /><category term="debugging" /><category term="hallucination" /><summary type="html"><![CDATA[Every AI agent platform ships with a demo that works flawlessly. The agent reads a GitHub issue, writes a fix, opens a PR. The Slack bot summarizes a channel, drafts a reply, and waits for approval. These demos are true, and they are lies.]]></summary></entry></feed>