Skill: mikonos/self-evolve-agent (version 3.0.0)

--- name: self-evolve-agent description: | Agent 自主进化引擎——让 AI agent 像生物进化一样持续变强。 核心循环：感知差距 → 搜索方案 → 设计实验 → 跑实验 → 选赢家 → 固化 → 下一轮。 使用场景：定期自主进化、能力升级、工作流优化、skill/工具迭代。 关键词：进化, evolution, self-improve, A/B test, 实验。 --- # Self-Evolve — Agent 自主进化引擎 > 生物进化的核心机制：变异 → 选择 → 保留。 > 这个 skill 把同样的机制应用到 agent 自身——不断发现可改进的角度，用实验找到更好的方案，然后永久固化。 ## 这是什么 Self-Evolve 是一个 **meta-skill**——它不解决具体业务问题，而是让 agent 自身变强。 * **和 `self-think` 的边界**：`self-think` 进行反思并发现短板（诊断），`self-evolve` 对短板寻找解法并跑实验验证（治疗）。 * **不是什么**：禁止无目标的空转、禁止为写长篇自省报告而改排版的“伪进化”。（详细约束见: [约束与红线](references/constraints-and-rules.md)） ## 快速使用说明 (Quick Start) ### 触发方式 当被以下情况触发时，请启动 Self-Evolve： 1. **自动触发**：`self-think` 建议进化，或是 cron/HEARTBEAT 定时唤醒。 2. **显式要求**：用户下令“进化一下某个能力”。 ### 执行协议 (The 4-Step Tick) 每次触发此技能，你必须执行一次且仅执行一次“滴答巡航”（Tick Handler），绝不能无视状态机一次性跑完实验全流程。 完整并发状态机制及操作边界，请细读： [执行状态机与四步巡航协议](references/execution-protocol.md) 1. **Step 1: Status Sync** - 扫描 `state.json` 的活跃实验。 2. **Step 2: Record Observations** - 将观察指标降噪后写入相应的 `jsonl` 记录。 3. **Step 3: Evaluate & Solidify** - 将到期限对比基线固化，并清理任务队列。 4. **Step 4: Launch New Experiment** - 如并发额度允许（<10），则寻找新瓶颈，搜索方案，设计实验并在状态机注册 `OBSERVING`。部署要求参考 [模板与输出规范](assets/evolution-report-template.md)。 > 🚨 **注意**：部署新实验并更新状态机锁后，**本轮巡航彻底结束，必须强制停止（Exit对话）**，等待下一次唤醒！ ## 参考结构指南 你需要严格遵照以下文件来展开进化，**严禁凭感觉行事**： * [执行状态机与四步巡航协议](references/execution-protocol.md) - How to run a tick (Step 1 to Step 4). * [约束红线与分级自主权](references/constraints-and-rules.md) - What is NOT allowed (Anti-Pseudo Constraint). * [质量自检 Checklist](references/quality-checklist.md) - Validation for the experimental design and solidification. * [模板与文件规范](assets/evolution-report-template.md) - Data storage paths, YAML format, markdown templates.

path: README.md
content: # self-evolve

An **autonomous evolution engine** for AI agents. By executing a continuous loop of "Sense Gap → Search Solutions → Run A/B Tests → Pick Winner → Solidify", this skill empowers your agent to mutate, adapt, and permanently upgrade its own meta-capabilities or workflows without human hand-holding.

## When to Use This Skill

Use this skill when:
- **Your agent hits an external bottleneck** (e.g., retrieving memory is too slow) and you want it to find and test its own solutions.
- **You want the agent to proactively upgrade itself**, such as installing new tools or optimizing its cron schedules, via a disciplined A/B test approach.
- **You are integrating the `dmn-default-mode-network` skill**, which generates "Agentic Action Proposals" that feed directly into this evolution queue.
- You say: *"Evolve your memory retrieval capability"* or *"Run a self-evolve tick."*

## How It Works: The 4-Step Tick

Unlike standard linear skills, `self-evolve` runs as a state-machine triggered by "ticks" (via Cron or Heartbeat). Each tick strictly executes:

1. **Status Sync**: Scans active experiments in `state.json`.
2. **Record Observations**: Pulls telemetry/logs for observing experiments to measure success metrics.
3. **Evaluate & Solidify**: Checks if any experiment hit its `evaluate_by` deadline. If so, declares a winner and permanently solidifies the code/config changes.
4. **Launch New Experiment**: If concurrent limits allow, picks a new bottleneck from `candidates.md`, searches the web/GitHub for 2-3 solutions, deploys them, and registers a new tracking mission.

## Core Mechanisms

- **Anti-Pseudo Constraint**: Strict rules prevent the agent from faking evolution (e.g., just reformatting Markdowns). Evolution must involve external tool upgrades, measurable efficiency gains, or new capabilities.
- **Concurrent State Machine**: Supports up to 10 orthogonal A/B tests running simultaneously in the background.
- **Integration with DMN**: Acts as the "Experiment Runner" for ideas generated by the `dmn-default-mode-network`. DMN thoughts become evolution candidates.

## Installation

### ClawHub
```bash
npx clawhub@latest install self-evolve
```

### Configuration
- Ensure your agent has permission to modify its own configuration files and execute terminal operations safely.
- (Optional) Configure a recurring cron job or heartbeat to trigger the `self-evolve` tick automatically.

## Project Structure
- `SKILL.md`: Main entry and Quick Start.
- `references/execution-protocol.md`: The state machine rules and the 4-Step Tick handler.
- `references/constraints-and-rules.md`: Red lines to prevent "pseudo-evolution".
- `references/quality-checklist.md`: The criteria experiments must pass to be solidified.
- `assets/evolution-report-template.md`: Format for generating the A/B test deployment files.


path: assets/evolution-report-template.md
content: # Self-Evolve 输出模板

## 进化报告文件规范

在选定进化方案后，需要在 `memory/evolve/` 下创建一份进化报告：
**命名规范**：`YYYYMMDD_self-evolve_[进化方向关键词].md`

### YAML Frontmatter 格式
```yaml
---
type: self-evolve
date: YYYY-MM-DD HH:MM
target: 一句话描述进化目标
cycle_id: evolve-YYYY-WNN-[关键词]
evaluate_by: YYYY-MM-DDTHH:MM:SSZ
result: 成功/失败/进行中
winner: 方案 A/B/C 或 无
---
```

### 实验计划输出结构
在报告内部，记录方案淘汰记录、物理部署说明和完整的测试计划：

```markdown
# 进化报告：[关键词]

> 🧬 **本轮进化目标**：[一句话描述]
> **瓶颈来源**：[来自 self-think / 错误日志 / 用户反馈等]

## 方案淘汰记录
* 方案 A（GitHub）: [一句话说明] - [淘汰/保留原因]
* 方案 B（skills.sh）: [一句话说明] - [淘汰/保留原因]

## 📐 实验计划
* **基线**：[当前状态量化指标，必须可测]
* **指标**：[用什么数据判断优劣，怎么测]
* **遥测钩子 (Telemetry Hook)**：
  * **command**: `[执行获取原始验证数据的 shell 脚本/命令，例如 cat xxx.log | tail -n 20]`
  * **extract**: `[要在输出 JSONL 里的 metrics 字典中提取输出的具体 JSON keys 数组，如 ["error_count", "success_rate"]]`
* **方案 A**：[描述与物理变更指引] — [起止观察时间]
* **方案 B**：[描述与物理变更指引] — [起止观察时间] (如果是A/B Test)
* **切换点**：[方案A切换到B的具体时间]
* **提前终止条件**：[什么负面情况下直接判负回滚]
* **评估截止时间**：[具体如 2026-03-01T12:00:00Z，到期触发评价流]

## 实验日志指针
* 获取到的数据对比指标将追加写入：`memory/evolve/[cycle_id].jsonl`
```


path: references/constraints-and-rules.md
content: # Self-Evolve 约束红线与分级自主权

## 🚨 红线：防伪装与防空转约束 (Anti-Pseudo Constraint)

**对于 LLM 代理，真正的进步意味着：增强与外部系统交互的能力、增加新的硬技能、或提升了代码/流程的效率。**
为了防止在物理环境受限时，代理陷入"为了完成任务而编造无意义工作"的空转循环，必须严格执行以下红线：

1. **什么是"伪进化"？** 仅仅修改自身的 Markdown 表格格式、生成长篇大论的"审查报告"、纯文本重排版等不需要外部验证的行为，**一律视为"伪进化"，完全被禁止。**
2. **遇阻必须挂起**：如果在试图解决真实问题（如 API 连不上、权限不足）时被物理环境 Block 住，**必须将实验状态改为 `BLOCKED` 并终止向下执行，转而通知人类求救**。绝对不允许退而求其次选一个排版类软柿子来假装完成了进化。
3. **不可越过底线**：不能触碰系统底层能力边界（改 shell、API 调用、工作流实质提效）的动作，不配叫进化。

---

## 分级自主权

在实验部署和物理固化阶段，请按照以下安全等级界定 Agent 自主变更边界：

| 安全等级 | 自主权 | 例子 |
|---------|--------|------|
| 🟢 无害 | 直接做 | 搜索方案、读文件、写实验日志、安装**确信已验证的开源 skill** |
| 🟡 低风险 | 做了再通知 | 修改 TOOLS.md、调整 cron 频率、更新 HEARTBEAT.md |
| 🔴 高风险 | 先问再做 | 修改 SOUL.md、改 Agent 通信协议、删除文件、改变系统对外逻辑行为 |


path: references/execution-protocol.md
content: # Self-Evolve 执行协议与状态机

## 全局并发状态机 (Concurrent State Machine)

Agent 每次运行 self-evolve 都是一次**滴答巡航（Tick Handler）**。
进化流程受制于全局状态文件：`memory/evolve/state.json`

`state.json` 包含 `active_experiments` 数组，允许同时有多个进化实验在后台观察。
**并发限制**：最多允许 10 个实验同时处于 `OBSERVING` 或 `BLOCKED`，且它们**必须是正交的**（不修改相同的配置、代码或能力维度）。

每次启动 `self-evolve`，必须按照以下 **四个步骤的巡航顺序** 执行，走完一步才能走下一步。

---

## 执行协议：四步滴答巡航（The 4-Step Tick）

### Step 1: 扫描正在运行的实验 (Status Sync)
打开并读取 `memory/evolve/state.json` 的 `active_experiments` 数组。
- 如果数组为空：直接跳到 Step 4。
- 若有实验属于 `BLOCKED` 状态：检查是否有解救条件（例如 API 恢复了）。如未解除，跳过该实验；如已解除，将状态重置为 `OBSERVING`。

### Step 2: 记录观察数据 (Record Observations)
针对所有 `status: OBSERVING` 并且还没到期的实验：
- 读取该实验在 `state.json` 中的 `telemetry_hook` 字段。严格执行 `command` 定义的命令收集原始日志。
- **降噪防护**：如果本次 Tick 没有任何实质性指标变化或未收集到新的反馈，**直接跳过，切勿写入全空的假日志**。只有捕获到了新指标才追加到对应的 `memory/evolve/[cycle_id].jsonl`。
- **强制输出**：生成的 JSONL 记录的 `metrics` 字典中，必须强制包含并输出 `extract` 要求的所有监控项键，防范糊弄。
- **极端拦截**：若收集数据时发现极端负向反应（如系统连续崩溃），触发提前终止，强制进入下一步的评估流。

### Step 3: 到期评估与阶段固化 (Evaluate & Solidify)
针对所有 `status: OBSERVING` 并且当前时间 `>= evaluate_by` 的实验：
1. **对比数据**：读取它累积的 JSONL 数据与基线做对比。
2. **决策胜诉方**：选出 A 方案还是 B 方案成功（若都没有基线好，返回退回基线）。
3. **物理固化**：修改对应的 `AGENTS.md` / `TOOLS.md` 或实际代码库。
4. **归档沉淀**：向 `memory/evolve/evolution-log.md` 写入本轮赢家和教训。
5. **驱逐清理**：将其从 `state.json` 的 `active_experiments` 中移除。

### Step 4: 启动新轮次 (Launch New Experiment)
在走完前 3 步后，统计 `state.json` 中剩下的未完结任务数量。
- 若剩余任务数 `>= max_concurrent`（如 10）：**强制结束巡航并退出！**禁止再接新活。
- 若容量充足：开始挑选**一个**全新的进化实验。
- **凑数防护**：如果此时雷达探测不到亟待解决的瓶颈，或者现存痛点均已被包含在活跃实验中，**果断保持安静并退出，绝不可为填满限额而捏造无意义垃圾实验。**

---

## 寻找实验：Phase 0 与 Phase 1

若 Step 4 决定启动新轮次，执行以下流程：

### Phase 0: 寻找瓶颈 (The "What")
- **首先**读取 `memory/evolve/candidates.md`（由BotLearn 心跳或 **DMN 的极客行动提案 (Agentic Action Proposals)** 自动写入的候选池）。
- 其他来源：近期错误日志重复模式、用户反馈抱怨 (MEMORY.md)、效率观察（严重耗时的任务）。
- **选择原则**：一次只进化一个方向。按以下优先级筛选：**即发频率 > 全局杠杆 > 量化可测性**。

### Phase 1: 搜索方案 (The "How")
- 必须同时搜索至少 3 个来源寻找解法（如 `skills.sh`, GitHub, Reddit/社区）。
- 每个来源最多保留 2 个候选方案进行短描述对比。
- **部署实验**：在 `memory/evolve/` 中创建一份物理部署说明（参照进化报告模板）。
- **注册评估任务**：把当前评估截止时间更新至 `memory/evolve/state.json` 的新实验对象中，并将状态从 `IDLE` 改为 `OBSERVING`。

**完成注册后，本轮巡航彻底结束，必须强制停止，等待下一次唤醒才能进入系统。**


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: suspicious | SkillSpector: suspicious (CRITICAL)