DesktopPet 用户手册

适用版本:DesktopPet v1.0.0
平台:Windows
说明:本手册面向普通用户,介绍 DesktopPet 的安装、启动、桌宠操作、宠物管理、动作设置、AI 对话、联网搜索、对话日志、个性化、托盘菜单、图片处理工具、更新机制和数据目录。不同小版本界面文字可能略有差异,以实际程序为准。


1. 软件简介

DesktopPet 是一款桌面宠物应用。它可以在桌面上显示一个可拖动、可播放动作的宠物,并提供 AI 对话、联网搜索、动作配置、情绪动作、主题个性化、对话日志和更新检查等功能。

DesktopPet 不内置默认宠物资源。首次使用时,如果没有创建或导入宠物,桌面 player 会显示状态提示。用户需要在“宠物管理”页面中新建宠物、导入宠物,或手动恢复已有宠物资源。

DesktopPet 的核心使用流程通常是:

  1. 安装并启动 DesktopPet。
  2. 在“宠物管理”中新建或导入宠物。
  3. 在“动作设置”中创建、导入并配置动作。
  4. 在“LLM 设置”中配置 AI 模型。
  5. 根据需要开启“搜索设置”、查看“对话日志”、调整“个性化”。

2. 安装、启动与退出

2.1 安装

推荐使用发布页中的安装程序:

1
DesktopPet_Setup_vX.X.X.exe

运行安装程序后,按安装向导完成安装。安装程序只负责安装 DesktopPet 主程序、配套工具和必要依赖,不会内置默认宠物资源

2.2 启动

启动 DesktopPet 后,通常会出现两个部分:

  1. 桌面 player:显示桌宠、播放动作,或在无宠物时显示状态提示。
  2. 设置窗口:用于管理宠物、动作、LLM、搜索、日志、个性化和关于信息。

是否启动时自动播放、是否启动时打开设置窗口,可以在“个性化”页面配置。

2.3 退出

退出方式包括:

  • 右键桌宠 player,在菜单中选择“退出”。
  • 右键系统托盘图标,选择“退出”。
  • 关闭应用主进程。

退出程序不会删除宠物、动作、配置或对话日志。


3. 桌宠 player 基本操作

3.1 左键点击

左键单击桌宠 player,可以打开或关闭聊天面板。

如果聊天面板已经打开,再次左键单击桌宠会隐藏聊天面板。

3.2 左键拖动

按住鼠标左键并移动,可以拖动桌宠位置。DesktopPet 会尽量限制桌宠不完全移出当前屏幕可用区域。

如果动作开启了自动移动,用户拖动时会优先响应用户操作,避免拖动和自动移动冲突。

3.3 右键菜单

右键桌宠 player,会出现快捷菜单,常见选项包括:

  • 开始:开始播放当前宠物动作。
  • 暂停:暂停桌宠播放。
  • 隐藏桌宠:隐藏桌宠 player。
  • 打开设置:打开设置窗口。
  • 退出:退出 DesktopPet。

3.4 状态提示

当没有宠物、宠物配置缺失、动作资源不可用或当前没有可播放动作时,player 会显示状态提示面板。例如:

  • 尚未创建宠物
  • 当前宠物配置缺失
  • 暂无可用动作
  • 宠物已暂停

状态提示只是当前状态说明,不会替代宠物资源。需要到“宠物管理”或“动作设置”中补齐配置。


4. 系统托盘菜单

DesktopPet 启动后会在 Windows 系统托盘区域显示图标。右键托盘图标可以打开托盘菜单。

托盘菜单包含:

  • 显示桌宠:显示已隐藏的桌宠 player。
  • 隐藏桌宠:隐藏桌宠 player。
  • 开始:开始播放宠物动作。
  • 暂停:暂停宠物动作。
  • 打开设置:打开设置窗口。
  • 退出:退出程序。

托盘菜单是正式控制入口。早期调试用的“测试情绪”菜单已经移除,情绪动作现在由 AI 回复中的 emotion 字段自动触发。


5. 设置窗口总览

设置窗口左侧为导航栏,主要页面包括:

  1. 宠物管理
  2. 动作设置
  3. LLM 设置
  4. 搜索设置
  5. 对话日志
  6. 个性化
  7. 关于

每个页面对应一个独立功能模块。通常建议先完成“宠物管理”和“动作设置”,再配置 AI 对话和搜索能力。


6. 宠物管理

“宠物管理”用于创建、导入、选择、启用、禁用和删除宠物。

6.1 当前宠物

页面顶部会显示当前宠物状态。如果尚未选择宠物,桌面 player 会显示无宠物提示。

6.2 宠物列表

宠物列表显示已加入宠物库的宠物。点击列表项可以查看该宠物的详细信息。

6.3 新建宠物

点击“新建”可以创建一个新的宠物配置。创建时通常需要填写:

  • 宠物 ID:用于目录名,建议只使用字母、数字、下划线或短横线。
  • 宠物名称:用于界面显示,可以使用中文。
  • 画布尺寸:动作图片的基础画布大小。
  • 显示尺寸:桌面上显示的宠物窗口大小。

创建宠物只会生成配置,不会自动生成默认动作资源。后续需要在“动作设置”中创建或导入动作。

6.4 导入宠物

点击“导入”可以选择已有宠物目录。有效宠物目录应包含:

1
2
pet.json
playlist.json

宠物目录规则:

1
pets/<petId>/

petId 必须与 pet.json 中的 id 一致。如果目录名和 pet.json 中的 id 不一致,DesktopPet 可能会跳过该宠物,或显示配置缺失。

6.5 重新加载

“重新加载”用于重新扫描和恢复宠物库索引。当用户手动复制宠物资源到程序数据目录后,可以点击此按钮恢复 petlibrary.json

恢复规则较保守:只有目录存在、包含 pet.jsonplaylist.json、配置可读取、且目录名与宠物 ID 一致的宠物才会被恢复。

6.6 开始与暂停

  • 开始:让当前宠物开始播放动作。
  • 暂停:停止当前播放状态,player 显示暂停状态或保持当前画面。

6.7 右键宠物列表

在宠物列表上右键,可以执行宠物相关操作,具体以当前版本菜单为准。常见操作包括:

  • 启用或禁用宠物
  • 删除宠物
  • 设置或切换当前宠物

禁用宠物不会删除资源;删除宠物可能删除或移除相关配置,操作前应确认。


7. 动作设置

“动作设置”用于管理全局动作库,以及把动作配置到当前宠物的播放列表中。

页面主要由三部分组成:

  1. 动作库
  2. 动作分类配置
  3. 当前动作配置

7.1 动作库

动作库列出已经导入或创建的动作。动作通常对应一个 GIF 或一组图片帧。

操作包括:

  • 新建动作
  • 导入动作
  • 右键动作添加到当前分类
  • 拖拽动作到右侧分类
  • 重命名动作 ID
  • 移除动作
  • 删除动作

“移除动作”通常表示从动作库索引中移除,但资源文件可能仍然保留。
“删除动作”通常会删除动作资源并从播放列表中清理引用,属于危险操作。

7.2 新建动作

点击“新建动作”可从 GIF 文件创建动作。通常需要配置:

  • GIF 文件
  • 动作 ID
  • FPS
  • 添加到分类
  • 定时触发方式
  • 情绪类型

创建后,DesktopPet 会提取 GIF 帧并生成动作资源。

7.3 导入动作

点击“导入动作”可以导入已有动作目录或动作库。导入时可选择动作文件夹,并根据检测结果导入单个动作或批量动作。

7.4 动作分类

当前宠物的播放列表分为四类:

  1. 日常动作
  2. 随机动作
  3. 定时动作
  4. 情绪动作

日常动作

日常动作是基础播放序列。宠物空闲时会按播放列表播放日常动作。

随机动作

随机动作会在运行过程中随机触发,用于增加桌宠表现的变化。

定时动作

定时动作支持两种触发方式:

  • 每隔一段时间触发
  • 指定时间触发

可以用来配置定期发生的动作,例如每隔若干秒播放一次,或每天某个时间播放。

情绪动作

情绪动作由 AI 回复中的 emotion 字段触发。支持的 emotion 包括:

1
2
3
4
5
6
happy
sad
angry
surprised
fear
confused

neutral 表示不播放情绪动作,不作为可配置动作类型

情绪动作列表会显示所有情绪动作,并按固定顺序分组:

1
happy -> sad -> angry -> surprised -> fear -> confused

同一情绪下可以配置多个动作。触发某个 emotion 时,DesktopPet 会从该 emotion 的候选动作中随机选择一个加入播放队列。如果候选动作多于一个,会尽量避免连续重复播放同一个动作。

7.5 把动作加入分类

可以通过以下方式把动作加入右侧分类:

  • 右键动作库中的动作,选择添加到当前分类。
  • 从动作库拖拽动作到右侧分类列表。

情绪动作列表允许从动作库拖入动作,但不允许通过拖拽在情绪列表内部跨情绪乱序。情绪动作的排序以 emotion 分组为主,同一 emotion 内可通过“上移”“下移”调整。

7.6 当前动作配置

选中右侧分类中的动作后,可以在“当前动作配置”中调整:

  • 循环:是否循环播放。
  • 次数:播放次数,0 通常表示无限循环。
  • 倍速:是否启用动画播放倍速。
  • 速度:动作播放速度。
  • 移动:播放该动作时是否移动桌宠。
  • 移动速度:移动速度倍率。
  • 方向:随机、水平、竖直。
  • 对应情绪:仅情绪动作显示,用于设置该动作属于哪个 emotion。
  • 定时触发方式:仅定时动作显示。
  • 间隔:定时动作按间隔触发时使用。
  • 时间:定时动作按指定时间触发时使用。

7.7 保存配置与保存并应用

  • 保存配置:把当前动作配置保存到配置文件。
  • 保存并应用:保存配置,并让当前运行中的宠物立即重新加载配置。

8. 配套工具:DesktopPet-resize 图片处理工具

DesktopPet 安装包会附带一个配套工具:DesktopPet-resize.exe。它用于批量处理宠物动作图片资源,适合在导入动作前整理素材。

DesktopPet-resize 只负责处理图片,不会自动创建宠物,也不会自动导入动作。处理完成后,仍需要回到 DesktopPet 主程序,在“动作设置”中导入或配置动作。

8.1 什么时候需要使用

在以下场景中可以使用 DesktopPet-resize:

  • 动作图片尺寸不统一。
  • 动作帧比当前宠物显示尺寸大或小很多。
  • 图片边缘空白过多,需要统一画布效果。
  • 动作资源体积较大,希望处理后再导入。
  • 从外部素材包整理动作图片时,需要先规范尺寸。

8.2 打开方式

可以通过以下方式打开:

  • 开始菜单中的 DesktopPet 图片处理工具。
  • 安装目录中的 DesktopPet-resize.exe
  • release 包中的 DesktopPet-resize.exe

8.3 界面项目

DesktopPet-resize 主要包含这些区域:

  • pet.json:选择当前宠物的 pet.json,工具会尝试读取显示尺寸。
  • 动作目录:选择要处理的动作图片目录。
  • 目标尺寸:设置输出图片的宽度和高度。
  • 备份:处理前复制原动作目录,降低误操作风险。
  • 缩放方式:选择“保持比例 + 居中填充”或“直接拉伸到目标尺寸”。
  • 日志:显示处理过程、成功数量、跳过数量和失败数量。

8.4 基本使用流程

推荐流程如下:

  1. 准备好动作图片目录。
  2. 打开 DesktopPet-resize.exe
  3. 选择对应宠物的 pet.json
  4. 选择动作目录。
  5. 检查或手动设置目标宽度和高度。
  6. 保持“启用备份”处于开启状态。
  7. 选择缩放方式。
  8. 点击“开始处理”。
  9. 检查日志和输出图片。
  10. 回到 DesktopPet 主程序,在“动作设置”中导入或配置动作。

8.5 缩放方式说明

  • 保持比例 + 居中填充:尽量保持原图比例,将图像缩放后居中放入目标画布。适合大多数宠物动作素材。
  • 直接拉伸到目标尺寸:强制拉伸到目标宽高。可能导致图像变形,只有在确认素材比例匹配时再使用。

8.6 备份建议

建议先输出或备份到新目录,不要直接覆盖原始素材。

工具默认会在处理前复制原目录,避免图片处理结果不符合预期时无法恢复。关闭备份时,工具会提示确认,因为处理会直接覆盖原图片。

8.7 注意事项

  • GIF 文件会被跳过,主要处理 PNG、JPG、JPEG、WEBP、BMP 等图片文件。
  • 如果 Qt 环境不支持写入某些格式,例如 WEBP,日志中会提示保存失败。
  • 如果图片已经是目标尺寸,工具会跳过该文件。
  • 处理完成后仍需在主程序中导入或配置动作。

9. LLM 设置

“LLM 设置”用于配置 AI 对话模型和角色设定。

9.1 当前 API 配置

页面顶部显示当前选中的 API Profile。可以测试连接,也可以重新加载磁盘上的 API 配置。

9.2 配置库

配置库中保存多个 API Profile。每个配置通常包含:

  • 供应商
  • API Key
  • Base URL
  • 模型名
  • Max Tokens
  • Temperature
  • API 格式

当前仅支持 OpenAI-compatible API。Claude / Anthropic 原生接口暂未开放。

“自定义”供应商仍按 OpenAI 兼容接口调用,模板中会说明仅支持 OpenAI 兼容格式。

9.3 新增、编辑、删除配置

  • 新增配置:创建新的 API Profile。
  • 编辑配置:修改当前配置内容。
  • 删除配置:删除配置库中的配置。

API Key 保存在本地配置文件中,请勿在公共电脑保存。当前版本的 API Key 保存在本地 config/api_profiles.json,请妥善保管设备和配置文件。

9.4 测试连接

点击“测试连接”会使用当前 API 配置发起一个轻量请求,用于验证:

  • API Key 是否可用
  • Base URL 是否正确
  • 模型名是否可用

测试结果会通过提示显示,不会写入聊天记录。

9.5 对话设置

“对话设置”是角色设定文本。它用于控制桌宠回复风格,例如:

  • 说话语气
  • 是否使用中文
  • 是否扮演某个角色
  • 回复是否简短
  • 是否带宠物感

保存后,之后的聊天会使用新的设定。


10. 聊天面板

10.1 打开与关闭

左键单击桌宠 player 可打开或关闭聊天面板。

10.2 发送消息

输入框支持:

  • Enter:发送消息
  • Shift + Enter:换行

聊天面板中消息显示为:

1
2
3
我: 用户消息

宠物名: 宠物回复

10.3 上下文

DesktopPet 会保留近期对话作为短期上下文,但不会无限保留所有对话。程序退出后,聊天窗口内容不会自动恢复。

10.4 当前时间上下文

每次请求都会临时注入当前本地时间、日期、星期和时区,用于回答“现在几点”“今天星期几”等问题。

这条时间上下文不会显示在聊天窗口,不会写入聊天日志,也不会保存到对话历史。

10.5 结构化回复与情绪动作

DesktopPet 会要求模型返回结构化 JSON:

1
2
3
4
{
"reply": "显示给用户的回复",
"emotion": "happy"
}

聊天窗口只显示 replyemotion 用于触发情绪动作。

支持的 emotion:

1
2
3
4
5
6
7
neutral
happy
sad
angry
surprised
fear
confused

其中 neutral 表示不播放动作。其他 emotion 如果在当前宠物的 playlist.json 中配置了对应情绪动作,就会自动播放;未配置时会静默跳过,不影响聊天。


11. 搜索设置与联网搜索

“搜索设置”用于配置联网搜索增强能力。

11.1 启用联网搜索

勾选“启用联网搜索”后,DesktopPet 可在需要外部实时信息时调用搜索服务。

支持的搜索服务包括:

  • Tavily
  • Brave Search
  • Exa

需要填写对应服务的 API Key。

11.2 搜索参数

搜索设置包括:

  • 搜索服务
  • API Key
  • 结果数量
  • 搜索深度
  • 超时时间

配置完成后可以保存设置,也可以测试搜索。

11.3 重新加载

“重新加载”会重新读取 config/websearch_settings.json 中的搜索配置,适合手动修改或恢复配置文件后使用。

11.4 自动触发搜索

当用户消息涉及外部实时信息时,DesktopPet 会触发搜索。例如:

  • 今天有什么新闻
  • 最近有什么新闻
  • 最新版本
  • 天气
  • 股价
  • 汇率
  • 价格
  • 发布信息

普通闲聊不会触发搜索。例如:

  • 最近怎么样
  • 现在几点
  • 今天几号

时间类问题由本地时间上下文回答,不使用联网搜索。

11.5 手动强制搜索

/search 和 #search 可强制联网搜索。也可以使用中文指令“搜一下”“查一下”。

1
2
3
4
/search
#search
搜一下
查一下

指令可以放在开头,也可以放在消息中间。命令后的文本会作为搜索 query。

例如:

1
/search Qt 6.11 发布信息
1
宝宝我来啦 /search 水豚喜欢吃什么零食

11.6 首次对话时搜索角色设定中的实时内容

搜索设置中可以启用“首次对话时搜索角色设定中的实时内容”。启用后,应用启动后的第一次聊天中,如果角色设定包含“最近、最新、当前、很火、流行”等实时内容,DesktopPet 会额外搜索一次作为背景。

该搜索只在首次对话触发一次,不会每轮都搜索。


12. 对话日志

“对话日志”用于查看已保存的聊天记录。

12.1 日志写入

DesktopPet 会把聊天窗口中可见的消息写入本地 JSONL 日志,包括:

  • 用户消息
  • 宠物回复
  • 可见系统提示

不会写入:

  • API Key
  • 临时 system prompt
  • 当前时间 system message
  • 联网搜索上下文原文
  • 模型返回 JSON 的隐藏 emotion 字段

12.2 日志路径

日志路径:

1
logs/chat/<petId>/<yyyyMMdd>.jsonl

如果没有当前宠物,则使用:

1
logs/chat/_no_pet/<yyyyMMdd>.jsonl

12.3 加载日志

在“对话日志”页面点击“加载日志”,选择 .jsonl 文件即可查看。

页面支持搜索日志内容,可以按对话内容、宠物、API 配置等关键词过滤显示。

12.4 日志与记忆的区别

对话日志不会自动作为长期记忆注入。日志只是本地查看和检索用途。当前版本不会自动把日志恢复到聊天窗口,也不会把日志作为长期记忆重新注入给模型。


13. 个性化

“个性化”用于调整外观、显示和启动行为。

13.1 外观主题

可以选择浅色主题和深色主题。主题会影响:

  • 设置窗口背景
  • 卡片颜色
  • 按钮颜色
  • 列表颜色
  • 输入框颜色
  • 菜单样式

13.2 桌宠显示

可调整:

  • 桌宠不透明度:控制 player 的整体透明程度。
  • 卡片渐变强度:控制设置界面卡片渐变效果。
  • 随机渐变:启用后卡片可以使用随机渐变风格。
  • 基础移动速度:控制动作移动播放时的基础移动速度。

13.3 启动行为

可配置:

  • 开机自启动:Windows 登录后自动启动 DesktopPet。
  • 启动后自动开始播放:程序启动后自动播放宠物动作。
  • 启动时打开设置窗口:程序启动时自动显示设置窗口。

13.4 清空注册表修改

“清空注册表修改”用于清理 DesktopPet 写入的本机设置,例如启动相关设置。它不会删除宠物资源、动作资源、配置文件、日志文件。

该操作主要用于恢复本机设置状态,或排查启动项、主题、窗口设置等本机设置异常。


14. 关于、用户手册与更新

“关于”页面包含项目说明、用户手册入口、当前版本和更新检查入口。

14.1 项目信息

显示 DesktopPet 图标、名称和简要介绍。

14.2 用户手册

关于页可以提供“打开用户手册”按钮。点击后会使用默认浏览器打开用户手册页面,例如博客页面。

14.3 版本信息

显示当前版本,例如:

1
v1.0.0

14.4 检查更新

点击“检查更新”会请求 GitHub Releases 最新正式版本。

如果当前已是最新版本,会显示“当前已是最新版本”。

如果发现新版本,会显示:

  • 最新版本号
  • 更新说明
  • 下载并安装按钮
  • 打开发布页按钮

14.5 下载并安装

点击“下载并安装”后,DesktopPet 会下载发布页中的安装程序:

1
DesktopPet_Setup*.exe

下载位置为系统临时目录。下载完成后会启动安装向导,并退出当前 DesktopPet。

更新程序只下载安装包,不会直接覆盖正在运行的 exe。文件替换由 Inno Setup 安装程序处理。

config / pets / logs 不会被主动删除。更新不会主动删除:

1
2
3
config/
pets/
logs/

15. 数据目录与配置文件

DesktopPet 的运行数据主要位于程序运行目录下。

15.1 配置目录

1
2
3
4
config/
├── api_profiles.json
├── chat_settings.json
└── websearch_settings.json

说明:

  • api_profiles.json:API 配置档案,currentProfile 字段保存当前选中配置。
  • chat_settings.json:对话设置。
  • websearch_settings.json:搜索设置。

15.2 宠物与动作目录

1
2
3
petlibrary.json
pets/<petId>/
actions/<actionId>/

petId 必须与 pet.json 中的 id 一致。

15.3 日志目录

1
logs/chat/<petId>/<yyyyMMdd>.jsonl

15.4 不内置默认资源

DesktopPet 不内置默认宠物资源。安装包和 release 包不会打包默认 pets 资源。用户需要自行创建、导入或恢复宠物。


16. 常见问题

16.1 为什么首次打开没有宠物?

因为 DesktopPet 不内置默认宠物资源。请到“宠物管理”中新建或导入宠物。

16.2 为什么宠物不播放?

可能原因:

  • 当前没有启用宠物。
  • 当前宠物没有动作资源。
  • 动作未加入播放列表。
  • 程序处于暂停状态。
  • 动作资源路径缺失。

可依次检查“宠物管理”和“动作设置”。

16.3 为什么情绪动作没有触发?

可能原因:

  • 模型返回的是 neutral
  • 当前宠物没有配置对应 emotion 的动作。
  • 动作资源缺失。
  • 当前动作还在播放,情绪动作已入队但尚未轮到播放。

16.4 为什么 /search 没有触发?

请确认:

  • 搜索设置中已启用联网搜索。
  • 已配置搜索 API Key。
  • 使用了 /search#search搜一下查一下
  • 命令后有可搜索内容。

16.5 为什么“现在几点”没有联网搜索?

这是正常行为。时间问题使用本地系统时间上下文,不调用联网搜索。

16.6 为什么更新检查失败?

可能原因:

  • 网络不可用。
  • GitHub 无法访问。
  • 仓库没有发布正式 release。
  • release 是 draft 或 prerelease。
  • release 中没有符合名称规则的安装包 asset。

16.7 更新会删除宠物和配置吗?

不会。更新程序只下载安装包并启动安装向导,不会主动删除 configpetslogs

16.8 DesktopPet-resize 会自动导入动作吗?

不会。DesktopPet-resize 不会自动导入资源。它只处理图片。处理完成后,需要回到 DesktopPet 主程序,在“动作设置”中导入或配置动作。


17. 使用建议

  1. 先创建或导入宠物,再配置动作。
  2. 至少配置一个日常动作,否则宠物可能没有可播放内容。
  3. 情绪动作建议每个 emotion 配置 1 到 3 个动作,以增加表现变化。
  4. API Key 请只保存在可信设备上。
  5. 更新前可备份 configpetsactionslogs
  6. 如果手动复制资源,使用“重新加载”恢复索引。
  7. 使用 DesktopPet-resize 处理图片前,建议保留备份。

18. 后续计划

后续版本可能继续补充:

  • 更完善的长期记忆与摘要记忆
  • 流式输出
  • Tool Calling / Function Calling
  • 更完整的资源编辑器
  • 更完善的自动更新策略
  • 更多平台适配