前言¶
在 DSH 里开多个对话时,常见需求有两类:一是进程一启动就把某几个会话拉起来继续上一轮工作;二是当前会话里把事情交给另一个会话去做,等对方跑完再把结果收回本对话。手工逐个打开会话、复制粘贴来回切换,既慢也不利于自动化。dsh-session-wake 面向这类工作流:开机自动唤醒指定会话(每间可单独配 provider / model / 思考强度),并给 AI 提供 session_task 等工具做跨会话派活与回收答复。它是 dsh-qq-wake 的继任者,但不依赖 QQ,也不读取任何桥的配置文件,与 dsh-qq-link 无关。
这是什么¶
- 插件名称:
dsh-session-wake - 维护者:waning-sun
- 分类:工作流(DSH 社区目录)
- 当前版本(package.json):1.0.2
- 许可证:MIT
插件做三件事:开机自动唤醒;每间会话可单独指定模型(未配则落回全局默认,再落回 DSH 的 agent-default-model);向宿主注册 list_sessions、wake_session、session_task 等工具,供智能体跨会话协作。
环境与依赖¶
运行前需满足:
- DSH
>= 0.2.1-rc.2(engines.dsh) - Node
>= 20
宿主应提供 agents、tools、webServer 服务;若有 sessionQuery(取答复)与 agentPresets(带预设装配)体验更完整,缺失时会退化为「裸唤醒 / 取不回答复」。
核心功能¶
开机自动唤醒¶
在 DSH → 设置 → 会话唤醒 中勾选要自动拉起的会话。DSH 启动后,在配置的「启动后延迟(毫秒)」之后执行唤醒;可为每条会话写「开机提示词」,叫醒后顺投递给该会话。
按会话配置模型¶
设置页提供总开关、默认 provider / model / 思考强度,以及「自动唤醒列表」。列表中每条可单独启用、覆盖模型与思考强度、设置开机提示词或移除。空白字段表示跟默认或 DSH 全局 agent-default-model 走。
给 AI 的三个工具¶
| 工具 | 作用 |
|---|---|
list_sessions |
列出所有会话的 id、标题、live,用于挑选目标。 |
wake_session |
叫醒一间会话,可附带一句话;不等其跑完。 |
session_task |
唤醒 → 投递内容 → 等待本轮跑完 → 将答复原文返回当前对话。 |
session_task 参数包括 会话、内容,以及可选的 等待秒?、provider?、model?、思考强度?。会话 支持完整 session-…、去掉前缀的 uuid、后 8 位或会话标题(标题冲突时返回候选列表)。
成功时返回结构示例:
{
"ok": true,
"会话": "session-…",
"标题": "干活的会话",
"状态": "跑完了",
"用时秒": 42.3,
"答复": "干完了,改了三处…"
}
超时时 状态 为 超时,答复 仍包含该段时间内已输出的内容。插件侧「等答复超时(秒)」默认 300,与设置页一致。
安装与启用¶
任选其一写入 profile 的 dsh.profile.bundles(cordis.patch.yml 会自动应用):
# ~/.dsh/profiles/<profile>/package.json
"dsh": { "profile": { "bundles": ["dsh-session-wake"] } }
或使用插件管理器(会代为写入上述配置):
dsh plugin add dsh-session-wake
装完后在 DSH → 设置 → 会话唤醒 中配置总开关、默认模型、自动唤醒列表、启动延迟与超时等。设置页提供「测一下」,对每条配置真叫一遍并展示明细(活着 / 被叫醒 / 叫不醒及原因、所用模型)。
配置文件¶
路径为 ~/.dsh/dsh-session-wake.json($DSH_HOME 优先)。示例字段如下(面板保存的优先级高于 cordis.patch.yml 里的 config,改完即时生效,无需重启 DSH):
{
"开": true,
"看日志": false,
"自动唤醒": [
{
"会话": "session-02b01e82-c126-4119-b1ad-6423b48db196",
"开": true,
"provider": "",
"model": "",
"思考强度": "",
"提示词": "继续上次没做完的活"
}
],
"provider": "",
"model": "",
"思考强度": "",
"唤醒超时秒": 300,
"启动延迟毫秒": 1500
}
同一间会话在列表中只保留第一条(写入时去重)。
典型用法思路¶
- 开机续工:在自动唤醒列表中勾选长期维护的会话,填写开机提示词(例如「继续上次没做完的活」),并视需要为该会话单独指定更快或更强的模型。
- 当前会话派活:在本对话中让 AI 调用
list_sessions选定目标,再用session_task把任务描述与上下文投递过去,等待返回的答复字段再继续本对话决策。 - 只叫醒不等待:仅需把另一会话拉起来并丢一句话、不关心何时结束时,用
wake_session即可。
实现上,已在线的会话不会重复 resume,而是用 agent.followup(message) 投递,避免打断正在运行的轮次;取答复时通过 sessionQuery.readSession 只收集本轮投递后的 assistant 文本。
适用场景与注意¶
适合:需要在 DSH 启动时固定拉起若干会话的多 Agent 工作流;希望在一个会话里编排另一个会话执行子任务并同步结果的场景。
注意:
- 插件在当前 DSH 进程权限下运行;安装与启用前应自行查看 GitHub 仓库 源码与 MIT 许可证,确认符合你的环境与安全策略。
- 面板路由
/dsh-session-wake/*自 1.0.2 起对保存与测试接口做了与宿主一致的 Host/Origin 与登录态校验;POST /save、POST /test要求content-type: application/json。 - 社区目录站点为独立生态入口,与 DeepSeek / 幻方无官方从属关系;插件信息以仓库 README 与发布版本为准。
结尾¶
dsh-session-wake 把「开机唤醒指定会话」和「跨会话 session_task 派活回收」收进同一套设置与工具,不绑 QQ、不读桥配置,适合在 DSH 内做多会话协作。更多信息见社区目录页 waning-sun/dsh-session-wake 与源码 github.com/waning-sun/dsh-session-wake。