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

开始

快速开始 桌面端 命令行

使用 mu

判定器 权限与安全 目标模式与收尾 上下文 经验 人话看板 子代理与蜂群

参考

配置 功能与选项 排错 隐私

使用 mu

上下文

mu 怎样让上下文保持精简:工具输出按块进入,过期结果不写摘要直接放下,技能和 MCP 服务器只在需要时出现。

模型的注意力有限,上下文也有限。mu 把任务用不上的东西挡在外面,所以上下文很少填满,提示缓存也保持热的。下面每一项都是一个判定点,可以开关,也可以设成影子模式。

长工具输出

搜索、构建或命令产生的、超过 4,000 个字符的输出,会被切成约 1,200 个字符一块,判定器对每一块问一次:这一块现在重要吗?最多十六块放在一个请求里,状态只计费一次。重要的进上下文;其余的归档,留一个指针,模型发现自己需要时可以取回。判定器超过四秒还没回答,输出就整段放进去。

read、edit 和 write 从不过滤:模型读一个文件,拿到的就是整个文件。

测试日志

一次失败的运行,常常为每个失败的测试各打印一遍同样的 diff、DOM dump 或堆栈。打开测试日志精简后,mu 保留第一份,之后每一份换成一行,写明它重复的是哪几行。不调用任何模型,标记展开后逐字节等于原文;完整日志留在磁盘上,末尾有一行指向它。

{ "features": { "admission": { "testLog": "rules" } } }

"jev" 更进一步:用详细 reporter 时,判定器还会挑出当前目标还需要哪些通过记录和测试输出。失败和汇总从不参与提问。设置里把这一项叫作「测试日志精简」。实测数据在判定点页面上。

mu 还会告诉测试工具「读者是代理」,所以 Vitest 等工具只打印失败和汇总。

过期结果遗忘

上下文用量越过 50%、70% 和 85% 时,长于 6,000 个字符、至少两轮之前的结果会被判定:还需要,还是已经过期?过期的结果从此在每个请求里变成一行墓碑。不写任何摘要,会话文件里保留原文。

免摘要压缩

默认关闭。对话被压缩时,由判定器逐段决定保留还是删掉,而不是由模型写一份摘要。保留的段落一字不改;删掉的只留开头 300 个字符。

{ "features": { "compaction": true } }

技能、能力包和 MCP 服务器

装得多,露得少:

  • 技能。 只有和任务有关的技能,描述才进提示词。其余的仍然能找到。技能少于四个时不做筛选。
  • 能力包和 MCP 服务器。 它们装着,但默认隐藏:直到判定器认定任务需要,或模型主动申请,服务器的进程才启动,它的工具才显示出来。工具清单会缓存,所以服务器还没运行过,判定器也知道它提供什么。在 mu.json 的 mcp.servers 下写 "exposure": "always",可以让某个服务器一直打开。

mu 自带的能力包:ast-grep 结构化搜索与改写、通过 gh 使用 GitHub、/commit、/review、冲突解决,以及一个调试器(debugpy、delve、lldb-dap)。每个都需要装好对应的程序,缺的时候会给出安装提示。

你在别处已经配好的东西

mu 读取你给 Claude Code、Cursor 和 Codex 配好的规则、技能和 MCP 服务器,但不改动它们。常驻规则进提示词;针对某些文件的规则,在模型第一次碰到这类文件时交给它;其余的只列描述。项目自己的规则和服务器只在项目受信任时才用,项目定义的服务器第一次启动前会先问你。/inherit 显示沿用了什么、没沿用什么。

经验和缓存

  • 经验:不管经验库多大,一轮最多带进五行相关的经验;见经验。
  • 缓存保温。 你很可能马上回来时,mu 在提示缓存过期之前刷新一次,这样你的下一条消息不用再为整段提示词付费。
  • 通知:上下文预算(70%、85%)之类的通知,由判定器决定现在告诉模型、晚点告诉,还是不告诉,这样它们不会在编辑到一半时插进来。

喜欢 mu,就去 GitHub 点个 Star

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

在 GitHub 上 Star464