ELI5 · 说人话
模型是租来的脑子,三家都能用。
真正不一样的,是脑子外面那套手、眼睛和闸门。
这套东西叫 harness(工作台 / 挽具)。它决定 AI 能不能真把活干完。
先分清谁是谁
你把模型想成一个很聪明、但被关在小黑屋里的人。他看不见你的文件,摸不到你的键盘,也记不住昨天说过什么。
harness 就是给他开一扇窗、递一双手、放一个记事本,再在门口安一道闸门。然后让这套动作一圈一圈转起来。
点一下方块可以看清每一站
有人把 Claude Code 拆开数过:真正"让 AI 做决策"的代码只占约 1.6%,剩下 98.4% 全是搬砖的基础设施——压缩、权限、日志、工具、恢复。
harness 才是工作量的大头。
谁都躲不掉
三家的差别,其实就是这四题答得不一样。看懂这四题,后面全是细节。
是让模型自己想,台子只管盯着;还是台子先画好流程图,模型只在格子里填空。
命令行、SDK、编辑器插件……是共用同一个循环,还是各写一套各自跑偏。
开箱就拦着你,还是开箱就放开、让你自己去搭围栏。
几乎都是上下文窗口。装不下了怎么办,是每张台子最费心的地方。
这是"帮你都装好"的那一派。全部入口共用同一条主循环——你在终端敲、用 SDK 调、在编辑器里点,走的是同一条管子。
按从便宜到贵的顺序跑:卡住单条大小 → 剪掉老历史 → 微压缩 → 只在读的时候折叠 → 最后才让模型自己写一份摘要。摘要是最后的手段,因为它一定会丢东西。
钩子(几乎不占上下文)→ 技能(占一点)→ 插件(占中等)→ MCP 外部工具(最占)。同一件事能用便宜的档位做,就别上贵的。
它自己有一份独立上下文,自己写自己的日志,干完只把一段摘要交回来。代价大约是 7 倍 token,换来主窗口干干净净。
写在记忆文件里的规矩,模型是大概率照做;真要卡死一件事,得靠权限规则。这条分得很清楚,别指望写一句话就能杜绝。
就是一堆你能看见、能改、能提交进 git 的 markdown 文件,用的时候扫一遍文件头,最多挑 5 个塞进去。
这一派的态度很直接:核心越小越好,别的功能你自己装。它把一串别人当卖点的东西,明明白白地写在文档里说"我不做"。
不做子 agent、不做 MCP、不做权限弹窗、不做计划模式、不做内置待办(作者说待办会把模型带偏)、不做后台 shell(要看进度就用 tmux)。
一个 TypeScript 文件就能加工具、加命令、加快捷键、换编辑器,甚至整个替换掉内置工具。扩展能把 pi 改装成 Claude Code 的样子——也能让你在等模型时打一局 Doom。
每条记录带 id 和 parentId,全在同一个文件里。你可以退回任意一句话原地开分支,来回切换,历史一条都不丢。
空闲 / 干活 / 压缩 / 摘要 / 重试。像换挡一样,重活必须在空闲档才准开始,正在跑的时候插队会被直接顶回来。这是防止状态写乱的硬规矩。
它自己不做权限系统,默认就以你的身份跑。要围栏,就把整个进程塞进容器、micro-VM 或沙箱里。
前两家都还有一个"核心"。这一家干脆把核心也拆成了积木——模型适配、工具表、会话日志,甚至那条主循环本身,都是挂在同一根总线上的插件。
先套一个预设(网页版 / 无头版 / SDK 版),再叠一层层功能包,最后叠你自己的补丁文件。一条命令就能把最终组装出来的整棵树打印出来看。
任何进到模型眼前的东西,都得能从会话日志重新拼回来,运行时还会断言这一点。好处是永远能重放、能复现;代价是加个新功能就得先加一种日志事件。
文件系统和子进程共用同一个"执行世界"。把这个接头指向远程沙箱,shell、终端、语言服务会一起搬过去,不用为每个工具再改一遍。
加模型、加工具、加后台任务、加审批策略,各有各的挂点。文档直接给了一张"你要干什么 → 挂哪儿"的对照表。
官方自己在 README 里用大写字母写着:会有破坏兼容性的改动。
摆一起看
| Claude Code | pi | DeepSeek Harness | |
|---|---|---|---|
| 核心大小 | 厚:功能全在里面 | 薄:只留最小一圈 | 没有核心:全是插件 |
| 加功能 | 在给定的口子上挂 | 写 TypeScript 扩展 | 改配置换插件 |
| 主循环 | 动不了 | 能绕过、能包一层 | 能整块替换 |
| 安全 | 七层默认拦着 | 不管,交给容器 | 审批和沙箱也是插件 |
| 会话 | 一条线 + 压缩断点 | 一棵树,能原地分叉 | 事件日志,投影出视图 |
| 子 agent | 内置,独立上下文 | 不做,自己搭 | 是一个可换的接头 |
| 适合谁 | 想马上干活的人 | 想自己捏一把刀的人 | 想造自己那台 harness 的人 |
表格可以左右滑动
一句话记住
越往右,你能改的越多,要自己想清楚的也越多。这根轴上没有"更好",只有"你现在缺哪一头"。
会翻车的地方
它没有权限系统,默认就是你的身份、你的文件、你的密钥。要么上容器,要么先自己焊一道确认闸门。
DeepSeek Harness 自己在 README 里大写警告会破坏兼容。拿它做实验和自研底座可以,别当稳定依赖。
那是给模型的建议,只有概率上的遵守。真要卡死,用权限规则或钩子这种确定性的闸门。
插件化不是免费的,多出来的是概念和维护成本。先问一句:我真的需要改那条循环吗?大多数时候答案是不需要。
模型决定它能想多远,
台子决定它能走多远。