dsh-plugins
ARCHIVED — experimental prototype, not maintained.
These plugins (memory, skill-create, skill-curator) were built as a research exercise porting hermes-agent mechanisms to DeepSeek Harness. They work, but the exercise concluded they are not useful: DeepSeek Harness deliberately keeps session state in the session log and treats skills as user-authored, vetted inputs; the official repo does not accept external PRs and has repeatedly, in writing, chosen not to build these mechanisms. The code remains here for reference. No further maintenance is planned.
English | 中文
Ecosystem plugins for DeepSeek Harness, porting two of the most important mechanisms from NousResearch/hermes-agent: the bounded cross-session memory system and the skill lifecycle curator.
| Package | What it does |
|---|---|
@hyls9527/dsh-memory |
Bounded, file-backed MEMORY.md / USER.md memory: §-separated entries under character limits, a frozen snapshot injected at each session start, one memory tool (add / replace / remove / batch), periodic persistence nudges, atomic writes with drift protection. |
@hyls9527/dsh-skill-create |
Skill authoring: a skill_create tool that persists reusable procedures as user skills (create / update), plus a creation nudge — the missing half of the self-improving loop. |
@hyls9527/dsh-skill-curator |
Automatic skill-tool usage tracking plus a skill_curator tool: report usage and staleness, archive unused skills out of the catalog, restore them. |
Together the three form the full learning loop hermes-agent is famous for: remember (memory), create (skill-create), track & curate (skill-curator).
Both packages are installable dsh bundles, verified against DeepSeek Harness 0.1.0-rc with 100% per-file test coverage.
Install
dsh plugin --profile web add @hyls9527/dsh-memory
dsh plugin --profile web add @hyls9527/dsh-skill-create
dsh plugin --profile web add @hyls9527/dsh-skill-curator
Or from this checkout:
dsh plugin --profile web add ./packages/memory
dsh plugin --profile web add ./packages/skill-create
dsh plugin --profile web add ./packages/skill-curator
dsh plugin adds each package to the profile's dsh.profile.bundles; each bundle's patch inserts its row. To customize, override by id in the profile's cordis.patch.yml:
- id: memory
config:
memoryCharLimit: 4000
nudgeInterval: 0
See examples/cordis.yml for a complete self-contained overlay.
How they were built
Both plugins follow the harness's own conventions rather than inventing new ones:
- Everything is a plugin row. Each package is a dsh bundle whose
cordis.patch.ymlinserts one row; nothing else changes. - Model-visible ⟺ logged. The memory snapshot travels as a durable
user/messagecarrying amemorysource, so it reconstructs from the session log — no new session event vocabulary (out-of-repo plugins cannot register any yet). Tool calls and results are logged by the harness itself. - Prefix-stable prompts. The snapshot is logged once at session start; mid-session writes never touch it, so provider KV caches survive whole sessions.
- One capability, three roles in one package (store service + file provider + model-facing tool), like
dsh-llm. - Guards over guesses. Unreadable files are never treated as empty; externally edited content is snapshotted to
.bak.<ts>and refused; every commit is an atomic rename under a cross-process lock — the hermes-agent invariants that keep a memory system trustworthy.
Development
pnpm install
pnpm typecheck
pnpm test # vitest, 100% coverage per package
pnpm build
Node ^22.19 || >=24, matching the harness engines range.
License
MIT
No comments yet. Be the first to write one.