dsh-2-atoll-notice:把 Harness 任务状态映到 Atoll 灵动岛

前言

在 DeepSeek Harness 里跑智能体任务时,失败、等你授权或提问、以及正常跑完,往往发生在后台或别的窗口。你切回终端或 Web GUI 之前,很难凭直觉知道「现在有没有事要处理」。常见做法是盯着会话列表、靠系统通知或自己记——在 macOS 上若已用 Atoll 做灵动岛扩展,可以把 Harness 已有的任务事件汇总成一枚状态灯,抬头看一眼即可。

下面介绍社区插件 dsh-2-atoll-notice(维护者 chenvinc,分类:客户端):只做提醒,不接管任务、不执行命令、不收集对话内容。

这是什么

dsh-2-atoll-notice 把 DeepSeek Harness 的任务状态镜像到 macOS 的 Atoll 灵动岛。插件 Host 半监听 Harness 事件,经本机 WebSocket JSON-RPC(默认 127.0.0.1:9020)推给 Atoll,由 Atoll 在灵动岛展示。

适用环境很窄:仅 macOS,且必须已安装并运行 Atoll。Linux 或 Windows 上的 Harness 不需要、也无法使用此插件;没装 Atoll 时插件会安静地什么都不做。

许可为 MIT;npm 包当前版本为 0.1.0,要求 Node >=20,DSH 引擎 >=0.2.1-rc.2(见仓库 package.json)。

核心功能:三态一枚灯

插件刻意极简:不接管任务、不执行命令、不收集数据,只汇总 Harness 已产生的状态。

状态 颜色 含义
失败 红 有任务报错
待你处理 黄 有任务在提问或等待授权
已完成 绿 有任务做完

三种状态共存在同一枚灵动岛活动里,右侧用 失败·待处理·完成 三个数字表示各自数量(例如 1·0·0 表示一个失败;0·0·2 表示完成两个)。图标颜色取当前最要紧的一档:失败 > 待处理 > 完成。

状态由 Host 的真实事件驱动,包括 agent/error、approval/request、user-questions/request、agent/turn-stopping。主动中止(Ctrl+C 或打断)既不算失败也不算完成,不会亮灯。失败状态 15 分钟自动过期,完成状态 2 分钟自动过期;空闲时插件会撤下活动。可选提示音使用 macOS 系统提示音,并做了节流,短时间内最多响一次。

安装与启用

安装前请先确认:Atoll 正在运行;Atoll 的第三方扩展开关已打开(默认开);端口为默认 9020,若改过需在插件设置里同步。

从 npm 安装(推荐)

在 Harness 所用 profile 的工程里执行:

npm install dsh-2-atoll-notice --save

也可以在 Harness 的插件管理里搜索并安装 dsh-2-atoll-notice。package.json 中的 dsh.bundle 会把 Host 半挂进 bundle patch,dsh.client 会把浏览器半挂进 Web GUI。

若采用本地 link 开发方式,需在 profile 目录(例如 ~/.dsh/profiles/web)的 package.json 的 dependencies 中增加 "dsh-2-atoll-notice": "link:/绝对路径/dsh-2-atoll-notice" 并 pnpm install,同时在 cordis.patch.yml 追加插件 id;具体字段见仓库 README。改完需重启 dsh web。

设置

打开 设置 → Atoll 通知(设置面板左侧独立导航项)。

  • 四个开关:失败任务、等待你处理的任务、已完成任务、提示音;
  • 连接状态与端口;
  • 页面底部有 GitHub Issues 入口。

设置即时生效,并持久化到 ~/.dsh/profiles/<profile>/atoll-notice.json(只保存你改过的字段)。

典型用法

日常:靠事件自动更新

装好插件并打开相应开关后,Harness 会话里发生失败、待授权/待回答或 turn 完成时,灵动岛会自动更新计数与颜色,无需额外命令。

给智能体的工具

装好后任意会话可调用:

  • atoll_notice_status:读取连接、授权状态和三种状态的数量;
  • atoll_notice_test:在灵动岛上点亮某个状态(failure / attention / done),用于确认链路;
  • atoll_notice_clear:清空本地记录并撤下灵动岛。

排查链路时,可先用 atoll_notice_test 验证 Atoll 与端口是否正常。

数据流(便于理解边界)

DeepSeek Harness ──事件──▶ 插件 Host 半 ──WebSocket JSON-RPC──▶ Atoll ──▶ 灵动岛
        ▲                      127.0.0.1:9020
        └──── 设置页 = 插件 Client 半(React,走 /api/atoll-notice/*)────┘

Atoll 重启或断线时会自动重连(500ms 起退避,最多 15s)并重新呈现当前状态。设置页只读写插件自己的 HTTP 路由,不碰其它 Harness 数据。

适用场景与注意

适合谁:在 macOS 上使用 DeepSeek Harness 做智能体开发或长任务,并已日常使用 Atoll 灵动岛,希望用一枚状态灯感知「有没有失败、有没有在等你、有没有刚完成」,而不想被插件代劳执行或上传内容。

权限与信任:插件以当前 dsh web 进程权限运行;安装前应阅读 GitHub 仓库 源码与 MIT 许可证。隐私方面,插件只与本机 127.0.0.1 通信,只发送状态行文本(标题与三态计数)和图标/颜色,不发送对话内容、错误详情或文件内容;不读写 Atoll 配置,不使用 AppleScript 或辅助功能。

排查:改了 Host 半(index.js、lib/*.js)需重启 dsh web;只改 client.js 可热替换并刷新页面。加载过程会写入 ~/.dsh/atoll-notice-trace.log。灵动岛无反应时,先确认 Atoll 在运行、端口与设置页一致、相关开关已打开。

DeepSeek Harness 生态强调「一切皆插件」;社区目录 SkillHub 插件页 为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-2-atoll-notice 把 Harness 里失败、待你处理、完成三类事件收成 Atoll 灵动岛上的一枚状态灯,只做本机提醒。若你的环境是 macOS + Atoll + Harness,可按上文 npm 或插件管理安装,在设置里打开需要的开关,必要时用 atoll_notice_test 验链路。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye