内容
# 自我进化
将智能体指向任何技能、仓库或项目,让它自我迭代,在一个无法操纵的接受门槛后面,这样“接受 = 真正的改进”,而不是自我欺骗的分数上升但能力持平的曲线。
[](https://docs.anthropic.com/en/docs/claude-code)
[](LICENSE)
[](tests/)
[](SKILL.md)
[](#languages)
[](ROADMAP.md)
[English](README.md) | [中文版](README_CN.md)
---
## ⭐ 阅读此内容,首先了解设计理念
大多数自我改进智能体的工作仅在**可验证领域**中成功,如代码、数学等有明确事实依据的领域。而更具挑战性的**开放式生成且无明确事实依据**的领域中,智能体可能声称自己有所改进,但难以验证。自我进化正是为了解决这一难题而设计的。其指导原则是:
- **方法论是固定的,信号源适应变化。** 循环流程始终为 `反思 → 提出 → 评估 → 判断 → 接受`。每次针对的目标不同,评估信号的来源可能会变化。
- **如果可行则运行,如果可行则验证,否则生成场景并让异构评委评分,确保没有目标是无法进化的。** 三种信号提供者(程序裁决、锚点验证、生成评估)实现了相同的 `评估` 接口;您可以选择最合适的信号提供者,依次向下fallback,确保底线始终存在。
- **大型语言模型(LLM)提出建议,代码裁决。** 接受、拒绝、回滚、信号源选择等所有决定都由确定性的控制代码决定。模型永远不会对其输出进行评分。
- **防自我欺骗是关键。** 关闭了六种潜在的作弊路径(见下表),因为在长时间全自动循环中,“接受”必须意味着真正的改进,而非自我粉饰。
完整的设计理念请参见 [`docs/philosophy.md`](docs/philosophy.md),设计规格和原理说明在 [`docs/superpowers/`](docs/superpowers/) 中。
## 它是什么(以及不是什么)
一种**方法论技能 + 轻量级确定性控制**,允许智能体在 `git 工作树` 沙盒中对任何技能、仓库或项目进行自我迭代,跨多个轮次,并在不可操纵的提交门槛后面。它属于**自我进化 / 自我改进智能体**家族(“智能体改进其自身技能 / 搭建”的分支),融合了 **DGM + SICA + MARS + OMNI + PACE** 的理念,并添加了开放、无明确事实依据的生成领域所需的防护措施:验证锚点 + 任意有效接受者 + 异构评委 + 对抗性共进化。
它**不是**一个“让我的仓库变得更好”的魔术按钮,**不是**一个为您提供变更的工具。所有全自动的过程都在沙盒内进行;任何离开沙盒的操作(推送 / 合并到主分支 / 外发)都需要经过单独的人工审核流程。
**防自我欺骗(六种路径已关闭):**
| 潜在的自我欺骗路径 | 防御措施 |
|---|---|
| 编辑评分器/裁判以自我评分 | 不可变决策代码清单 + 冻结实现 + 启动哈希校验失败关闭 + 补丁硬拒绝门槛 + 监督双进程裁决(候选者从未进入 `sys.path`,从未自我裁决/评分) |
| 注入不可验证的“锚点” | `verify_anchor`(程序化 EDGAR 校验)+ `marginal_gain` 在验证前为 0 |
| 过拟合留存数据 | 留存数据事实依据物理隔离(铁律 5)+ 确定性分割 + 分歧门槛 + 累积漂移预算 |
| 裁判勾结 | 异构裁判(Claude + Codex,强制不同模型家族)+ `pairwise_agreement` + 裁判 ↔ 锚点校准(仅限留存锚点) |
| 来自相关锚点的膨胀 e 值 | `effective_independent_count` 同源去相关(8→4)+ 独立性门槛 |
| 隐蔽外发通道 | 代理控制中继发送(候选者无 URL 构造权限)+ 熵 / 编码 / 序列异常审查 |
## 安装
```
/plugin install github:DaizeDong/self-evolve
```
或手动克隆:
```bash
git clone https://github.com/DaizeDong/self-evolve.git ~/.claude/plugins/self-evolve
```
## 快速开始
针对任何 Git 历史记录目标仓库运行一次自我迭代轮次(在沙盒内全自动):
```bash
# 初始化运行(返回运行 ID)
python -m tools.sie.cli init --target <目标仓库的绝对路径>
# 运行循环
python -m tools.sie.cli run --target <目标仓库> --run-id <ID> --base-ref HEAD --max-rounds 3
# 检查 / 恢复
python -m tools.sie.cli status --target <目标仓库> --run-id <ID> # 当前状态
python -m tools.sie.cli replay --target <目标仓库> --run-id <ID> # 崩溃后从事件中重建
python -m tools.sie.cli rollback --target <目标仓库> --run-id <ID> --vid <VID>
# 自我引导(自我进化自身,强制 IMMUTABLE 生效)
python -m tools.sie.cli run --target <自我进化自身> --run-id <ID> --self --enforce-immutable
```
默认模式为 `builtin` / `serial`(确定性,用于 521 个测试,无外部调用)。 `--live`(= `--proposer llm --reflect-mode parallel`)开启真正的智能体闭环:提案者 / 反射者 / 两个裁判通过本地 `cc` 网关(分账,备用 `claude`)+ `codex` CLI。
## 调用方式
斜杠命令(首先将仓库部署到 `~/.claude/skills/self-evolve`,例如通过连接):
```
/self-evolve <目标仓库> # 对目标仓库启动自我迭代运行
/self-evolve-status <运行ID> # 检查运行状态
/self-evolve-resume <运行ID> # 恢复现有运行
```
铁律、门槛序列和每个层级 / 锚点的接口在 [`SKILL.md`](SKILL.md) 和 [`reference/`](reference/) 中。
## 示例输出
循环是一个 10 状态的门控状态机,简化为六个直观动词:
```
┌──────────────────── 一次迭代 ───────────────────┐
PROFILE ──► 反思 ──► 提出 ──► 补丁 ──► 评估 ──► 判断 ──┐
(修复信号) (读取历史) (提出) (沙盒) (获取信号) (裁决)│
│ 接受/拒绝/回滚
└──────────────────◄── 循环 ◄───────────────────────────────────┘
│ 自我欺骗/破坏者命中 → 暂停(人工) → 停止
```
接受的版本进入存档谱系;任何离开沙盒的操作都需人工审核。示例运行见 [`examples/`](examples/)。
## 限制
- 纯 A 类自动接受需要“变更后更多测试通过”的余地,绿色基线没有(按设计),因此真正的开放领域改进信号存在于 B / C 质量层级。
- 当前代码对纯粹主观的 C 类保守处理(`coverage=0`,低权重,默认为人工审核);完整的 A/B↔C 接受对等性是场景评估模块的设计 / 落地方向,尚未完全落地。
- 所有自动过程仅在沙盒内进行;上线操作(推送 / 合并 / 外发)始终需要人工审核流程。
## 语言
英文 (`README.md`, 权威) · 中文 ([`README_CN.md`](README_CN.md))
## 路线图 · 更新日志 · 许可证
参见 [ROADMAP.md](ROADMAP.md) · [CHANGELOG.md](CHANGELOG.md) · [LICENSE](LICENSE) (MIT)。
姐妹技能: [market-intel](https://github.com/DaizeDong/market-intel),学术工具链交叉验证在 [`docs/02-crossval-deepdive.md`](docs/02-crossval-deepdive.md) 中为本项目的防护栏设计提供输入。