v0.3.7更少的确认询问、更少浪费的 token、更少做到一半就停的运行 · mu-agent 0.3.7
mu

编码代理的决定,大多不是代码

这段输出要不要看?这条命令能不能放行?活真的干完了吗?mu 在 40 个判定点上把这些是非题交给一个小模型:白白浪费的 token 少了,不看就点的允许少了,做到一半就停的也少了。大模型把注意力留给代码。

Terminal-Bench 2.1,同一个模型、同一批任务:mu 的尝试通过率 68.2%,pi 58.7%(高 9.5 个百分点,95% 区间 +3.8 到 +15.2)。怎么测的

$ npm i -g mu-agent

需要 Node.js 22.19 或更新。装好后在项目目录里运行 mu;第一次用先运行 mu setup 接入一个模型。

修好一个 bug 之后的 mu 桌面端:中间是对话,右侧判定页逐条列出判定器的判定、判定点和耗时,底部是内核状态栏 修好一个 bug 之后的 mu 桌面端:中间是对话,右侧判定页逐条列出判定器的判定、判定点和耗时,底部是内核状态栏
看一轮会话

先判断,再动手

~/code/relay — mu
 再跑一遍测试。


 $ npm test

 ... (19 earlier lines, ctrl+o to expand)
 ℹ fail 0
 ℹ cancelled 0
 ℹ skipped 0
 ℹ todo 0
 ℹ duration_ms 80.56975

 Took 0.3s


 修好了。一分钟被定义成了 1,000 毫秒,所以 1h30m 被读成一小时零 30 秒,worker 到点
 就中止了任务。

 - src/config/duration.js:m 改为 60_000。
 - npm test:13 个测试全部通过。

 以分钟为单位的 backoff 也受了同样的影响:exports 队列(backoff: "2m")原来 2 秒后
 就重试,现在会等 2 分钟。

────────────────────────────────────────────────────────────────────────────────────
 
────────────────────────────────────────────────────────────────────────────────────
~/code/relay (main)
↑27k ↓242 0.6%/1.0M (auto)                                      mimo-v2.6-pro • high
Jev 1.13 (free): multi-step task · full effort · 184 ms 权限:判定模式
录屏里大模型的回复是预先写好的,判定器的回答是现场给出的。
桌面端的蜂群页:三只蜂同时调查一个 bug,箭头是从一只蜂送到另一只蜂的发现
人话看板:在做什么、做到哪了,下面是一行一行的流水

你说话的时候

判定器先读一遍

这是新任务、追问,还是在纠正它?干活时的插话要不要立刻打断?要不要把技能和工具加载进来,还是一句话就能答?

◆ Jev multi-step task · full effort · 184 ms

这一轮里,「relay.config.json 里 `timeout: "1h30m"` 的任务,跑一个小时左右就被杀掉了。查一下原因,修好它,并确认测试都能通过。」进来,不到一秒判定器就答复:多步任务,全力投入。用不到的技能和 MCP 服务器不进上下文,需要时才打开。

工具返回的时候

输出先过一遍判定器

一次测试、一次搜索,动辄几百行。判定器逐块判断哪些现在有用:失败的用例留下,一遍遍刷屏的日志去掉。没进上下文的部分归档,留一个指针,需要时再取回。

网页和 MCP 返回的内容里,冲着模型来的指令会先被拦下。

动手之前

该停的停,不该问的不问

每条命令执行之前,规则先标出有风险的操作,判定器再确认这是你要的、没有越过你说过的限制。权限分三档:完全访问、判定模式、最小权限,随时切换。在「判定模式」下,任务明显需要的由判定器直接放行,其余的才来问你。

一轮结束的时候

说做完了,要有证据

模型说「好了」的时候,mu 会看这一轮有没有验证过,中途有没有跑偏,要不要退回检查点重来。

用 /goal <条件> 给一个目标,它会一直干到条件成立才停。做没做完由大模型核对,判定器兜底;同一个错反复出现时,判定器判断这是不是一条死路。

蜂群

几只蜂一起干活,判定器站在中间

让几个代理一起啃一个难题,最难的不是派活,是交流。什么都不说,各自走进同一条死路;什么都说,每个人的上下文里全是别人的聊天。

mu 的蜂群里,每个发现判定器都先判一次值不值得共享,再对每只别的蜂判一次和它的工作有没有关系:除非判定器确定没关系,发现都会作为上下文送过去,并标明「这是发现,不是指令」。后来的发现推翻了先前的结论,更正会送到每一只收到过它的蜂。

人话看板

干活和讲话,本来就该分开

模型越来越强,汇报却越来越像写给机器看的。mu 里干活的模型照旧用它自己的方式干活;每隔几次工具调用,判定器读一遍现场,挑出真正算新消息的几条,交给一个专门因为会说人话而选出来的模型,告诉你做到哪了。

运行结束时,你看到的不只是「做完了」,还有它到底做了什么。

mu 不做什么

01

少打扰你

在「判定模式」下,任务明显需要的由判定器直接放行,其余的才来问你。

02

不把工具全塞进上下文

开口第一句先判断:闲聊、追问,还是要动手的活。用不到的技能和 MCP 服务器不进上下文。

03

不靠写摘要来压缩

上下文变长时,过期的结果直接丢,不用写摘要;缓存快过期时,判断值不值得续一次。

04

不锁死判定器

40 个判定点,每个都能单独开关、单独换判定器:免费的 Jev、Mac 上的 mude 1.0,或任意一个大模型。

05

判定器不要求先配 key

没配判定器的 key 时,默认由 OpenCode Zen 上免费的 Jev 回答,每天提醒一次。

06

不另起炉灶

命令行基于 pi,pi 的模型、扩展、技能和会话树都在;桌面端用的也是同一套会话。

40 个判定点各自问什么、改变什么

命令行和桌面端,共用一套账号、设置和经验

导入对话Claude Code、Codex、ZCode 的对话导进来,接着在 mu 里聊。
订阅登录用 ChatGPT 在应用内登录,不用倒腾 key。
经验库你的纠正、绕过的坑会记下来;下次召回了有没有照做,没人照做的经验自己退役。
内置浏览器判定器一步一步开:看一眼页面,判一次,点一下;提交、付款这类动作先停下来问你。
判定流水每次判定的结论和用时都记下来:/status、mu ledger,桌面端有判定页。
13 种界面语言桌面端界面有简体中文、繁體中文、English、日本語、한국어等 13 种语言。

一起把 mu 做好

Image

喜欢 mu,就去 GitHub 点个 Star

在 GitHub 上 Star573