DeepSeek Harness 插件

dsh-openclaw-persona

DSH profile bundle: load OpenClaw-style persona files (SOUL.md, IDENTITY.md, USER.md, TOOLS.md, MEMORY.md, AGENTS.md, HEARTBEAT.md, memory/*.md) into every DSH session whose workspace contains an(英文原文)

跳到安装方式

来源信息

GitHub 仓库
AskingTheHeavens/dsh-openclaw-persona
最近更新
2026年8月18日
分类
记忆
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/AskingTheHeavens/dsh-openclaw-persona
插件名:dsh-openclaw-persona
作者:AskingTheHeavens

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器3 个文件
README.md来源说明 · 只读预览

@user/dsh-openclaw-persona

> Bring OpenClaw-style persona files (SOUL.md, IDENTITY.md, USER.md, TOOLS.md, > MEMORY.md, AGENTS.md, HEARTBEAT.md, plus memory/*.md daily notes) into > DeepSeek Harness (DSH) as a > standard profile bundle that activates automatically for every agent in > any session whose working directory contains an openclaw/ subdirectory.

Install

dsh plugin --profile web add github:AskingTheHeavens/dsh-openclaw-persona

Then restart DSH so the bundle is composed into the host composition. Bundles are not hot-reloadable; one restart is required after install.

Verify the install:

dsh plugin --profile web list
# └── @user/dsh-openclaw-persona@github:AskingTheHeavens/dsh-openclaw-persona

Uninstall:

dsh plugin --profile web remove @user/dsh-openclaw-persona
# then restart DSH

For non-web profiles (tui, headless, custom), substitute your profile name for web.

> Source of truth: github.com/AskingTheHeavens/dsh-openclaw-persona. > Report issues there.

What this plugin does

DSH normally loads AGENTS.md (and CLAUDE.md) via @deepseek-ai/dsh-agent-instructions. OpenClaw uses a richer set of workspace files to give an agent identity, memory, and context. This bundle brings that whole set into DSH.

For every agent whose session has a working directory of, say, /opt/B/, the plugin reads:

File / DirWhat it becomesOrder
openclaw/SOUL.mdsystem-prompt section openclaw:soul0
openclaw/IDENTITY.mdsystem-prompt section openclaw:identity1
openclaw/USER.mdruntime context openclaw:user (always)50
openclaw/TOOLS.mdruntime context openclaw:tools (always)60
openclaw/MEMORY.mdruntime context openclaw:memory (main session only)70
openclaw/memory/*.mdruntime context openclaw:daily (latest 2, by filename)80
openclaw/AGENTS.mdruntime context openclaw:agents (OpenClaw boot protocol)110
openclaw/HEARTBEAT.mdruntime context openclaw:heartbeat (only if it has real tasks)120

These match the OpenClaw file semantics:

  • MEMORY.md is main-session only — never loaded into a sub-agent or

group chat. (mainOnly: true)

  • HEARTBEAT.md is injected only when it has actual tasks, not when it

is empty or contains only comments. (heartbeatOnlyWhenNonEmpty: true)

  • memory/*.md is truncated to 16 KiB per note and capped at the **2 most

recent** files, matching OpenClaw's "today + yesterday" convention.

  • AGENTS.md is loaded by @deepseek-ai/dsh-agent-instructions for the

workspace root. This bundle does not duplicate that load; it reads openclaw/AGENTS.md (the OpenClaw-side protocol) as a separate runtime context named openclaw:agents.

Sessions in workspaces without an openclaw/ subdirectory see no difference — the registered sections/contexts are empty and get dropped at render time.

Usage

After install and restart, create an OpenClaw-style workspace in any directory you want to use:

/your/workspace/
└── openclaw/
    ├── AGENTS.md
    ├── SOUL.md
    ├── IDENTITY.md
    ├── USER.md
    ├── TOOLS.md
    ├── MEMORY.md
    ├── HEARTBEAT.md
    └── memory/
        └── 2026-08-16.md

Create a DSH session with that directory as the workspace:

dsh --cwd /your/workspace

or in the Web UI, start a new session in that workspace. The OpenClaw files are auto-loaded into the system prompt (SOUL.md, IDENTITY.md) and the runtime context (everything else). No preset selection is needed; the bundle applies to every session, in every preset.

Configuration

Subdirectory name

By default the plugin reads from ./openclaw/ inside the session workspace. Override via the environment variable:

OPENCLAW_SUBDIR=persona dsh --cwd /your/workspace
# reads from /your/workspace/persona/ instead of /your/workspace/openclaw/

Daily notes limit

The default is 2 (matching OpenClaw's "today + yesterday" convention). Edit DAILY_NOTE_LIMIT in src/index.js to change.

Per-file byte cap

Daily notes are truncated at 16 KiB each. Edit DAILY_NOTE_MAX_BYTES in src/index.js to change.

Uninstall

dsh plugin --profile web remove @user/dsh-openclaw-persona
# then restart DSH

Or, if installed from a local path, just remove the dependency:

# in your profile dir
pnpm remove @user/dsh-openclaw-persona
# then restart DSH

How it works (technical)

A DSH profile bundle is an npm package whose package.json declares:

{
  "dsh": {
    "bundle": {
      "patch": "./cordis.patch.yml"
    }
  }
}

The cordis.patch.yml declares one row (a Cordis plugin row) that loads this package's src/index.js. The loader reads the file with Node's require, sees the named exports name + apply, and registers a host- scoped Cordis Plugin. The plugin's apply(ctx):

1. Reads process.env.OPENCLAW_SUBDIR (default 'openclaw'). 2. Subscribes to ctx.on('agent/created', ...) and ctx.on('agent/disposed', ...). 3. When an agent is created, registers openclaw:soul / openclaw:identity as system-prompt sections on the agent's own system-prompt service, and openclaw:user / openclaw:tools / openclaw:memory / openclaw:heartbeat / openclaw:agents / openclaw:daily as runtime contexts. The text functions read from a per-agent cache populated once at attach time. 4. On ctx.on('tools/result', ...) for any successful read / write / edit against a file inside openclaw/, refreshes the relevant cache entry so subsequent turns see fresh content.

Files are read with Node's built-in fs directly, not the DSH fs service, because DSH's host scope does not expose fs to bundle plugins.

License

MIT — see [LICENSE](./LICENSE).