dsh-attention
DeepSeek Harness 人工介入 / 任务完成提醒插件(Web 端):需要人工介入时浏览器红框闪动+声音+tab 提醒,任务完成时绿框闪动;预留微信/钉钉/企业微信/Telegram/Discord 外部通知渠道接口。
AI Analysis
核心用途是为 DeepSeek Harness Web 端提供多维度的介入与完成状态提醒。适合需要长时间挂机运行 Agent 任务、希望在需要人工干预或任务结束时获得即时通知的开发者与用户。
Install
This plugin has no verified bundle, or compatibility checks failed. Read the repository notes first. Read the full README ↗
README
Read the full README ↗配置项
| 配置 | 默认 | 说明 |
|---|---|---|
scope | 'all' | 'all' 监控所有会话(含后台子代理);'current' 仅当前会话 |
flash.enabled | true | 红/绿框闪动总开关 |
flash.interventionMs | 0 | 红框持续毫秒数;0 = 持续到介入解决 |
flash.completeMs | 8000 | 绿框持续毫秒数 |
sound.enabled | true | 声音提醒总开关(可选择) |
sound.onlyWhenHidden | false | true = 仅页面不在前台时响 |
sound.volume | 0.4 | 音量 0~1 |
sound.intervention.pattern | 'alert' | 介入提示音模式:alert(急促三连音) |
sound.complete.pattern | 'chime' | 完成提示音模式:chime(上行双音) |
tab.enabled | true | tab 提醒总开关(页面不在前台时) |
tab.title | true | document.title 前缀闪烁(⚠ 需要介入|… / ✓ 已完成|…) |
tab.favicon | true | favicon 红/绿点(介入时红点带白色感叹号) |
browserNotification.enabled | false | 浏览器系统通知(Notification API,首次使用时请求授权) |
dismissOnInteraction | true | 点击/按键时提前关闭当前闪动(状态解决后自然清除) |
外部通知渠道(Node 半身)
config:
notifyEnabled: true # 外部通知总开关
onIntervention: true # 需要人工介入时通知
onGoalComplete: true # goal 进入 complete 时通知(任务完成)
onTurnEnd: false # 每次 turn/end 都通知(粒度较细,默认关)
channels:
wechat: { enabled: false } # 微信个人号:需企业微信/第三方平台,接口已预留
dingtalk: { enabled: false, webhook: '', secret: '' } # 钉钉群机器人(secret 为加签密钥,可空)
wecom: { enabled: false, webhook: '' } # 企业微信群机器人
telegram: { enabled: false, token: '', chatId: '' } # Telegram Bot
discord: { enabled: false, webhook: '' } # Discord Webhook
webhook: { enabled: false, url: '', headers: {} } # 通用 Webhook(POST JSON)
- 接口约定:每个渠道是一个适配器
{ id, label, test(cfg), send(message, cfg) },见lib/index.js的CHANNELS。 message = { kind: 'intervention' | 'complete', title, body, meta }。- 未配置凭据的渠道不发送;配置了 webhook / token 的渠道(钉钉、企业微信、Telegram、Discord、通用 Webhook)会用
fetch真正发送;微信(个人号)暂只返回not-implemented,接入需企业微信应用消息或第三方开放平台,按同一适配器接口补CHANNELS.wechat.send即可。 - 扩展新渠道:在
CHANNELS里加一个适配器,并在DEFAULTS.channels里登记即可,无需改分发逻辑。 - 其他插件可
ctx.provide('attentionNotifier', notifier)复用(插件启动时已提供)。