dsh-dot:把 DeepSeek Harness 组装成 Dots 式常驻 Agent

前言

在 DeepSeek Harness(dsh)里做智能体,常见做法是:你打开桌面端、发起一轮对话,任务做完会话就结束。若希望 agent「一直在线」——有自己的执行环境、在飞书或微信里能直接找到、到点自动巡检、没事别刷屏、花费和危险操作有硬上限——通常要分别装电脑隔离、IM 桥接、定时与预算等插件,还要自己写「定时结果往哪发、超支怎么拦、审批怎么提醒」的衔接逻辑。

dsh-dot(维护者 Kevinwu901113,社区分类:工作流)做的是最后这一层胶水:在 dsh ≥ 0.2.1 上,把 dsh-computer、dsh-im、官方定时服务,以及可选的 dsh-budget 等现成能力拼成接近 Dots / Grok-Bot 形态的常驻 agent。仓库体量约 200 行,MIT 许可,当前 package 版本为 0.2.0。

这是什么

一句话:dsh-dot 让 dsh 变成有自己的电脑、IM 可达、会按日程主动干活、无事不打扰、可选日预算硬封顶的常驻 agent。

它不重复实现虚拟机、多平台 IM 或 cron 框架,只补上各插件之间缺的那几条规则:定时任务结束后的 IM 投递与 DOT_SILENT 静默、审批与预算拦截的 IM 通知、日预算在本地零点自动解除等。

需要 由谁提供
独立电脑、审批门、实时画面、审计日志 dsh-computer
IM(飞书、微信、钉钉、企业微信、QQ、Slack、Telegram、Discord、WhatsApp 等),回复文字审批 dsh-im
定时任务(每天 / 每周 / cron,重启后补发) dsh 0.2.1 起内置官方定时服务(「自动化任务」)
花费硬上限(可选) dsh-budget,overLimit: block
身份与人设 dsh-interlude 的 Canon(HDSI 分享码)或 dsh persona;dot 只注入自己的工作规则段
胶水逻辑 本仓库 dsh-dot

北极星场景在 README 里写得很具体:在飞书或微信里说「每天早上看看 X 有没有更新,有就告诉我」。到点 agent 在自己的电脑里检查;有更新则推到 IM,没有则不出声;需要审批时 IM 收到提醒和实时画面链接;当天花费超限则自动暂停并通知。

核心功能

下面只列资料中已说明、且由 dot 或其所依赖插件共同实现的能力。

IM 双向与会话归属

用户通过 IM 发起的对话由 dsh-im 处理;dot 主要负责定时任务那一轮的后续动作。IM 机器人开的会话在默认 scope: home+im 下归 dot 管辖,工作规则由 dot 注入,不必依赖 AGENTS.md。

定时结果推送与静默

~/dot 目录下由定时任务触发的每一轮,dot 在系统提示里临时加入静默规则。轮次结束后读取最终回复:若内容仅为 DOT_SILENT,则不向 IM 发送;否则通过 dsh-im 的 ctx.dshIm.send() 投递到你在机器人里配置的「目标」。

审批与预算通知

定时任务轮次里出现审批时,IM 会收到提醒及实时画面链接(公网可访问需按 dsh-computer 文档配置 tailscale serve 等)。若安装了 dsh-budget 且配置为 overLimit: block,拦截后会 IM 通知;日预算拦截在本地零点自动解除(autoUnblockDaily 默认 true)。虚拟机出错时也会 IM 通知。

状态与审计

在 dsh 里可使用 /dot 查看状态,/dot test 发送测试消息。dot 相关事件写入 dsh-computer 审计日志 ~/.dsh/dsh-computer-audit.jsonl(kind: "dot")。

主要配置项(资料原文)

配置项 默认值 作用
home / DSH_DOT_HOME ~/dot dot 的工作目录
scope home+im 哪些会话归 dot:home、im、home+im、all
imBot / imTarget 自动 dsh-im 的 Bot ID 与 Target ID;默认第一个有已保存目标的机器人
autoUnblockDaily true 零点自动解除日预算拦截

安装与启用

环境要求:dsh ≥ 0.2.1(内置定时服务)。Node 引擎要求 ≥ 22(见 package.json)。必须先有 dsh-computer;缺少时 dot 不会启动。

从 dsh 0.2.0 升级且曾安装 @deepseek-ai/dsh-experimental-schedule-bundle 的,请先卸载该包:其自带的旧版 dsh-schedule 会挡住内置新版定时服务。

安装前建议退出 dsh 桌面版。dsh 只把 profile 的直接依赖加入层栈,因此用一条命令装齐核心依赖:

dsh plugin --profile desktop add github:Kevinwu901113/dsh-dot github:Kevinwu901113/dsh-computer @xmanrui/dsh-im

macOS 上也可使用 README 给出的完整 CLI 路径,装完后重新打开应用:

"/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh" plugin --profile desktop add \
  github:Kevinwu901113/dsh-dot github:Kevinwu901113/dsh-computer @xmanrui/dsh-im
open -a "DeepSeek Harness"

需要花费硬上限时,把 dsh-budget 追加到同一条 plugin add 命令中(具体包名以 dsh-budget 仓库说明为准)。

第一次设置与典型用法

按 README「第一次设置」顺序操作即可复现。

  1. 预算(仅安装 dsh-budget 时):在 profile 的 cordis.patch.yml 末尾增加(金额为美元):
- id: budget
  name: dsh-budget
  config:
    budgets: { session: 3, daily: 3, monthly: 90 }
    overLimit: block

不设 block 时,dsh-budget 仅提醒、不拦截。

  1. IM:设置 → IM 机器人,接入一个机器人(飞书支持扫码一键创建)。
  2. 工作区:一般无需为 dot 单独改工作区;IM 会话在默认 scope 下已归 dot。
  3. 投递目标:在机器人设置里「新建目标」,选择你与机器人的私聊并保存。保持「会话双向同步」关闭,由 dot 决定是否 outbound 消息。
  4. 在 dsh 中发送 /dot test,IM 收到测试消息即表示链路正常。
  5. 公网实时画面(可选):按 dsh-computer README 暴露 live view,手机端才能打开审批链接里的画面。

典型对话示例(来自 README):在 QQ 或飞书里对 agent 说「2 分钟后看看 X 有没有新提交」——agent 会创建定时任务而非立即执行;到点在虚拟机内检查,由 dot 把结果推到 IM。若无新提交,模型可只回复 DOT_SILENT,IM 侧无消息。

适用场景与注意

适合谁

  • 已在使用 dsh,希望用 IM 作为轻量入口、用官方定时做巡检或日报类任务,并愿意用虚拟机隔离执行环境的开发者。
  • 需要可选日/月预算硬封顶、且希望超支自动停跑并通知的团队或个人。

明确不做的事(README 限制节)

长期记忆、多个 dot 实例、自我进化、自研 IM 或定时框架均不在范围内。若希望在两次对话之间保留「幕间」式状态,可另行安装 dsh-interlude,与 dot 共用 ~/dot。

运行与权限

  • 电脑休眠或退出 dsh 后任务不会继续;若要近似 24 小时在线,需部署到常开服务器。
  • 定时任务触发的审批仍需在 DeepSeek Harness 内点击确认;IM 侧主要是提醒。用户在 IM 里主动发起的对话,审批可按 dsh-im 规则用文字回复。
  • 插件与 dsh 进程同权限运行;安装前请自行审阅 GitHub 源码 与各依赖插件的许可证(dsh-dot 为 MIT)。

社区目录 SkillHub 上的 dsh-dot 页 与 GitHub 仓库相互独立,并非 DeepSeek / 幻方官方应用商店;星标与版本以仓库为准。

结尾

dsh-dot 的价值在于用约 200 行胶水把「独立电脑 + 多平台 IM + 内置定时 + 可选预算」收成一条可落地的常驻 agent 路径,并用 DOT_SILENT 与 overLimit: block 管住打扰与花费。若你的目标正是 IM 里说一句「每天看看 X」,可以按上文一条命令装齐依赖,完成 IM 目标与 /dot test 后再加定时任务验证。

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

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

小夜