使用 mu
经验
mu 怎样从你的纠正和自己的脱困里学经验,经验怎样合并和召回,没人照做的经验怎样退役。
经验库是 mu 在会话之间记住的东西:你的纠正、你定的规矩,以及代理掉进过的坑和它是怎么出来的。命令行和桌面端共用它。由判定器决定什么值得记、是不是新的、什么时候适用、有没有被照做;由一个小的写作模型把它写成文字。
经验从哪里来
| 来源 | 什么时候 | 判定器决定什么 |
|---|---|---|
| 你的纠正和规矩 | 你说「不对,用 pnpm」或「永远别往 main 提交」 | 这是一次纠正,还是以后都要守的规矩?(memory.capture) |
| 代理自己脱困 | 它原地打转或撞上死路,而这一轮最后仍以检查通过或目标达成结束 | 最后奏效的是不是另一条路?如果是,记下这个坑和绕过去的办法。(memory.outcome,每轮最多一次,只在真的卡住过之后) |
| 模型 | 它用 remember 工具记下一件事 |
以后还用得上、一次性的,还是从提示词或项目文件里早就知道?只留第一种。(memory.worth) |
| 子代理 | 子代理报告里以 Lesson: 开头的一行 |
同一个问题(memory.worth) |
| 你直接写的 | /remember <text> |
不判定:照原文记下 |
合并
一条新经验存下之前,会在一个请求里和最相似的六条已存经验比较(memory.merge):同一条经验不重复存;更精确的一条替换旧的;遇到矛盾,旧的退役,因为以你最新的说法为准。只有你说过的话才能让一条你教的经验退役;模型推翻不了你。
召回
一条消息到达时,和消息预判同时,判定器对每一条候选经验问一次它是否适用(memory.recall)。最多判 24 条候选,最常被照做的排在前面;最多五条带进这一轮,每条一行。子代理在任务简报里拿到适用于自己任务的经验。
照做了没有
一轮结束时,判定器读一遍发生了什么,对每一条被召回的经验问一次它有没有被照做(memory.applied)。一条经验被召回八次都从没照做,就自己退役,mu 会告诉你。
命令
| 命令 | 做什么 |
|---|---|
/remember <text> |
照原文记下一条经验 |
/lessons |
这个项目的经验:编号、类型、被召回和照做了多少次、经验本身 |
/lessons all |
也包括到处适用的和已退役的 |
/forget <id> |
让一条退役 |
在桌面端,经验页显示同样的列表;可以在那里编辑一条经验,或让它退役。
经验库是一个文件,~/.mu/agent/mu/lessons.jsonl。每条经验有一个类型(纠正、规则、坑、绕过办法或事实)、什么时候适用、该怎么做,以及只对这个项目有效还是到处有效。