# 进化：实验室和夜间复盘

> Space 怎样从自己的真实使用里变得更好：进化事项由三个角色的实验室推进，夜间复盘每晚做小改动，每处改动都有读数、都能撤回。

Space 可以把自己的活越做越好。做这件事的有两条回路，都以真实使用里的证据为准：**进化事项**由三个 Agent 组成的实验室推进，一次只试一处对团队、角色、技能或主助手本身的改动；**夜间复盘**每晚看一遍 Agent 在哪里反复卡住，对记忆和技能做小改动。

两条回路都不经任何人批准。每处改动都记下来，事后对照它本来要解决的问题看效果，也都能撤回。背后的想法见[Self-Evolution（自我进化）](../multi-agent-architecture/more-possibilities/self-evolution)。

## 先准备你自己的空间 [#先准备你自己的空间]

官方空间是只读的：里面的工作组模板、角色和技能由官方维护，跟着版本更新。实验室和夜间复盘都改不了它：实验室把找到的改进留作提议，夜间复盘对它的改动会被拒绝。复制一份官方空间来用，它们的改进就能直接生效：上手时有**复制官方空间并使用**，平时也可以在[定义空间](./capabilities/definition-spaces)里复制。代价是官方空间以后的更新不会自动进到你的副本里。

实验室在只读的 Space 里找到一处改不进去的改动时，会连同证据把它留作提议，并问你一次要不要复制一份 Space。

## 进化事项 [#进化事项]

进化事项只在你要的时候才开。跟主助手说一句，比如“让这个 Space 把自己的活做得更好”或“改进软件团队检查自己工作的方式”。它会：

1. 开进化事项，标题是“Evolution”；这个 Space 已经有一个时就重新打开它，一个 Space 只有一个；
2. 把第一次普查交给实验室，并给实验室一个放文件的文件夹（默认 `evolution/`，你指定了就用你的）；
3. 给这个事项定一个每周的节奏：一个叫“Weekly census”的触发器，**每周一 10:00，有新的摩擦时才跑**，没有新情况的那周什么都不花；
4. 用一两句话告诉你这个事项做什么、什么时候跑。

它不会给每个 Space 自动开，因为常驻的节奏会花模型调用。

### 实验室怎么做 [#实验室怎么做]

实验室是一个由三个 Agent 组成的工作组，在看板和团队与工具上叫**自我改进组**：**总监**做普查、拍板，**改动员**动手改，**验证员**负责检查。每一轮由每周普查触发，或者由你、主助手交来的请求开始，步骤是：

1. **普查。** 总监读上次普查以来真实使用里出的问题，包括夜间复盘那些改动的效果，按机制分类。
2. **最多一个假设。** 只挑反复出现、机制清楚的，或者一个都不挑。第一次读数之前，先写好目标题、要改变什么、改变多少、什么不能变差、上线的门槛和截止日期。
3. **最小的那一层。** 改动员只改出问题的最小那一层：一条记忆、一个技能、一个角色、一个团队或代码。
4. **先便宜后贵。** 验证员先回放出事的那一步，再让改动和现行版本同批跑目标题，再跑没调过的题，最后用一组实验室从不拿来调的封存题确认。
5. **定夺。** 只有过了事先写好的门槛，总监才上线这处改动，同时把旧版本冻结成副本，变差了可以撤回；否则就放弃这个想法，留下证据。
6. **记分卡。** 每处改动都记进实验室的记分卡：假设、证据、结论、花费，以及上线后是留住了、撤销了还是变差了。

实验室和别的工作组一样：你可以和它说话、暂停它，也可以在剧场里看它干活。详见[工作组](./working-groups)。

### 事项页上的实验室 [#事项页上的实验室]

进化事项的页面在看板上方显示实验室，标题上方写着**进化 · 实验室**：

* 四个读数：**上线的改动**和其中留住几处、**试过的改动**、**试验花费**、**下次普查**；
* **本轮在试**：这一轮的改动、改的哪一层、哪天开始、到现在的读数，以及工作组在做什么；
* **试过的改动**，最新的在前：日期、试了什么和读数、结论（**在试**、**上线**或**放弃**；上线后是**留住了**、**撤销了**还是**变差了**）和花费；
* **实验室的规矩**和**一处改动要过的关**，也就是上面那几步；
* **要调方向**：写下想让实验室先改进什么、或者别碰什么，点**对主助手说**。它会转给实验室，回答出现在首页。

再往下，看板上是实验室自己的卡片：它的文件夹、普查、在试的假设、上线和放弃的记录，以及两张读记分卡的数据卡。

## 夜间复盘 [#夜间复盘]

每个 Space 都有一个应用自带的触发器：**夜间复盘**，在这台电脑的 03:30。开工之前，应用先检查有没有值得复盘的东西：上次复盘以来新出现的摩擦，到期还没见效的旧改动，或者旧改动上的告警。都没有就记一次跳过并写明原因，什么都不花。它不拦着电脑睡觉；电脑睡过了 03:30，醒来后再补跑。

摩擦是 Agent 在这个 Space 的真实使用里反复卡住的地方。应用不调用模型，直接从自己的记录里找出来，分七类：**反复失败**、**原地打转**、**绕路**、**求助**、**返工**、**一直出错**和**同事返工**。

复盘跑起来时，一个叫复盘员的 Agent 会：

1. 先看自己以前的改动，读数最差的先看，让情况变差的就撤掉或改窄；
2. 从新的发现里挑几条反复出现的，每条做一处最小、能持久的改动：在 Space 的记忆里写一条教训，或者改它的一个技能，每晚最多三处；
3. 问题出在它改不到的地方（某个工具、某个角色的提示词、某个团队，或者要你来定的事）时，改为写一份提案文件；
4. 每处改动事先登记：要让哪类摩擦变少、哪类不能变多、少多少、什么时候见效（默认 28 天）。

它的改动当场生效，不经任何人批准，和别的 Agent 改东西一样记进行动记录（见[行动记录、撤回和急停](./action-log)）。复盘不往“需要你”里放东西，也不提醒任何人；它做了什么，你早上再看。

它的触发器在**设置 › 自动做事**里管理：可以关掉、改时间、改名或删除，应用不会再把它加回来。见[触发器和后台常驻](./triggers)。

### 在晨报里看和撤回 [#在晨报里看和撤回]

晨报里的**昨夜复盘**（见[需要你、交付和晨报](./needs-you)）列出上次看晨报以来的每次复盘：几点复盘、找到多少摩擦、其中多少又发生了、改了几处、花了多少，以及它写的提案文件。每处改动写着：

* 改的是什么（**记忆**、**技能**……），针对哪类摩擦；
* 读数：改动前后，这类摩擦每 100 次机会发生几次，比如“每 100 次调用 3.1 → 0.4 次”；
* 状态：**变好**、**变差**、**持平**、**还看不出**、**到期没见效**、**两周仍持平**或**已撤回**；
* 点**看改动**看 diff；点**撤回**经行动记录撤掉它，撤掉的还能点**恢复**放回来。

每周你看的第一份晨报里还有**上周复盘**：几处改动变好且留着、复盘了几次、你撤回几处、几处变差或到期没见效，以及一共花了多少。

读数只是给复盘员和你看的证据，应用从不自己撤回任何改动。你撤回的改动就是你的结论，复盘员的做法里写明不会再做同样的改动。

## 相关页面 [#相关页面]

* [主助手](./main-assistant)：开进化事项、给它调方向，都是跟它说。
* [事项与看板](./matters)：实验室干活的那块看板。
* [记忆与召回](./capabilities/memory)：夜间复盘写的教训放在哪里。
* [技能与提示词](./capabilities/skills-and-prompts)：两条回路都会改的技能。
* [A-Genetic Engineering（Agent 基因工程）](../multi-agent-architecture/a-genetic-engineering)：两条回路背后的定向进化思路。

Source: https://the-zeroth.com/zh/docs/the-one-app/evolution
