dshbase

插件目录 / Developer / dsh-soul-md

dsh-soul-md

已验证 · 实测可装 Scorp1o117

✓ 持续维护 基于 4 个官方 DSH 包

查看 GitHub ↗ ← 返回插件目录

2Stars
0Forks
0未关闭 issue
JavaScript语言
2026-08-15最近推送
跨平台平台

功能简介

dsh-soul-md — DSH 插件(工具)

✅
我们的评价
可用 — 实测通过,早期项目

dsh-soul-md — DSH 插件(工具) 实测能干净安装、正常启动。早期项目,但功能可用。

「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

README

dsh-soul-md

中文文档

GitHub: Scorp1o117/dsh-soul-md · npm: dsh-soul-md

Enhancement Suite npm

Part of the DeepSeek Harness Enhancement Suite — Vision · Soul/Persona · Long-term Memory · Plugin Marketplace.

Persona + long-term memory for DeepSeek Harness — zero file management:

In Settings → 人设卡, type a card name and its content, hit save. The plugin manages everything else.

What you get

  • Persona cards — the card content is rendered into the system prompt as
    the soul:persona section. Multiple cards are supported; pick a default,
    and switch per chat from the conversation header (a "人设" select).
  • Long-term memory — the agent gets five tools:
    • memory_append / memory_read / memory_rewrite — a persistent memory
      file (Agent.md / memory.md style). The active persona card has its own
      memory; otherwise the global memory is used.
    • soul_read / soul_update — the AI reads and evolves its own persona
      card
      : when it notices a stable trait, preference, or value of its own,
      it folds it into the card. It "grows" across sessions instead of
      resetting every time.
    • The memory is also injected as a soul:memory prompt section (capped)
      so the agent always sees its memories.
  • Resolution per prompt assembly: session choice (chat switcher) > workspace mapping > default card > none. Switching applies from the next turn — no restart.
  • Workspace personas (v0.5.2): Settings → 人设卡 lists every workspace with a card dropdown — sessions of that workspace use the assigned card by default (session-level switching still wins). Workspaces come from dsh's durable workspace registry, so no paths to type.

Install

The plugin is a plain Cordis row. Mount it in a profile patch
($DSH_HOME/profiles/<name>/cordis.patch.yml):

- insert:
    - id: soul-md
      name: 'dsh-soul-md'          # after: pnpm add dsh-soul-md in the profile

Then restart dsh web and open Settings → 人设卡: type a name + content, save.

Where things live (you don't need to care, but for reference)

  • Persona cards: stored in the soul-md settings namespace (settings.yaml),
    as cards: { name -> markdown } + active + per-session sessions.
  • Memory files: plugin-managed under $DSH_HOME/soul-md/memory/
    (global.md + one file per card), created on demand.
  • Upgrading from ≤ v0.4 (file-based)? The plugin auto-imports the old
    path card (as "默认") and the old memory file on first run.

Config

Field Default Meaning
cards {} Persona cards: name → markdown content (managed from the UI).
active '' Default card name; empty disables the persona by default.
sessions {} Per-session choice (sessionId → card name / none / ''); written by the chat switcher.
workspaces {} Per-workspace choice (workspace path → card name / none / ''); written from the settings page.
workspaceList [] Read-only workspace list (path + title), maintained by the host from dsh's workspace registry.
memory.maxBytes 1048576 memory_append / memory_rewrite refuse to exceed this size.
memory.inject true Render the memory as the soul:memory prompt section.
memory.injectMaxChars 8000 Cap for the injected section (from the file head).
memory.order 0.5 Prompt section order for the injected memory section.
legacy fields — path, fallback, order, complete, watch, debounceMs, soulMaxBytes, personas, roster, memory.path… kept so old composition entries and settings still validate; only used for the one-time import.

Notes

  • Never write {{ / }} in a card body — they are prompt-variable
    syntax; unknown variables fail rendering (no escape syntax yet).
  • Persona/memory sections resolve per assembly, so steady cards stay
    byte-identical (KV-cache friendly) and edits hot-apply.
  • The settings section needs the dsh-host-apiproxy namespace allowlist;
    the plugin patches it automatically on first start — restart dsh web
    once more
    and the section appears.
  • Suggest putting work-quality rules in the card (e.g. "task quality first")
    so roleplay never degrades real work.
  • Tested against DSH 0.1.0-rc.6.

License

MIT

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 dsh-soul-md」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。

Web profile:

dsh plugin --profile web add dsh-soul-md

Headless(CLI)profile:

dsh plugin --profile headless add dsh-soul-md

包信息

npm:dsh-soul-md · 版本 — · 实测环境 dsh 0.1.0-rc.6

实测报告

端到端验证通过:dsh 0.1.0-rc.6 上 L1 安装 + L2 加载 + L3 运行问答。

使用场景

扩展 agent 的编码能力面——给它一个新工具、工作流或集成,让它接手以前做不了的开发任务。

适合谁

想让 dsh 在真实代码库上像队友一样干活的开发者——能改、能跑、能验证,而不只是回答问题。

二次开发建议

工具/命令面就是缝:暴露更多 SDK 能力、加更聪明的上下文接线,或收紧改代码与验证之间的循环。

安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

Developer 里更多

浏览全部 7797 个插件 →