前言¶
在 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