Agent Harness 对比 · 2026-08

dshvs Reasonixvs bingo

DeepSeek 官方刚开源的 dsh(一切皆插件)、社区黑马 Reasonix(Go 单二进制、缓存极致)、 我们自己的 bingo(Rust 本地 agent CLI)。三者在同一张图上的优劣,如下。

结论:平台 · 产品 · 本地助手·Reasonix 比 dsh 更接近直接竞品
01 · 事实对比

三家数字

10.3k
dsh · TS · 219 包 · 12,293 commits
34.4k
Reasonix · Go · 单二进制 · 5,436 commits
bingo · Rust · 单二进制 · 0.4.0
三家一句话:dsh 是平台(一切皆插件)· Reasonix 是产品(缓存极致、四入口)· bingo 是本地助手(团队、中立、轻量)。下表是证据,结论在下方。
维度 dsh Reasonix bingo
语言 / 运行时 TypeScript ESM · Node ≥22 · pnpm 219 包 Go · 单静态二进制(CGO=0)· 唯一依赖 TOML Rust · 单二进制 · 零运行时依赖
界面 Web UI(:3080)+ headless + SDK CLI/TUI + 桌面 + Web + VS Code(ACP)四入口 ratatui TUI + headless --print
核心架构 插件树 · 无特权核心 · 配置可换一切(Cordis) 接口 + 注册表(init 自注册)· 缓存优先 分层核心:Tool 协议 + 权限门 + 主循环 + Hooks
缓存工程 未强调 · session log 为第一性 前缀字节稳定 + 缓存感知压缩 · canonical 永不重写 无 · 压缩即重写
可扩展 一切插件 · 运行时动态挂载(Creator 模式) MCP(stdio/http/sse)+ Extension v1 sidecar 编译期装配 + Hooks · 改能力需改代码
模型 DeepSeek API 优先 DeepSeek 深度优化(默认 v4-flash/pro)· 兼容 OpenAI provider 中立 · 任意 OpenAI 兼容 · 跨 provider 派生
可追溯 append-only 日志 · 「模型所见 ⟺ 已记录」运行时断言 · trajectory canonical transcript + rewind/fork + BM25 检索 transcript + 压缩 + 记忆提取 · 无回放
沙箱 landlock(Linux)· E2B 远程沙箱 · fs 观察策略 OS 级沙箱:Seatbelt / bubblewrap · 写入边界 · forbid_read 本地 shell + 权限门/审批;无 OS 级沙箱
权限 approval policy / interaction 层 deny>ask>allow>fallback · 动态 Bash 检测 五权限模式 × 规则表 → allow/deny/ask
子代理 多 provider · 可委托 Claude Code / Codex / ACP 五概念分离 · write_paths 强制 · 宿主裁决声明 · fleet hub-and-spoke · SendMessage / AgentControl / Channel
团队机制 无 · subagent ≠ 组织 .bingo/team.json 常驻 crew · rooms · 分支记忆隔离
经验复用 事实记忆(remember / BM25 召回) Experience store · 工作流 + 反馈证据
回退 fork / resume(事件流) rewind(双 Esc)/ fork / summarize
成熟度 dev preview 明言 breaking · 无 tag 34k★ · v1.8+ · CI 门禁齐全 0.4.0 错误码 semver · 输出契约
生态 官方背书 · dsh-plugin 社区 npm / brew 分发 · Windows 签名 · Discord 个人项目
02 · dsh 强于 bingo 之处

dsh 明显更强的 7 个点

dsh 是官方平台:插件化一切、可追溯极致、沙箱纵深。

01可追溯性工程化

不是「记录」,是「事实源」。

  • 会话日志是唯一事实源 「任何进入模型请求的东西必须能从日志重建」是运行时断言
  • fork / resume / search / replay 全挂同一事件流,Trajectory 按来源检查
  • bingo 的 transcript 是记录 不是可回放的源
02能力可插拔上限

换能力不动核心。

  • 换 fs / shell / 沙箱 / 子代理 provider 只换插件行
  • 社区可写插件 dsh-plugin 生态 + profile/bundle 配置分层
  • bingo 加能力 = 改 Rust 代码 + 重编译
03沙箱与安全纵深

权限门之外还有一层。

  • landlock 内核沙箱 Linux 进程能力限制
  • E2B 远程沙箱 fs/subprocess provider 一键指向远程
  • fs 观察策略 read-before-write / edit 事件门
04Code mode 范式

模型直接写程序编排工具。

  • Code Mode SDK 工具暴露成 TypeScript 程序接口,一个程序组合多步调用
  • bingo / Reasonix 无对等物
05子代理可委托外部产品

子代理不必是自己人。

  • Claude Code / Codex / ACP 可作 subagent backend
  • bingo / Reasonix 的子代理都是自产
06文档 / 契约门禁

文档是生成的不是手写的。

  • 工具 schema / config catalog / 事件图谱 全部生成式 + 完整性守卫
  • 新工具漏文档直接 fail
07生态与背书

官方生产 harness 开源。

  • DeepSeek 官方维护 12,293 commits · 插件市场雏形
03 · Reasonix 强于 bingo 之处

Reasonix 明显更强的 6 个点

Reasonix 与 bingo 共享「单二进制轻量 CLI」赛道 —— 比 dsh 更接近直接竞品,产品完成度领先。

01缓存工程(第一性原理)

前缀缓存是真实成本杠杆。

  • 系统提示前缀跨轮字节稳定 「Never mutate it mid-session」—— 让 DeepSeek 自动前缀缓存保持温热
  • 缓存感知压缩 唯一触发 compact_ratio=0.85;低于阈值历史永不重写;canonical transcript 永不重写,摘要只是 projection
  • 命中率是首要可观测信号 bingo 的压缩即重写,无缓存意识
02四入口 + 分发

一个引擎,四种进法。

  • CLI/TUI · Wails 桌面 · Web(:8787)· VS Code(ACP) 共用一个本地引擎
  • npm / brew 分发 Windows 代码签名安装包 · 六平台一条命令交叉编译
  • bingo 只有 TUI + headless
03OS 级沙箱

权限之外还有执行边界。

  • Seatbelt(mac)/ bubblewrap(Linux)进程沙箱 bash 默认被 jail
  • workspace_root 写入边界 symlink 解析防逃逸 · forbid_read 隐藏敏感路径 · 网络默认关
  • 会话私有 TMPDIR bingo 只有权限门一道
04子代理纪律

写边界是强制,完成声明要过审。

  • write_paths 强制执行 子代理声明写路径,越界写入拒绝(symlink 解析)
  • 宿主裁决完成声明 citation 必须与宿主 receipts 对账,对不上就降级 —— 防「说完成没做」
  • 五概念分离 profile / TaskSpec / CapabilityGrant / ContextRequest / SchedulerPolicy · fleet 依赖图
05回退与检查点

长自主运行可读可撤。

  • rewind picker(双 Esc) 回退到任意一轮,fork / resume / summarize
  • canonical transcript 保留全历史 + BM25 history 工具检索旧会话
  • bingo 无回退能力
06权限语义深度

规则表之外有 shell 语义。

  • 动态 Bash 检测 eval/source/命令替换/heredoc 强制人类审批;headless 默认 fail closed
  • 双模型协作 planner + executor 独立会话(各保前缀缓存)
  • 记忆层次化 REASONIX.md / AGENTS.md / CLAUDE.md + BM25 每轮召回
04 · bingo 强于两者之处

bingo 明显更强的 6 个点

这些恰是 dsh 与 Reasonix 共同的空白 —— 组织机制与中立性。

01团队机制(crew)

dsh 与 Reasonix 都没有。

  • 常驻具名成员 + 房间 .bingo/team.json 固定角色名册,启动即拉起、零 token 待命
  • 按项目 / 分支的记忆隔离 跨会话恢复成员上下文
  • 两者都只有子代理,不是组织
02Experience store

经验会复利,还带证据。

  • 跨会话沉淀可执行工作流 触发词召回 + 完整步骤 + 验证方式
  • 应用后反馈证据 helpful / harmful 外部验证,经验不空转
  • Reasonix 只有事实记忆 存「事实」,不存「怎么干活」
03Provider 真中立

不绑一家模型厂。

  • dsh DeepSeek-first Reasonix 深度耦合 DeepSeek(缓存工程是专属优化)
  • bingo 接任何 OpenAI 兼容端点 settings.json 一个 provider 表,跨 provider 派生是日常
04减法哲学

小而美的选择。

  • 8.2 万行 vs 45 万行 与 Reasonix 同为单二进制,但 Rust 更省内存、启动更快
  • 「为道日损」 能删的删;加东西需要理由
05稳定性契约

面向稳定发布的纪律。

  • 错误码只增不改不重用 semver 式;防漂移单测枚举每 variant
  • 黑盒输出契约 [error] code=… msg=…,exit code 有测试
06协作即插即用

频道 / 房间 / 临时聘用。

  • Channel / Post / SendMessage serial 房间按序发言、私派任务、生命周期管理
  • 临时 hire 不进名册 任务完成即释放
05 · 三方定位

三者在同一张图上的位置:dsh 是平台 —— 官方、插件生态、可追溯极致、DeepSeek-first,但重(45 万行 TS); Reasonix 是产品 —— 社区黑马(34.4k★),缓存工程做到第一性原理,单二进制四入口,但深度耦合 DeepSeek; bingo 是本地助手 —— Rust 单二进制、provider 真中立、团队 / 经验 / 协作机制。 Reasonix 与 bingo 共享「单二进制轻量 CLI」赛道,比 dsh 更接近直接竞品; bingo 的产品完成度(入口、沙箱、检查点、分发)落后于 Reasonix, 但组织机制(团队、经验、中立性)是两者都没有的差异化。

调研方法:dsh 与 Reasonix 均为源码级通读(架构 / SPEC / GUIDE / AGENTS 文档),均未实际运行 (dsh 需 Node + DeepSeek key;Reasonix clone 失败,以官方文档为准)。bingo 侧基于本仓库代码。

06 · 启示

对 bingo 的三笔账

低投入 · 借鉴
缓存感知(Reasonix 独有的第一性原理)+ 生成式工具目录
系统提示前缀跨轮字节稳定、显示缓存命中率、压缩只在阈值处且 canonical 不重写 —— DeepSeek 等厂商前缀缓存是真实成本杠杆。bingo 已有 schemars 描述,补生成式目录 + 完整性守卫即可。
中投入 · 借鉴
write_paths 强制 + rewind/fork + 动态 Bash 语义检测
子代理写边界声明 + symlink 防逃逸;每轮检查点可回退;eval/substitution 进权限门。每一项都能独立落地,不改变架构。
不推荐学
插件化一切(dsh 的 219 包 + 动态挂载)与 DeepSeek 深度耦合(Reasonix)
与 bingo 的「为道日损」是设计层反向选择。吸收其思想(capability seam 分层、缓存工程),不照搬结构。DeepSeek 绑定同样不学。
07 · 来源