# dsh-dot 总体规划(2026-10-23) ## 一句话 dot 是一个**在自己手机上过日子的角色**:有自己的手机、账号、作息;你是她 QQ 里的一个联系人;两次对话之间她在过自己的生活。能干活是附带的,不是主体。 ## 现在在哪 | 层 | 状态 | 证据 | |---|---|---| | 手机(`phone`) | ✅ 开箱即用:自动下载/建 AVD/开机/接管,live view 标签页,`mcp__phone__*` | 真机:装好 → 她自己装了 QQ、登录、回了消息 | | 通知 → 叫醒 | ✅ 事件 + 快照模型,任何 App,按 App 静音,后台不冻结 | 真机:发出 → 叫醒 2–4 s(原 3.5 min) | | 她回消息 | ⚠️ 能回,一条 ~78 s;连发时第二条叫醒会撞上她正在跑的一轮,上下文残缺 | 真机 09:07 | | 幕间(`interlude`) | ✅ HDSI 移植:Canon、剧本、连续性、打算、web/vm/phone 三路"去看"(只读无审批) | 真机跑了 14 轮;0 次 browserIntent(剧情没给理由) | | 联系人层(`dot`) | ✅ 定时结果→IM、审批/设备提醒、工作规则、通知唤醒 | 真机 | | 电脑(`computer`) | ✅ 可选 | `DSH_DOT_COMPUTER=off` | | IM 通道 | ⚠️ 仍是 dsh-im 的 QQ **官方机器人**;她的"真 QQ"只在手机上 | — | | "玩"(点赞/评论/发帖) | ❌ 未做;提示词要从社区找 | — | ## 架构(不再变的部分) ``` ┌─ phone ──── Android 模拟器 ── mcp__phone__* ── 通知事件 dot (联系人层) ──┼─ computer ─ microVM(可选)── mcp__vm__* └─ interlude ─ 幕间:剧本/连续性/打算/去看/主动联系 ▲ 叫醒(通知、定时、幕间观察) ▼ 投递(dsh-im send / 未来 qq_send) 她的会话(dsh 自己跑对话,人设 = Canon 段 + 工作规则段) ``` 原则:**她只能看,不能瞒着你动**(幕间只读;有后果的动作走审批或不给);**不替她做她该自己做的事**(装 App、登录后的日常);**不重复造轮子**(模拟器、mobile-mcp、HDSI 预设、dsh-im、dsh 定时);**可审计**。 ## 分期 ### P0 · 把"聊天"这条线做扎实(本周) 目标:你在 QQ 里和她聊一天,不漏、不串、不重复。 1. **忙时攒消息**(dot,~40 行):她在跑一轮时来的通知攒到那轮结束,同一对话的多条按顺序列出,QQ 的 `(N条新消息)` 标题归一。→ 解决"连发撞车"。 2. ~~夜间静音~~:撤回。`notifyHours` 默认不设,任何时候来通知都叫醒她(10-25,Kevin 没要过这个)。 3. **回消息的速度**:先接受 ~1 min(人也不秒回);记录每次回复的耗时和工具调用数,一周后看数据再决定要不要快路。 4. **观察一周**:`calls.jsonl`、`web-context.jsonl`、两份审计日志。不加功能。 完成标准:连发 5 条她一次回齐;夜里不叫;一周内 0 条漏回(审计可查)。 ### P1 · 让她"过日子"真的发生(下周) 目标:幕间不再只是躺床上;她会拿手机、会去看、会有话题。 1. **定时拿起手机**(`phoneCheckEveryMinutes`,活跃时段内,默认 30):正常轮次,"看看手机有没有新消息/新动态,有事处理,没事 `DOT_SILENT`"。这是通知之外的兜底,也是她"刷手机"的来源。 2. **`phoneApps` 填上**她装的 App(小黑盒、B 站…),`vmSites` 给电脑。幕间的 browserIntent 才有地方去。 3. **她关注什么**:由你给(账号/话题),原样写进 Canon 的 `world`;或者等她在对话里自己长出来。我不编。 4. **intent 空转**:`intent` 轮只结算不新建(现在每天 7 轮 intent 滚自己)。 5. **幕间观察结果回流**:`webContext` 已进下一轮;检查剧本里有没有真的用上。 完成标准:一周内剧本里出现 ≥3 次"她在手机上看到的东西";幕间 intent 轮 ≤ 2/天。 ### P2 · "玩":轻动作(待你给提示词) 目标:点赞、评论、发帖、关注——在她的账号上,按她的人设,低频。 1. 提示词来源:社区(NapCat 陪伴机器人们的 proactive 提示、HDSI 社区的 agency 讨论),不自己写。 2. 机制:幕间产出 `playIntent`(想做什么、为什么、意愿值)→ dot 以**正常轮次**执行(不是只读观察)→ HDSI 的 agency 门控(活跃时段、意愿阈值、每日上限)。 3. 审批策略:点赞/评论/关注在白名单内不审批;发帖、私信陌生人、付款审批;账号资料改动不给。 4. 风险接受:小号,封了就封了。 完成标准:一周 ≤ N 次动作(N 你定),审计里每次都有"为什么"。 ### P3 · 通道与第二设备(按需,不排期) - **NapCat 当她的"电脑端 QQ"**(`dsh-dot/qq`,~150 行 + 一个容器):只在 P0 数据说明手机 App 这条路不可靠或太慢时做。它解决两件事:秒回(`qq_send`)、群消息完整性。手机照旧。 - **dsh-im 官方机器人通道**:降级为可选(给想用的人),她的 IM 身份以真 QQ 为准。 - **真机 / PVE 24 小时**:`serial` 配置项接真安卓机(去模拟器检测、Mac 睡眠也在线);或手机搬到 PVE 的 Redroid。等有需要。 - **NotificationListenerService APK**:只在 dumpsys 快照被证明会漏时做。 ### 持续 - README/DESIGN 随代码;每个真机实测写进 DESIGN 的"验证情况"。 - 不做:长期记忆库、多个 dot、自我进化、自己的 IM/定时框架、替她装 App。 ## 要你定的(按出现顺序) | 决定 | 我的建议 | |---|---| | 夜间静音时段 | 跟 `activeHours` 走:08:00–23:00 | | 回消息快路(NapCat)做不做 | P0 观察一周后用数据定 | | 她关注什么(账号/话题) | 你给几个,或让她自己长 | | "玩"的提示词从哪来 | 你指路,我去找 | | "玩"的每日上限 N | 3 | | 电脑组件以后留不留 | 留,可选 | ## 风险 - **平台检测 / 封号**:模拟器 + 自动化违反各家条款。小号、低频、不绕验证码。 - **模型成本**:每次叫醒一轮 + 幕间一天 ≤12 轮 + 定时看手机 ≤30 轮/天。flash 下可接受;换大模型前先看 `calls.jsonl` 的用量。 - **AGPL**:幕间提示词按 HDSI 原文,整包 AGPL;已在 README 写明。 - **单点**:Mac 睡眠 = 她下线。P3 的真机/PVE 解决。