前言¶
在 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 等)容易被「步骤完成」类消息刷屏的团队;希望用统一策略区分「必须立刻看」「等人拍板」「知道即可」的场景。
注意:
- 匹配基于配置的规则字符串,不是通用 NLP;规则设计要贴近你真实的告警/审批话术。
fallbackTier默认为decide时,未命中规则的事件会进入待审档,避免静默漏报,但也可能增加待审队列——需结合业务调整规则与 fallback。- 插件以 当前 dsh 进程权限 读写
rulesFile、dedupe.stateFile等路径;安装前请审阅 GitHub 仓库 源码与 MIT 许可证。 - 常见问题见 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