dsh-self-evolving-agent
Self-Evolving Agent · 自我进化 Agent — 把「自我改进 Agent」模式做成 DSH 原生框架: 三本日志 + 六触发场景 + 经验晋升管线 + soul.md 身份层 + 选择性经验注入。
English overview: This repository is a plugin for DeepSeek Harness (DSH), the 122k+ star agent framework where everything is a plugin. It turns a stateless DSH agent into a self-evolving agent: without touching model weights, it records failures, corrections and best practices into plain-text memory files (three logs), selectively injects only the experience relevant to the current task (never full-context dumps), and promotes repeatedly-verified lessons up a pipeline — from raw candidates (
.learnings/) to project rules (AGENTS.md), identity behaviors (SOUL.md) and finally reusable skills (skills/). It ships two ready-made DSH workflows (learn-from-session,promotion-reviewwith dry-run safety) plus an orchestrating skill (self-evolving-loop). Everything is UTF-8 Markdown/JSON — human readable and git diffable.
✨ 亮点
- 不改权重,靠文件记忆 — Agent 最大的结构性缺陷是"无状态": 每个会话从零开始,重复踩同一个坑。本框架用文件系统做记忆: 错误自动记录 → 模式识别 → 晋升为永久规则 → 提取为可复用技能,越用越聪明。
- 四层记忆 + 选择性注入 — 会话工作记忆(HOT)/ 三本日志(WARM)/ 行为规则 / 可复用技能(COLD)分层管理;每次只 grep 与当前任务相关的经验注入上下文,绝不全量注入(呼应「智能RAG选择性检索」: 精准而非全面)。
- 经验晋升管线 —
.learnings/→ LEARNINGS.md → AGENTS.md → SOUL.md → skills/,逐级验证、人工审核、可降级可撤销,防误导优先。 - 六触发场景自动记录 — 命令失败 / 用户纠正 / 发现更好做法 / 知识过时 / 功能请求 / 重复模式,六种信号对应六种记录动作,见下表。
- 双工作流开箱即用 —
learn-from-session把零散经验整理入账;promotion-review默认 dry-run,只生成提案不碰核心文件,确认后才执行晋升。
六触发场景速查
| 触发场景 | 检测信号 | 记录动作 |
|---|---|---|
| 命令失败 | 命令非零退出 / 报错堆栈 | 写 ERRORS.md: 命令/现象/根因/修复/可复现 |
| 用户纠正 | 用户明确说"不对/应该…" | 写 LEARNINGS.md: 被纠正的行为与正确做法 |
| 发现更好做法 | 试出更优解 / 官方文档更新 | 写 LEARNINGS.md: 新旧做法对比与适用条件 |
| 知识过时 | 旧做法报错 / 依赖大版本升级 | 更新 LEARNINGS.md 条目或标记 obsolete |
| 功能请求 | 用户提出新需求 / 重复要同一个能力 | 写 FEATURE_REQUESTS.md: 需求/价值/状态 |
| 重复模式 | 同一问题第三次出现 | 递增验证次数,达到 3 次提请晋升 |
灵感来源
本项目灵感来自以下概念与实践(引用中文概念名,不附路径):
- LLM编译式知识库 — "每次探索都加总进知识库"的加总哲学,本仓库是其 Agent 端实现
- 自我改进 Agent — 三本日志 + 六触发场景 + 晋升管线的原始模式
- 智能RAG选择性检索 — 只注入与当前任务相关的经验,不全量塞上下文
- 知识库的代谢律 — 输入 = 处理 = 输出,任何积压都会拖垮系统
- CAD自动化装配 / MCP协议与CAD集成 — 把领域工作流插件化、可复用化的同源思路
架构
flowchart LR
subgraph S[会话层 · HOT]
A[任务执行] -->|六触发场景| B[.learnings/ 候选]
end
B -->|learn-from-session 工作流| C[三本日志 · WARM<br/>LEARNINGS / ERRORS / FEATURE_REQUESTS]
C -->|验证次数 >= 3| D[promotion-review 工作流<br/>dry-run 提案 → 人工审核]
D -->|晋升| E[行为规则层<br/>AGENTS.md 项目约定 / SOUL.md 身份 / TOOLS.md 工具陷阱]
E -->|通用化| F[skills/ · COLD 可复用能力]
F -.选择性注入<br/>只取与当前任务相关的经验.-> A
目录结构
dsh-self-evolving-agent/
├── README.md # 本文件
├── LICENSE # MIT © 2026 ZF
├── .gitignore
├── docs/ # 概念文档
│ ├── 01-memory-layers.md # 四层记忆与选择性注入原则
│ ├── 02-promotion-pipeline.md # 晋升/降级/撤销规则
│ └── 03-triggers.md # 六触发场景速查
├── templates/ # 可复制的模板
│ ├── LEARNINGS.md ERRORS.md FEATURE_REQUESTS.md
│ ├── SOUL.md AGENTS.md TOOLS.md
├── workflows/ # DSH 双文件工作流
│ ├── learn-from-session.meta.json / .workflow.js
│ └── promotion-review.meta.json / .workflow.js
├── skills/
│ └── self-evolving-loop/SKILL.md # 主循环技能(触发词: 出错/失败/复盘…)
└── examples/
└── sample-project/ # 可直接跑的示例项目(含 .learnings/ 与三本日志)
└── skills/example-skill/ # 示例技能(示例数据,非仓库级技能 bundle,不被自动发现)
快速开始
前提
安装并启动 DSH:
npx @deepseek-ai/dsh web
然后在浏览器打开 DSH Web GUI(默认 http://127.0.0.1:3080)。
1. 安装技能
技能命名必须为 kebab-case ASCII(正则 ^[a-z0-9]+(?:-[a-z0-9]+)*$),目录保持一层 bundle 结构 skills/<name>/SKILL.md(官方技能发现不支持递归 **/SKILL.md)。把本仓库的 skills/self-evolving-loop/SKILL.md 安装到以下任一位置(推荐项目级):
- 项目级(推荐):
<projectRoot>/.dsh/skills/self-evolving-loop/SKILL.md - 项目级(备选):
<projectRoot>/.agents/skills/self-evolving-loop/SKILL.md - 用户级:
<dshHome>/skills/self-evolving-loop/SKILL.md(Windows 默认 dshHome 即 DSH 的 data 目录)
刷新 GUI 后技能即被加载。技能触发词: "出错" / "失败" / "又踩坑" / "复盘" / "回顾" / "学习"。
2. 运行工作流
DSH 的 workflow 工具接收三个参数: meta、script、args。使用方法: meta 参数 = <name>.meta.json 的完整内容;script 参数 = <name>.workflow.js 的完整内容;args 参数 = 传入 JSON(见下)。
以 learn-from-session 为例(在示例项目上运行):
{
"meta": { "...learn-from-session.meta.json 的内容..." },
"script": { "...learn-from-session.workflow.js 的内容..." },
"args": { "projectRoot": "E:/知识库/04-项目/dsh-self-evolving-agent/examples/sample-project" }
}
promotion-review 同理,args 为:
{
"projectRoot": "E:/知识库/04-项目/dsh-self-evolving-agent/examples/sample-project",
"dryRun": true
}
安全默认:
dryRun缺省为true,只生成proposals/promotion-<日期>.md提案文档,绝不修改 AGENTS.md / SOUL.md / skills;人工审核通过后设dryRun: false重跑一次才会真正执行晋升写入。
3. 典型回路
- 会话中踩坑 → 按六触发场景把候选经验写入
.learnings/(技能会现场指导) - 会话结束跑
learn-from-session→ 零散经验被分类、去重、合并进三本日志 - 日志中验证次数 ≥ 3 的条目 → 跑
promotion-review(dry-run)→ 人工审核提案 - 确认后
dryRun: false执行晋升 → 规则进入 AGENTS.md / SOUL.md,通用能力提取为独立 skill - 后续会话按任务相关性选择性注入经验,Agent 越用越聪明
文件清单
| 文件 | 用途 |
|---|---|
| README.md | 项目说明与快速开始 |
| LICENSE | MIT 许可证(© 2026 ZF) |
| .gitignore | 忽略依赖/日志/缓存/数据目录 |
| docs/01-memory-layers.md | 四层记忆架构与选择性注入原则 |
| docs/02-promotion-pipeline.md | 晋升/降级/撤销规则与防误导机制 |
| docs/03-triggers.md | 六触发场景的检测信号与记录动作 |
| templates/LEARNINGS.md | 经验日志模板(日期/场景/教训/验证次数/状态) |
| templates/ERRORS.md | 错误日志模板(日期/命令/现象/根因/修复/可复现) |
| templates/FEATURE_REQUESTS.md | 需求日志模板(日期/需求/价值/状态) |
| templates/SOUL.md | 身份层模板(沟通风格/工作偏好/红线,≤100 行) |
| templates/AGENTS.md | 项目约定骨架模板 |
| templates/TOOLS.md | 工具陷阱骨架模板 |
| workflows/learn-from-session.meta.json | 经验整理工作流 meta(inspect/extract/merge/report) |
| workflows/learn-from-session.workflow.js | 经验整理工作流脚本体 |
| workflows/promotion-review.meta.json | 晋升评审工作流 meta(collect/evaluate/propose) |
| workflows/promotion-review.workflow.js | 晋升评审工作流脚本体(dry-run 安全) |
| skills/self-evolving-loop/SKILL.md | 自我进化主循环技能(何时记录/如何注入/何时晋升) |
| examples/sample-project/AGENTS.md | 示例项目约定(含已晋升规则) |
| examples/sample-project/SOUL.md | 示例项目身份(短示例) |
| examples/sample-project/.learnings/ | 4 条模拟经验候选(2 条验证次数 ≥ 3) |
| examples/sample-project/LEARNINGS.md | 示例经验日志 |
| examples/sample-project/ERRORS.md | 示例错误日志 |
| examples/sample-project/FEATURE_REQUESTS.md | 示例需求日志 |
| examples/sample-project/skills/example-skill/SKILL.md | 示例技能(已从教训晋升) |
| examples/sample-project/promotion-log.md | 示例晋升记录(说明格式) |
| docs/verification.md | 真实运行验证报告(两个工作流均已实跑) |
文档
- docs/01-memory-layers.md — 四层记忆: HOT/WARM/行为规则/COLD 与选择性注入
- docs/02-promotion-pipeline.md — 晋升管线: 验证门槛、晋升终点、降级撤销、防误导
- docs/03-triggers.md — 六触发场景: 检测信号 + 记录动作 + 日志模板片段
- templates/ — 全部模板(复制即用)
- examples/sample-project/ — 示例项目(可直接跑两个工作流)
License
MIT © 2026 ZF — 详见 LICENSE。
相关项目
- dsh-knowledge-forge — LLM 编译式知识库
- dsh-cad-copilot — CAD 自动化装配 Copilot
- dsh-self-evolving-agent — 本仓库: 自我进化 Agent
- dsh-workflow-symphony — 工作流交响曲
No comments yet. Be the first to write one.