前言¶
在 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「第一次设置」顺序操作即可复现。
- 预算(仅安装 dsh-budget 时):在 profile 的
cordis.patch.yml末尾增加(金额为美元):
- id: budget
name: dsh-budget
config:
budgets: { session: 3, daily: 3, monthly: 90 }
overLimit: block
不设 block 时,dsh-budget 仅提醒、不拦截。
- IM:设置 → IM 机器人,接入一个机器人(飞书支持扫码一键创建)。
- 工作区:一般无需为 dot 单独改工作区;IM 会话在默认 scope 下已归 dot。
- 投递目标:在机器人设置里「新建目标」,选择你与机器人的私聊并保存。保持「会话双向同步」关闭,由 dot 决定是否 outbound 消息。
- 在 dsh 中发送
/dot test,IM 收到测试消息即表示链路正常。 - 公网实时画面(可选):按 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 后再加定时任务验证。