Repository navigation
Agent 技能自我进化:Hermes 式学习循环在 DeepSeek Harness 上的落地 #3898
QIANLING-0831
started this conversation in
Ideas
Replies: 1 comment
|
很有意思的对照——你在 DSH 上落地 Hermes 式技能循环,而 Pi 生态那个「原版」 有一点你的落点其实更原生:hermes 内部也有 skill 管理工具,但写的是 Pi 形状的技能文件,在我们的桥下被重定向到内部目录、进不了 DSH 原生技能根;你直接写 它有一条设计经验或许对你的 3.2(反思 → 写技能)有用:hermes 把「永久置顶」类内容结构性挡在模型写入路径之外—— 利益相关:pi2dsh 是我们维护的。 |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
1. 背景:DSH 原生 skill 系统是什么
DSH 自带技能系统(
@deepseek-ai/dsh-skill+dsh-skill-filesystem+dsh-tool-skill):<name>/SKILL.md或平铺<name>.md;name(kebab-case)与description,可选whenToUse、disable-model-invocation、user-invocable;dsh-skill-filesystem从若干"根"扫描技能并注入会话技能目录,根有优先级(项目.dsh/skills100 > 用户$DSH_HOME/skills400 > bundled 600);skill工具按名加载技能正文。关键点:技能文件是纯文本、无插件状态——所以"自己写技能"本质上就是"写这些 Markdown 文件"。
2. 技能管理器:让模型能增删查
模型通过三个工具操作技能(
dsh-memory-skills提供):skill_write(name, description, whenToUse?, content)skill_delete(name)skill_list()(managed))核心是原子写(写临时文件再 rename),失败不残留半成品:
写入目标默认
$DSH_HOME/skills(正是dsh-skill-filesystem的 user-dsh 根,rank 400,目录自带 watcher 自动失效缓存)——写完立刻进会话技能目录,下一步就能被原生skill工具加载,无需重启。3. 后台自我进化:反思 → 蒸馏 → 写技能
"后台"意味着不在请求路径上(fire-and-forget),不能打断主循环、不能污染会话历史、不能动 KV 前缀缓存。
3.1 触发:定时 + 水位线
水位线保证每段事件只被反思一次;冷却期 + 窗口(最近 N 条)+ 门槛把 LLM 成本压平。
3.2 反思:一次严格 JSON 契约的 LLM 调用
向
ctx.llm.stream发一条固定的 system prompt("背景技能策展人"),要求只返回 JSON:{"evolve": true, "name": "kebab-case 技能名", "description": "一句话", "whenToUse": "何时用", "content": "Markdown 正文", "reason": "为何值得留存"} {"evolve": false, "reason": "一次性内容,不构成技能"}解析时剥掉 ```json 围栏、用括号配平提取首个 JSON,容错降级为"跳过":
3.3 记录与容量
skill_events日志(created / updated / skipped / invalid / cap / error),可查;cap,避免白烧 LLM;4. 与 dsh-memory-evolve(205★)的取舍
社区已有大而全的
dsh-memory-evolve(五轨记忆 + 技能自进化 + COI 调度 + WebUI)。dsh-memory-skills刻意小而聚焦:要不要上 WebUI、多人协同、git 分支感知,属于后续扩展项。
5. 真机验证与一个真实踩坑
在真实 harness(headless profile)用一次性任务跑通了完整闭环:
踩坑记录(值得写进你的实现):cordis 插件加载器读命名导出——如果你的插件同时
export default apply,加载器会把裸函数当入口,inject列表失效,启动报cannot get property "tools" without inject。其他官方插件都没有默认导出,照做即可。6. 小结
skill_write增删、用ctx.skills目录暴露;仓库:https://github.com/QIANLING-0831/dsh-memory-plus (
packages/dsh-memory-skills,MIT)欢迎试用、提 issue。
All reactions