Install
openclaw skills install @thcjp/evolution-engineopenclaw skills install @thcjp/evolution-engine让 Agent 越用越好,而非每次从零开始。 直击四大自我进化顽疾:重复犯错、从沉默误学、记忆压缩丢失、进化无法衡量。通过自反思、纠错学习、反污染防线,让每次交互都积累可复用经验.
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | 进化引擎处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
| 能力 | 免费版 | 付费版 |
|---|---|---|
| 基础功能 | 支持 | 支持 |
| 进化引擎错加反污染防线与压缩 | 不支持 | 支持 |
| 复杂工作流可视化编排 | 不支持 | 支持 |
| 条件分支与异常重试 | 不支持 | 支持 |
| 定时触发与事件驱动 | 不支持 | 支持 |
| 执行日志与审计追踪 | 不支持 | 支持 |
领先步:初始化记忆架构。在 ~/evolution-engine/ 创建分层目录结构:memory.md(热层,≤100 行)、index.md(主题索引含行数)、heartbeat-state.md(心跳状态)、metrics.md(进化指标)、projects/(按项目隔离)、domains/(按领域隔离:code.md/writing.md/comms.md)、archive/(冷层)、corrections.md(最近 50 条纠错). 第二步:识别学习信号。区分四类信号:纠错信号(直接否定、修正、指出错误等→写入 corrections.md 标记"待观察")、偏好信号(喜欢、总是要求、永不要求、风格声明、项目特定→显式时写入 memory.md)、模式候选(相同指令重复 3+ 次、工作流反复有效、用户赞扬特定方法→追踪观察)、忽略信号(一次性指令、上下文特定、假设性、沉默、第三方偏好→不记录). 第三步:执行反污染防线。用户纠正时写入 corrections.md 标记"待观察";同类信号第 2 次标记"模式候选";同类信号第 3 次(7 天内)询问用户确认;用户确认则晋升 memory.md 标记"已确认",用户否认则归档 archive/ 标记"误判"。永不从沉默推断偏好,单次纠错不晋升热层. 第四步:自反思与指标追踪。完成重要工作后执行反思三问(是否达到预期、哪里可以更好、这是模式吗),写入 corrections.md。每周更新 metrics.md:记录纠错次数、晋升成功数、重复犯错次数、热层规则引用次数、反思转化率,生成趋势分析与待改进建议. 第五步:定期维护与压缩。执行分层加载策略(热层始终加载+温层按需匹配+冷层显式查询)。文件超限时执行压缩:合并相似纠错、归档未用模式、摘要冗长条目、保留确认偏好。模式 7 天用 3 次晋升热层,30 天未用降级温层,90 天未用归档冷层。永不自动删除. 结果验证: 任务完成后,查看输出确认状态。成功时返回摘要和数据;失败时根据错误信息排查,参考恢复章节获取修复步骤.
| 错误类型 | 原因 | 处理方式 |
|---|---|---|
| 重复犯同类错误 | corrections.md 无记录或召回时未注入纠错教训 | 确认纠错已写入 corrections.md;检查召回流程是否优先注入纠错记录;验证 corrections.md 未超过 50 条限制导致旧记录被挤出的情况 |
| 误学虚假规则入热层 | 未走 3 次确认流程,单次纠错直接晋升 memory.md | 检查 memory.md 中该规则来源是否标记"已确认";若为误判执行降级到 archive/ 标记"误判";强化 3 次确认流程 |
| 热层膨胀超 100 行 | 晋升频率过高,未执行压缩 | 执行压缩:合并相似规则、归档未用模式到 archive/、摘要冗长条目;提高晋升门槛(如 7 天内 3 次改为 5 次) |
| 跨项目偏好污染 | 项目 A 的模式错误晋升到全局 memory.md | 检查命名空间隔离是否生效;确认项目模式写入 projects/{name}.md 而非 memory.md;将误晋升的规则降级回 projects/ |
| 进化指标不改善 | 反思未落地为行动,反思转化率低 | 检查反思是否写入 corrections.md;确保反思后立即记录经验;追踪反思转化率指标,低于 60% 时强化反思→记录闭环 |
| 沉默被误推断为偏好 | 违反反污染防线第 1 级规则 | 立即删除从沉默推断的记录;确认反污染防线规则在 Agent 指令中明确;永不从"用户没纠正"推断"做对了" |
| 压缩时丢失确认偏好 | 压缩策略执行了删除而非合并/归档 | 检查 archive/ 是否有完整备份;恢复误删的确认偏好;强化"压缩不删除"规则,仅合并/摘要/归档 |
| 上下文超限加载失败 | 加载了所有命名空间而非分层按需加载 | 仅加载 memory.md 热层+最小匹配的 projects/ 或 domains/ 文件;告知用户未加载内容;执行归档清理旧记录 |
输入:
会话 A:
代理生成代码未加类型注解
用户纠正:"加上类型注解,我们用 TypeScript 严格模式"
执行与输出:
→ 写入 corrections.md:
ID: corr_001
信号类型:直接纠正
内容:TypeScript 项目必须加类型注解
标记:待观察
时间:2026-07-15
# ...
会话 B(3 天后):
又生成无类型注解代码
用户再次纠正:"我说过要加类型注解"
→ 第 2 次信号,标记"模式候选"
→ corrections.md 更新 corr_001 标记为"模式候选"
# ...
会话 C(5 天后):
生成代码加了类型注解
用户未纠正(沉默不记录)
但代理主动检查发现:同类项目都应加
→ 第 3 次确认(7 天内),询问用户:
"是否所有 TypeScript 项目都要求类型注解?"
→ 用户确认"是的"
→ 晋升到 memory.md(标记"已确认"):
规则:TypeScript 项目必须加类型注解
来源:corrections.md corr_001,3 次确认
晋升时间:2026-07-20
# ...
会话 D(新项目):
代理在 TypeScript 项目中自动加类型注解
→ 引用来源:"使用 TypeScript 类型注解规则(来自 memory.md:8)"
→ 复用率+1
输入:
memory.md 超过 100 行限制(当前 115 行)
检查发现 3 条类似规则:
- "用户喜欢简洁代码"(line 12)
- "用户偏好短函数"(line 45)
- "用户要删除冗余注释"(line 78)
压缩执行与输出:
压缩步骤:
1. 识别相似条目:3 条均为代码风格偏好
2. 合并为一条:
"用户偏好简洁代码风格:短函数、无冗余注释、避免过度抽象"
→ 写入 memory.md(替换原 3 条,占 1 行)
3. 原始 3 条归档到 archive/:
archive/compression-20260720.md:
- [原] 用户喜欢简洁代码(来源 memory.md:12,归档时间 2026-07-20)
- [原] 用户偏好短函数(来源 memory.md:45,归档时间 2026-07-20)
- [原] 用户要删除冗余注释(来源 memory.md:78,归档时间 2026-07-20)
4. memory.md 行数从 115 降至 113(减少 2 行)
# ...
结果:
- 热层精简,token 消耗降低
- 偏好未丢失(合并后保留所有核心信息)
- 历史可追溯(archive/ 保留完整原始记录)
- 已确认偏好永不删除
Q1:3 次确认会不会太慢影响效率? 不会。大多数纠错是即时记录到 corrections.md,立即可查可用。仅晋升到热层 memory.md 需 3 次一致确认,这是为了防止单点误判污染核心规则。纠错记录在 corrections.md 中即可被召回注入,不依赖晋升. Q2:沉默真的完全不记录任何信息吗? 是的。用户没纠正可能是没注意、懒得说、或确实满意——无法区分。从沉默推断会制造虚假规则,风险大于收益。反污染防线第 1 级明确:永不从沉默推断"做对了"。只有用户明确表达(纠正、偏好、赞扬)才记录. Q3:压缩后还能找回原始记录吗? 能。原始条目归档到 archive/ 目录,完整保留。热层 memory.md 是精简版(合并/摘要后),冷层 archive/ 是完整历史。通过 archive/ 可追溯任何规则的原始来源与演变过程。压缩永不删除,仅合并/摘要/归档. Q4:进化指标怎么用?有什么实际价值? 每周查看 metrics.md。纠错频率下降说明学习有效;重复犯错率下降说明经验沉淀生效;复用率上升说明热层规则有价值;反思转化率反映反思落地程度。若指标不改善,说明反思未落地或召回未注入,需检查反思→corrections.md→召回闭环。指标让"Agent 是否变好"从主观感受变为客观数据. Q5:能和其他记忆系统共用吗? 能。本系统专注"从纠错学习与经验沉淀",可与长期记忆系统互补。建议进化引擎管"经验/教训/模式"(corrections.md + memory.md 规则),长期记忆系统管"事实/偏好/决策"(MEMORY.md + 向量搜索)。两者通过文件系统共存,互不干扰. Q6:命名空间隔离具体怎么工作? 三级命名空间:全局偏好→memory.md(如"用户偏好简洁代码")、领域模式→domains/code.md(如"TypeScript 项目加类型注解")、项目模式→projects/ecommerce.md(如"电商项目错误日志用 JSON 格式")。跨命名空间继承:全局→领域→项目。冲突时最具体优先(项目>领域>全局),同级最近优先,歧义时问用户.
A: 进化引擎采用压缩合并策略来处理大量相似的记忆条目。当检测到相似条目时,系统会将它们合并为一条规则,同时保留所有条目的核心信息,从而减少热层中的冗余,提高记忆的效率和准确性。
A: 如果用户没有明确指出错误,进化引擎不会将其视为纠错信号。系统会继续观察后续的交互,如果后续交互中用户表现出不满或纠正,这些信息将被记录下来,作为潜在的纠错信号。
A: 进化引擎确保用户反馈的隐私和安全通过以下方式:不存储任何敏感信息,如用户身份、健康数据或第三方信息;所有数据都进行加密处理;仅存储必要的信息,并实施严格的访问控制。
A: 命名空间隔离通过在文件系统中创建不同的目录层次来实现。每个项目、领域和全局偏好都有独立的目录,这样即使一个命名空间中的数据发生变化,也不会影响到其他命名空间。
A: 压缩操作不会对现有的记忆条目造成永久性影响。系统会保留所有已确认的偏好和纠错记录,并在压缩过程中进行合并和摘要,确保所有关键信息得到保留。
LLM 依赖:由 Agent 内置 LLM 提供自然语言理解、纠错识别、反思推理与模式匹配能力,必需. API Key 配置:本 Skill 无需任何 API Key,纯 Markdown 指令驱动,所有记忆存储在本地 ~/evolution-engine/ 目录,不做任何网络请求. 运行环境:
可用性分类:MD(纯 Markdown 指令,无需 exec 命令行能力)。所有记忆通过文件读写管理,通过自然语言指令驱动 Agent 执行自我进化任务.
| 错误现象 | 可能原因 | 诊断步骤 | 解决方案 |
|---|---|---|---|
| 纠错信号未记录 | 用户输入格式错误或系统配置问题 | 检查用户输入格式和系统配置 | 修正输入格式或调整系统配置 |
| 反思未写入 | Agent未执行反思步骤或文件写入错误 | 检查Agent逻辑和文件系统权限 | 修复Agent逻辑或调整文件系统权限 |
| 记忆晋升失败 | 缺少用户确认或系统配置问题 | 检查晋升流程和系统配置 | 确认用户参与晋升流程或调整系统配置 |
| 进化指标不更新 | 指标统计逻辑错误或文件读取错误 | 检查指标统计逻辑和文件读取 | 修复统计逻辑或调整文件读取 |
| 命名空间隔离失效 | 命名空间配置错误或文件系统错误 | 检查命名空间配置和文件系统 | 修正配置或修复文件系统 |
| 风险项 | 等级 | 防护措施 | 验证方法 |
|---|---|---|---|
| 用户数据泄露 | 高 | 实施严格的数据加密和访问控制 | 定期进行安全审计 |
| 系统被恶意攻击 | 中 | 部署防火墙和入侵检测系统 | 定期检查系统日志 |
| 记忆数据损坏 | 低 | 定期备份数据和实施数据恢复策略 | 定期测试数据恢复 |
| 用户误操作导致数据丢失 | 中 | 实施数据恢复策略和用户培训 | 定期进行用户培训 |
| 系统配置错误导致功能异常 | 低 | 实施系统配置审核和监控 | 定期检查系统配置 |
| 指标 | 描述 | 量化分析 |
|---|---|---|
| 纠错频率下降 | 通过纠错学习,Agent的纠错频率降低,表明学习效果显著 | 纠错频率从每周10次下降到每周5次 |
| 晋升率稳定 | Agent的模式晋升率稳定,表明学习过程稳定 | 晋升率保持在60%左右 |
| 复用率上升 | Agent的规则复用率上升,表明学习到的模式被有效利用 | 复用率从50%上升到70% |
| 重复犯错率下降 | Agent的重复犯错率下降,表明学习到的经验被有效应用 | 重复犯错率从20%下降到10% |
| 反思转化率上升 | Agent的反思转化率上升,表明反思过程有效 | 反思转化率从40%上升到60% |
| 指标 | 描述 | 差异化对比 |
|---|---|---|
| 纠错学习机制 | 通过纠错信号进行学习,避免重复犯错 | 与传统机器学习相比,无需大量标注数据 |
| 反污染防线 | 3次确认晋升机制,确保记忆准确性 | 避免误学虚假规则,提高学习质量 |
| 自反思机制 | 通过反思进行自我评估,持续进化 | 提高Agent的自我意识和学习能力 |
| 进化指标度量 | 量化Agent的进化状态,便于监控和调整 | 提供客观数据支持,优化进化过程 |
| 分层记忆架构 | 分层存储记忆,降低token消耗 | 提高系统效率和可扩展性 |
| 压缩不删除策略 | 合并相似规则,保留确认偏好 | 确保记忆的完整性和可追溯性 |
| 操作场景 | 手动耗时 | 自动化耗时 | 效率提升 |
|---|---|---|---|
| 文件解析与提取 | 5-10分钟/个 | <5秒/个 | 60-120x |
| 批量文件处理(100个) | 8-16小时 | <5分钟 | 96-192x |
| API调用与响应解析 | 2-3分钟/次 | <1秒/次 | 120-180x |
| 多接口数据聚合 | 15-30分钟 | <10秒 | 90-180x |
| 命令执行与结果收集 | 3-5分钟/次 | <2秒/次 | 90-150x |
| 重复任务批量执行 | 因任务而异 | 线性缩减 | 5-50x |
| 错误排查与修复 | 10-30分钟 | <30秒 | 20-60x |
| 对比维度 | "进化引擎" | 传统手动方式 | 通用脚本工具 |
|---|---|---|---|
| 自动化程度 | 全流程自动 | 完全手动 | 部分自动 |
| 错误处理 | 内置错误恢复 | 依赖人工经验 | 基本try-catch |
| 可复用性 | 参数化配置 | 一次性脚本 | 模板化 |
| 安全合规 | 内置安全检查 | 无安全保障 | 无安全保障 |
| 适用场景 | "Agent 自我进化引擎,反思纠错加反污染防线与压缩不删,避免重复犯错与误学。 | 通用场景 | 通用场景 |
针对"进化引擎"使用中可能遇到的常见问题,提供以下排查方案:
| 错误类型 | 原因分析 | 解决方案 |
|---|---|---|
| API认证失败(401) | API密钥错误或过期 | 检查密钥配置,重新生成token |
| 接口限流(429) | 请求频率超出限制 | 降低调用频率,启用重试退避策略 |
| 响应超时(504) | 网络延迟或服务端负载过高 | 增加超时阈值,检查网络连接 |
| 文件不存在 | 路径错误或文件未创建 | 检查路径拼写,确认文件已生成 |
| 文件格式不支持 | 扩展名不在支持列表中 | 转换为支持的格式后重试 |
| 权限不足 | 当前用户无读写权限 | 检查文件权限,以管理员身份运行 |
| 命令执行失败 | 参数错误或环境依赖缺失 | 检查命令语法,确认依赖已安装 |
| 进程超时 | 命令执行时间过长 | 增加超时设置,优化命令参数 |
| 网络连接失败 | DNS解析失败或防火墙拦截 | 检查网络配置,确认代理设置 |