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

事件驱动 Agent snhna-a/dsh-reactor

DeepSeek Harness
snhna-a40 天前有提交已提供中文文档扫描:含敏感能力

面向 DeepSeek Harness 的事件驱动自主 Agent 运行时

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

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

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add snhna-a/dsh-reactor
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · tool
装得上吗
实装验证未通过(dependency_conflict),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 40 天前
档位由哪些信号合成

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

验证判据与等级说明 →
⚠︎ 实装验证未通过(dependency_conflict · 2026/11/1) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-reactor(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/12 06:05:35

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 35 处,展示前 33 条)
  • 发起网络请求
    src/actions/webhook.ts:12
    const res = await fetch(action.target, {
  • 写入本地文件
    src/agent-session.ts:97
    await mkdir(workspacePath, { recursive: true })
  • 发起网络请求
    src/client/api.ts:132
    const res = await fetch(`${this.base}${path}`, {
  • 发起网络请求
    src/client/api.ts:153
    return this.request('/rules')
  • 发起网络请求
    src/client/api.ts:157
    return this.request('/rules', { method: 'POST', body: JSON.stringify(input) })
  • 发起网络请求
    src/client/api.ts:161
    return this.request('/rules', { method: 'PATCH', body: JSON.stringify({ id, patch }) })
  • 发起网络请求
    src/client/api.ts:165
    return this.request(`/rules?ruleId=${encodeURIComponent(id)}`, { method: 'DELETE' })
  • 发起网络请求
    src/client/api.ts:172
    return this.request(`/history?${q.toString()}`)
  • 发起网络请求
    src/engine.ts:335
    const res = await fetch(source.target, {
  • 读取本地文件
    src/engine.ts:354
    const content = await readFile(source.target, 'utf8')
  • 写入本地文件
    src/goal-session.ts:28
    mkdirSync(dirname(file), { recursive: true })
  • 写入本地文件
    src/goal-session.ts:29
    appendFileSync(file, line, 'utf8')
  • 读取本地文件
    src/host-modules.ts:25
    if (!existsSync(pjPath)) return null
  • 读取本地文件
    src/host-modules.ts:27
    const pj = JSON.parse(readFileSync(pjPath, 'utf8'))
  • 读取本地文件
    src/host-modules.ts:45
    if (existsSync(join(pkgDir, cand))) return join(pkgDir, cand)
  • 读取本地文件
    src/host-modules.ts:82
    if (existsSync(cacheBase)) {
  • 读取本地文件
    src/host-modules.ts:94
    if (existsSync(profilesBase)) {
  • 读取本地文件
    src/host-modules.ts:126
    if (!existsSync(pkgDir)) continue
  • 读取本地文件
    src/preflight.ts:28
    if (existsSync(cwd)) {
  • 读取本地文件
    src/preflight.ts:30
    accessSync(cwd, constants.R_OK)
  • 读取本地文件
    src/preflight.ts:32
    readdirSync(cwd)
  • 写入本地文件
    src/preflight.ts:44
    writeFileSync(probeFile, 'probe', 'utf8')
  • 删除本地文件
    src/preflight.ts:45
    unlinkSync(probeFile)
  • 执行外部命令来自配置/变量
    src/preflight.ts:54
    execFileSync(process.platform === 'win32' ? 'cmd.exe' : 'echo',
  • 执行外部命令固定命令
    src/preflight.ts:64
    execFileSync('git', ['--version'], { timeout: 3000, stdio: 'ignore' })
  • 读取本地文件
    src/store.ts:58
    const raw = await readFile(this.filePath, 'utf8')
  • 写入本地文件
    src/store.ts:82
    await mkdir(dirname(this.filePath), { recursive: true })
  • 写入本地文件
    src/store.ts:84
    await writeFile(tmp, JSON.stringify(state, null, 2), 'utf8')
  • 写入本地文件
    src/store.ts:85
    await rename(tmp, this.filePath)
  • 读取本地文件
    src/store.ts:106
    const raw = await readFile(this.filePath, 'utf8')
  • 写入本地文件
    src/store.ts:146
    await mkdir(dirname(this.filePath), { recursive: true })
  • 写入本地文件
    src/store.ts:149
    await writeFile(tmp, body, 'utf8')
  • 写入本地文件
    src/store.ts:150
    await rename(tmp, this.filePath)
扫描于 2026/11/2(1 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-invariants@deepseek-ai/dsh-tools@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 事件驱动自主运行
  • 轮询与推送事件源
  • 条件判断与组合动作

事件-条件-动作(ECA)自动化插件,给 DeepSeek Harness 用:把智能体变成主动看门狗,支持轮询/推送事件源、条件判断和可组合动作。

README

由 DeepSeek 最新模型翻译生成
面向 DeepSeek Harness 的事件驱动自主 Agent 运行时 让 DeepSeek Agent 从"随叫随到的助理"变成"主动感知环境、自主完成目标的守护进程"。 dsh-reactor 不是另一个 cron 插件。它把 DeepSeek Harness 的 Agent 变成一个事件驱动的自主运行时:你告诉它"监控什么、什么时候值得处理、想达成什么目标",它就在后台持续观察,一旦条件命中,拉起一个隔离的 Agent Session,让 LLM 用 ReAct 自主完成任务、验证结果、自动恢复,并留下完整运行轨迹。 社区插件,非 DeepSeek 官方出品。 Listed on dsh-plugin.org 为什么不是 cron?
展开完整文档(README 剩余 1 节)
面向 DeepSeek Harness 的事件驱动自主 Agent 运行时

让 DeepSeek Agent 从"随叫随到的助理"变成"主动感知环境、自主完成目标的守护进程"。

dsh-reactor 不是另一个 cron 插件。它把 DeepSeek Harness 的 Agent 变成一个事件驱动的自主运行时:你告诉它"监控什么、什么时候值得处理、想达成什么目标",它就在后台持续观察,一旦条件命中,拉起一个隔离的 Agent Session,让 LLM 用 ReAct 自主完成任务、验证结果、自动恢复,并留下完整运行轨迹。

社区插件,非 DeepSeek 官方出品。

Listed on dsh-plugin.org
为什么不是 cron?

| 维度 | 传统 cron 插件 | dsh-reactor |
| 触发方式 | 固定时间 | 任意事件源 + 条件评估 |
| 决策逻辑 | 到点就执行 | 评估条件后决定是否执行 |
| 执行方式 | 跑预设脚本 | 拉起隔离 Agent,LLM ReAct 自主完成 |
| 结果验证 | 无 | 确定性验证(文件存在/命令退出码) |
| 失败恢复 | 无 | 自动分类 + 智能 retry |
| 状态感知 | 无 | 上次摘要注入,续作不重头开始 |
| 可审计 | 日志 | 完整 Run Trace 决策链 |

安装

dsh plugin --profile web add dsh-reactor

安装后重启 dsh web,右下角出现时钟主题挂件。

卸载

dsh plugin --profile web remove dsh-reactor

快速开始

安装后,在 DSH 对话中直接用自然语言描述你的目标:

"帮我监控 https://api.github.com/repos/snhna-a/dsh-reactor 的最新 commit,当 HEAD 变化时,在 C:\work\dsh-reactor 目录里 git pull 最新代码并跑 npm run build,然后告诉我结果。"

Agent 会自动调用 reactor_define 创建规则。之后无需人工干预,规则在后台持续运行。

更多示例:

- "监控 deploy.json 文件,当 version 字段变化时,发 webhook 通知"
- "每 5 分钟跑 git log --oneline -1,当输出变化时,在新会话里分析这次提交"
- "轮询某网站的监控 API,当 status 变成 error 时,让 Agent 自动诊断并修复"

核心概念:ECG(事件-条件-目标)

dsh-reactor 把传统 ECA 升级为 ECG:

Event(事件) ↓ 轮询/监听/接收推送 Condition(条件) ↓ JSONPath + 比较运算 + AND/OR + changed Goal(目标) ↓ 拉起隔离 Agent Session,LLM ReAct 自主完成

关键区别:Action 模式跑固定脚本;Goal 模式把你的目标 + 事件上下文注入隔离 Agent Session,让 LLM 自己决定怎么完成——拉代码、跑测试、分析报错、修复、再验证,全程自主。

事件源

| 类型 | 说明 |
| http-poll | 轮询 HTTP 接口,解析 JSON/文本 |
| file-watch | 读取本地文件(自动处理 BOM) |
| command | 执行 shell 命令,解析 stdout |
| webhook | 外部系统 HTTP POST 主动推送 |

条件

JSONPath($.status、$.data.count)+ 运算符(eq/ne/gt/contains/exists/changed)+ AND/OR 组合。

两种执行模式

Action 模式(传统 ECA)
- shell:执行命令(支持 {{payload.field}} 模板)
- webhook:POST JSON 到指定 URL
- agent-talk:在隔离 Session 中跑提示词

Goal 模式(ECG,推荐)
- 拉起隔离 Agent Session
- 注入你的目标 + 上次运行摘要(续作)
- LLM ReAct 自主完成:读文件、跑命令、调工具、验证结果
- 完成后自动做确定性验证(文件存在/命令退出码)
- 失败自动分类 + 智能 retry

安全与防护

| 机制 | 说明 |
| Budget Gate | maxRunsPerDay / maxTokens 硬门,超限 blocked 0 token |
| Approval Gate | riskLevel: high + requireApproval → 等人工批准才跑 |
| Preflight | 启动 Agent 前检查工作目录/文件系统/网络能力,缺能力 blocked 0 token |
| Cooldown | 触发后冷却时间,防刷屏 |
| Overlap Protection | 同一规则不并发跑 |
| Failure Classification | 自动分类 transient/repairable/dangerous |
| Smart Retry | transient 错误(网络 blip/超时)自动多 retry 一次 |

可视化挂件

DSH Web 右下角常驻时钟主题挂件:

- 拖拽吸附:可拖到四边/四角,左吸附自动镜像翻转
- 大小调节:0.6–2.5x,半透明设置面板
- 触发提醒:规则触发、失败、重试时气泡提示
- 管理面板:总览 stats、规则列表(启停/删除)、规则详情
- Run Trace:每次 run 完整决策链时间线
- Failure 标签:一眼看出失败类型
- Token 消耗:每次 run 的 input/output/cache token

模型工具 Agent 通过以下工具管理规则(自然语言即可,无需手动操作):

| 工具 | 用途 |
| reactor_define | 创建规则(支持 action/goal 模式) |
| reactor_list | 列出所有规则及运行状态 |
| reactor_status | 查看规则详情 |
| reactor_test | 用模拟载荷手动测试规则 |
| reactor_remove | 删除规则 |
| reactor_history | 查看执行历史 |

规则持久化与审计

- 规则自动持久化到 ~/.dsh/reactor/rules.json,重启自动恢复
- 每次触发记录到 ~/.dsh/reactor/history.jsonl(ring buffer 500 条)
- 历史包含:触发时间、匹配结果、事件载荷、Agent 会话 ID、Token 消耗、Run Trace steps、失败分类
- 下次同规则触发时,上次摘要自动注入 goal prompt(续作不重头开始)

与其他 DSH 插件的关系

- dsh-cron / dsh-automation:定时任务。dsh-reactor 是事件驱动 + Agent ReAct,不重复。
- dsh-cron-panel:定时任务面板。dsh-reactor 挂件是事件驱动规则的可视化。
- dsh-taskboard:人机协作看板。dsh-reactor 是后台自主运行,不需要人逐条验收。
- dsh-agent-teams:多 Agent 编排。dsh-reactor 是事件路由,每个事件拉起一个隔离 Agent。

权限与风险

- shell 动作在 dsh 运行环境执行命令,仅信任你自己创建的规则。
- http-poll向配置 URL 发请求,确保目标可信。
- Goal 模式在隔离工作区创建 Agent Session,使用 permissionPreset 控制能力边界。
- webhook 入口默认仅本地回环监听;对外暴露请配置 webhookToken + TLS。
- 所有数据存储在本地 ~/.dsh/reactor/,不上传第三方。

兼容性

| 项 | 说明 |
| DeepSeek Harness | ≥ 0.1.2-rc.1(@deepseek-ai/cordis ^4.0.0) |
| Node.js | ≥ 22 |
| profile | web 完整能力;headless 自动降级 |
| 平台 | Windows / Linux / macOS |

开发

pnpm install
pnpm typecheck
pnpm build

dsh-reactor

面向 DeepSeek Harness 的事件驱动自主 Agent 运行时

将你的 DeepSeek Agent 从按需响应的助手,转变为主动感知世界、对真实条件采取行动并自主完成任务的守护进程。

社区插件——非 DeepSeek 官方产品。

为什么不用 cron?

| 维度 | 传统 cron 插件 | dsh-reactor |
| 触发 | 固定时间表 | 任意事件源 + 条件评估 |
| 决策 | 到点即运行 | 先评估条件 |
| 执行 | 预设 shell 脚本 | 拉起隔离 Agent,由 LLM ReAct 完成工作 |
| 验证 | 无 | 确定性检查(文件存在 / 命令退出码) |
| 恢复 | 无 | 失败分类 + 智能重试 |
| 状态 | 无状态 | 注入上次摘要——从上次中断处继续 |
| 审计 | 仅日志 | 完整 Run Trace 决策链 |

安装

dsh plugin --profile web add dsh-reactor

安装后重启 dsh web。右下角会出现一个时钟主题的挂件。

卸载

dsh plugin --profile web remove dsh-reactor

快速开始

安装后,只需在 DSH 聊天中描述你的目标:

“监视 https://api.github.com/repos/snhna-a/dsh-reactor 的新提交。当 HEAD 变化时,在 C:\work\dsh-reactor 中执行 git pull 并运行 npm run build,然后告诉我结果。”

Agent 会调用 reactor_define 创建规则。它会在后台运行,无需进一步输入。

更多示例:

- “监视 deploy.json;当 version 变化时,发送 webhook 告警。”
- “每 5 分钟运行 git log --oneline -1;当输出变化时,在新会话中分析该提交。”
- “轮询状态 API;当状态变为 error 时,让 Agent 诊断并修复它。”

核心概念:ECG(Event-Condition-Goal)

dsh-reactor 将传统 ECA 升级为 ECG:

Event
↓ poll / watch / webhook
Condition
↓ JSONPath + operators + AND/OR + changed
Goal
↓ spawn isolated Agent Session, LLM ReAct autonomously

关键区别:Action 模式运行固定脚本。Goal 模式将你的目标 + 事件上下文注入一个隔离的 Agent Session——由 LLM 决定如何执行:拉取代码、运行测试、读取错误、修复、重新验证,全部自主完成。

事件源

| 类型 | 描述 |
| http-poll | 轮询 HTTP 端点,解析 JSON/text |
| file-watch | 读取本地文件(已处理 BOM) |
| command | 执行 shell 命令,解析 stdout |
| webhook | 外部系统直接 POST 事件 |

条件

JSONPath($.status、$.data.count)+ 运算符(eq/ne/gt/contains/exists/changed)+ AND/OR。

两种执行模式

Action 模式(经典 ECA)
- shell:运行命令(支持 {{payload.field}} 模板)
- webhook:向 URL POST JSON
- agent-talk:在隔离会话中运行 prompt

Goal 模式(ECG,推荐)
- 生成隔离的 Agent Session
- 注入你的目标 + 上次运行摘要(延续)
- LLM ReAct 自主工作:读取文件、运行命令、调用工具、验证
- settle 后自动进行确定性验证(文件存在 / 退出码)
- 失败自动分类 + 智能重试

安全与防护

| 机制 | 描述 |
| Budget Gate | maxRunsPerDay / maxTokens 硬限制;超出 → 阻止,0 tokens |
| Approval Gate | riskLevel: high + requireApproval → 等待人工批准 |
| Preflight | 生成 Agent 前检查 workspace/filesystem/network;缺失 → 阻止,0 tokens |
| Cooldown | 窗口期内不重复触发 |
| Overlap Protection | 同一规则绝不并发运行 |
| Failure Classification | 自动标记 transient/repairable/dangerous |
| Smart Retry | 瞬时错误(网络抖动/超时)自动重试一次 |

Widget UI

DSH Web 右下角的时钟主题浮动 widget:

- 拖拽与吸附:拖到任意边缘/角落;左吸附自动镜像
- 尺寸:0.6–2.5x,半透明设置面板
- 触发警报:触发/失败/重试时气泡提示
- 管理面板:统计概览、规则列表(切换/删除)、规则详情
- Run Trace:完整决策链时间线(trigger→decision→approval→budget→retry→agent→verify→result)
- 失败标签:一眼识别失败类型(transient/repairable/dangerous)
- Token 用量:每次运行的 input/output/cache tokens

模型工具

Agent 通过这些工具管理规则(自然语言,无需手动 UI):

| 工具 | 用途 |
| reactor_define | 创建规则(action/goal 模式) |
| reactor_list | 列出所有规则及其状态 |
| reactor_status | 规则详情(上次 payload、运行状态) |
| reactor_test | 使用模拟负载测试规则 |
| reactor_remove | 删除规则 |
| reactor_history | 执行历史(Run Trace、tokens、失败类别) |

持久化与审计

- 规则自动持久化到 ~/.dsh/reactor/rules.json,重启时恢复
- 每次触发都记录到 ~/.dsh/reactor/history.jsonl(环形缓冲区,500 条)
- 历史包含:时间戳、匹配结果、负载、会话 ID、token 用量、Run Trace 步骤、失败类别
- 上次摘要会在下次触发时自动注入目标提示词(续接)

与其他 DSH 插件的关系

- dsh-cron / dsh-automation:定时任务。dsh-reactor 是事件驱动 + Agent ReAct。
- dsh-cron-panel:cron UI 面板。dsh-reactor 组件用于事件规则。
- dsh-taskboard:人机看板。dsh-reactor 在后台自主运行。
- dsh-agent-teams:多 Agent 编排。dsh-reactor 是事件路由——每个事件一个隔离的 Agent。

权限与风险

- shell 动作在 dsh 进程中运行;只信任你自己创建的规则。
- http-poll 会向配置的 URL 发起请求;确保目标可信。
- 目标模式会创建隔离的 Agent 会话,并通过 permissionPreset 进行边界控制。
- webhook 默认监听回环地址;如需对外暴露,请配置 webhookToken + TLS。
- 所有数据都存储在本地 ~/.dsh/reactor/;无第三方遥测。

兼容性

| 项目 | 要求 |
| DeepSeek Harness | ≥ 0.1.2-rc.1(@deepseek-ai/cordis ^4.0.0) |
| Node.js | ≥ 22 |
| Profile | web 全功能;无头模式自动降级 |
| 平台 | Windows / Linux / macOS |

开发

pnpm install
pnpm typecheck
pnpm build

许可证

MIT

许可证

MIT
预览分享卡片长什么样 ↓snhna-a/dsh-reactor
分享 · DeepSeek Harness Hub
snhna-a/dsh-reactor

面向 DeepSeek Harness 的事件驱动自主 Agent 运行时

这是你的仓库?认领条目

回到顶部