← 返回 Skills 市场
ciri-oh

Evolver - Skill Self-Evolution Engine

作者 ciri-oh · GitHub ↗ · v3.0.6 · MIT-0
cross-platform ✓ 安全检测通过
188
总下载
0
收藏
0
当前安装
11
版本数
在 OpenClaw 中安装
/install ciri-evolver
功能描述
Skill self-evolution engine for OpenClaw agents. Based on GEP (Genome Evolution Protocol), scans workspace memory/ logs to detect error signals, matches Gene...
使用说明 (SKILL.md)

Evolver - 技能自进化引擎 v3.0.6

Version: 3.0.6 License: GNU General Public License v3.0 (GPL-3.0) Copyright: 2026


Open Source Attribution | 开源许可与归属

  1. Inspired by GEP (Genome Evolution Protocol) GEP protocol proposed by EvoMap, this skill uses its concepts and architecture.

  2. Independent OpenClaw Implementation Core code (bin/evolve.js) is independently developed for OpenClaw.


⚠️ Security Notes | 安全说明

Memory Directory Scanning This skill scans .md files in the memory/ directory to detect error signals.

Do NOT store sensitive information in memory/ directory, including:

  • API keys, tokens, passwords
  • Private conversations or personal data
  • Financial or health information
  • Any credentials or secrets

Protected Files To exclude specific files from scanning, add this line at the top of any .md file:

\x3C!-- evolver-ignore -->

Files starting with # evolver-ignore or containing \x3C!-- evolver-ignore --> will be skipped.

No External Network Calls This skill generates a text-based GEP prompt only. It does NOT make any external API calls, send data to external services, or transmit credentials over the network.

Full license text: see LICENSE.


Quick Start | 快速开始

Install

clawhub install ciri-evolver

Run

# Single evolution scan
node skills/evolver/bin/evolve.js

# Test mode (no file writes)
node skills/evolver/bin/evolve.js --dry-run

Background Daemon

# Start daemon (auto-runs every 4 hours)
node skills/evolver/bin/evolve.js start

# Check status
node skills/evolver/bin/evolve.js status

# Stop
node skills/evolver/bin/evolve.js stop

Core Features | 核心功能

Feature Description
Signal Detection Scans memory/ logs for 10+ error patterns
Gene Matching Matches signals to reusable strategy templates
Capsule Management Stores validated fixes with diff + confidence
4 Evolution Strategies balanced / innovate / harden / repair-only
Loop Mode Continuous background daemon
Review Mode Pause for human confirmation
Lifecycle start / stop / status / check
Bootstrap Auto-creates Gene library on first run

Supported Error Signals | 支持的错误信号

Signal Meaning
TimeoutError Network timeout
ECONNREFUSED Connection refused
RateLimitError Rate limit exceeded
AuthError Authentication failed
ContextOverflow Context memory exceeded
ModelFallback Model routing fallback
GatewayTimeout Gateway timeout
ParseError Parse/syntax error
FileNotFound File not found
DeprecationWarning Deprecated API warning

Commands | 命令

Command Description
evolve.js Single evolution cycle
evolve.js --dry-run Test mode (no file writes)
evolve.js --loop Continuous daemon mode (setInterval, no child process)
evolve.js --review Review mode (pause + human confirm)
evolve.js --strategy=\x3Cname> Set evolution strategy
evolve.js start Start daemon (use fork/cron to background)
evolve.js stop Graceful stop (SIGTERM)
evolve.js status Show running state
evolve.js check Health check + auto-restart if stagnant

Background Running Guide | 后台运行指南

--loop 使用 setInterval 单进程守护,不会调用 shell 或创建子进程, 因此需要用户自行选择以下方式将进程持久化:

方式一:child_process.fork()(独立进程保护)

作用:通过 Node.js fork 创建独立子进程,OpenClaw 崩溃或重启后进程依然存活。

// 创建一个 launcher.js:
const { fork } = require('child_process');
const child = fork('./bin/evolve.js', ['--loop'], {
  detached: true,
  stdio: 'ignore',
});
child.unref();
// 进程在后台独立运行

或直接终端运行:

node -e "const{fork}=require('child_process');const c=fork('./bin/evolve.js',['--loop'],{detached:true,stdio:'ignore'});c.unref();"

方式二:OpenClaw Cron 定时任务

作用:由 OpenClaw 管理定时触发,每次跑完单次扫描就结束, 不占后台进程资源。OpenClaw 关闭时任务自动停止。

在 OpenClaw 面板或 openclaw.json 中配置:

{
  "cron": {
    "evolver": {
      "command": "node /path/to/evolve.js",
      "schedule": "0 */4 * * *",
      "enabled": true,
      "description": "Evolver skill evolution scan every 4 hours"
    }
  }
}

或者在终端直接添加 crontab:

crontab -e
# 添加:0 */4 * * * node /path/to/evolve.js >> /var/log/evolver.log 2>&1

# 查看日志
tail -f /var/log/evolver.log

两种方式对比

child_process.fork OpenClaw Cron
OpenClaw 崩溃后 进程继续跑 ✅ 任务停止
日志完整性 持续写入 ✅ 每次单独记录
资源占用 持续占用内存 跑完释放 ✅
管理方式 手动 kill OpenClaw 控制 ✅
配置复杂度 需写 JS 中等

Strategies | 策略

Strategy Innovate Optimize Repair
balanced 50% 30% 20%
innovate 80% 15% 5%
harden 20% 40% 40%
repair-only 0% 20% 80%

File Structure | 文件结构

skills/evolver/
├── SKILL.md              # This file
├── LICENSE              # GPL-3.0 license
├── bin/
│   └── evolve.js        # Core script
└── assets/
    ├── GENES.md         # Gene library (editable)
    ├── CAPSULES.md      # Validated fixes
    └── EVOLUTION_EVENTS.md  # Evolution logs

Example Output | 示例输出

Evolver - Skill Self-Evolution Engine v3.0.6

   Strategy: balanced
   Mode: SINGLE

Signals detected: ModelFallback
Genes: 5 total, 1 matched

================================================================================
           GEP Evolution Prompt
================================================================================

> Evolution ID: EVT-YYYYMMDD-XXXX
> Strategy: balanced (innovate:0.5 optimize:0.3 repair:0.2)

## Detected Signals
  - ModelFallback

## Matched Genes
  ### [20260416-004] repair
  Signals: ModelFallback
  Strategy:
    Fix model routing issues...

## Suggested Actions
  1. [repair] Fix model routing + log fallback chain

## Evolution Event Record
{ "type": "EvolutionEvent", ... }

Evolution event recorded.

Troubleshooting | 故障排除

Q: "No such file or directory"?
A: Run from correct workspace directory or use absolute path.

Q: Background process gone?
A: Check with evolve.js status, restart with evolve.js check.

Q: No signals detected?
A: Check memory/ directory for logs containing error keywords.

Q: No gene match?
A: Edit assets/GENES.md to add new gene templates.


Architecture | 架构说明

Daemon Loop Mode

--loop uses Node.js setInterval in a single process — no child_process.spawn, no exec, no fork. This avoids T1140 (Inline Python code execution) and shell command execution false positives.

Use child_process.fork or OpenClaw cron to persist the process externally.

Process Lifecycle

node evolve.js --loop     → foreground daemon (setInterval, blocks terminal)
node evolve.js start      → foreground daemon (user backgrounds with fork/cron)
node evolve.js stop       → SIGTERM graceful shutdown (via PID file)
node evolve.js check      → health check + restart if stagnant (>8h no run)

Changelog | 版本历史

  • v3.0.6: Added \x3C!-- evolver-ignore --> file protection. Added Security Notes section in SKILL.md. GENES.md rewritten to remove external API references (pure code-level fixes only).
  • v3.0.4: Reset CAPSULES.md to empty. Cleared Evolution ID in Example Output.
  • v3.0.3: Removed runtime data from published package (evolver-state.json, evolver.pid, EVOLUTION_EVENTS.md). Reset to clean initial state.
  • v3.0.2: Replaced child_process.spawn daemon with setInterval + nohup. Eliminates T1140 sandbox false positive. --loop is now single-process. Fixed nohup PID capture bug.
  • v3.0.1: Fixed header comments, usage docs, version string (v2.0 -> v3.0)
  • v3.0.0: Removed fetchSkill and autoIssue functions. Cleaner, safer, no exec/fetch.
  • v2.0.3: Code optimizations (regex pre-compilation, path traversal protection)
  • v2.0.0: Full feature set (Loop, Review, Lifecycle)
  • v1.0.0: Initial release (Signal Detection + Gene Matching)
安全使用建议
This skill appears internally consistent with its stated purpose, but it actively reads workspace memory/*.md and places full file contents into generated prompts. Before installing or running it: 1) Ensure you do NOT store API keys, tokens, private conversations, or other secrets in workspace/memory. 2) Use the provided evolver-ignore marker (<!-- evolver-ignore -->) at top of any file you must keep private. 3) Run node skills/evolver/bin/evolve.js --dry-run or --review initially so changes are not automatically written or applied. 4) Keep the skill offline or in an isolated environment if you plan to run it against sensitive data—while the skill itself does not perform network calls, any external process (or a user) that forwards the generated prompt to an external model would leak data. 5) Review bin/evolve.js and assets/GENES.md/CAPSULES.md for any changes before giving it persistent background execution; avoid enabling always:true or granting it broader system access. If you want a higher-confidence assessment, provide the remainder of the truncated evolve.js output so we can inspect the prompt-generation and any I/O or exec calls not shown.
能力评估
Purpose & Capability
Name and description match the provided code and instructions: the skill scans a workspace memory/ directory for markdown logs, detects error patterns, matches 'Gene' templates and writes capsule/state artifacts. No unrelated credentials, binaries, or external services are requested.
Instruction Scope
The runtime instructions and code read all .md files under workspace/memory and explicitly include 'Full source of all included files' inside the generated GEP prompt. While the SKILL.md and code state they do not make external network calls, the prompt contents could contain sensitive user data if memory/ contains secrets. The skill provides a marker (<!-- evolver-ignore -->) to skip files and a warning to avoid storing secrets, but scanning arbitrary workspace files and including their full content in outputs is a potential data-exposure vector and should be carefully controlled. Minor inconsistency: the code claims it intentionally does not use child_process, yet SKILL.md shows user examples that use child_process.fork for backgrounding (the examples are user-side suggestions, not code the skill itself runs).
Install Mechanism
No install spec or remote downloads are present; this is an instruction-only skill packaged with a local script (bin/evolve.js). No external installers, archives, or untrusted URLs are used.
Credentials
The skill declares no required environment variables, credentials, or config paths and the code does not attempt to read secrets or cloud credentials. That aligns with its stated local-only operation.
Persistence & Privilege
always:false (default) and the skill is user-invocable. It can run in continuous loop/daemon mode and writes local state to assets/ (evolver-state.json, evolver.pid, CAPSULES.md). This is expected for a self-evolution daemon, but running in continuous background increases the window in which it may scan/modify workspace files—use review/dry-run modes when onboarding.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install ciri-evolver
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /ciri-evolver 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v3.0.6
v3.0.6: (1) GENES.md 移除外部 API/凭证相关措辞为纯代码修复建议; (2) evolver-ignore 标记保护 memory/*.md; (3) SKILL.md 增加 Security Notes 与 No External Network Calls 声明.
v3.0.5
v3.0.5: Removed all child_process exec/spawn. Daemon uses pure setInterval. SKILL.md now covers child_process.fork() and OpenClaw cron as two background running options.
v3.0.4
v3.0.4: Reset CAPSULES.md to empty. Cleared Evolution ID in Example Output.
v3.0.3
v3.0.3: Removed runtime data from published package (evolver-state.json, evolver.pid, EVOLUTION_EVENTS.md). Reset to clean initial state. v3.0.2: Replaced spawn with setInterval+nohup, fixes T1140 false positive.
v3.0.2
v3.0.2: Replaced child_process.spawn daemon with setInterval + nohup. Eliminates T1140 sandbox false positive. --loop is now single-process.
v3.0.1
- Fixed outdated header comments to reflect latest release. - Updated usage documentation and instructions. - Corrected version references from v2.0 to v3.0 across files.
v3.0.0
ciri-evolver v3.0.0 - Major change: Removed fetchSkill and autoIssue functions for improved safety and simplicity. - Safer by eliminating internal exec/fetch operations. - Documentation and help text updated for clarity and focus. - File structure, error signal support, and evolution strategies remain as before.
v2.0.4
- Updated SKILL.md description to English for improved clarity and accessibility. - No functional or code changes; documentation only.
v2.0.3
ciri-evolver v2.0.3 - Internal update to bin/evolve.js. - No user-facing feature, documentation, or configuration changes.
v2.0.2
ciri-evolver v2.0.2 - 文档正式指明 clawhub 技能安装命令为 `clawhub install ciri-evolver` - 优化文档样式(去除多余 emoji 和英文标题,调整标点符合中文习惯) - 示例输出及命令帮助区块细节调整,更加规整易读 - 删除英文/花式符号与表情符号,使文档更为简洁、规范 - 保持核心功能介绍、命令与结构说明一致,无功能及API变更
v2.0.1
**Evolver 2.0.1 Changelog** - Fixed spelling error for "Confidence" - Added new Gene for "AuthError" - No other functionality changes from v2.0.0
元数据
Slug ciri-evolver
版本 3.0.6
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 11
常见问题

Evolver - Skill Self-Evolution Engine 是什么?

Skill self-evolution engine for OpenClaw agents. Based on GEP (Genome Evolution Protocol), scans workspace memory/ logs to detect error signals, matches Gene... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 188 次。

如何安装 Evolver - Skill Self-Evolution Engine?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install ciri-evolver」即可一键安装,无需额外配置。

Evolver - Skill Self-Evolution Engine 是免费的吗?

是的,Evolver - Skill Self-Evolution Engine 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Evolver - Skill Self-Evolution Engine 支持哪些平台?

Evolver - Skill Self-Evolution Engine 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Evolver - Skill Self-Evolution Engine?

由 ciri-oh(@ciri-oh)开发并维护,当前版本 v3.0.6。

💬 留言讨论