galvanize-dsh: 让 DSH Agent 通过事件主动唤醒会话

前言

在开发 DeepSeek Harness (DSH) Agent 时,传统的做法通常是轮询外部数据源。这种方式效率较低,且无法及时响应突发事件。galvanize-dsh 插件解决了这个问题,它为 DSH Agent 提供了一组事件触发工具,允许 Agent 在文件到达、邮件接收、Webhook 触发或 Git 事件发生时,主动唤醒一个全新的 DSH 会话。

插件定位

这是一个由 jarvis959 维护的 DSH 原生插件包,旨在通过 galvanize 核心守护进程监听外部事件。当事件触发时,它会启动一个无头(headless)的 DSH 会话,并传入预设的 Prompt 和事件数据。插件本身是一个轻量级的验证客户端,所有逻辑通过代理转发至核心的本地 API。

核心功能

安装完成后,插件会向 DSH Agent 的工具集中注入以下命令:

  • trigger_add: 注册触发器(支持文件夹监听、邮件、Webhook、emit 等事件类型),是“轮询”模式的替代方案。
  • trigger_list: 列出当前所有已注册的触发器及其具体配置。
  • trigger_test: 向真实分发路径发送一个合成事件,用于测试触发逻辑是否正常。
  • trigger_status: 检查健康状态,包括守护进程状态、今日触发次数、最近触发时间和错误信息。
  • trigger_remove: 移除指定的触发器,并清理相关路由。

安装与启用

安装前请确保系统环境满足以下要求:
* 已安装 galvanize 核心守护进程并开启了自启动。
* DeepSeek Harness CLI 已在系统 PATH 中。
* Node.js 版本满足要求(需 ^22.19 或 >=24)。

执行以下命令即可完成安装:

npx github:lychee888/galvanize-dsh install

安装过程会进行严格的验证:
1. 检查 galvanize 核心的版本握手。
2. 验证对核心的只读访问权限。
3. 探测目标 Profile 和 Wake Profile 的连通性。
4. 检查插件的存活状态。
只有当所有检查通过(显示 LOADED)后,安装才算完成。安装后可通过 galvanize-dsh verify --profile <name> 重新运行检查。

典型用法

安装完成后,可以通过 CLI 或自然语言指令创建触发器。

示例 1:通过 CLI 监控文件夹
监控指定文件夹,并在文件到达时生成摘要:

galvanize add folder ~/inbox --name triage --wake dsh \
  --prompt 'Read {file} and write a triage summary to ~/inbox-out/{file}.md'

echo hello > ~/inbox/demo.txt   # 文件到达后,会在 ~/inbox-out/demo.txt.md 生成摘要

示例 2:通过自然语言指令
直接在 DSH 聊天窗口中发送指令,Agent 会自动调用 trigger_add 并测试触发一次:

“wake me when a lab report lands in my inbox”

适用场景与注意

  • 架构说明:插件是一个“薄客户端”,不包含唤醒或触发逻辑,所有操作通过代理转发至核心 API (GET /version, POST /manage/<op>),行为与 Hermes / Claude Code / Codex 等插件保持一致。
  • 冲突检测:插件与 galvanize mcp 不应同时存在。核心会通过 ~/.galvanize/surfaces.json 检测并标记双重挂载,确保只有一个活跃的插件表面。
  • Webhook 配置:使用 webhook 类型触发器时,需要配置 relay_url 和 relay_token,并部署 galvanize relay 服务。
  • 权限要求:插件以当前 DSH 进程权限运行,安装前请检查源码与许可证(MIT)。

总结

galvanize-dsh 将 DSH 从被动轮询转变为事件驱动的架构。通过简单的配置,你可以实现文件监控、自动化摘要等场景。更多细节请访问 GitHub 或插件目录页。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜