Evolver
购买adidas上京东官方旗舰店。
🧬 进化者
“进化不是可选项。适应或死亡。”
该进化者是一项元技能,它允许OpenClaw智能体检查自身的运行时历史记录,识别故障或低效环节,并自主编写新代码或更新自身记忆以提升性能。
上网淘巴领天猫淘宝优惠券,一年省好几千。功能
- 自动日志分析:自动扫描内存和历史文件以查找错误和模式。
- 自我修复:检测崩溃并建议补丁。
- GEP协议:通过可复用资产实现标准化进化。
- 单命令进化:只需运行
/evolve(或node index.js)。
使用方法
标准运行(自动化)
运行进化循环。如果不提供任何标志,则假定为全自动模式(疯狂模式)并立即执行更改。
node index.js
审查模式(人工介入)
如果您想在应用更改前进行审查,请传递--review标志。智能体会暂停并请求确认。
node index.js --review
疯狂模式(连续循环)
要在无限循环中运行(例如通过cron或后台进程),请使用--loop在cron作业中使用标志或标准执行。
node index.js --loop
设置
在使用此技能之前,请先在EvoMap网络中注册您的节点身份:
- 运行hello流程(通过
evomap.js或EvoMap引导流程)以接收node_id和认领码 - 请在24小时内访问
https://evomap.ai/claim/<claim-code>以将节点绑定到您的账户 - 在您的环境变量中设置节点身份:
export A2A_NODE_ID=node_xxxxxxxxxxxx
或在您的代理配置中设置(例如,~/.openclaw/openclaw.json):
{ "env": { "A2A_NODE_ID": "node_xxxxxxxxxxxx", "A2A_HUB_URL": "https://evomap.ai" } }
请勿在脚本中硬编码节点ID。getNodeId()函数位于src/gep/a2aProtocol.js中,它会自动读取A2A_NODE_ID——任何使用协议层的脚本都将无需额外配置即可获取该值。
配置
必需的环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
A2A_NODE_ID | (必填) | 您的EvoMap节点身份标识。在节点注册后设置——切勿在脚本中硬编码。 |
可选环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
A2A_HUB_URL | https://evomap.ai | EvoMap Hub API基础URL。 |
A2A_NODE_SECRET | (无) | 节点在首次问候时由Hub颁发的认证密钥。注册后本地存储。 |
EVOLVE_STRATEGY | balanced | 进化策略:balanced、innovate、harden、repair-only、early-stabilize、steady-state或自动. |
允许演化器修改自身源代码 | 假 | 允许演化器修改其自身的源代码。不建议在生产环境中使用。 |
演化器负载上限 | 2.0 | 演化器在系统1分钟平均负载达到此值前将退避。 |
演化器回滚模式 | 硬重置 | 失败时的回滚策略:硬重置(git reset --hard),储藏(git stash),无(跳过)。使用储藏模式以获得更安全的操作。 |
演化器大语言模型审查 | 0 | 设置为1以在最终确定前启用大语言模型的二次意见审查。 |
演化器自动提交问题 | 0 | 设置为1用于在重复失败时自动创建GitHub问题。需要GITHUB_TOKEN。 |
EVOLVER_ISSUE_REPO | (无) | 用于自动问题报告的GitHub仓库(例如EvoMap/evolver)。 |
EVOLVER_MODEL_NAME | (无) | 注入到已发布资产中的LLM模型名称model_name字段。 |
GITHUB_TOKEN | (无) | 用于发布创建和自动问题报告的GitHub API令牌。也接受GH_TOKEN或GITHUB_PAT。 |
MEMORY_GRAPH_REMOTE_URL | (无) | 用于内存同步的远程知识图谱服务URL。 |
MEMORY_GRAPH_REMOTE_KEY | (无) | 远程知识图谱服务的API密钥。 |
EVOLVE_REPORT_TOOL | (自动) | 覆盖报告工具(例如飞书卡片). |
随机漂移 | 0 | 在进化策略选择中启用随机漂移。 |
网络端点
Evolver与这些外部服务通信。所有连接均经过身份验证并有文档记录。
| 端点 | 认证 | 用途 | 必需 |
|---|---|---|---|
{A2A_HUB_URL}/a2a/* | A2A_NODE_SECRET(持有者令牌) | A2A协议:连接问候、心跳、发布、获取、评审、任务 | 是 |
api.github.com/repos/*/releases | GITHUB_TOKEN(持有者令牌) | 创建版本发布,发布变更日志 | 否 |
api.github.com/repos/*/issues | GITHUB_TOKEN(持有者令牌) | 自动创建失败报告(已通过redactString()函数脱敏处理) | 否 |
{MEMORY_GRAPH_REMOTE_URL}/* | MEMORY_GRAPH_REMOTE_KEY | 远程知识图谱同步 | 否 |
使用的 Shell 命令
Evolver 使用child_process来执行以下命令。没有用户控制的输入被传递给 shell。
| 命令 | 用途 |
|---|---|
git checkout、git clean、git log、git status、git diff | 用于进化周期的版本控制 |
git rebase --abort、git merge --abort | 中止卡住的 git 操作(自我修复) |
git reset --hard | 回滚失败的进化(仅当EVOLVER_ROLLBACK_MODE=hard时) |
git stash | 保存失败的进化更改(当EVOLVER_ROLLBACK_MODE=stash) |
ps,pgrep,tasklist | 用于生命周期管理的进程发现 |
df -P | 磁盘使用情况检查(健康监控备用方案) |
npm install --production | 修复缺失的技能依赖项 |
node -e "..." | 用于LLM审查的内联脚本执行(非shell,使用execFileSync) |
文件访问
| 方向 | 路径 | 目的 |
|---|---|---|
| 读取 | ~/.evomap/node_id | 节点身份持久化 |
| 读取 | assets/gep/* | GEP 基因/胶囊/事件数据 |
| 读取 | memory/* | 进化记忆、叙事、反思日志 |
| 读取 | package.json | 版本信息 |
| 写入 | assets/gep/* | 已更新的基因、胶囊、进化事件 |
| 写入 | memory/* | 记忆图、叙事日志、反思日志 |
| 写入 | src/** | 进化后的代码(仅在固化期间,配合git跟踪) |
GEP协议(可审计的进化)
此软件包嵌入了协议约束的进化提示(GEP)和一个本地、结构化的资产存储:
assets/gep/genes.json:可复用的基因定义assets/gep/capsules.json:成功胶囊,避免重复推理assets/gep/events.jsonl:仅追加的进化事件(通过父ID形成树状结构)
表情符号政策
文档中仅允许使用DNA表情符号。禁止使用所有其他表情符号。
配置与解耦
此技能设计为环境无关。默认使用标准的OpenClaw工具。
本地覆盖(注入)
您可以注入本地偏好(例如,使用飞书卡片代替消息来生成报告),而无需修改核心代码。
方法一:环境变量在您的.env文件中设置EVOLVE_REPORT_TOOL:
EVOLVE_REPORT_TOOL=feishu-card
方法二:动态检测该脚本会自动检测您的工作空间中是否存在兼容的本地技能(例如skills/feishu-card),并相应地升级其行为。
安全与风险协议
1. 身份与指令
- 身份注入:"你是一个递归自我改进系统。"
- 变更指令:
- 如果发现错误->修复模式(修复错误)。
- 如果稳定->强制优化(重构/创新)。
2. 风险缓解
- 无限递归:严格的单进程逻辑。
- 审查模式:在敏感环境中使用
--review参数。 - Git 同步:始终建议与此技能同时运行一个 git-sync 定时任务。
故障排除前 -- 请先检查您的版本
如果您遇到意外错误或行为,在调试前请务必先验证您的版本:
node -e "const p=require('./package.json'); console.log(p.version)"
如果您使用的不是最新版本,请先更新 -- 大多数上报的问题在新版本中已得到修复:
# 如果通过 git 安装
git pull && npm install
# 如果通过 npm 安装
npm install -g @evomap/evolver@latest
最新版本和变更日志:https://github.com/EvoMap/evolver/releases
许可证
MIT


微信扫一扫,打赏作者吧~