前言¶
DeepSeek Harness(DSH)里,会话通常等人发消息才动。若希望「下载目录一有新文件就整理」「CI 失败脚本 POST 一条本机请求后立刻分析日志」,单靠手动 @ 会话或定时插件不够:前者要人盯着,后者是「闹钟」式按点唤醒,接不住外部世界的瞬时信号。
社区插件 dsh-proactive 负责按时间自我唤醒;dsh-event-gate 补上另一半——文件监视与本地 Webhook 命中规则后,唤醒指定会话并注入渲染后的 prompt,作者 Willmylife 在 GitHub 仓库中将其称为事件驱动触发器(「门铃」)。本文介绍其定位、能力与可复现配置,事实以仓库 README 与 package.json(当前版本 v0.3.0)为准。
这是什么¶
dsh-event-gate 是 DSH 的工作流类插件:在规则文件里写清「听什么动静、叫醒哪个会话、醒了干什么」,插件在事件命中时把「发生了什么」作为 user 消息注入该会话——会话已打开则直接投递,关闭则先恢复再投递;每次触发写入审计记录,可通过工具与 JSONL 历史查询。
维护者:Willmylife。许可证:MIT。宿主要求:dsh >= 0.2.1-rc.2,node >= 22.5。
核心功能(v0.3.0)¶
文件系统事件源(fs)¶
递归监视目录,支持 glob 过滤与防抖合并;prompt 模板可用 {{paths}} 等变量携带合并后的文件列表。
Webhook 事件源¶
本机 POST /__dsh-event-gate/hook,按规则中的 token 鉴权,回环限定;模板变量 {{payload}} 为已剥离 token 的 JSON body。
唤醒与注入¶
活会话直接投递;冷会话通过宿主 agents.resume 恢复(尽力恢复模型选择与预设)后投递。规则文件 rules.json 保存即热更新,无需重启 DSH。
可观测性¶
提供 trigger_list / trigger_history 工具、/health 路由,以及 JSONL 触发历史(失败原因可查)。
安装与启用¶
插件收录到社区目录后,可在 DSH 设置 → 插件 → 添加插件中搜索 dsh-event-gate。命令行安装(资料原文,web profile)如下:
dsh plugin --profile web add github:Willmylife/dsh-event-gate#v0.3.0
桌面端请优先使用应用内「添加插件」。本地开发可用 link 方式,见仓库 README「开发安装」一节。
安装后可在本机访问健康检查(端口以当前 DSH 进程为准):
http://127.0.0.1:<端口>/__dsh-event-gate/health
应返回包含 "plugin":"dsh-event-gate" 的 JSON。
典型用法¶
1. 编写规则¶
规则文件路径:~/.dsh/event-gate/rules.json(JSON 数组;模板见仓库 rules.example.json)。
监视下载目录中的 PDF,防抖 3 秒后唤醒指定会话:
[
{
"id": "watch-downloads-pdf",
"source": "fs",
"enabled": true,
"watch": "C:/Users/86188/Downloads",
"filter": "**/*.pdf",
"debounceMs": 3000,
"targetSessionId": "<会话 id>",
"promptTemplate": "新文件:{{paths}}\n请检查。"
}
]
CI 或监控脚本通过 Webhook 触发:
{
"id": "ci-alarm",
"source": "webhook",
"enabled": true,
"token": "至少 8 字符的随机口令",
"targetSessionId": "<会话 id>",
"promptTemplate": "收到消息:{{payload}}\n请分析。"
}
模板变量:通用 {{ruleId}}、{{source}};fs 另有 {{count}}、{{paths}};webhook 有 {{payload}}。
会话 id:从会话 URL 或侧栏复制,或在会话中向模型询问。
2. 调用 Webhook(本机)¶
curl -X POST "http://127.0.0.1:<端口>/__dsh-event-gate/hook" \
-H "content-type: application/json" \
-H "x-event-gate-token: <你的token>" \
-d '{"rule":"ci-alarm","message":"main 分支构建失败"}'
3. README 中的典型场景(机制说明)¶
- 下载目录自动整理:新文件出现后会话按规则归档、改名或写摘要。
- 报警自动诊断:监控或 CI 脚本 POST 消息后,会话分析失败原因并给出修复建议。
- 日志哨兵:监视日志目录,出现 ERROR 时读上下文并定位问题。
- 脚本衔接 DSH:打包流程或快捷指令结束时用一条 curl 让会话继续下一步。
适用场景与注意¶
适合已在 DSH 中固定使用某一「长期任务会话」、又希望本机文件系统或其它程序以事件方式驱动该会话的开发者。
插件与 DSH 同进程、同本机权限运行;Webhook 鉴权依赖规则 token 且限定回环,仍应在安装前阅读源码与 MIT 许可证,自行评估监视目录范围与 token 强度。社区插件目录 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-event-gate 把「外部事件 → 指定会话 + 结构化 prompt」收成一份 rules.json,与 dsh-proactive 的定时唤醒形成互补。进一步了解:
- 目录页:https://www.skillhub.cn/plugins/Willmylife/dsh-event-gate
- GitHub:https://github.com/Willmylife/dsh-event-gate