dsh-greeter
Verifieddsh-greeter · v0.3.0 · MIT · Web UI
DeepSeek Harness 新会话自动开场:新建会话后助手主动打招呼,开场白由模型按人设生成;可在插件页调开关/延迟/提示词。
Install
dsh plugin add dsh-greeter Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Published to npm without a public repository. Inspect the package contents before installing.
Tags
Creators
Readme
dsh-greeter
给 DeepSeek Harness(dsh)用的新会话自动开场插件: 新建会话后不用你先说话,助手会自己开口打招呼;开场白由模型按你的人设生成,不是硬编码文本。
为什么需要它
DSH 的会话是请求驱动的:新建一个会话只会写一条 header,没有用户输入就不会产生任何 turn,
模型根本没有机会说话。写在 AGENTS.md 里的开场规则,也只能等你说了第一句之后才生效。
本插件监听宿主侧的 agent/created 事件,在真正的新会话上主动投递一条消息唤醒驱动器,
于是招呼是模型生成的真招呼。
安装
方式一:插件页(推荐)
侧栏 →「插件」→ 搜索 dsh-greeter → 安装 → 重启 DSH。
方式二:命令行
dsh plugin install dsh-greeter
装完后在侧栏「插件」页找到 dsh-greeter,打开详情页即可配置。
配置
插件详情页里可以直接调,改完下一次新会话就生效,不用重启:
| 参数 | 说明 |
|---|---|
| 自动打招呼 | 总开关。关掉后一次模型调用都不产生 |
| 延迟(毫秒) | 0 = 会话一建立就开口;留一点窗口给手快先打字的自己(延迟期间你打了字,这次开场自动取消,不产生消耗) |
| 开场提示词 | 投给模型的第一条输入(不是最终台词,模型会照它定调) |
⚠ token 消耗:开启后每次新会话都会消耗一次模型调用(token)——开场白是模型 现场生成的,不是硬编码文本。怕费 token 就把总开关关掉。
也可以手改 ~/.dsh/dsh-greeter.json:
{
"enabled": true,
"delayMs": 1000,
"text": "(系统提示:新会话已开始,请按你的角色设定主动打个招呼。)"
}
关于 mode 字段(已删除)
早期版本有一个 mode: "system" 选项(session.append() 直接往会话日志写一条
user/message,不唤醒模型)。它会在 turn/start 之前抢占 DSH 系统提示
(system/message)必须占据的 surface head 位置,导致会话日志被判定为损坏、
上下文丢失。该模式已彻底删除,插件现在只有一种行为(投递消息叫醒模型)。
老配置文件里残留的 mode 字段会被静默忽略(不报错、不生效,下次保存时自动消失)。
安全阀
以下情况一律不打招呼,绝不打扰你:
- 只处理
startup来源;恢复会话 / fork / 清空 / 压缩全部跳过 - 子会话(subagent)跳过
- 会话里已经有你的消息 → 让位给你
- 待发队列里已经有内容 → 不插队
- 同一会话只打一次招呼
- 投递前再检查一遍(延迟窗口内你可能已经开口)
- 插件卸载时清掉待触发的定时器(关掉插件就真的不会再开口)
兼容性
- 需要 DSH 桌面版或
dshCLI。 - 插件是 bundle 形式(
dsh.bundle.patch),会被装进 profile 的组合包层。 - 宿主半侧零第三方依赖,只用 Node 内置模块;浏览器半侧通过
__ModuleLoader__挂配置面板。
开发与自测
node test/greeter.test.mjs
覆盖配置读写、坏值回落、各跳过分支、延迟与卸载清理、面板渲染等。改动 lib/*.js 后需重启 DSH。
许可证
MIT