🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

人设锚定 harmless0819-dev/dsh-persona-anchor

DeepSeek Harness
harmless0819-dev41 天前有提交已提供中文文档扫描:未发现敏感能力

把人设钉进系统提示,不再挤占指令字节预算

29.4/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/26 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add harmless0819-dev/dsh-persona-anchor
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · skill
装得上吗
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 41 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/10/31(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 人设写入系统提示词
  • 不占用指令字节预算

把人格固定进系统提示词区块,不再和 AGENTS.md 的 65536 字节指令预算抢空间。

README

由 DeepSeek 最新模型翻译生成
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 这条通道里没有「永不掉」的配置,必须换通道。
展开完整文档(README 剩余 1 节)
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//.dsh/persona.md' # 必填,绝对路径 onError: log # log(默认)| throw

| 键 | 默认 | 说明 |
| file | 必填 | 人设文件绝对路径 |
| section | deployment:persona-anchor | section 名;改成别的独特名也行 |
| maxBytes | 524288 (512 KiB) | 单次读取上限,防手滑指到大文件 |
| onError | 'log' | 读文件失败时:log 只告警 / throw 硬失败 |
| order | 部署人设位 | section 排序 |
| reloadMs | 0 | >0 时定时重读 |
| route | true | 是否注册状态路由 |

验证它真的生效

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

注意

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

License

MIT
预览分享卡片长什么样 ↓harmless0819-dev/dsh-persona-anchor
分享 · DeepSeek Harness Hub
harmless0819-dev/dsh-persona-anchor

把人设钉进系统提示,不再挤占指令字节预算

回到顶部