dsh-attention-router: Tiered alert/decide/inform to reduce unnecessary agent interruptions

前言

在 DeepSeek Harness(DSH)里跑智能体时,常见痛点是:每一步完成、每条日志、每个指标都想推给人看。人真正需要立刻处理的,往往是故障、回滚触发,以及需要审批或上生产的决策;其余「已完成的工作、记录、指标」更适合静默落日志。若不做路由,注意力会被通知淹没,告警也容易被淹没。

下面介绍社区插件 dsh-attention-router(维护者 jerentpan-lab,npm 包名 dsh-attention-router,当前版本 0.2.0,MIT 许可证)。它把每条事件分成三档,并给出对应动作,对应 README 里所说的 “attention is the bottleneck”:只在 alert 与 decide 上打断人,inform 默认只记录、不通知。

社区目录页:SkillHub - dsh-attention-router(独立站点,与 DeepSeek / 幻方无官方从属关系)。DSH 生态理念是「一切皆插件」,安装前请自行查看源码与许可证;插件以当前 dsh 进程权限运行。

这是什么

dsh-attention-router 是 DSH 上的工作流类插件:对文本做 attention 路由——分类后决定是立即送达、排队待审,还是仅记录。

tier 含义 动作
alert 故障、失败、数据丢失、回滚触发 立即送达(deliver now)
decide 需要人决策(审批、删除、生产变更等) 排队待审(queue for review)
inform 已完成工作、记录、指标 仅日志(log only,默认静默)

简介(与仓库一致):Attention router for DeepSeek Harness: classify events into inform / decide / alert so agents stop over-notifying.

核心功能

分级与路由

每个事件被归入上述三档之一,并映射到 action / 是否 notify 等行为(具体字段由工具返回,见下文 notify_classify)。

插件工具

  • notify_classify:对文本分类,返回 { tier, matched, action, notify }。
  • notify_policy:查看当前策略与规则条数。

配置(0.2.0)

默认与扩展示例见仓库 config.example.json。主配置结构如下:

{
  "rules": { "alert": ["lookup failure"], "decide": ["approve this"] },
  "rulesFile": "~/.dsh/attention-rules.json",
  "rulesFileWatch": true,
  "policy": { "notifyInform": false },
  "fallbackTier": "decide",
  "dedupe": { "cooldownMs": 60000, "stateFile": "~/.dsh/attention-dedupe.json", "maxEntries": 1000 }
}

要点(均来自 README):

  • rules / rulesFile:内置或外部 JSON 规则,形状为 { alert?: string[], decide?: string[], inform?: string[] };文件缺失时回退默认并告警;rulesFileWatch: true 时修改文件可热加载。
  • policy.notifyInform:为 false 时与「inform 静默」一致。
  • fallbackTier:未匹配规则时的默认档,示例为 decide。
  • dedupe:冷却去重;stateFile 持久化状态(原子写入;损坏文件会被隔离并告警)。
  • 未知配置键、非法 tier、非法值会抛出可读的 ConfigError;同一字面量出现在多个 tier 会有 rule conflict 警告。

本地验证与性能参考

仓库提供:

npm run verify

用于单元测试及 npm pack 内容/体积/安全检查。基准脚本 node bench/bench.mjs 会写入 bench/RESULTS.md;README 记录在本机一次结果:1000 次 classify p50 ≈ 19.8ms,10000 次 ≈ 184.9ms(仅作参考,以你环境为准)。

安装与启用

在 DSH 中从 npm 安装(README 官方命令):

dsh plugin --profile web add dsh-attention-router

若从 GitHub 源安装,README 给出的命令为:

dsh plugin --profile web add github:jerentpan-lab/dsh-attention-router

安装后按 DSH 插件惯例在 profile 中启用并加载配置;具体字段以 config.example.json 为准。

典型用法

跑自带 Demo

在已安装的插件目录(或仓库根目录)执行:

node examples/demo.mjs

用于查看分类与路由行为的示例脚本。

在工作流中调用工具

智能体或编排逻辑在产生「是否要通知人」的文本时,可先调用 notify_classify,根据返回的 tier、action、notify 决定是立即推送、进入待审队列,还是只写日志。需要核对当前规则与策略时,调用 notify_policy。

规则可按业务把短语放进 alert / decide / inform 数组,或维护 ~/.dsh/attention-rules.json 并在配置里打开 rulesFileWatch,避免改配置就要重启。

适用场景与注意

适合谁:已在 DSH 上跑多步智能体、且通知渠道(Webhook、IM 等)容易被「步骤完成」类消息刷屏的团队;希望用统一策略区分「必须立刻看」「等人拍板」「知道即可」的场景。

注意:

  1. 匹配基于配置的规则字符串,不是通用 NLP;规则设计要贴近你真实的告警/审批话术。
  2. fallbackTier 默认为 decide 时,未命中规则的事件会进入待审档,避免静默漏报,但也可能增加待审队列——需结合业务调整规则与 fallback。
  3. 插件以 当前 dsh 进程权限 读写 rulesFile、dedupe.stateFile 等路径;安装前请审阅 GitHub 仓库 源码与 MIT 许可证。
  4. 常见问题见 README 故障表,例如 ConfigError 多来自配置键拼写或 tier 名错误;dedupe state unreadable 时可删除状态文件重置。

结尾

dsh-attention-router 用三档 attention 路由,把「打断人」收敛到 alert 与 decide,inform 默认只记录,缓解智能体过度通知。目录与源码:

  • 目录页:https://www.skillhub.cn/plugins/jerentpan-lab/dsh-attention-router
  • GitHub:https://github.com/jerentpan-lab/dsh-attention-router
羽毛球分组比赛记分
小程序二维码

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

Xiaoye