dsh-web-search-ddg
aooyoo
Zero-token DuckDuckGo search provider for the DeepSeek Harness (DSH) web seam — local headless browser, no API key, no m…
PROJECT TOPICS
PROJECT README
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.
.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 次提请晋升 |
本项目灵感来自以下概念与实践(引用中文概念名,不附路径):
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)。
技能命名必须为 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 后技能即被加载。技能触发词: "出错" / "失败" / "又踩坑" / "复盘" / "回顾" / "学习"。
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重跑一次才会真正执行晋升写入。
.learnings/(技能会现场指导)learn-from-session → 零散经验被分类、去重、合并进三本日志promotion-review(dry-run)→ 人工审核提案dryRun: false 执行晋升 → 规则进入 AGENTS.md / SOUL.md,通用能力提取为独立 skill| 文件 | 用途 |
|---|---|
| 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 | 真实运行验证报告(两个工作流均已实跑) |
MIT © 2026 ZF — 详见 LICENSE。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。