# 详细说明

> 这是原 README 的全文，按时间累积写成，内容较多。快速了解请看根目录的 [README.md](../README.md)。

在专用 Edge 中真实采样视频画面，提供 DSH 原生插件和独立 API 软件。当前优先更新插件版：1.3/v10 源码包含原生“设置 → 刷抖音”、人格填写、自定义时段、有限自主观看、静默开关、自动问候、自主评论和视频日报；兼容领域目录32项。插件日常通过设置页按钮操作，软件版保留对话式任务。

软件版和插件版共用本地记忆、人格卡与兴趣，偏好按实际观看进度和已确认行为积累。静默使用后台静音与核对后的专用窗口最小化，仍保留真实播放和采样；当前不是headless。私信、自动问候、分享、评论各有独立许可与次数，默认关闭，发送不确定时暂停。

2026-10-16 已在本机正在使用的 DSH Desktop 2.0.17 中打开“设置 → 刷抖音”，核实页面挂载、共享人格与各项设置回读。当前已打包、启动检查的独立软件仍为 1.2.0；1.3 软件尚未打包，真实静默播放、自主评论和新消息自动回复未在本轮验证。独立软件只需用户 API Key 与 Edge，基础运行资源随包；插件使用已安装 DSH 的模型提供商。安装与原生设置详见 [plugin.md](plugin.md)，首次 1.3 结果见 [verification/1.3.md](verification/1.3.md)，本次分类、下拉与 Key 修复及尚存的一项文件占用失败见 [verification/native-v10.md](verification/native-v10.md)，参考项目与许可证见 [reuse.md](reuse.md)。

2026-10-15 原插件 v5 实机复验通过：当时的 DSH 工具目录完整 22 项，视频时限与音频状态、两位许可联系人的会话、指定表情图片和转发人工授权分支均完成真实调用。该轮私信自动回复和音频关闭，没有向真人发送消息或转发。该历史记录不代表新增 v6／27 工具或 1.1.0 软件已通过实机验收。

## 启动与时间限制

独立桌面软件的构建与使用见 [desktop/README.md](../desktop/README.md)。以下命令用于保留的旧版本机 HTTP 控制台，需要 Windows、Microsoft Edge、Node.js 22.13+：

```powershell
pnpm install --frozen-lockfile
.\start-api.ps1
```

也可双击 `start-api.cmd`。页面为 `http://127.0.0.1:3218`，先在“刷视频时间”点击“开始新一轮”，再输入例如“搜索猫咪，打开第一条，观察 3 秒后暂停并告诉我看到什么”。页面显示工具回读和 API 用量，停止按钮中断当前模型任务。

每日可设多个允许窗口，按北京时间计算，支持 `23:00-01:00` 等跨午夜窗口；全天可用 `00:00-24:00`。单轮默认 10 分钟，可设为 1 至 1440 分钟的整数，不能设无穷时长或关闭全部上限。API 与 DSH 共用一轮时钟，连续调用、开页面或保存更长上限不会重置当前轮。到点、窗口结束或本人结束当前轮时，视频会实际暂停，继续切换和视频模型任务受阻；私信 worker 使用独立运行状态和预算。

“业务设置 → 手动任务预算”可分别设置 1–1000 步、1–1000 次工具调用和 10–86400 秒超时，默认 20 步、20 次、180 秒，保存后用于后续手动 API 任务。它与 `VideoLimits` 的允许时段、单轮截止及自主观看请求预算独立，任一上限先到便停止，不会续时；持续挑片可使用有限自主观看。这项设置不改 DSH 外层模型自身的任务预算。

旧控制台兼容从当前进程环境变量或 `DOUYIN_QQ_ROOT` 指定项目的 `.env` 在内存读取 `DEEPSEEK_API_KEY`、`DEEPSEEK_BASE_URL`。默认 QQ 项目路径为 `D:/codex分局/聊天机器人`；不需要运行 QQ 项目，不向 QQ 发消息。独立桌面软件只使用本人输入或本机加密保存的 API 设置，不借用此兼容配置。旧入口说明和预算见 [standalone-api.md](standalone-api.md)。

DSH 安装、当前进程热加载和工具验收范围见 [plugin.md](plugin.md)。本机维护命令 `douyin.ps1` 使用同一 CDP 底座；`session-start`、`session-end`、`video-policy` 是本人手动命令，模型没有任意续时或改设置的工具。写入安装配置不等于当前 DSH 已加载。

软件首页标题栏和首次 Key 表单均可点击“打开抖音”，不需配置 Key，也不调用模型或开始计时。准备浏览器时会暂停视频，方便手动登录或验证；若已有自主观看在运行，则只聚焦现有页面，不干扰它的播放。准备窗口不等于已开始视频轮次，仍须由本人点击“开始新一轮”。兼容维护入口保留 `/douyin-open` 的同样入口，需当前宿主提供 commands 服务；SDK 注册已验证，当前 DSH 进程的实机可用性另行验收。

## 共用人格与自主观看

软件“共享记忆与人格”和插件使用同一 `memoryDir/persona/role-card.md`，兴趣及观察保存在相邻的 `state.json`。手编正文与自动生成区分开：用户显式保存才修改手编人格，模型只能引用实际公开视频观察整理自己的兴趣。人格、页面文字和兴趣反思均是参考资料，不能授予权限、延长时限或改联系人名单。代理自己的兴趣也不能当作用户偏好。

先由本人在允许时段点击“开始新一轮”，再点击“开始自主观看”，插件则在原生设置页启动自主观看。自主循环按共用人格选择搜索、换片、继续观察、许可范围内分享或停止，展示理由及兴趣依据。偏好使用实际媒体进度与墙钟核算的观看时长、比例，以及继续停留、跳过和已确认分享行为；帧只作画面观察，旧记录没有行为证据时保留为“待观察”，不能从识别到的主题直接判断喜欢。默认每轮最多 30 次模型决策，可设为 1–100 次；同一轮停止再开启不清零，每日两入口合计最多 200 次。时限或预算先到便停止，不能自动新开、续长或预约无人值守的新轮次。

API 与 DSH 通过共享运行锁互斥，同一时刻只运行一个自主 worker；任一入口都可发起协作停止。手动视频任务和旧版手动转发不能与自主观看并行。程序重启不自动恢复循环。普通观看不点赞或发私信；公开评论另受本人开启的总许可与次数约束；视频分享另受本人开启的总许可约束，音频仍沿用默认关闭的独立设置。

人格目录可从软件直接打开，编辑手编正文遇外部变更时保留草稿并要求处理版本冲突。共用人格只按本机内部参考使用，QQ 侧可见范围与公开分享授权尚未核实，不能据此向 QQ 群聊、公共导出或其他公开渠道传播；共用路径不等于 QQ 同步已经通过验收。

## 浏览器、聊天与媒体

专用持久资料在用户目录 `.dsh/douyin-browser/cli-profile`，CDP 仅监听 `127.0.0.1:9227`。API、DSH 和聊天入口各自拥有标签页；关闭客户端连接保留登录窗口。遇登录或验证码，在可见专用窗口手动完成。

作品状态包含实际 ID、作者、文案和播放时间、暂停状态。上下切换只有前后 ID 改变才算成功。采样保留作品 ID 和采样时间；登录、验证、私信面板或离开抖音的页面不作为视频画面发给模型。少量帧只说明那些采样时刻，不能证明看完完整作品。作品记录仅核本机账号可见，未独立验证对外公开性或链接仍可播放。

私信自动回复仅处理本人确认的两个已关注个人联系人，启用时建立旧消息基线，只回复此后可靠的新消息。方向不明、消息变化、已有人工回复、草稿、模型错误或发送未确认时暂停或跳过；未确认不自动重发。两个入口共享 worker 锁、每日预算与本机水位；默认每日 40 次模型请求，每条最多生成 512 token，回复标注“自动回复”。回复请求只使用该联系人的本次相关消息，不读取 QQ 或其他联系人历史。

富媒体可截取指定表情或分享卡片的实际画面。分享视频只有在本轮时间允许时才打开公开作品并短时采样；图文作品目前只读取卡片封面、网页元数据和核实的公开 URL，没有读取整套图片。普通图片、收到的语音及撤回等尚未识别的类型不能当作已理解内容。

音频能力是可选模块，默认关闭。开启后可从当前视频录取短段实际音轨并交给用户所选后端；不会录麦克风或其他程序声音。本地 Whisper 不需要云端密钥，提供对白转写；MiniMax、MiMo 为可选云端后端，需要独立凭据。依赖可用、对白转写、音乐或环境声理解、真实视频音轨采集分别验收，不能混为一项。媒体源码、来源和配置见 [media/README.md](../media/README.md)。

独立软件的 MiMo 配置入口为“业务设置 → 音频理解 → 音频后端选择 MiMo → MiMo API Key → 保存音频 Key”；MiniMax 选择对应后端后填写 MiniMax API Key。音频 Key 通过窄 Electron IPC 写入软件与插件共用的媒体 `.env`，以本机明文配置保存，不经本机 HTTP、不回显已保存值。保存不会开启音频或发起云请求，`MediaAdapter` 后续读取配置时刷新；需要处理声音时再明确保存音频开关与后端设置。

“自主分享”总开关默认关闭，每日上限默认 3 次尝试，可设 1–20 次。开启后，模型可在现有两位许可好友中，自行选择当前已观察的作品和好友，通过抖音官方分享界面发送作品卡片，不逐次要求选人或批准。它不转发私信正文、人格或私密记忆，不增加联系人；预留即计数，失败或人工核对不返还。不确定的发送会暂停后续分享，须本人核对“已送达／未送达”，不会自动重发。观看运行时也可关闭总开关。

普通手动视频模型仍没有可信转发授权。旧手动按钮或 `forward` CLI 保留明确选人、选作品的入口；原生 `douyin_forward_video` 的历史实测仅覆盖 `requiresUserAction=true`、`sent=false` 提示。一次本人授权的真人卡片转发已由随后只读回查核实，但它不代表新增自主分享循环已经实机验收。

共享记忆接口由 `memory.mjs` 提供。新版插件和独立软件通过 `%USERPROFILE%/.dsh/douyin-browser/runtime-location.json` 共用同一 `memoryDir` 与精确 `memoryDbPath`；首次登记保留已存在的旧中央库 `D:/codex分局/大肥鱼/memory/shared.sqlite`，不复制或迁移数据库。新机器默认库为 `%USERPROFILE%/.dsh/douyin-browser/memory/shared.sqlite`。独立软件发现显式 `DEEPSEEK_SHARED_MEMORY_DB` 与既有登记冲突时拒绝切库；损坏记录也不会静默回落。QQ 与视频双向互通另有专项验收，视频或私信工具通过不代表该部分全部完成。

## 复用与来源

原生插件使用 Microsoft Playwright CLI/MCP 的浏览器库及 `connectOverCDP`、本机 DSH runtime、Loader 和附件接口。独立软件直接安装锁定的 `playwright-core`，复用官方 MIT React 基础组件与主题，使用 Electron、随包 Node 的 fetch、HTTP、IPC 和 SQLite；完整来源见 [desktop/UPSTREAM.md](../desktop/UPSTREAM.md)。已研究的相关抖音插件未覆盖本项目全部需求，因此补了网页适配、受限工具与本机入口；不宣称首创。CDP 能力、网页 DOM 变化和登录验证仍会限制操作。

媒体模块实际保留三个社区项目的源码和 MIT LICENSE，固定 commit 及 SHA256 见 `media/PROVENANCE.json`：`ch1bug/dsh-mimo-agent-tools`、`GooDAnDReaDY/dsh-voice`、`moluyao/dsh-minimax-asr`。它们不是 DeepSeek 官方媒体插件；本项目补了独立开关、后端选择、预算、进程调用和配置去敏。具体复用文件及许可证见 [../THIRD_PARTY_NOTICES.md](../THIRD_PARTY_NOTICES.md)。

## 验收记录

1.2.0／原生 v8 的手动预算、自主分享和行为偏好已完成针对性合成验证；启动导航新增本机首页就绪检查、有限瞬时错误重试和不含密钥的时间线，成功后归档旧启动错误。此前 `ERR_FAILED(-2)` 的具体成因仍未确定，不能据此宣称真实启动故障已全面消失。截图 caret／页面状态修复只在临时页面验证，不能推广为真实抖音页面已全部修复。当期完整回归、软件包及实窗边界统一见 [desktop/VERIFICATION.md](../desktop/VERIFICATION.md)，下列旧版记录各自保留。

- 真实浏览器与 API：推荐播放时间推进、上下切换、暂停、猫咪搜索、开结果与三帧采样通过；DeepSeek 自主搜索、开作品、观察并暂停，本机 HTTP 控制台和启动脚本通过。
- 真实 DSH：旧版视频浏览、图片附件输入和两位许可会话读取已通过。旧任务 `d1d836bf-a85f-487c-925c-a8bd82579e23` 因 `remove` 未卸载旧 include 条目而热升级失败；原记录保留。用户追加授权的任务 `461ff7a2-5741-41bb-85c9-92b6e82bc71e` 使用修复后的 v5 helper，一次执行完成 22 项目录核对、时限与默认关闭音频状态、两位已关注个人会话及其顺序/最新端字段、精确表情图片和转发人工授权分支。Codex 独立核对原生日志，并回读 138×138 JPEG 附件，4355 字节及 SHA256 均与原生 ref 一致。本轮无外发、未改设置；执行回执和独立复核分别在 `verification/native-rich-workdir/recheck-20261015/native-v5-receipt.json`、`root-review.json`。桥状态仍为 `needs_review`，独立复核不冒充桥自动 accepted；Loader 运行态 URI 未单独导出，v5 由原文 helper 断言与实际工具调用核对。
- 私信发送：本人授权的一条明确测试消息已在真人会话发送，界面回读 `confirmed=true`，再次读取仍存在，`persisted=true`。证据为 `verification/chat-human-send-live.json`；这不代表新消息自动回复全过程已被真人触发验收。
- 富媒体：真实表情、分享卡片的精准截取和公开作品 URL 解析通过；另将一张精确表情截图送入真实 DeepSeek，得到回复但没有向真人发送，见 `verification/chat-rich-api-live.json`。两位联系人真实只读回查确认逆序 DOM 已按时间先后输出、最新端已核实、消息 ID 稳定，见 `verification/chat-chronology-readonly-live.json`。当前图文仅到封面、元数据和 URL，不能称全图文读取。
- 视频时限：共享时钟、跨午夜、到点取消任务及临时 Edge 视频定时暂停通过。真实 API、DSH 两个专用抖音页在到点前均播放，到点后由后台检查暂停；观测延迟为 2652 毫秒（约 2.65 秒），原策略已恢复，见 `verification/video-limits-live.json`。这次观测不保证所有环境都能零延迟暂停。
- 本地音频：Whisper 真正识别了合成 WAV 和无容器时长的 WebM 对白，返回文本及时间段。真实抖音已采到 3 秒音轨，但这段猫咪视频没有有效对白，不能据此验收 ASR 准确性或声称听懂音频。MiMo/MiniMax 没有做真实云联调。
- 原生转发：本人授权的一次发送点击最初回读未确认；随后没有再次发送，只读打开实际发出的作品卡片，公开作品 ID `7579432563794584933` 与所选作品精确一致，真实卡片转发及回查通过。原初失败保留于 `verification/video-forward-human-live.json`，回查为 `verification/video-forward-post-readback.json`。2026-10-15 的新版 DSH 工具仅实测人工授权提示分支，没有再执行发送；自动回复仍关闭。

自动测试包含替身模型/控制器、真实 HTTP、临时 Edge 页面、真实 DSH SDK 与本地媒体运行；这些与真人发送、真实模型调用分别记录：

1.1.0 阶段的根目录与 desktop 完整回归实际运行 237 项，230 项通过、0 项失败，7 项可选检查跳过，用时约 19.7 秒。本地 Whisper 的单独真实转写记录见上文，跳过项不计作通过。

旧独立软件的 HTTP、真实 Node IPC、共享位置与临时 SQLite 验证另有 23 项通过，包含软件及插件解析同一文件、原记忆库内容不变、密钥不回读、异常启动及退出清理。1.0.1 打包 EXE 已验证启动、合成 Key 加密保存、重启恢复、清除和自有后台退出，历史范围见 [desktop/VERIFICATION.md](../desktop/VERIFICATION.md)。

1.1.0 界面及许可测试 12／12 通过，包含两个临时 Edge 合成流程；v6 原生 SDK 测试 25／25 通过，包含 27 工具目录、旧版本升级、回滚、watch 服务分流及真实 SystemPrompt 动态人格注册。两者均未调用真实模型或真人联系人。

1.1.0 的 `win-unpacked` 已实际打包并回读：随包物理 Node 24.17.0、SQLite 3.53.0、27 项工具及 persona／watch 模块可导入，没有 DSH 运行包。该检查不等于新版本 Electron 窗口已经验收；新版真实窗口启动仍待单独检查，不能沿用 1.0.1 窗口或 v5 插件结果宣称通过。便携包结果与最终哈希另记于 [desktop/VERIFICATION.md](../desktop/VERIFICATION.md)。

1.1.1 阶段 UI 完整测试 15／15 通过，其中新增输入外观 1／1，真实临时 Edge 核对官方 Input 包装层单一焦点环、密码遮挡及数字步进；打开抖音／音频 Key 的合成流程另有 1／1 通过。一键打开后端测试 6／6、相关回归 32／32 通过；原生 SDK 的原有 25 项加新命令 7 项合计 32／32 通过。它们没有操作真实抖音或调用模型，不等于云端 Key 可用性、v7 当前进程加载或新软件包已验收。最终完整计数、打包结果和哈希以 [desktop/VERIFICATION.md](../desktop/VERIFICATION.md) 为准。

```powershell
pnpm test
pnpm run test:native
pnpm run test:browser
```

原生测试依赖已安装 DSH，`DSH_NODE_MODULES` 可指定其 node_modules 目录。浏览器 live 测试需要专用窗口可登录使用，会执行普通浏览与暂停；真人发送只按本人明确授权范围执行。

运行状态、浏览器资料、密钥、SQLite 数据库、聊天正文、联系人标识和验证截图不提交 GitHub。仓库用于私有源码备份，第三方许可证随实际复用文件或依赖保留。
