DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Persona Anchor — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
P

dsh-persona-anchor

Persona Anchor

固定角色提示词部分,使其永远不会占用 AGENTS.md 的指令预算

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:harmless0819-dev/dsh-persona-anchor#2ca773fb709eee2a451ef8a268eddb4c17f99bf1
README兼容性版本

兼容性与来源证明

Persona Anchor 以 dsh-persona-anchor 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/9/20

版本

0.1.0stable
2026/9/20

相关插件

正在加载相关插件…

最新版
0.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/9/20
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 memory-context 分类下经过校验的插件。

Memory Plugin@openviking/dsh-memory-plugin适用于 DeepSeek Harness 的 OpenViking 记忆与上下文套件Contextdsh-context用于上下文洞察和管理的 DeepSeek Harness 插件,提供上下文仪表板和上下文命令,帮助了解上下文的构成及其演变过程。Weknora@wxg-prc-cpg/dsh-weknora适用于 DeepSeek Harness (dsh) 的 WeKnora 知识检索工具:通过自有知识库进行语义搜索、文档阅读以及 RAG/代理回答。Memsearch Dsh@zilliz/memsearch-dsh适用于 DeepSeek Harness 的 MemSearch 插件:在多个代理之间共享 Markdown 记忆,支持捕获、步骤前上下文注入、记忆召回技能和技能候选审核面板。

README

dsh-persona-anchor

把「人设」文本钉进 system prompt,且不吃 AGENTS.md 的指令预算。

  • 插件类型:DSH host plugin(web profile),无客户端半边
  • 依赖:仅 node 内置模块
  • 状态:自用插件,已在本机跑通

为什么需要它

人设原本写在全局 ~/.dsh/AGENTS.md 里,由 @deepseek-ai/dsh-agent-instructions 注入。 那个插件给「全局 + 项目 AGENTS.md」总共 65536 字节(maxBytes),渲染规则是 按最宽泛 → 最具体排序,先整份丢掉最宽泛的,放不下才截断最具体那份。

人设恰好在最宽泛那份里 ⇒ 项目文件一长大,人设就是第一个被牺牲的, 而且不报错(只在注入块顶部留一行 Workspace instruction budget …)。

源码核对(dsh-agent-instructions/lib/index.js):Config 只有 maxBytes / maxSourceBytes / 候选名之类,没有任何 pin / alwaysInclude / priority 能保住某个文件。

⇒ 结论:在 AGENTS.md 这条通道里没有「永不掉」的配置,必须换通道。

为什么不用 personaPrefix(最直觉,但会静默失效)

dsh-system-prompt 的 assemble() 里有这一句:

const sectionByName = this.layers.merge(scope, (layer) => layer.sections)

而 section() 的文档写着「A scoped section shadows a global section with the same name」。 本机默认 agent preset 是 standard,它自己就注册了 deployment:persona-prefix ⇒ 往跑着的会话上写 personaPrefix,会被那个 scoped section 整个盖掉,且不报错。

这正是本插件存在的理由:换一个没人会注册的 section 名。

做法

注册一个独有名字的 prompt section(默认 deployment:persona-anchor),内容从磁盘文件读。

  • 名字独有 ⇒ 不可能被 preset shadow
  • 通道是 systemPrompt.section() ⇒ 完全不经过 65536 预算

排序借用 getSectionOrder('DEPLOYMENT_PERSONA_PREFIX')(= 0),即「部署人设」该在的位置。

安装

dsh plugin --profile web add github:harmless0819-dev/dsh-persona-anchor

配置

- id: dsh-persona-anchor
  name: dsh-persona-anchor
  config:
    file: 'C:/Users/<you>/.dsh/persona.md'   # 必填,绝对路径
    onError: log                             # log(默认)| throw
键默认说明
file必填人设文件绝对路径
sectiondeployment:persona-anchorsection 名;改成别的独特名也行
maxBytes524288 (512 KiB)单次读取上限,防手滑指到大文件
onError'log'读文件失败时:log 只告警 / throw 硬失败
order部署人设位section 排序
reloadMs0>0 时定时重读
routetrue是否注册状态路由

验证它真的生效

改完 persona.md 后,新开一个会话,问它「你的名字/设定是什么」。 若人设没进来,插件会注册一个状态路由报告 state.error,可从那里看到失败原因 (文件不存在 / 太大 / 空文件)。

注意

  • inject 只列了 systemPrompt。webServer 是可选依赖, 代码里用 ctx.inject([...]) 延迟注册 —— 写进顶层 inject 会让 headless profile(没有 webServer)整个加载失败。
  • 读文件失败默认不抛,只在日志和状态里报告,避免一个人设文件打不开就把整个 profile 搞挂。

License

MIT