dsh-screen-beyond
Identified★ 1Beyond the Screen · Your AI Companion on the Other Side of the Screen (DSH Plugin; Pure Chat Mode Can Run Independently Without DSH)
屏幕彼端 · dsh-screen-beyond
住在屏幕彼端的ta。她有自己的虚拟屏幕和安卓手机、有自己的生活作息、记忆和日记,会聊天、会想找你、会花钱,也会心疼你的 token。
三种运行形态,先分清:
- 纯聊天版:不装 DSH、不装虚拟机;Node 18+ + API Key,浏览器直接用。
- 完整版 · DSH 分支:作为 DSH 插件安装,不装虚拟机也能用;聊天、识图、图片回复、记忆、日记、生活、地图/舞台、桌宠、设置/备份都有。
- 完整版 · 虚拟机分支:在 DSH 分支上再装 VirtualBox 虚拟屏幕 + Android 模拟器;只新增她自己的 Linux 屏幕和安卓手机。
识别/生成图片不需要虚拟机:识图、图片回复、聊天、记忆、地图、舞台、桌宠都不依赖虚拟屏幕或模拟器;只有屏幕/手机功能需要环境。识图是否可用取决于模型/图片 API。
⚠️ 早期版本:可能还有一些奇怪的小 bug,欢迎反馈,见谅。
0.7.13 更新
- npm 0.7.12 发布时 npm 侧进入 staged 状态,版本不可见且无法重发;本次用新版本号完成 npm 发布。
- 功能与 0.7.12 相同:虚拟机冷启动、先查消息再行动、消息回写、角色级去重。
0.7.12 更新
- 虚拟机聊天冷启动:
- 唤醒后自动打开社交软件(setsid 后台启动,SSH 断开不会被杀)
- 应用启动参数按兼容配置处理,不绑定单一软件
- 检测到扫码验证/登录页时返回
requiresLogin,不乱发消息
- 主动消息前先检查消息:
- 检查最近消息 → 有需要就先回 → 再处理主动消息
- 应用检测改为只认可见窗口,避免隐藏小窗口被误认为聊天窗口。
- 消息回写按角色去重,切换角色不会串。
- 应用默认启动、窗口检测、分辨率读取改为动态获取。
- 文档补充冷启动和登录验证说明。
0.7.11 更新
- 修复虚拟机聊天消息不同步到插件聊天页:
- 主动消息不再以 hidden 写入,聊天页可见
- 看消息检查到的用户消息和自动回复会回写聊天页
- 用 lastUserText 去重,避免同一句反复写入
- 检查回复直接复用当前聊天窗口的输入框坐标,不再二次分析导致发送失败。
- 多模态识别增加短提示重试,降低“AI 没看懂屏幕”的概率。
0.7.10 更新
- 新增虚拟机社交软件通道基础版:
- 主动消息可优先走虚拟机
- 自动唤醒 DSH-Space
- 动态检测虚拟机里的社交软件,不写死 QQ
- AI 看截图选择软件、检查消息、找输入框
- 看消息开关:唤醒后先检查是否有找自己的消息
- 检查间隔、发完自动存档关闭
- 失败回退插件聊天页
- 新增
/api/vm-chat/settings|status|wake|check|send。 - 文档:
docs/VM-CHAT.md。
0.7.9 更新
- 修复同地点头像分开按钮未把“当前角色”计入分组、按钮不显示的问题。
- 当前角色和其他同处角色会一起分组计算,非当前角色按分组位置横向偏移。
- 场景编辑器补齐 3D 视图/模型路径字段。
- 看屏幕/图片消息策略:
- 只描述看到什么,不直接替用户回答或操作。
- 用户只发图不说话,先描述,再问怎么了。
0.7.8 更新
- 看屏幕/图片消息行为调整:
- 瞥屏幕时只描述看到什么,不直接替用户回答、不操作,等用户后续接话。
- 用户只发图片不说话时,先具体描述看到了什么,再问“怎么了/发生什么了”。
- 地图同地点头像分开:
- 多个角色同地点时头像默认横向展开
- 地图页新增「👥 分开头像 / 收起头像」按钮
- 内部场景 3D 接口:
- 场景支持
mode: "3d"、model3d - 客户端暴露
window.DSH_SCENE_3D.register(fn) - 没有注册渲染器时显示接口提示,不影响 2D
- 场景支持
- 场景编辑器新增 2D/3D 切换和 3D 模型路径。
0.7.7 更新
- 修复车站“显示等待/晚点”和实际购票时间不一致:购票会沿用按钮上显示的等待/晚点。
- 修复场景画笔层盖住顶部按钮,导致画障碍/可走区域后无法点“关闭”“完成布局”的问题。
- 修复在地图页调整主动发图概率时,只改场景设置、没有同步后台生活发图概率的问题。
- 完成 0.7.6 之后的回归检查:服务端语法、页面脚本、API、场景资源、浏览器页面无报错。
0.7.6 更新
- 车站班次与晚点:
- 长途汽车约 30 分钟一班、高铁约 60 分钟、飞机约 120 分钟
- 购票显示下一班等待时间和随机晚点
- 等待/晚点时间会算入到达时间并写进报备
- 可走区域画笔:
- 场景顶部「🚶 可走」
- 拖框画出可走区域,寻路只在区域内走
- 聊天图片真实参考图:
- 角色照片类事件把
avatar.bin作为 Base64image参考图传给 Seedream - 已验证生成图角色外观一致
- 角色照片类事件把
0.7.5 更新
- 聊天图片真实参考图约束:
- 角色照片类事件会把
avatar.bin以imageBase64 参考图传给 Seedream - 不再是纯提示词约束
- 食物/风景等不需要角色的图不会强行塞角色参考
- 角色照片类事件会把
- 可走区域画笔:
- 场景顶部「🚶 可走」
- 拖框画出可走区域
- 寻路只在可走区域内进行
- 同时支持
scene.walkableJSON
- 车站购票 UI 已接原有票价、耗时和钱包。
0.7.4 更新
- 车站购票 UI:
- 地图页「🚉 车站」
- 显示目的地、距离、长途汽车/高铁/飞机、票价、耗时、余额
- 购票后走长途,到站后角色才过去
- 障碍可视化画笔:
- 场景顶部「🧱 障碍」
- 在场景里拖框添加障碍
- 点已有障碍删除
- 仍兼容
scene.obstaclesJSON
- 聊天图片角色约束:
- 生成前读取角色
meta.appearance/identity/ persona 外观 - 提示词要求画面中的角色保持同一外观、发型、发色、脸型
- 仍不是真正的图像参考图输入,属于提示词级约束
- 生成前读取角色
0.7.3 更新
- 跨地图生活:AI 可以选择其他地图的地点,走一段长途时间;到点后更新角色所在世界。
- 路径与碰撞基础版:
- 场景内用网格 A* 寻路
- 热点周围默认视为家具障碍,可绕开
- 支持
scene.obstacles自定义障碍矩形 - 其他角色也作为临时障碍
- 客户端按服务端返回的路径逐点移动
- 聊天图片链路已实际验收:
- 事件生成配图
- 图片写入聊天消息
- 聊天页正常显示
- 地图设置支持障碍 JSON 编辑。
0.7.2 更新
- 生活状态扩展到所有角色,不再只处理当前角色。
- 地图内部场景改为读服务端生活状态:位置、行为、到点时间由后台统一驱动。
- AI 可以在同一张地图里选择下一个地点和热点,行为结束自动推进。
- 多角色在同一地点会产生相遇事件:
- AI 判断要不要告诉用户
- 写入生活记忆
- 可发到当前角色聊天页
- 角色之间做基础位置避让,避免叠在同一坐标。
- 场景中拖动角色会把位置同步到服务端生活状态。
- 后台生活设置补齐:开关、消息间隔、每日上限、免打扰。
0.7.1 更新
- 新增服务端后台生活模拟基础版:
- 每个角色的行为、地点、结束时间、精力会持久化到
life-state.json - 即使不打开地图,也会按时间推进
- 行为结束节点由 AI 决定下一步行为、时长和是否主动找用户
- AI 返回事件判断:值不值得说、说什么、要不要图、记什么
- 主动消息写入聊天页,可带图
- 生活事件写入
life-memory.json
- 每个角色的行为、地点、结束时间、精力会持久化到
- 地图设置新增后台生活开关、消息间隔、每日上限、免打扰、当前生活状态。
- 当前阶段先做“当前地点内的生活模拟”;跨地点移动、路径碰撞、多角色社交在后续阶段接。
0.7.0 更新
- 场景内角色不再按固定 7 秒移动,而是按当前行为和真实时间决定停留时长:
- 睡觉:夜间 6–9 小时;白天补觉 1–2 小时
- 看书 30–90 分钟
- 写作业 45–120 分钟
- 吃饭 20–45 分钟
- 喝咖啡 30–60 分钟
- 看手机 15–45 分钟
- 看看 3–10 分钟
- 发呆 10–30 分钟
- 热点增加行为字段(sleep/read/study/eat/coffee/phone/look),不填则按热点名字推断;用户可在内部场景编辑里改。
- 角色在场景内会自己走向热点,点热点会走过去;顶部「布局」可拖动角色和热点。
- 多角色同图:同一地点的多个角色会各自按行为停留/移动。
- 主动发图概率改成可调节滑杆(0–100%),主动消息按该概率附图;未配置照片时可尝试 AI 生成。
- 地图页「看其他地图」只读预览,可一键直接过去,不用长途。
- 版本升为 0.7.0。
0.6.8 更新
- 新增「多角色同图」基础版:地图上显示同图其他角色的头像图钉和角色列表;可查看状态、切换角色、切换并打开聊天。
- 同一地点时,聊天提示词会加入「这里还有:xxx」,让当前角色知道其他角色在场。
- 地点交互:点击地点钉打开详情卡,显示描述、感受、当前在场角色,可直接「让她来这里」。
- 地点内部基础版:地点可配置
scene.background/hotspots,地图页可进入内部场景查看背景、在场角色和热点。 - 内置小鱼镇 13 个地点的 AI 绘制「星露谷式俯视」内部场景图,打开地点即可进入。
- 地点列表新增「内部场景」编辑入口:可上传/填写背景图、编辑热点、填活动照片;保存时会保留
scene数据。 - 场景内角色可悬浮查看当前活动(AI + 本地缓存,低频调用),并提供「和她说话」入口,聊天提示词会带上当前场景/热点。
- 场景内角色可以自由拖动摆放,位置保存到该地点的
scene.characters;内部头像改为图覆盖、不再叠名字首字。 - 角色在场景里会自己走动(约 7 秒换一个热点),点热点会走到热点旁;顶部「✏️ 布局」可拖动热点。
- 场景活动 AI 可在右侧地图设置里开关;开启时全局至少间隔 5 分钟、同角色/地点/热点缓存 10 分钟。
- 地图页新增「👁 看其他地图」预览:不移动角色即可查看其他地图和 13 个地点;预览里可「让她直接过去」,不用走长途。
- 主动消息会结合当前场景;配置活动照片时 25% 概率附图(90 分钟冷却),未配置时可尝试 AI 生成一张(15% 概率,需开启图片反馈)。
- 主动消息可结合当前场景自然提起正在做的事;配置了活动照片时,有低概率随消息附图,带 90 分钟冷却。
GET /api/world/characters返回所有角色的地图/地点/坐标/同图/同处状态。
0.6.7 更新
- 左侧栏图标替换:从笑脸改为「手机 + 星星/微光」,更贴合「她住在屏幕另一边」。
0.6.6 更新
- 侧栏标签页改为懒加载:只有打开过的标签才创建 iframe,之后保留不重载。
- 新增全局单例
/api/status轮询:所有挂载点共享,页面隐藏暂停,payload 不变不通知。 - 运行时发现改为共享缓存,运行时异常时自动重置并重新发现。
- 桌宠切换角色延迟:余额刷新改为后台执行,角色轮询从 700ms 缩短到 300ms。
- 不引入常驻 iframe 宿主,保持 0.6.4 的页面结构和视觉。
0.6.5 更新
- 恢复 0.6.4 的侧栏 + 主区域 UI,不再使用 0.7.0 的原生会话视图。
- 保留并接入新的宿主半:版本从磁盘读取、运行时健康状态、自动发现、异常退避重启、卸载清理。
- 修复旧客户端使用不存在的 DSH 主题变量导致亮色模式样式异常的问题。
- 数据层、Revision、手机端地基与 0.6.4 保持一致。
0.6.4 更新
- 新增数据层:JSON 写入改为临时文件替换,降低写坏文件风险。
- 关键实体加入 revision:消息、记忆、日记、人设正文、角色元数据、地图、地点、道路、位置、经济、生活、头像。
- 新消息/记忆增加稳定
uid;历史数据在加载时补齐并落盘。 - 新增本机只读接口
/api/data/revisions。 - 人设、地图、记忆导入/置顶/删除支持可选的
expectedRev:版本不一致返回 409,防止旧页面覆盖新改动。 - 手机端地基继续保留:设备身份、事件日志、受令牌保护的
/api/sync/*。
0.6.3 更新
- 桌宠换角色兜底:角色切换后桌宠形象会跟着更新。
- 桌宠充值余额刷新:不再长期显示旧余额。
- 桌宠看屏幕时能认出屏幕上的桌宠/聊天头像/舞台角色都是自己。
- 交通工具状态按实际方式显示(飞机/高铁/步行),不再一律说“坐车”。
- 新增手机端地基:设备身份、追加式事件日志、受令牌保护的
/api/sync/*;详见 docs/MOBILE-SYNC.md。 - 备份/恢复包含
sync/。 - 清理了可能重复运行的旧服务实例问题。
0.6.2 更新
- 修复「推理等级」点了没反应:现在点选会立即保存。
- 修复设置页头像不显示(主题样式覆盖了背景尺寸)。
- 舞台顶部改为实时数据:用户实时余额 + 今日已用 token + 预算剩余。
- 「看屏幕」不再把
(桌宠按钮)...当成可见用户消息塞进聊天。 - 新增 设置 → 环境 → 👀 自己看你的屏幕 开关;默认关闭,约 20–40 分钟一次;不需要虚拟机,只要求 DSH 桌面内核和电脑权限。
- 说明文档区分三种形态:纯聊天版 / 完整版 · DSH 分支 / 完整版 · 虚拟机分支;识图、图片回复不需要虚拟机。
- 补上默认主题文件,消除页面
/theme.css404。
0.6 第一批更新
- 记忆导入:设置 → 记忆 → 导入记忆,支持 txt/md/json/jsonl,自动拆句、去重、合并。
- 图片反馈:她会在聊天里发图(
send_image),支持火山 Seedream / OpenAI 兼容 / 自定义 HTTP。 - 示例角色小鲸:鲸鱼娘外观重做,默认头像内置,人设更完整。
- 界面:聊天/设置/地图/舞台等页面统一了一轮柔和的深色海面视觉。
- 开放接口:语音、服装、地点内部场景的契约见 docs/INTERFACES.md。
- 明确不做:每角色独立屏幕。所有角色共享同一套屏幕/手机;技术原因见 docs/SCREEN-ISOLATION.md。
三种运行形态
虚拟机和安卓模拟器只是可选环境,不是完整版的全部,也不是识图/图片回复的前置条件。
| 能力 | 纯聊天版 | 完整版 · DSH 分支 | 完整版 · 虚拟机分支 |
|---|---|---|---|
| 聊天、人设、记忆、日记、生活 | ✅ | ✅ | ✅ |
| 发图、识图、图片回复 | ✅(取决于模型/图片 API) | ✅(取决于模型/图片 API) | ✅(取决于模型/图片 API) |
| 地图、2D/3D 舞台、桌宠、设置、备份 | ✅ | ✅ | ✅ |
| DSH 侧栏 / DSH 宿主联动 | ❌ | ✅ | ✅ |
| 她自己的 Linux 虚拟屏幕 | ❌ | ❌ | ✅(VirtualBox) |
| 她自己的安卓手机 | ❌ | ❌ | ✅(Android 模拟器) |
- 纯聊天版:不装 DSH、不装环境;任何设备都能跑,不占虚拟机资源。
- 完整版 · DSH 分支:作为 DSH 插件安装;不装虚拟机也能聊天、识图、发图、记事、看地图/舞台、用桌宠。插件只是检测不到环境时关闭屏幕/手机工具。
- 完整版 · 虚拟机分支:在 DSH 分支上增加 VirtualBox 虚拟屏幕和 Android 模拟器,只新增她自己的屏幕和手机;识图/图片回复仍然不经过虚拟机。
功能
- 人设卡:名字、称呼、关系、性格滑块、头像、Live2D/3D 模型、年龄、驾照、出行偏好;可多角色,各自独立记忆/日记/聊天记录。
- 记忆:自己记重要的事,带遗忘(半衰期)、强化、置顶、归档;可手动增删改、调遗忘速度。
- 日记:每天一篇,她能自己读给你听。
- 生活:自己的作息表、活动池、心跳、安静时段、智能安排(按天气/体力/记忆调整)。
- 聊天:文字 + 图片(她能看懂)、逐字流式、她可以主动找你;顶部显示剩余 token / 今日已用(悬浮看明细)。
- 无括号模式:开启后她说话不再用括号表示动作/表情(设置 → 模型 → 聊天风格)。
- 地图 + 舞台:地点可拖拽/增删/导入、自绘道路、2D 底图、3D 模型(.glb/.gltf)、2D/3D 舞台切换。
- 出行:按年龄/驾照/体力/天气/钱自己选交通方式;未成年夜间出门要确认并报备;跨城长途。
- 天气日夜:手动或真实定位天气,雨/雪/风/热/冷特效,可自己上传素材替换;日夜自动切换。
- 经济:虚拟货币(初始余额/每日零花/时薪/饭钱/娱乐)或 Token 实时代币(钱 = 剩余 token,汇率可设);余额和剩余 token 在聊天、地图、舞台、设置里都能看到。
- 自己的环境:屏幕 / 手机 / 你的电脑三种工具;权限分「关闭 / 仅鼠标键盘 / 代码控制」;一键启动/关闭环境、内存占用提示、她自己能否开机的开关、危险操作确认。
- 给开发者:
GET /api/stage状态 JSON、GET /api/stage/streamSSE,可自己写渲染器(Live2D / 3D / 自绘地图)。 - 手机端地基:已有设备身份、追加式事件日志和受令牌保护的
/api/sync/*API;这是以后多端同步的基础,当前还没有手机客户端和合并功能。详见 docs/MOBILE-SYNC.md。
安装
当前版本:0.7.13。
纯聊天:独立运行(不需要 DSH)
需要 Node.js 18+ 和一个 DeepSeek API Key(也可在启动后的 设置 → 模型 里填)。
- 解压本包到任意目录
- Windows 双击
start-pure-chat.cmd;Linux/macOS 运行sh start-pure-chat.sh(或命令行运行node runtime/server.mjs) - 浏览器打开
http://127.0.0.1:8900/
此时聊天、人设、记忆、日记、生活、地图/舞台、发图/识图都可以用;她的虚拟屏幕和手机需要 DSH + 环境,跟识图/图片回复无关。 纯聊天模式在聊天页顶部会显示「🧩 聊天模式」;它不依赖 DSH/虚拟机,可以独立运行。
完整版 · DSH 分支:作为 DSH 插件安装(不需要虚拟机)
插件依赖 DSH 0.2.x(桌面/网页均可)。这一分支不要求 VirtualBox/模拟器;装好后聊天、识图、图片回复、记忆、地图/舞台、桌宠都能用,只有虚拟屏幕/手机工具会显示未启用。
# 从 npm 安装(已发布)
dsh plugin --profile <profile> add dsh-screen-beyond
# 或从本地目录安装
dsh plugin --profile <profile> add link:<插件目录>
装好后重启一次 DSH,左侧栏出现「屏幕彼端」。
安装完成后第一次打开是「完整版 · DSH 分支」,可直接用;不装虚拟机也能聊天、识图、发图。想要她自己的屏幕/手机,再看下面的「环境」。
模型兼容性(请先看)
本插件只验证过 DeepSeek 模型(默认 deepseek-flash)。换用其它 OpenAI 兼容模型时,工具循环、reasoning_content 回传等细节可能不兼容,可能表现为工具调用失败、报 400 或回复异常——这部分我们不做适配,也不承诺可用。
桌宠(桌面上的她)
设置 → 生活 → 「🐾 桌宠」开启后,桌面上会出现一个置顶的小桌宠:
- 默认形象 = 她的头像;设置 → 生活 →「换形象」可以传自己的 PNG/JPG/WebP,也可以直接编辑
pet.json的image(支持本地路径或 URL) - 显示大致状态:她在哪、在干嘛、精力怎么样,5 秒刷新一次;下方显示剩余 token / 今日已用(悬浮看完整数字)
- 和她说话:点 💬 打开小聊天窗(或右键 → 和她说话)
- 看你的屏幕:点 👀(或右键 → 看看我的屏幕),她会用 pc 工具看一眼你的屏幕再回你
- 摸头/戳一戳:默认有「摸摸头」「戳一下」两个区域;点她会发一句提示给她,她会有反应(回复会显示在桌宠气泡里)
个性化(不会锁死)
桌宠的行为写在数据目录的 pet.json(完整示例:runtime/pet/pet.example.json):
{
"image": "avatar",
"size": 180,
"gestures": [
{ "id": "pat", "label": "摸摸头",
"hit": { "x": 0.15, "y": 0.08, "w": 0.7, "h": 0.42 },
"prompt": "(你摸了摸她的头)", "bubble": "唔…" }
],
"buttons": [
{ "id": "chat", "label": "💬", "action": "chat" },
{ "id": "look", "label": "👀", "action": "look" }
]
}
hit是相对图片的命中区域(0~1),换自己的桌宠形象后可以按自己的图重新画区域prompt会作为一条用户消息发给她;bubble是立刻显示的短文字buttons里支持chat/look/prompt(自定义一句 prompt);想加“喂糖”“搓一搓”都只改 JSON,不用改代码
环境(可选,只用于虚拟屏幕/手机)
只支持 Windows(桌面自动化用到 Win32)。需要:
- VirtualBox + 一个 Linux 虚拟机(Debian 桌面版,建议 8G 内存 / 40G 磁盘),SSH 转发到本机
2222,用户dsh,密码DshSpace2026(可在插件配置里改) - 虚拟机内:
x11vnc+websockify(noVNC),宿主机端口6081 - 安卓模拟器:Android AVD,推荐 Android 16 / API 36、1080×1920(示例叫
DSH_Phone),adb可用。目前只验证过这个 AVD,真机未适配;Waydroid 也能跑但截图慢,不推荐
虚拟机/模拟器都开着会占内存(屏幕约 26 GB、手机约 24 GB)。设置 → 环境 里有一键启动/关闭和内存提示;「她自己能开机」关掉(默认)时,她不会自己启动环境。
✅ 设置 → 环境 → **「开始自检」**会逐项检查:辅助脚本、Python(paramiko)、VirtualBox、虚拟机、SSH/VNC、模拟器、ADBKeyboard、ffmpeg,并给出缺什么。
📦 插件包自带
runtime/env/模板脚本和 ADBKeyboard.apk;如果本机没有D:\dsh-env,会自动用随包目录。路径因机器而异,必要时用DSH_COMPANION_ENV/DSH_COMPANION_PY/DSH_COMPANION_ADB/DSH_COMPANION_ANDROID_SDK/DSH_COMPANION_EMULATOR覆盖。⌨️ 手机中文输入:手机开机后,设置 → 环境 → 「安装 ADBKeyboard」 一键装好并切换到该输入法;没装时只能输入英文/数字。
详细图文步骤见插件内 设置 → 教程,或直接打开运行时页面 http://127.0.0.1:8900/(默认端口)。
配置
cordis.patch.yml:
- insert:
- id: dsh-screen-beyond
name: dsh-screen-beyond
config:
port: 8900 # 运行时端口(被占会自动 +1 找空闲)
autoStart: true # 是否自动拉起运行时
# dataRoot: 'D:\你的数据目录' # 可选;默认 %USERPROFILE%\.dsh-companion
# envDir: 'D:\dsh-env' # 可选;虚拟屏幕/手机辅助脚本所在目录
也可以不改安装包,直接在本机放一个覆盖文件 %USERPROFILE%\.dsh-companion.json:
{ "dataRoot": "D:\\你的数据目录", "envDir": "D:\\dsh-env" }
运行时/宿主会自动读取它(优先级低于插件配置里的显式值)。dataRoot 下结构:
<dataRoot>/
config.json
data/characters/<角色id>/{meta.json, persona.md, messages.json, memory/, diary/, routine.json, state.json, wallet.json, visits.json, avatar.bin}
models/ # 导入的 2D 底图/地点图/3D 模型
data/screens/ # 截图缓存
备份:设置 → 数据 → 立即备份(或 scripts/backup.ps1),备份落在数据目录的 backups/ 下;恢复用 scripts/restore.ps1 -BackupDir <备份目录>。
运行时页面
运行时是一个独立 Node 服务(默认 http://127.0.0.1:8900):
/聊天 ·/map地图 ·/stage2D 舞台 ·/model3D 舞台 ·/settings设置 ·/screen看屏幕- 快捷键:聊天页
Alt+S打开看屏幕
给开发者
- 聊天:
POST /api/chat {text, images?};事件轮询GET /api/events?since=;逐字流GET /api/stream - 状态:
GET /api/stage、GET /api/stage/stream - 记忆/日记/地图/经济/环境等 REST 接口见插件内教程「给开发者」一节或运行时源码
server.mjs
测试
tests/ 是开发时用的自动化脚本(需要运行时在 8900 跑着,且会消耗少量 token):
python tests/full_test.py # 页面/API/出行/经济/地图/记忆/日记/角色
python tests/full_test2.py # space/phone/pc 工具与屏幕接口
python tests/her_test.py # 让她自己测:space/phone/pc/记忆/日记/花钱/code
已知限制
- Windows only(屏幕/手机/电脑工具);纯聊天版跨平台。
- 手机适配:只验证过 Android 16 / API 36 的 AVD
DSH_Phone(1080×1920);真机/其它安卓版本未测试。 - 手机中文输入通过 ADBKeyboard 广播实现(插件里可一键安装);没装时只能输出英文/数字。
- 旧版 Waydroid 的截图可能很慢,推荐用安卓模拟器。
- 3D 舞台内置 three.js,性能取决于显卡;卡就先用 2D。
reasoning_effort等模型参数依 DeepSeek API 可用性而定。- 模型兼容性:只保证 DeepSeek;其它 OpenAI 兼容模型未测试、不做适配。
- 环境辅助脚本模板在
runtime/env/,但里面的虚拟机名/SDK 路径需要按本机情况修改;可以先跑「环境自检」看缺什么。 - 默认数据目录是
%USERPROFILE%\.dsh-companion;升级/重装插件不会覆盖这里。
许可
MIT(插件代码)。示例角色/素材如需二次分发请保留原作者署名:默认人设卡「小鲸」为本项目原创示例;历史示例「大肥鱼」来自 dsh-persona-dafeiyu(MIT,作者 huaizhuanghub)。
开发者入口
GET /api/stage:角色状态 JSONGET /api/stage/stream:SSE 状态流- 市场简介见
STORE.md
早期版本说明
这是刚发布的第一版,功能很多、环境组合也很多,难免还有一些奇怪的小 bug。 遇到问题欢迎带日志反馈;给我一点时间,会慢慢修。谢谢包容。
Comments
Loading…