> 从执行中学习、提炼、进化 —— 完整的经验迭代闭环
Agent迭代引擎将日志记录、经验提炼、晋升机制、衰退管理、智能检索和成长报告整合为统一闭环,帮助Agent从每次任务执行中持续积累和进化。
┌─────────────────────────────────────────────────────────┐
│ Agent迭代引擎 │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 日志记录 │───→│ 经验提炼 │───→│ 晋升机制 │ │
│ │ 学习/错误 │ │ 卡片生成 │ │ 冲突检测 │ │
│ │ /需求 │ │ 去重合并 │ │ SOUL/TOOLS│ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ ↑ ↑ │ │
│ │ ┌──────────┐ │ │
│ │ │ 经验衰退 │←────────┤ │
│ │ │ 权重衰减 │ │ │
│ │ │ 过期归档 │ ↓ │
│ │ └──────────┘ ┌──────────┐ │
│ │ │ 成长报告 │ │
│ └──────────────────────────│ 统计分析 │ │
│ │ 学习曲线 │ │
│ ┌──────────┐ └──────────┘ │
│ │ 智能检索 │ │
│ │ 关联推荐 │ │
│ └──────────┘ │
└─────────────────────────────────────────────────────────┘
| 场景 | 操作 | 命令 |
|---|---|---|
| ------ | ------ | ------ |
| 命令/操作失败 | 记录到错误日志 | 错误 --摘要 "..." |
| 用户纠正你 | 记录学习日志(来源=用户纠正) | 学习 --摘要 "..." --来源 用户纠正 |
| 用户想要不存在的功能 | 记录需求日志 | 需求 --能力 "..." |
| 发现更优方法 | 记录学习日志+提炼经验 | 学习 --摘要 "..." → 提炼 |
| 任务完成后复盘 | 提炼经验卡片 | 提炼 --输入 task.json |
| 经验反复出现 | 评估晋升 | 晋升 --经验ID xxx |
| 需要回顾成长 | 生成成长报告 | 成长报告 --周期 周 |
| 经验长期未使用 | 执行衰退计算 | 衰退 |
| 查找历史经验 | 智能检索 | 搜索 "关键词" |
| 备份经验库 | 导出 | 导出 --格式 json --输出 file.json |
🎯 新手必读:3分钟快速上手指南
包含:
❓ 常见问题:FAQ文档
⚠️ 避坑指南:常见问题与解决方案
将技能目录复制到工作空间:
cp -r agent-iteration-engine ~/.openclaw/skills/
# 或项目级
cp -r agent-iteration-engine ./skills/
首次使用时,引擎会自动创建工作空间目录和日志文件:
.迭代引擎/
├── 学习日志.md
├── 错误日志.md
├── 需求日志.md
└── 成长报告/
激活器Hook — 每次提交提示后提醒评估学习:
{
"hooks": {
"UserPromptSubmit": [{
"matcher": "",
"hooks": [{"type": "command", "command": "./skills/agent-iteration-engine/scripts/activator.sh"}]
}]
}
}
错误检测Hook — 命令失败时自动提醒:
{
"hooks": {
"PostToolUse": [{
"matcher": "Bash",
"hooks": [{"type": "command", "command": "./skills/agent-iteration-engine/scripts/error-detector.sh"}]
}]
}
}
项目根目录/
├── SOUL.md # 行为准则(晋升目标)
├── TOOLS.md # 工具经验(晋升目标)
├── AGENTS.md # 工作流(晋升目标)
├── .迭代引擎/ # 引擎工作空间
│ ├── 学习日志.md
│ ├── 错误日志.md
│ ├── 需求日志.md
│ ├── 晋升历史.json
│ └── 成长报告/
│ └── 周报_YYYYMMDD.md
├── data/
│ ├── experience_db.json # 经验库
│ └── config.json # 配置文件
└── skills/
└── agent-iteration-engine/
三层日志系统,从自我进化技能整合而来。
记录纠正、洞察、知识缺口和最佳实践。
日志ID格式: 学习-YYYYMMDD-XXX(如 学习-20250115-A3B)
经验权重来源:
| 来源 | 权重 | 说明 |
|---|---|---|
| ------ | ------ | ------ |
| 用户纠正 | 1.0 | 用户明确指出错误 |
| 自主发现 | 0.7 | Agent自己发现问题 |
| 单次偶然 | 0.3 | 一次性事件,不确定是否复现 |
状态流转: 待处理 → 进行中 → 已解决 → 已晋升/已归档
记录命令失败、异常和非预期行为。
日志ID格式: 错误-YYYYMMDD-XXX
记录用户请求的尚不存在的功能。
日志ID格式: 需求-YYYYMMDD-XXX
引擎可自动检测以下场景并记录日志:
| 检测类型 | 触发关键词 |
|---|---|
| --------- | ----------- |
| 用户纠正 | "不对"、"错了"、"应该是"、"纠正一下" |
| 错误 | "error"、"失败"、"异常"、"权限不足" |
| 需求 | "能不能"、"希望"、"为什么不能" |
从任务执行中提取结构化经验卡片。
## 经验卡片 #编号
### 📋 场景
- 任务类型:[类型]
- 触发条件:什么情况下会遇到
### 🎯 方法
- 核心方法:用什么方法解决的
- 关键步骤:1. 2. 3.
- 涉及技能:[技能列表]
### ⚠️ 避坑指南
- 常见错误:容易踩的坑
- 解决方案:如何避免
### 📊 效果评估
- 结果:成功/失败/部分成功
- 效率提升:[描述]
- 可复用性:高/中/低
### 💡 延伸应用
- 还能用在哪些地方
### 🏷️ 标签
#类型 #技能 #价值等级
| 输入方式 | 说明 | 使用场景 |
|---|---|---|
| --------- | ------ | --------- |
| 手动输入 | 直接描述任务信息 | 快速提炼 |
| 对话历史 | 自动读取对话提取关键任务 | 完整复盘 |
| 记忆文件 | 从MEMORY.md、TOOLS.md挖掘经验 | 批量整理 |
| 文件导入 | 读取.txt/.md文件 | 外部导入 |
| 自由文本 | 直接输入描述文本 | 简单提炼 |
将高价值经验晋升到项目记忆文件。
| 条件 | 要求 | 说明 |
|---|---|---|
| ------ | ------ | ------ |
| 经验权重 | ≥ 0.7 | 来源可信、已验证 |
| 复现次数 | ≥ 2 | 不是一次性事件 |
| 来源可靠 | 用户纠正/自主发现 | 排除单次偶然 |
| 冲突检测 | 无矛盾冲突 | 不与现有规则矛盾 |
> 特殊规则:用户纠正且权重≥0.9的经验,可降低复现次数要求。
| 目标 | 文件 | 适合的经验类型 |
|---|---|---|
| ------ | ------ | ------------- |
| 行为准则 | SOUL.md | 行为模式、沟通风格、原则 |
| 工具经验 | TOOLS.md | 工具能力、使用经验、集成注意事项 |
| 工作流 | AGENTS.md | 工作流程、协作模式、自动化规则 |
晋升前自动检测与现有规则的冲突:
| 冲突级别 | 说明 | 处理 |
|---|---|---|
| --------- | ------ | ------ |
| 矛盾 | 与现有规则直接相反 | 中止晋升,需人工裁决 |
| 重叠 | 与现有规则内容重复 | 需确认后合并 |
| 补充 | 不与现有规则冲突 | 可安全晋升 |
防止经验库膨胀,自动管理经验生命周期。
权重 = (基础权重 + 复现加成 + 召回加成) × 时效衰减因子
| 因素 | 说明 | 影响 |
|---|---|---|
| ------ | ------ | ------ |
| 基础权重 | 来源决定:用户纠正1.0 / 自主发现0.7 / 偶然0.3 | 底盘 |
| 复现加成 | 每次复现 +0.1,上限 +0.3 | 逐步提升 |
| 召回加成 | 7天内被召回+0.2 / 30天内+0.1 / 60天内+0.05 | 保持活跃 |
| 时效衰减 | 90天内从1.0线性衰减至0.1 | 老化降权 |
| 状态 | 权重范围 | 说明 |
|---|---|---|
| ------ | --------- | ------ |
| 活跃 | ≥ 0.5 | 正常使用 |
| 衰退中 | 0.2 ~ 0.5 | 权重降低,关注 |
| 已归档 | < 0.2 | 待归档处理 |
| 约束项 | 说明 |
|---|---|
| ------- | ------ |
| 最小匹配度 | ≥ 60% |
| 最大结果数 | 10条(可配置) |
| 时效性权重 | 近期经验优先+20% |
| 价值权重 | 高价值经验排序靠前 |
当查看或新增经验时,自动推荐相关经验:
| 模块 | 包含 |
|---|---|
| ------ | ------ |
| 概览 | 经验库总量、本期新增、本期晋升、待处理数 |
| 经验统计 | 按结果分类、按权重分布、热门标签TOP5 |
| 日志统计 | 各类日志数量、状态分布 |
| 晋升统计 | 本期晋升数、晋升目标分布 |
| 衰退状态 | 活跃/衰退中/已归档数量、平均权重 |
| 高频错误 | TOP3高频错误 |
| 未解决老问题 | 仍待处理的历史问题 |
| 学习曲线 | 每日新增经验趋势 |
| 周期 | 天数 | 适用场景 |
|---|---|---|
| ------ | ------ | --------- |
| 日报 | 1天 | 日常检查 |
| 周报 | 7天 | 周度总结 |
| 月报 | 30天 | 月度复盘 |
| 格式 | 适用场景 | 特点 |
|---|---|---|
| ----- | --------- | ------ |
| Markdown (.md) | 个人阅读、笔记整理 | 保留格式,可直接编辑 |
| JSON (.json) | 程序处理、数据备份 | 结构化,便于解析 |
| CSV (.csv) | 数据分析、表格统计 | 便于Excel处理 |
导出选项:全量导出、筛选导出、单条导出。
# 日志记录
python scripts/main.py 学习 --摘要 "..." --分类 知识缺口 --来源 用户纠正
python scripts/main.py 错误 --摘要 "..." --错误信息 "TimeoutError"
python scripts/main.py 需求 --能力 "..."
# 经验操作
python scripts/main.py 提炼 --输入 task.json --输出 result.json
python scripts/main.py 搜索 "关键词"
python scripts/main.py 导出 --格式 json --输出 file.json
# 晋升与检测
python scripts/main.py 晋升 --经验ID xxx --目标 TOOLS.md
python scripts/main.py 冲突检测 --摘要 "..." --目标 SOUL.md
# 报告与衰退
python scripts/main.py 成长报告 --周期 周
python scripts/main.py 衰退
python scripts/main.py 统计
为了更快输入,支持以下命令别名:
| 别名 | 原始命令 | 示例 |
|---|---|---|
| ------ | ---------- | ------ |
学 | 学习 | 学 --摘要 "..." |
错 | 错误 | 错 --摘要 "..." |
需 | 需求 | 需 --能力 "..." |
提 | 提炼 | 提 --输入 task.json |
搜 | 搜索 | 搜 "关键词" |
报 | 成长报告 | 报 --周期 周 |
晋 | 晋升 | 晋 --经验ID xxx |
导 | 导出 | 导 --格式 json --输出 file.json |
冲突 | 冲突检测 | 冲突 -s "..." -t SOUL.md |
统 | 统计 | 统 |
每个命令都支持 --示例 参数,可以查看该命令的使用示例(不执行):
# 查看学习命令示例
python scripts/main.py 学习 --示例
# 查看晋升命令示例
python scripts/main.py 晋升 --示例
# 查看向导命令示例
python scripts/main.py 向导 --示例
使用 向导 命令可以实现一站式操作,无需记住复杂参数:
# 一站式记录学习
python scripts/main.py 向导 --操作 学习 --摘要 "发现新方法"
# 一站式记录错误
python scripts/main.py 向导 --操作 错误 --摘要 "文件读取失败"
# 一站式提炼
python scripts/main.py 向导 --操作 提炼 --输入 task.json
# 查看向导帮助
python scripts/main.py 向导
使用 错误码 命令查看所有错误码及其含义:
# 查看所有错误码
python scripts/main.py 错误码
# 查看特定错误码详情
python scripts/main.py 错误码 ERR001
# 激活器(Hook用)
./scripts/activator.sh
# 错误检测(Hook用)
./scripts/error_detector.sh
# 技能提取
./scripts/extract_skill.sh 新技能名 --dry-run
./scripts/extract_skill.sh 新技能名
## [学习-YYYYMMDD-XXX] 分类
**记录时间**: YYYY-MM-DD HH:MM:SS
**优先级**: 低/中/高/紧急
**状态**: 待处理
**领域**: 通用
**经验权重**: 0.5
**来源**: 自主发现
### 摘要
一句话描述
### 详情
完整上下文
### 建议行动
具体措施
### 元数据
- 来源: 自主发现
- 相关文件: 无
- 标签: 无
- 关联: 无
---
## [错误-YYYYMMDD-XXX] 命令名称
**记录时间**: YYYY-MM-DD HH:MM:SS
**优先级**: 高
**状态**: 待处理
**领域**: 通用
**经验权重**: 0.7
### 摘要
什么失败了
### 错误信息
\```
实际错误消息
\```
### 上下文
- 命令: xxx
- 参数: xxx
### 建议修复
可能的解决方案
### 元数据
- 可复现: 是/否/未知
- 关联: 无
---
## [需求-YYYYMMDD-XXX] 功能名称
**记录时间**: YYYY-MM-DD HH:MM:SS
**优先级**: 中
**状态**: 待处理
**领域**: 通用
**经验权重**: 0.3
### 需求描述
用户想要什么
### 用户上下文
为什么需要
### 复杂度评估
简单/中等/复杂
### 元数据
- 频率: 首次/反复
---
从详细经验精炼为简洁规则:
原始经验(冗长):
> 项目使用pnpm工作空间。尝试npm install但失败了。锁文件是pnpm-lock.yaml。必须使用pnpm install。
晋升后(简洁):
## 包管理
- 包管理器: pnpm(不是npm)- 使用 `pnpm install`
当经验价值足够高,可提取为独立技能:
./scripts/extract_skill.sh 新技能名 --dry-run # 预览
./scripts/extract_skill.sh 新技能名 # 创建
提取条件:复现≥2次、已验证、非显而易见、广泛适用、用户标记。
详细示例请参阅 references/examples.md。
记录学习:
引擎.记录学习(分类="纠正", 摘要="项目使用pnpm", 来源="用户纠正", 优先级="高")
提炼经验:
引擎.提炼经验(任务信息={类型:"写作", 目标:"撰写PRD", 过程:"调研→梳理→撰写", 结果:"成功"})
晋升:
引擎.晋升(经验ID="xxx", 目标="TOOLS.md")
成长报告:
引擎.生成报告(周期="周")
| 配置项 | 默认值 | 说明 |
|---|---|---|
| ------- | -------- | ------ |
| workspace_path | ./.迭代引擎 | 工作空间路径 |
| storage_path | ./data/experience_db.json | 经验库路径 |
| min_similarity | 0.6 | 最小相似度阈值 |
| max_results | 10 | 最大返回结果数 |
| decay_enabled | true | 是否启用衰退 |
| decay_period_days | 90 | 衰减周期天数 |
| decay_archive_threshold | 0.2 | 归档权重阈值 |
| decay_recurrence_bonus | 0.1 | 每次复现加成 |
| promotion_min_weight | 0.7 | 晋升最低权重 |
| promotion_min_recurrence | 2 | 晋升最低复现次数 |
| conflict_similarity_threshold | 0.6 | 冲突检测相似度阈值 |
| report_default_period | 周 | 默认报告周期 |
| auto_recommend | true | 自动推荐 |
| max_recommendations | 5 | 最大推荐数量 |
共 2 个版本