OpenViking
volcengine
Self-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:sufan721/dsh-evolution
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
让 DeepSeek Harness(dsh)Agent 自进化的 Cordis 插件。
它把 CowAgent 五层自进化机制逐层映射到 dsh 的扩展点上——让 Agent 越用越懂你、越用越少犯错。记忆在对话中自然积累,复盘在空闲时自动发生,核心记忆在夜间被蒸馏精炼,一切改动都可追溯、可回滚。
设计原则:改得克制、改得可控。每一次自主修改都隔离执行、留有备份、可被回滚。
| 层级 | 做什么 | 何时触发 | dsh 扩展点 |
|---|---|---|---|
| 1 基础记忆 | 记忆与知识维护 | 对话进行中 | systemPrompt.section() 注入 MEMORY.md;tools.register() 暴露记忆/知识工具 |
| 2 上下文总结 | 把压缩摘要落地到天级记忆 | 上下文超限时 | 监听 session/event 的 compaction/summary,写入当日记忆 |
| 3 会话复盘 | 从对话中提炼记忆、固化技能、沉淀任务 | 会话空闲后 | agent/status 空闲 + 轮次阈值 → runMaintenance() 隔离执行 → followup() 通知 |
| 4 梦境整理 | 蒸馏天级记忆为精炼核心记忆 | 每天定时(默认 23:55) | 插件内定时器 → 蒸馏 + 写梦境日记 → inject() 静默注入 |
| 5 源码自更新 | Agent 改写自身源码 | 被动/主动 | 默认关闭。rewrite_self 工具 + /self-restart 自检命令 |
npm install @deepseek-ai/dsh-evolution
需同时安装下列 peer 依赖(dsh 运行时框架):
@deepseek-ai/cordis
@deepseek-ai/dsh-agent
@deepseek-ai/dsh-commands
@deepseek-ai/dsh-llm
@deepseek-ai/dsh-session
@deepseek-ai/dsh-system-prompt
@deepseek-ai/dsh-tools
在 profile 的 cordis.patch.yml 里挂载插件(完整示例见 cordis.yml.example):
- insert:
- id: evolution
name: '@deepseek-ai/dsh-evolution'
config:
enabled: true
挂载后 Agent 自动获得记忆能力。对话中它会主动记录值得长期记住的内容;空闲 10 分钟后自动复盘;每晚 23:55 自动整理核心记忆。你也可以随时手动驱动:
/evolution status # 查看当前状态
/evolution reflect # 立即复盘
/evolution dream # 立即梦境整理
/evolution undo 3 # 回滚最近 3 次重写
插件向 Agent 暴露以下工具,由模型在对话中自主调用:
| 工具 | 作用 |
|---|---|
record_memory |
记录持久事实、偏好、决策或教训(core 每次注入提示词 / daily 当日日志) |
read_memory |
按关键词检索核心记忆与天级记忆 |
record_knowledge |
将可复用知识存为 Markdown 笔记 |
search_knowledge |
按关键词检索知识库 |
rewrite_self |
改写 srcDir 内的源码文件(默认关闭,路径隔离 + 自动备份) |
| 命令 | 说明 |
|---|---|
/evolution status |
展示记忆条数、各层开关与运行参数 |
/evolution reflect |
立即触发一次复盘 |
/evolution dream |
立即触发一次梦境整理 |
/evolution undo [N] |
回滚最近 N 次破坏性重写(默认 1) |
/self-restart |
轻量自检(仅在第 5 层开启时可用) |
dsh-evolution/
├── package.json # 包元信息
├── tsconfig.json # 独立 TS 配置(ESM)
├── cordis.yml.example # 挂载示例
└── src/
├── index.ts # 插件入口:Config schema + apply(),串起五层
├── memory.ts # MemoryStore:核心/天级记忆、知识库、备份、审计日志、undo
├── llm.ts # 一次性模型调用(askModel / resolveRoute)
├── tools.ts # 第 1 层:记忆/知识工具
├── reflect.ts # 第 3 层:复盘引擎(触发 + 执行 + 通知)
├── dream.ts # 第 4 层:梦境蒸馏
├── skills.ts # 技能落盘(写入 .dsh/skills)
├── selfupdate.ts # 第 5 层:源码自更新(默认关闭)
└── commands.ts # /evolution 命令注册
所有记忆落在工作空间的项目根目录(最近含 .git 的祖先,否则为 cwd)下:
<projectRoot>/
├── .dsh/
│ ├── skills/ # 技能目录(rank-100 本地发现根)
│ └── evolution/ # 记忆根(可配 memoryDir)
│ ├── MEMORY.md # 核心记忆,每次会话注入提示词(≤ maxCoreMemories 条)
│ ├── memory/ # 天级记忆 YYYY-MM-DD.md
│ ├── knowledge/ # Markdown 知识库
│ ├── dream/ # 梦境日记
│ ├── TASKS.md # 复盘沉淀的未完成任务
│ ├── change-log.md # 审计日志(每次自主改动一行)
│ └── backups/ # 改动前备份(undo 用)
{
enabled: true,
memoryDir: '.dsh/evolution', // 记忆根(相对项目根)
skillsDir: '.dsh/skills', // 技能输出目录
maxCoreMemories: 50, // 核心记忆条数上限
reflect: {
enabled: true,
idleMs: 600000, // 空闲多久后触发复盘(默认 10 分钟)
minTurns: 6, // 至少积累多少轮才复盘
maxTranscriptChars: 60000, // 复盘时发送给模型的上下文预算
},
dream: {
enabled: true,
at: '23:55', // 每天梦境整理时间(本地时区 HH:MM)
maxCoreMemories: 50,
},
sourceRewrite: {
enabled: false, // 源码自更新,默认关闭
srcDir: '.', // 允许改写的源码目录(路径隔离边界)
},
model: {
provider: '', // 可选:复盘/梦境专用 provider 覆盖
model: '', // 可选:专用 model 覆盖(留空则借用 agent 自身路由)
},
}
所有自主改动遵循「隔离执行 → 备份 → 留痕 → 可回滚」的链路:
agent.runMaintenance() 内,不开新轮、不污染主对话;模型调用是一次性 ctx.llm.stream()。backups/,再写入,并记一行到 change-log.md;/evolution undo [N] 可回滚最近 N 次重写。change-log.md 记录 时间戳 rewrite|append 文件路径。followup() 主动推送,梦境用 inject() 静默注入)。rewrite_self 只能写 srcDir 之内的文件,越界直接拒绝。dsh-compaction-basic(ctx.compaction 缝);本插件只做「总结落地到天级记忆」,不做重复压缩。dsh-skill-filesystem(dsh 内置本地 provider,扫描 .dsh/skills)。本插件只写文件、不直接依赖 ctx.skills,因此即便技能能力未挂载,记忆/复盘/梦境仍可正常工作。cow self-restart CLI),本插件不越权实现。provider / model 路由;无活跃 agent 且未配置 model 覆盖时,复盘/梦境会静默跳过。appendLine)不做备份(追加是低风险可加性操作),undo 只回滚破坏性重写。npm install
npm run build # tsc 编译到 lib/
npm pack # 生成可发布的 tarball
npm publish # 发布到 npm(access: public)
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: dsh-memory。