前言¶
在 DSH 里装过 dsh-pet 的开发者通常会碰到一个结构问题:桌宠自带一套小模型和精简记忆,和你在界面里那条主会话是两套脑子——你交代过的事它不知道,它调不了你在会话里已经接好的工具链。若还想让宠物「看一眼屏幕」再说话,若只发一句「你看下屏幕」却不带图,模型也看不见画面,只能猜。
dsh-pet-extras(维护者 amaji61,当前版本 0.2.3,MIT)是给 dsh-pet 加装的外挂:不提供桌宠本体,先把宿主里的一条真实会话接过来当桌宠的脑子,再可选地按间隔截主屏、把 PNG 当作附件投进同一条会话,让回答回到桌宠气泡里逐句念出来。插件自述零第三方依赖;分类上属于 DSH 社区目录里的「模型推理」。这是个人业余项目,与 dsh-pet 官方作者无关,早期版本功能上仍可能有 bug。
下面介绍它解决什么问题、怎么装、怎么用,以及安装前必须接受的隐私与 token 代价。
这是什么¶
一句话:dsh-pet-extras 把桌宠从「独立小聊天」改成「你选定那条 DSH 会话的语音入口」,并在你明确打开「看屏幕」且选好目标会话后,定时整屏截图、投图、播报。
数据流可以概括为:
你说的话 / 屏幕画面
↓
投递给 DSH 里的一条真实会话
↓
会话用完整上下文和记忆回答(可调工具)
↓
回答回到桌宠,逐句说出来
没装 dsh-pet 则没有意义——请先装桌宠,再加本插件。
接宿主智能体:底座能力¶
接宿主智能体默认关闭,但它是后面「看屏幕」的前提:关掉它,看屏幕与相关投递都不会工作。
dsh-pet 自带 |
开启接智能体后 | |
|---|---|---|
| 谁在回答 | 单独默认模型 | 界面里选定的真实会话 |
| 记忆 | 桌宠自己的精简记忆 | 该会话的完整上下文 |
| 能否调工具 | 不能 | 能(等同你发真消息) |
| 占用 token | 单独调用 | 该会话的额度 |
代价需要心里有数:桌宠每说一句话、每投一张图,都占目标会话的 token;投递串行排队,会话在跑你的任务时桌宠要等;行为上不是「纯挂件」,而是真的进会话。
配置里 targetSessionId 是权威键:完整会话 id,空字符串表示不投递、也不截屏(故意设计,避免把整屏截图灌进无关会话)。设置页在 设置 → 桌宠扩展 → 接哪条会话 里选好后,再考虑开「看屏幕」。
核心功能¶
| 功能 | 说明 | 默认 |
|---|---|---|
| 接宿主智能体 | 桌宠话术 followup 进目标会话,回复用桌宠气泡念出 |
关 |
| 看屏幕 | 开则按间隔抓主屏 PNG,每张投给目标会话;关则全停,无「只截不投」 | 关 |
| 视野档案 | 看图原图与会话原始分析存 $DSH_HOME/dsh-pet/视野/,按天分目录留 7 天 |
开 |
| 锁在屏幕内 | 经 /dsh-pet-extras/confine 明确设置后,才把 confineToScreen 下发给 dsh-pet |
插件默认不接管 |
看屏幕与聊天走同一条路:新截图 → 附件 → followup 进同一条会话 → 会话回一句 → 显示在桌宠气泡。间隔由 sightShareMinGap(秒,默认 60,最小 5)控制;旧键 screenshotIntervalSec 已废弃。可选自学习、额外要求写在 $DSH_HOME/dsh-pet/看图播报要求.md(lookLearnEnabled 等见配置文件)。
设置页:设置 → 桌宠扩展,含「看屏幕」开关与间隔;键存在 $DSH_HOME/dsh-pet/extras-config.json,不会写进官方 dsh-pet 的 assets/config.jsonc。0.2.3 起插件配置自给自足,不再依赖塞进 dsh-pet 的私有键。
隐私与截屏:安装前必读¶
插件会按你设的间隔截取主显示器整屏。截图默认只落在本地 $DSH_HOME/dsh-pet/screenshots/,插件自述不上传;只有在你打开「看屏幕」且选了目标会话后,图才会作为附件发给你在 DSH 里配置的模型提供方,用你自己的 API Key,费用自担。
默认 screenshotEnabled 为 false:不截图、不联网、不调用模型。若不想让图离开本机,就不要打开看屏幕。
安装与启用¶
前置:已安装 dsh-pet(README 示例依赖版本 0.3.8)。本包要求 Node >=22.12.0,DSH ^0.2.0-rc.1。
桌面版:通过插件管理器(推荐)¶
- 打开 设置 → 插件 → 添加插件
- 在「包名或地址」填写包文件的绝对路径(二选一):
-.tgz包,例如D:\某个目录\dsh-pet-extras-0.2.3.tgz
- 或解压后的文件夹,例如D:\某个目录\package - 确认安装并按提示重启 DSH
安装器会读包内 dsh.bundle,自动写入 dsh.profile.bundles,无需手改 package.json。
装完后:进入 设置 → 桌宠扩展,先选「接哪条会话」,再按需打开「看屏幕」。
手动安装(pnpm / 离线 tgz)¶
pnpm add 只会写 dependencies,必须同时在 profile 的 package.json 里把 dsh-pet-extras 加进 dsh.profile.bundles,否则设置页无入口、HTTP 路由 404。示例(profile 目录一般为 $DSH_HOME/profiles/desktop):
{
"dependencies": {
"dsh-pet": "0.3.8",
"dsh-pet-extras": "0.2.3"
},
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"dsh-pet",
"dsh-pet-extras"
]
}
}
}
改完重启;卸载时 dependencies 与 bundles 两处都要删。
确认插件已加载¶
<PORT> 为 DSH Web 端口(标题栏或启动日志可见,重启会变):
curl http://127.0.0.1:<PORT>/dsh-pet-extras/sight-share
预期类似 {"ok":true,"enabled":true,"minGapSec":60};404 或 no such route 则检查 bundles 是否加入并重启。
探活也可:
curl http://127.0.0.1:<PORT>/dsh-pet-extras/ping
典型用法¶
图形界面¶
- 设置 → 桌宠扩展:选择目标会话,保存。
- 需要看屏播报时打开「看屏幕」,设置间隔(秒),保存即生效。
- 仅聊天、不看屏:只开接智能体并选会话即可,保持看屏幕关闭。
HTTP 改配置¶
curl http://127.0.0.1:<PORT>/dsh-pet-extras/config
curl -X PUT http://127.0.0.1:<PORT>/dsh-pet-extras/config \
-H 'content-type: application/json' \
-d '{"screenshotEnabled": true, "sightShareMinGap": 60}'
向目标会话换绑或投递一句话:
curl -X POST http://127.0.0.1:<PORT>/dsh-pet-extras/agent \
-H 'content-type: application/json' \
-d '{"sessionId": "session-..."}'
curl -X POST http://127.0.0.1:<PORT>/dsh-pet-extras/agent \
-H 'content-type: application/json' \
-d '{"text": "你好", "async": true}'
立刻抓一张屏(会拉起截图 helper):
curl -X POST http://127.0.0.1:<PORT>/dsh-pet-extras/screenshot
其余路由(/sights、/confine、/learn、/rate 等)见仓库 README 的 HTTP 接口表。
截图机制(便于排错)¶
宿主进程无法直接调 desktopCapturer,插件会 spawn 最小化 Electron 进程(runtime/electron-helper/main.cjs),在本机随机端口起 HTTP,经 POST /shot 出图,文件落在 $DSH_HOME/dsh-pet/screenshots/,默认保留最近 60 张(screenshotKeep 可调)。
适用场景与注意¶
适合谁:已经在用 DSH + dsh-pet,希望桌宠与主会话同一上下文、能接着多轮聊、偶尔用整屏视觉让会话「看见」当前界面并用桌宠念出结论的开发者。
不适合谁:不能接受 periodic 全屏截图、或不想让任何屏幕内容进入模型上下文的人——请保持看屏幕关闭,或不要安装。
运行权限:插件随当前 DSH 进程运行,截屏与写 $DSH_HOME/dsh-pet/ 下的配置与截图均在该权限下完成;安装前应阅读源码与 MIT 许可证,自行评估敏感信息是否会出现在截图或会话里。
生态说明:DSH 社区插件目录(如 SkillHub 上的条目)独立于 DeepSeek / 幻方,并非官方应用商店。
结尾¶
dsh-pet-extras 的价值在于把桌宠从独立小脑改成你选定会话的入口,并在你显式开启时把主屏画面真实地交给同一条会话,再用桌宠说出来——代价是 token、排队和隐私边界,需要按 README 里的开关与会话选择自行把控。
- 目录页:https://www.skillhub.cn/plugins/amaji61/dsh-pet-extras
- 仓库与完整说明:https://github.com/amaji61/dsh-pet-extras