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

开始

快速开始 桌面端 命令行

使用 mu

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

参考

配置 功能与选项 排错 隐私

参考

功能与选项

判定内核的每个功能:是否默认开启、它的判定点,以及每个选项的默认值和取值范围。

每个功能在 ~/.mu/agent/mu.json 的 features.<name> 下配置。false 关掉一个功能,true 用默认值打开它,一个对象则覆盖单个选项:

{
  "features": {
    "injection": { "tools": ["web_fetch", "mcp__*"] },
    "board": { "defaultOn": true },
    "ttsr": false
  }
}

桌面端的设置写的是同一个文件,名称和说明也和这一页相同。两者都来自仓库里的同一份清单。

消息预判 preflight

默认开启判定点 input.preflight

发送后先判定再开工,判定结果显示在对话里。

选项默认说明
thinkingfalse按判定设置思考等级(切换会丢缓存)
hintstrue给模型一行提示
showtrue在界面上显示等待和结论
waitMs4000 毫秒最多等待。超时就不等了,按原样开始。范围 500 到 30000。

中途插话 interjection

默认开启判定点 input.interjection

处理任务进行中发来的消息。

选项默认说明
waitMs1500 毫秒最多等待。范围 200 到 10000。

技能披露 skills

默认开启判定点 skills.disclosure

按任务决定提示词里带哪些技能说明。

选项默认说明
minSkills4技能少于这个数就不筛。范围 1 到 100。
waitMs4000 毫秒最多等待。范围 500 到 30000。

能力目录 catalog

默认开启判定点 capability.disclosure

装得多、露得少:能力包和 MCP 服务器默认隐藏,按任务打开。

选项默认说明
waitMs4000 毫秒最多等待。范围 500 到 30000。

任务帧与待办 frame

默认开启判定点 task.frame

记住你到底要什么:目标、你的硬约束(原话加出处)、当前子目标、验收条件。验收条件就是待办清单,模型用 todo 工具勾选。所有「和目标相关吗」的判断都以它为准,回退会话时它跟着回退。

选项默认说明
waitMs3000 毫秒回合最多等任务帧多久。从消息到达算起。超时不丢弃:本回合先用上一版加这条原话,更新完成后照常落地。范围 0 到 30000。
writerTimeoutMs20000 毫秒重写任务帧的时限。超时或写坏了就保留上一版并标记为过期,按目标筛选上下文的功能暂停,下一条消息时重试。范围 1000 到 120000。
showtrue在对话里显示任务帧更新

经验库 memory

默认开启判定点 memory.recall memory.capture memory.outcome memory.worth memory.merge memory.applied

从你的纠正、代理自己的脱困、模型和子代理的发现里学经验,存之前先和已有的合并,下次遇到相关任务时带上,没人照做的自动退役。随时可以查看、编辑或让一条退役。

选项默认说明
path空经验库文件。留空使用默认位置。
maxCandidates24每次最多评估。照做次数多的、最近记下或确认过的排在前面。范围 1 到 200。
maxInjected5每回合最多带入。范围 0 到 20。
waitMs4000 毫秒最多等召回结果。从消息到达算起;给子代理挑经验也等这么久。范围 0 到 30000。
retireAfter8召回几次从没照做就退役。0 表示从不自动退役。范围 0 到 100。
mergeNeighbours6存之前比较几条最像的。按字面重合挑出来,一次请求问完;0 表示不整理,直接存。范围 0 到 16。
outcometrue从代理的脱困中学。需要写作模型或当前对话模型把经验写成一句话。
appliedtrue回合结束时检查经验有没有被照做

危险命令把关 guard

默认开启判定点 tool.risk

危险命令在执行前确认。

没有选项。

权限模式 permissions

默认开启判定点 tool.approval

完全访问、Jev 审批、最小权限三种模式,用 /permissions 随时切换;需要授权时在状态栏提示你,可以只允许这一次,或这次对话都允许。开着它时,危险命令的把关也归它管。

选项默认说明
modejev新对话的默认模式。用 /permissions 选过之后,以你最后选的为准。full 完全访问 · jev Jev 审批 · ask 最小权限

硬约束把关 constraints

默认开启判定点 tool.constraint

改动文件或执行命令之前,对照你的硬约束检查一遍;子代理同样受这些约束限制。

选项默认说明
maxConstraints6每次最多对照的约束条数。取最新的几条。范围 1 到 20。
waitMs5000 毫秒最多等待。范围 500 到 30000。

注入筛查 injection

默认开启判定点 tool.injection

模型读网页、搜索结果和 MCP 结果之前,扣下写给 AI 的指令。

选项默认说明
toolsweb_fetch, web_search, browse, mcp__*要筛的工具。工具名,或以 * 结尾的前缀;mcp__* 是所有 MCP 服务器。
waitMs6000 毫秒最多等待。超时就只按规则扣下明显的注入用语,判定照样记账。范围 500 到 30000。

工具输出准入 admission

默认开启判定点 tool.admission tool.admission.test-log

控制多长的工具输出、以什么方式进入上下文。

选项默认说明
minChars4000 字符超过这个长度才筛。范围 500 到 200000。
chunkChars1200 字符每块大小。范围 200 到 20000。
maxChunks48最多判断的块数。范围 4 到 400。
batchChunks16一次请求判断几块。托管判定器把多块放进一个请求,状态只计费一次;本地判定器始终一次一块。范围 1 到 32。
waitMs4000 毫秒最多等待。超时就整段放行,判定只记账。范围 500 到 30000。
passThroughread, edit, write这些工具的输出不筛
testLogoff测试日志精简off 关闭 · rules 只去掉完全重复的段落(无损) · jev 再由判定器挑选剩余部分
agentEnvtrue告诉测试工具「读者是代理」。Vitest 等会因此只输出失败和汇总。

过期结果遗忘 forgetting

默认开启判定点 context.forget

上下文吃紧时,把用不上的旧结果换成占位。

选项默认说明
thresholds50, 70, 85触发阈值(上下文用量 %)
minChars6000 字符只考虑长于此的结果。范围 500 到 200000。
minAgeTurns2至少过了几个回合。范围 0 到 50。
maxPerBatch12每批最多判断。范围 1 到 100。
waitMs4000 毫秒最多等待。这次请求最多等这么久;来晚的判定在下一次请求生效。范围 500 到 30000。

免摘要压缩 compaction

默认关闭实验判定点 context.compact

压缩时保留原文片段,不写摘要。

选项默认说明
keepThreshold0.5保留阈值。范围 0 到 1。
minChars600 字符短于此的原样保留。范围 100 到 20000。
headChars300 字符裁掉时保留的开头。范围 0 到 5000。
targetRatio0.5压缩后占原来的比例。范围 0.05 到 1。
maxWindowShare0.25最多占上下文窗口的比例。范围 0.05 到 0.9。
freeChars24000 字符小于此的历史不受预算挤压。范围 0 到 500000。
maxJudged120最多判断的片段数。范围 10 到 1000。

检查点与回退 checkpoint

默认开启判定点 turn.rewind

每个会改文件的回合,在第一次改动前给工作区拍一张快照,存在 mu 自己的影子 git 目录里,不碰你的仓库。/rewind 让文件和对话一起回到那一刻,/rewind undo 撤销回退。

选项默认说明
dir空快照存放目录。留空则放在 mu 主目录的 mu/checkpoints 下,每个项目一个影子仓库。
keep50每个项目保留的快照数。范围 1 到 1000。
maxAgeDays14 天快照保留天数。范围 1 到 365。
maxFileMb5 MB单个文件大小上限。更大的文件不进快照,回退时也绝不动它。范围 1 到 1024。
maxFiles5000 个一次快照最多的文件数。要拍的文件更多时,这个会话就不拍检查点,并说一次原因。你的主目录和 mu 自己的目录从来不拍。范围 100 到 1000000。
maxTotalMb200 MB一次快照最多的总大小。要拍的文件加起来更大时,这个会话就不拍检查点,并说一次原因。范围 1 到 100000。
ignore空额外忽略的路径。gitignore 写法,一行一条。项目自己的 .gitignore 和内置清单(node_modules、构建产物等)始终生效。
timeoutMs30000 毫秒单次快照最长用时。超时则本回合不拍快照,工具照常执行。范围 1000 到 600000。
proposetrue发现死路时提议回退
confirmSeconds120 秒提议等待你回答的时间。到时未答就继续原来的工作。0 表示一直等。范围 0 到 3600。

跑偏监测 monitor

默认开启判定点 turn.drift

发现偏离目标和原地打转。

选项默认说明
every6每隔几次工具调用检查。范围 1 到 100。
repeats3同一调用重复几次算打转。范围 2 到 20。
window8观察窗口。范围 2 到 100。

语言服务器诊断 lsp

默认开启判定点 diagnostics.delivery

接本机已装的语言服务器(不代装),只留这次改动新引入的报错,由判定器决定何时告诉模型。

选项默认说明
builtintrue使用内置的常见服务器表。TypeScript、Python、Go、Rust、C/C++ 的常见服务器,只在 PATH 上查找。自定义的服务器在设置文件里添加。
editToolsedit, write算作改文件的工具
subAgentsfalse子代理也启动语言服务器。默认关闭:每个子代理各起一套服务器会很吃资源。
settleMs1500 毫秒改完后最多等服务器多久。超时不再等:晚到的诊断在下一次改动或回合结束时处理。范围 0 到 10000。
turnEndSettleMs3000 毫秒回合结束时最多等多久。范围 0 到 30000。
quietMs250 毫秒服务器安静多久算说完。范围 20 到 5000。
baselineMs5000 毫秒等改动前诊断的上限。在后台等,不挡工具调用。过了上限就不把首份诊断当成新问题。范围 100 到 60000。
maxItems10一次最多告知几条。范围 1 到 100。
maxServers4同时运行的服务器上限。范围 1 到 16。
waitMs4000 毫秒等判定最多多久。范围 500 到 30000。

写偏即停(实验) ttsr

默认关闭判定点 output.drift

语义版 TTSR:不用正则,而由判定器发现模型写偏,中断输出、摆出规则、从原处继续。默认关闭;开启后每隔一段输出就会多一次判定调用。

选项默认说明
rules空一直要守的规则。一行一条,用平常的话写,例如「用中文回答」「不要写占位实现」。任务帧里你的硬约束会自动加入,不必重复。
segmentChars600每输出多少字符判一次。范围 200 到 5000。
maxRules4每次最多对照的规则条数。超出时保留你最近说的。范围 1 到 12。
maxInterrupts2两次发言之间最多中断几次。范围 1 到 10。

目标模式 goal

默认开启判定点 goal.met

定下一个完成条件后,代理会一直干到条件成立为止。每次它想停,由大模型对照证据判断是否达成、下一步做什么。被你打断、模型调用失败、连续空转或原地打转、用完续跑次数或时间,都会自己停下;你再发一条消息就接着干。

选项默认说明
checkermodel谁来判断目标是否达成。大模型读目标、这一轮做了什么、最后一次测试的结果和结束语,给出结论和下一步;它没答上来时才退回 Jev。无论哪种,没勾的验收条件、改完没跑都算没达成。model 大模型(推荐) · jev Jev 判定器
checkModel空判断用的模型。写成「提供商/模型」。留空就用当前会话的模型。
checkThinkingoff判断时的思考等级off 不思考 · minimal 极少 · low 低 · medium 中 · high 高
checkTimeoutMs90000 毫秒判断最多等多久。超时就退回 Jev 判定器,再退回只看事实。范围 5000 到 600000。
stallLimit2连续几轮没进展就停。判断者发现代理在重复自己、原地打转。第一次会让它换个思路,到这个次数就停下来问你。范围 1 到 10。
maxContinuations20最多自动续跑次数。从你上一次发言算起。范围 1 到 200。
maxMinutes180 分钟最长自动运行。从你上一次发言算起。范围 5 到 1440。
idleLimit2连续空转几次就停。模型连续几次什么工具都没用就结束,说明它在原地打转。范围 1 到 10。

人话看板 board

默认开启判定点 board.read

用大白话告诉你项目推进到哪、现在在干什么、有什么要你确认,并记一份流水:代理每做一步就记一行,它说的话、发现的事由会说人话的模型当场重讲,Jev 决定什么值得讲;一轮做完再总结一遍,过程留在流水里。只给人看,不进模型的上下文。每个项目单独开关;第一次打开时选一个模型来讲,之后可以换。

选项默认说明
defaultOnfalse没单独设置过的项目也打开。默认关闭:看板每更新一次就调用一次模型。
model空写看板的模型。写成「提供商/模型」,填了就不再问。留空:第一次打开看板时让你挑一个(推荐 Claude Opus 4.6,其次 Gemini 3.8 Flash),挑好的会记住。
languageauto看板的语言auto 跟着你说的话 · zh 中文 · en 英文
everyTools5代理每做几步看一次。范围 1 到 100。
minIntervalMs20000 毫秒干活时两次查看至少隔多久。代理停下时总会看一次,不受这个限制。范围 0 到 600000。
maxSteps10每次读最近几步。范围 3 到 50。
narrateTimeoutMs60000 毫秒写看板最多等多久。超时就用固定的句子说。范围 5000 到 300000。

完成核对 completion

默认开启判定点 turn.completion

「做完了」之前确认有没有验证过。

选项默认说明
waitMs3000 毫秒最多等待。超时就不催了,判定只记账。范围 500 到 30000。

半路停下时接着做 continuation

默认开启判定点 turn.continue

说了要做却停下的一轮,让它接着做。

选项默认说明
maxNudges2每条消息最多催几次。范围 1 到 5。
waitMs3000 毫秒最多等待。超时就不催了,判定只记账。范围 500 到 30000。

通知分流 notify

默认开启判定点 notify.routing

决定各类事件何时告诉模型。

选项默认说明
budgetThresholds70, 85上下文预算提醒(%)

缓存保温 warming

默认开启判定点 cache.warming

在提示词缓存过期前视情况续一下。

没有选项。

判定连接保温 warmup

默认开启

会话在用时每隔一会儿问判定器一个小问题,让连接一直热着:一轮开始前的判定省下 1–3 秒的建连。

选项默认说明
intervalMs50000 毫秒间隔。服务端空闲约 90 秒断开,间隔要短于它。范围 10000 到 85000。
idleMs900000 毫秒多久没动静就停。范围 60000 到 7200000。

子代理 swarm

默认开启判定点 swarm.routing swarm.patch

把任务委派给按角色分工的子代理。

选项默认说明
models空模型梯队(从便宜到强)。留空则子代理都用当前会话的模型。
maxTasks6一次最多委派。范围 1 到 32。
concurrency3同时运行。范围 1 到 16。
defaultAgentworker默认角色
agentsDir空自定义角色目录。留空使用 <agent 目录>/agents。
isolationworktree会改文件的子代理。隔离时改动以补丁交回,由主代理用 apply_patch_from 决定是否应用;不在 git 仓库里时自动退回原地修改。worktree 在独立的 git worktree 里改 · none 直接在当前目录改
carryUncommittedtrue带上未提交的改动。子代理从主代理当前看到的文件状态开始,而不是从上一次提交开始。
patchPreviewLines30补丁预览行数。随子代理报告一起给主代理看的补丁开头。范围 0 到 400。

蜂群 hive

默认开启判定点 hive.publish hive.deliver hive.relate

多只蜂并行攻一个难题,判定器把关它们之间传什么。输入 /hive <问题> 就能自己发起;遇到直接做不下去的难题,代理也会自己发起。

选项默认说明
maxNotesPerBee12每只蜂最多发布。范围 1 到 100。
maxDeliveriesPerBee10每只蜂最多收到。范围 1 到 100。
checkpointEvery4沉默几次工具调用后询问进展。0 表示不询问。范围 0 到 50。
lastCalltrue写报告时再听一次新消息
maxRelatedPerNote6一条新发现最多对照几条旧发现。只对照有共同词的旧发现。0 表示不做纠正。范围 0 到 30。
verifyConflicts1为没解决的冲突最多加派几只验证蜂。0 表示不加派,冲突两边都留在报告里。范围 0 到 3。
verifyAfterSeconds60冲突挂多少秒没人解决才加派。范围 0 到 600。

文件定位 locate

默认开启判定点 files.locate

用描述找文件的 locate 工具。

选项默认说明
candidates40送判的候选数。范围 5 到 400。
results12返回条数。范围 1 到 100。

批量判定工具 judgeItems

默认开启判定点 judge.items

judge_items 工具:一个是非题,对很多条目逐条给出概率。

选项默认说明
maxItems500一次最多几条。范围 10 到 5000。

内置浏览器 browser

默认开启判定点 browser.step

判定器驱动的浏览器,用自己独立的配置目录,从不动你的浏览器。

选项默认说明
headlesstrue无界面运行
maxSteps40每次最多步数。范围 1 到 200。
textChars4000 字符每步读取的页面文字。范围 500 到 50000。
embeddedtrue桌面端运行时使用应用内的浏览器面板。这样每一步都看得见,可以随时暂停、停止或接管;应用没开时用 mu 自己的浏览器。
profileDir空浏览器配置目录。留空使用 mu 自己的目录。

后台命令 background

默认开启

开发服务器、长时间构建放到后台跑,不占用回合;结束时是否打断交给「通知分流」;会话结束时全部终止。

选项默认说明
maxJobs8同时运行的任务上限。范围 1 到 32。
bufferChars262144 字符每个任务留在内存里的输出。只留最新的;完整输出在日志文件里。
maxOutputChars20000 字符bg_output 单次返回上限
killGraceMs3000 毫秒强制终止前的等待。先发 SIGTERM(Windows 上是不带 /F 的 taskkill),超时后强制。
logDir空日志目录。留空为 ~/.mu/jobs/<会话 id>,7 天后清理。
inheritShelltrue沿用前台 shell 设置。和 bash 工具用同一套 shell 设置。
wakeWhenIdlefalse空闲时任务结束可唤醒代理。只有判定为「立刻」时才会开始新回合;关闭时只留一条消息。

网页读取与搜索 web

默认开启

把网页读成文字(限时限量,拒绝内网地址,页面文字标为不可信);网页搜索用国内不需要密钥就能访问的搜索源。

选项默认说明
searchso搜索源。so(360)、sogou、bing-cn、searxng:<地址>,或带 {query} 的网址。
searchFallbacktrue失败时换用其他内置源。遇到验证页、没有结果或结果与查询无关时生效。
maxChars20000 字符一次读取网页最多返回
timeoutMs20000 毫秒单次请求时限
maxBytes2000000 字节下载上限
maxRedirects5最多跟随的重定向。范围 0 到 20。
allowLoopbacktrue允许读取本机开发服务器。仅当网址直接写 localhost 或 127.0.0.1 时;从外部网页重定向过来的一律拒绝。
allowPrivatefalse允许内网地址。10/8、172.16/12、192.168/16、链路本地等。默认拒绝,防止网页诱导读取内网。

欢迎页 welcome

默认开启

终端里的欢迎框和身份说明。

没有选项。

沿用已有配置 inherit

默认开启

首次运行就沿用你给 Claude Code、Cursor、Codex 配好的规则、技能和 MCP 服务器,只读不写。常驻规则进提示词;按文件匹配的规则只在碰到匹配文件时随工具结果交给模型一次;其余规则只列描述。项目里的内容只在项目受信任时才用。

选项默认说明
claudetrue来自 Claude Code
cursortrue来自 Cursor
codextrue来自 Codex
rulestrue沿用规则
skillstrue沿用技能
mcptrue沿用 MCP 服务器。关掉后只用你自己在设置文件里定义的服务器。
maxRuleChars4000 字符单条按文件规则最多交给模型。超出的部分留在文件里,模型可以自己去读。范围 500 到 20000。
maxAlwaysChars16000 字符常驻规则总量上限。放不下的常驻规则改为只列描述,避免提示词被规则撑大。范围 0 到 100000。

MCP 服务器 mcp

默认开启

MCP 服务器由 pi 自带的客户端连接(stdio 与 Streamable HTTP,支持 OAuth 登录,用 /mcp 管理)。从 Claude Code、Cursor、Codex 和 mu.json 沿用的服务器,每个是能力目录里的一项,默认隐藏:Jev 认定任务需要,或模型主动申请,才启动它并把工具交给模型。工具清单会缓存,服务器没跑过 Jev 也有描述可判。项目里定义的服务器第一次启动前要你点头,定义变了会再问。在 mu.json 里可以把某个服务器设为常开。用 mu mcp add 加的服务器归 pi 管:随会话连接,工具由 tool_search 按需加载。

选项默认说明
startTimeoutMs45000 毫秒启动最多等待。npx 一类的服务器第一次要先下载自己。范围 1000 到 300000。
requestTimeoutMs120000 毫秒单次调用最多等待。范围 1000 到 3600000。

能力包 packs

默认开启判定点 review.triage

随 mu 装好、默认不露的工具包,任务需要时才打开;缺外部程序时给出安装提示。

选项默认说明
astGreptrueast-grep 结构化搜索与改写。按语法而不是按文字找代码、改代码。需要本机装有 ast-grep。
maxResults50一次搜索最多返回。范围 1 到 500。
maxDiffChars12000 字符单个结果最多带多少 diff。范围 1000 到 200000。
astGrepCommand空ast-grep 的路径。留空则依次在 PATH 里找 ast-grep 和 sg。
githubtrueGitHub(通过 gh)。不加工具,只带一个教模型用 gh 处理 PR、issue、检查和发布的技能。需要本机装有 gh。
ghCommand空gh 的路径。留空则在 PATH 里找 gh。
committrue/commit:把改动拆成多个提交。模型提议怎么分组、怎么写提交说明,你看过计划并确认后才提交;要么全部提交成功,要么一个都不留。从不推送。
maxPlanChars60000提议拆分时模型最多读多少字符的改动。范围 5000 到 400000。
reviewtrue评审并按严重程度分级
conflictstrue冲突解决。合并、变基、拣选停在冲突上时,逐个文件显示双方和共同基线,按块写入解决结果并标记为已解决。从不提交,也不执行 --continue。
maxSideLines80每块冲突每一侧最多显示几行。范围 10 到 1000。
maxConflictChars20000一个文件的冲突最多显示多少字符。范围 2000 到 200000。
maxFindings40一次最多分级多少条发现。超出的照样报告,只是不参与分级。范围 5 到 200。
debuggertrue调试器(断点、单步、变量)。在调试器里运行程序,停在断点或未捕获的异常处,看调用栈和变量。Python 用 debugpy,Go 用 delve,编译型程序用 lldb-dap,都要本机已装;也可以在设置文件里加自己的。一次只跑一个,随会话结束。
maxFrames20停下时显示几层调用栈。范围 1 到 200。
maxVariables50每个作用域最多列几个变量。范围 5 到 1000。
debugOutputChars4000 字符一次结果最多带多少程序输出。超出时只留最后的部分。范围 500 到 100000。
debugWaitMs30000 毫秒等程序停下的最长时间。到时还没停下也没结束,就告诉模型程序还在跑;它可以暂停看看停在哪,或者接着等。范围 1000 到 600000。

用 Google 账号登录(实验) googleLogin

默认开启实验

在 /login 里多出两项:借 Gemini CLI 的登录用 Gemini 模型,借 Antigravity 的登录用 Gemini、Claude 和 GPT-OSS。这是 Google 给自家工具的登录,别的程序用它可能违反 Google 的条款、被限制或封号,所以登录前会先说明风险,你同意才继续。官方的方式不需要这一项:Gemini API key(提供商 google)和 Vertex AI(提供商 google-vertex,用 gcloud 登录)。

选项默认说明
geminiClitrueGemini CLI 登录。Gemini 模型;个人账号走免费额度,有 Code Assist 许可的走许可。
antigravitytrueAntigravity 登录。Gemini、Claude 和 GPT-OSS;登录后按账号实际能用的模型更新列表。

喜欢 mu,就去 GitHub 点个 Star

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

在 GitHub 上 Star464