dsh-plugin-mnemosyne
学习研究 活跃维护

dsh-plugin-mnemosyne

xuviga/dsh-plugin-mnemosyne

轻量级错误记忆插件,自动积累代理运行产生的错误样本形成记忆库,对已出现过的同类错误前置拦截,避免重复踩坑,有效提升智能体运行稳定性与执行效率

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
JavaScript
主要语言
MIT
开源协议
14 KB
仓库大小
27 天前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:xuviga/dsh-plugin-mnemosyne
git clone https://github.com/xuviga/dsh-plugin-mnemosyne.git
git clone git@github.com:xuviga/dsh-plugin-mnemosyne.git
README.md main

🧠 Mnemosyne — an error-memory plugin for DeepSeek Harness

"Don't step on the same rake twice. And if you do — at least make sure it doesn't happen a third time."

Mnemosyne is a plugin for DeepSeek Harness that remembers your agent's mistakes and refuses to let it repeat them. It learns from your own screw-ups: catches an error → remembers it → comes up with a fix → simply won't let it happen again.

Why you want this

Agents are people too — they trip over the same things. Wrong path, forgotten argument, a drive that doesn't exist. Mnemosyne watches over this and turns every stumble into a lesson: it records the error, writes the remedy and — the important part — suggests the actual fix, so the agent can just keep going.

This is not "yet another logger". This is a guard dog that actually steps in: a repeated failing call simply never executes.

How it works

  1. Catches. The plugin listens to tool results (tools/result) and agent errors (agent/error). A call fails — it already knows.
  2. Remembers. Every error becomes a signature (tool :: category :: message) with a repeat counter.
  3. Figures out the fix. On the second occurrence an automatic remedy is written: file errors → "check the path", schema errors → "validate arguments", and so on. If an LLM is configured, the plugin asks the model for a precise fix.
  4. Suggests the correction. Saying "check the path" is lazy. Mnemosyne says what exactly to fix. It spots a missing M:\ drive? It offers D:\ and shows you the corrected command, ready to copy.
  5. Blocks the repeat. Same tool, same arguments — the call is intercepted before dispatch. The agent gets an explanation and a fix instead of another error.
  6. Learns from success. Once the agent finally nails it, the lesson flips to fixed ("the remedy worked").

Feature list

Feature What it does
🎯 Auto-learning catches, remembers, classifies (fs / schema / parse / timeout / guard / runtime)
🩹 Auto-remedy a recipe for every repeat + a concrete fix (a ready-to-use command)
🛡️ Guard a repeated failing call is blocked before it runs
⏱️ Time window only blocks recent repeats (5 minutes by default)
🕊️ Amnesty after 3 blocks the guard backs off — it won't choke a tool forever
🤖 LLM remedies the model writes the fix (when a provider is configured), otherwise a template
💾 Persistence lessons survive Harness restarts
🧹 Rules /mnemosyne forbid <tool> / allow — manual bans
📊 Reports /mnemosyne status and /mnemosyne report — stats and top lessons
🖥️ Live panel a card in the Run view: counters, categories, recent blocks

Install

Drop src/host.js and src/client.js into your project and wire them in via an overlay:

# cordis.yml
- insert:
    - id: mnemosyne
      name: './src/host.js'
      config: {}
pnpm dsh web --patch ./cordis.yml

The panel shows up in the Run card and the /mnemosyne command becomes available in chat.

Commands

/mnemosyne status              — list lessons (error + remedy + fix)
/mnemosyne report              — summary: categories, top lessons, blocks, timeline
/mnemosyne forbid <tool>       — ban a tool entirely
/mnemosyne allow <tool>        — lift the ban
/mnemosyne clear               — wipe the memory

The model also gets mnemosyne_status and mnemosyne_learn tools.

Live example

$ Get-Content "M:\autofix\data.txt"
  → Cannot find drive. A drive with the name 'M' does not exist.

$ Get-Content "M:\autofix\data.txt"        # again
  → Mnemosyne remembered the lesson: recurring + remedy

$ Get-Content "M:\autofix\data.txt"        # third time
  → ⛔ Mnemosyne: blocked — the same failing call to 'pwsh' recurs (2x).
    Suggested fix: Replace M:\ with D:\ in the command — e.g. Get-Content "D:\autofix\data.txt"

The agent copies the fix, runs it successfully — and the lesson closes as fixed.

Under the hood

  • Host (src/host.js) — the brain: lesson registry, classifier, autofix, guard, persistence, command, RPC.
  • Client (src/client.js) — a live browser panel (React, no JSX).
  • Plain JavaScript, no build step — a stock Cordis plugin for Harness.

License

MIT — take it, tweak it, share it. If you build something cool on top of it, tell us!


Made for DeepSeek Harness. Questions, ideas, bugs — Issues are welcome.