dsh-dot-life

中文文档
0.13.1发布于 2026/11/03AGPL-3.0-onlyES Module

dot — a character who lives on her own phone, for DeepSeek Harness (dsh): an Android phone the plugin installs and runs, her own QQ, memory and a diary from real events, a life between conversations (幕间, after HDS-Interlude), an optional microVM computer

原始使用文档
文档目录16 节
  1. ✨ 她能做什么
  2. 📱 有一部真的手机
  3. 💬 有自己的 QQ
  4. 🌙 两次对话之间也在生活
  5. 🧠 记得你,也记得她遇到的人
  6. 🎮 自己逛、自己玩
  7. 🖥️ 想让她干活?给她一台电脑
  8. 🚀 快速开始
  9. ⚙️ 设置
  10. 🧩 架构
  11. 🕰️ 她的一天
  12. ⌨️ 命令与文件
  13. 🤝 与其他插件共存
  14. 💡 设计原则
  15. 🙏 致谢
  16. 📄 许可证

◎ dsh-dot

一个在自己手机上过日子的角色 · 给 DeepSeek Harness 的养鱼插件

她有自己的安卓手机、自己的 QQ、自己的作息和日记。
你们不聊天的时候,她也在过日子。

npm license dsh node stars

简体中文 · English

快速开始 · 她能做什么 · 设置 · 架构 · 命令 · 共存 · 路线图

dsh-dot demo

✨ 她能做什么

📱 有一部真的手机

插件自己下载、建好、开机一台 Android 模拟器,不需要 Java / Android Studio。App 和登录态都在里面,重启不丢。手机没带应用商店,App 让她自己去装。

💬 有自己的 QQ

NapCat / SnowLuma(OneBot 11)和她手机上同一个账号。你发消息 1–2 秒叫醒她,她分条回、会发表情包、会存别人发的图。

🌙 两次对话之间也在生活

「幕间」移植自 HDS-Interlude:写下这段时间的日子、记下打算、拿手机去看她好奇的东西,偶尔有真实的理由来找你。

🧠 记得你,也记得她遇到的人

画像 + 碎片 + 交班,每个人一张卡;0.12 起叫醒前自动召回最相关的旧对话。公开记忆基准 74 → 95 / 108。每天 23:30 写日记。

🎮 自己逛、自己玩

小黑盒、B 站、微博、小红书……她装了哪个就逛哪个,点赞、评论、关注。玩多少不设配额,由她自己养成的习惯决定。

🖥️ 想让她干活?给她一台电脑

可选的 microVM(不需要 Docker):shell、浏览器、桌面、实时画面、审批闸门、审计日志。定时任务有结果推到 IM,没有就安静。

[!NOTE] 她只能看,不能瞒着你动。 「去看」是只读的;装 App、输密码、付款、给陌生人发消息这类有后果的动作,要么走审批,要么根本不给。

🚀 快速开始

需要 dsh ≥ 0.2.1,以及硬件虚拟化(Apple silicon / Intel Mac;Linux 需 KVM;Windows 需 WHPX)。先退出 dsh 桌面版:

macOS
"/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh" plugin --profile desktop add \
  dsh-dot-life @xmanrui/dsh-im
open -a "DeepSeek Harness"
Windows(PowerShell)
& "$env:LOCALAPPDATA\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add `
  dsh-dot-life @xmanrui/dsh-im
Web 版 / 从源码
dsh plugin --profile web add dsh-dot-life
dsh plugin --profile desktop add github:Kevinwu901113/dsh-dot   # 源码

然后在 dsh 里:

/phone accept               # 接受 Android SDK 许可,手机开始自己装(约 2 GB;/phone accept 32 给 32 GB 存储)
/interlude preset 6QA0-1PD6 # 从 typ0.space 导入一份 HDSI 人设,换成你喜欢的分享码
/qq install → /qq account <小号> → /qq start → /qq qr   # 她用手机摄像头扫码登录电脑 QQ
第一次设置的完整说明
  1. 手机:/phone accept 后插件下载模拟器、platform-tools、系统镜像(进度在 ~/.dsh/dsh-phone.log),装完自动开机,桌面出现手机窗口。存储大小建好后不能再改。/phone 看状态。
  2. 装 App、登录:在手机窗口里像真手机一样操作,或者让她自己装(mobile_install_app 会弹审批)。登录、验证码、人脸由你亲手过,她遇到会停下来叫你。用小号,各平台条款都不允许自动化。
  3. 人设:/interlude preset <分享码>,或把 examples/canon.minase-style.json 放到 ~/dot/interlude/canon.json。
  4. 她逛什么:不用配。常见社区 App 的站点 → 包名表是内置的,只对她自己装了的 App 生效。其他 App 在 cordis.patch.yml 里给 dot-interlude 加 phoneApps / playApps。
  5. QQ:详见 docs/qq.md。不想用协议端,也可以按 dsh-im 的说明接官方机器人。
  6. 电脑(可选):默认装上并启动;不要就设 DSH_DOT_COMPUTER=off。公网看实时画面见 docs/computer.md。

⚙️ 设置

所有个人设置都在一个文件:~/.dsh/dsh-dot.json(Windows:%USERPROFILE%\.dsh\dsh-dot.json),按组件分段,升级插件不会覆盖,改完重启 dsh。

{
  "phone":     { "dataGb": 32 },
  "computer":  { "rootDisk": "32G", "memory": "6G" },
  "interlude": { "activeHours": "09:00-01:00", "speak": true }
}

存储、作息、主动联系、群聊规则、省 token、网络镜像……每一项怎么改、哪些只在新建手机 / 虚拟机时生效,都在 docs/SETTINGS.md。

[!TIP] 懒得自己改?直接对 dsh 说「按 docs/SETTINGS.md 把 dsh-dot 的手机存储改成 32 GB」。文档里有写给 agent 的规则,dsh 或其他 agent 照着就能改对。

🧩 架构

一个插件,六个组件。每个都能单独关,缺了哪个其余照常跑。

flowchart LR
    you(["👤 你<br/>QQ / 微信 / 飞书"])
    subgraph dot["dsh-dot"]
        direction TB
        contact["dot<br/>联系人层"]
        interlude["interlude<br/>幕间生活"]
        memory["memory<br/>记忆 · 召回 · 日记"]
        phone["phone<br/>Android 模拟器"]
        qq["qq<br/>NapCat / SnowLuma"]
        computer["computer<br/>microVM(可选)"]
    end
    session(["她的会话<br/>dsh 跑对话"])

    you <-->|消息| qq
    you <-->|dsh-im| contact
    phone -->|通知叫醒| session
    qq -->|1–2 s 叫醒| session
    interlude -->|去看 · 玩 · 主动联系| session
    memory -->|画像 + 召回注入| session
    session -->|mcp__dot-phone__*| phone
    session -->|mcp__dot-vm__*| computer
    qq -.运行在.-> computer
组件是什么依赖关掉
phone 📱Android 模拟器,以 mcp__dot-phone__* 暴露(mobile-mcp 走 adb);任何 App 的通知都能叫醒她 · 文档硬件虚拟化DSH_DOT_PHONE=off
interlude 🌙幕间:Canon 人设、剧本、连续性、打算、只读的「去看」、可选的主动联系 · 文档—DSH_DOT_INTERLUDE=off
qq 💬她电脑 VM 里的 QQ,和手机同号;qq_send 回复、表情包 · 文档computerDSH_DOT_QQ=off
memory 🧠画像、人物卡、碎片、日记;15 万 token 交班;自动召回(默认本机 bge-small-zh,可切 SiliconFlow / DashScope) · 文档—DSH_DOT_MEMORY=off
dot ◎定时结果 → IM、审批与设备提醒、工作规则、右侧栏状态面板dsh-imDSH_DOT_CONTACT=off
computer 🖥️自带 microVM:shell、浏览器、桌面、实时画面、审批、审计 · 文档microsandbox(自带)或 DockerDSH_DOT_COMPUTER=off

🕰️ 她的一天

时刻发生什么
你找她QQ 消息 1–2 秒叫醒她的对话;她忙时来的消息攒到那轮结束一起处理,回复按行拆成多条
手机响了任何 App 的新通知叫醒她:[手机通知] QQ · 宽:在吗。她自己去回,或者不理
拿起手机没响也会隔一阵(默认 30 分钟)看一眼,有没回的就回,没事就放下
安静下来跑一轮幕间:写下这段日子、更新打算、想去看点什么
去看 · 玩在独立的「跑腿」会话里用手机看、点赞、评论;截图不进你们的对话,只留一句「刚才拿起手机看了一眼」
想找你过了活跃时段、意愿值、每日上限、投递目标四道闸,才发消息给你
23:30写今天的日记

⌨️ 命令与文件

/phone [accept|restart|screenshot]
/interlude [now|advance|seed|preset <code>|canon]
/dot [test|check]
/dot memory [now|diary|handoff|recall …]
/dot people [approve <id>|drop <id>|forget <名字>]
/qq [install|account|start|qr|backend|owner]

状态面板:会话顶部 ◎ 按钮打开右侧栏 dot 标签页——设备状态、交班进度、她此刻在做什么、今天的 token,以及最近 30 场(每次被叫醒到结束是一场,展开看她做了什么、说了什么)。

数据都在哪
路径内容
~/dot/interlude/人设 canon.json、剧本 script.md、连续性 state.json、打算 intents.json、看到的东西、每轮原始回复与 token
~/dot/memory/memory.md(给你看的)、diary.md、transcript.jsonl、召回索引 recall/、交班记录
~/.dsh/phone/模拟器、镜像、AVD;~/.dsh/dsh-phone*.{log,jsonl,json} 日志 / 审计 / 设置
~/.dsh/dsh-computer*电脑的日志、审计、状态
安全边界
  • 手机实时画面、dot 面板、电脑实时桌面都挂在 dsh 自己的 web server 上(/dsh-dot/*),每个请求先过 dsh 的 connection 服务(登录态 + Host/Origin 围栏)。插件不开自己的端口、不自带鉴权。
  • 虚拟机网关只绑 127.0.0.1:18080,要求密钥(每台机器自动生成在 ~/.dsh/dsh-computer.key),只有插件内部持有。
  • 「你」只有一个来源:/qq owner 指定的号。手机通知上的昵称谁都能改,永远不算你的指令。
  • 她看到什么、为什么没出声、哪次工具被拒,calls.jsonl 和审计日志里都有。

🤝 与其他插件共存

装别的插件前先看一眼
  • 电脑组件开着时会改全局设置:subprocess provider 换成虚拟机里的、sandbox-policy 设为 danger-full-access(虚拟机才是隔离边界)、权限预设改写成 computer / computer-auto。所以不要同时装别的沙箱 / subprocess / 权限预设插件;要用就 DSH_DOT_COMPUTER=off。

  • MCP 工具名有命名空间:mcp__dot-vm__*、mcp__dot-phone__*,前缀定义在 src/tool-prefixes.js。

  • 记忆共存:DSH_DOT_MEMORY_COEXIST 默认 auto,发现 hermesMemory / autoMemory / dshMemory / memoryBank 等就切到 people-only,只保留人物卡、碎片、日记,免得两个插件一起"讲记忆"。full / people-only 可强制。

  • 一个 QQ 号只能有一个应答者:不要在她的号上再跑别的 OneBot 机器人。

  • bash 也过电脑闸门:别的插件再给 bash 加审批,同一条命令会弹两次。

  • 上下文压缩插件:dsh-dot 注入的消息带固定 source,压缩时请保留、别当成用户原话:

    source含义
    { kind: 'dsh-dot', form: 'phone-notification' }手机通知叫醒
    { kind: 'dsh-dot', form: 'phone-check' }定时看手机
    { kind: 'dsh-dot', form: 'errand-note' }跑腿结果回写
    { kind: 'dsh-interlude', form: 'observation' | 'play' }幕间观察 / 玩
    { kind: 'handoff', generation }记忆交班
    { kind: 'user', rpcId: 'qq-…' }主人的 QQ 消息(普通用户消息)
从旧版本升级
  • v0.9 起 npm 包名是 dsh-dot-life(dsh-dot 在 npm 上被占;v0.8.x 的 @kevinwu901113/dsh-dot 已 deprecated)。装过旧名的先 dsh plugin --profile desktop remove @kevinwu901113/dsh-dot 再装,~/dot、~/.dsh/phone、虚拟机都不用动。
  • v0.9.2 起工具名带命名空间:mcp__vm__* → mcp__dot-vm__*,mcp__phone__* → mcp__dot-phone__*。
  • dsh-computer(v0.1–0.5)和 dsh-interlude 曾是独立插件,v0.3 / v0.4 起并入,git 历史一并合入。装过的先 remove dsh-computer dsh-interlude。

💡 设计原则

  • 最好的代码是不写代码:手机用 Google 官方模拟器 + mobile-mcp,电脑用 microsandbox,IM 用 dsh-im,定时用 dsh 内置的,人设用 HDSI 社区预设。
  • 不替她做她该自己做的事:App 她自己装,日常她自己过。
  • 她只能看,不能瞒着你动:有后果的动作走审批,或者根本不给。
  • 可审计:每一轮的原始回复、每一次工具调用都有记录。
  • 用小号。

🙏 致谢

HDS-Interlude · mobile-mcp · microsandbox · NapCatQQ · SnowLuma · dsh-im · Moltbook · memory-system-benchmark

📄 许可证

AGPL-3.0-only。幕间组件按原文使用 HDS-Interlude(AGPL-3.0)的提示词,所以整个包按 AGPL 发布;v0.3 之前以 MIT 发布的 computer / dot 代码,那些版本仍按 MIT 可用。


如果她让你会心一笑,点个 ⭐ 吧

Star History Chart

版本与发布记录

dsh-dot-life 共发布 18 个版本,首次发布于 2026/10/28;过去 12 个月发布了 18 个版本。

版本发布日期距今
0.13.1latest2026/11/03今天
0.13.02026/11/03今天
0.12.32026/11/03今天
0.12.12026/11/03今天
0.12.22026/11/03今天
0.11.32026/11/031 天前

关于 dsh-dot-life 的常见问题

dsh-dot-life 是什么?

点——一个在自己的手机上生活的角色,为DeepSeek Harness (dsh):一个安装并运行插件的安卓手机,她自己的QQ,记忆和真实事件的日记,对话之间的生活(在hdd - interlude之后),一个可选的微型虚拟机计算机

如何安装 dsh-dot-life?

在项目目录运行 npm install dsh-dot-life,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@deepseek-ai/dsh-llm(>=0.2.0-rc.2)、@deepseek-ai/dsh-mcp-client(>=0.2.0-rc.2)、@deepseek-ai/dsh-subprocess(>=0.2.0-rc.2)、@deepseek-ai/dsh-subprocess-local(>=0.2.0-rc.2)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

dsh-dot-life 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/dsh-dot-life 是否存在。

dsh-dot-life 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

dsh-dot-life 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

dsh-dot-life 可以商用吗?

dsh-dot-life 使用 AGPL-3.0-only 许可。最严格的 Copyleft:除分发外,通过网络向用户提供基于它的服务也需要开源对应源码。闭源 SaaS 使用前务必评估。以上为概括,不构成法律意见,请以许可原文为准。

dsh-dot-life 还在维护吗?

最新版本 0.13.1 发布于 2026/11/03(今天);至今共发布 18 个版本,其中过去 12 个月发布了 18 个;首次发布于 2026/10/28。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。