新版本桌面端 v0.1.7:设置按区域分组,首次引导重做,自带 mu-agent 0.1.8
mu

μ · Only what's needed.

只给任务最需要的上下文

mu 是一个编码代理。一个小而快的判定模型 Jev,每一轮替大模型做几十个小决定:什么留在上下文里,这条命令安不安全,活到底干完了没有。大模型把注意力留给正事。

$ npm i -g mu-agent

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

macOS · Windows · Linux · 开源(MIT + Apache-2.0)· 基于 pi

看一轮真实的会话

MU · 一轮真实的会话

先判断,再动手

写个方案,上下文里却背着一整套工具;模型越来越会写代码,人却越来越看不懂它在说什么。mu 的办法是把「判断」和「干活」分开:判断交给 Jev,干活交给大模型,讲话交给会说人话的模型。

~/slugify — mu
 +6     .replace(/^-+|-+$/g, "");                                                   
  7 }                                                                               
                                                                                    

                                                                                    
 $ cd /Users/Shared/mu/slugify && npm test 2>&1                                     
                                                                                    
 ... (10 earlier lines, ctrl+o to expand)                                           
 ℹ fail 0                                                                           
 ℹ cancelled 0                                                                      
 ℹ skipped 0                                                                        
 ℹ todo 0                                                                           
 ℹ duration_ms 85.342125                                                            
                                                                                    
 Took 0.3s                                                                          
                                                                                    

 4 个用例全部通过。

 问题:slugify.js 结尾的正则 .replace(/^-/, "") 只去掉了开头的 -,没有处理末尾。

 修复:把正则改为 /^-+|-+$/g,同时去掉首尾的连字符,顺手把 ^- 也加上 + 以支持多个连
 字符的情况。

────────────────────────────────────────────────────────────────────────────────────

────────────────────────────────────────────────────────────────────────────────────
~/slugify (master)
↑6.1k ↓729 R20k CH94.1% $0.035 (sub) 2.5%/200k (auto)     claude-sonnet-4-6 • medium
jev-1.13-free active: multi_step_task -> heavy 699ms Permissions: Full access
真实录屏:mu 0.1.8,判定器是免费的 Jev,模型是 Claude Sonnet 4.6。
桌面端的蜂群页:四只蜂分头调研,箭头是 Jev 判定后确认送达的信息
桌面端的蜂群页:箭头是 Jev 判过、确认送达的信息。
人话看板:在做什么、做到哪了,下面是一行一行的流水
人话看板:在做什么、做到哪了,下面是一行行流水。

你说话的时候

Jev 先读一遍

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

◆ jev-1.13-free multi-step task · heavy gear · 699 ms

图里是一轮真实的会话。「跑一下测试,把失败的用例修好」进来,不到一秒 Jev 就给出判定:多步任务,用重档。用不到的技能和 MCP 服务器不进上下文,需要时才打开。

工具返回的时候

输出先过一遍 Jev

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

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

动手之前

该停的停,不该问的不问

每条命令执行之前,Jev 判断会不会造成不可逆的后果,有没有越过你定下的规矩。权限分三档:完全访问、Jev 审批、最小权限,随时切换。在「Jev 审批」下,该问你的才问你,其余直接放行。

判定只改变模型接下来做什么,从不让它多来问你一句。

一轮结束的时候

说做完了,要有证据

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

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

蜂群

几只蜂一起干活,Jev 站在中间

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

mu 的蜂群里,每个发现 Jev 都判一次值不值得共享,只有对另一只蜂真有用的,才作为上下文传过去。后来的发现推翻了先前的结论,更正会送到每一只收到过它的蜂。

人话看板

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

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

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

刻意不做的事

mu 不做什么

大模型的注意力有限,上下文也是。下面这些,是 mu 特意没做、或者特意换了做法的地方。

01

不让模型多问你一句

Jev 的判定只改变模型接下来做什么,从不改变它要不要来问你。

02

不把工具全塞进上下文

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

03

不靠写摘要来压缩

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

04

不锁死判定器

38 个判定点,每个都能单独开关、单独换判定器:免费的 Jev、本地的 Laya,或任意一个大模型。

05

不要求先配 key

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

06

不另起炉灶

命令行基于 pi,pi 的模型、扩展、技能和会话树都在;桌面端基于 AionUi 改造。

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

还有这些

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

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

参与进来

一起把 mu 做好

Jev Key 福利活动已结束,网页领取已下架。现在不配 key 也能用;想换成自己的 TypeSafe key 或别的判定器,见判定器。

喜欢 mu,就去 GitHub 点个 Star

Star 能让更多人看到它。代码、讨论和每一个版本都在仓库里。

在 GitHub 上 Star464