Files
Qt_DesktopPet/docs/QtDesktopPet_后续功能规划与结构审查.md
T

105 lines
5.3 KiB
Markdown

# QtDesktopPet 当前路线与结构收口
本文档是当前有效的开发路线总览。旧版长文档已归档到 `docs/archive/QtDesktopPet_后续功能规划与结构审查_旧版.md`
## 当前产品状态
项目当前是一个 Windows 优先的 Qt 6 Widgets 桌面宠物应用,主要能力包括:
- 透明无边框桌宠窗口、拖动、置顶、托盘和单实例唤醒。
- PNG 序列帧角色包、多状态动画、角色导入、切换、导出和用户角色目录管理。
- AI 对话,支持 OpenAI Compatible、OpenAI 官方、Google Gemini、DeepSeek、Custom 配置。
- 输入框联网模式,使用 AI Provider 原生联网能力,不再维护旧搜索引擎聚合。
- 定时提醒,支持一次性和每天/每周/每月重复提醒、音效管理、历史保留和隐藏/AI 忙通知规则。
- 天气查询,使用 Open-Meteo、默认城市、IP fallback、多候选提示和默认城市测试。
- 对话历史管理,支持本地保存、关键词搜索、Provider/模型/时间筛选、Markdown/JSON 导出。
- 本地应用启动,支持登记应用、别名、手选 `.exe`、启动前确认和开机自启动配置。
- 本地文件操作 v1,支持读取文本、列目录、复制、备份和重命名。
- 本地工作区 Agent v1b,支持选择工作区、扫描索引、搜索文件、搜索文本、读取文本文件、项目结构摘要、文件内容总结、打开普通文件、显示所在位置和独立 Agent 窗口。
## 当前结构边界
已经形成的模块边界:
| 模块 | 目录 | 状态 |
| --- | --- | --- |
| AI 对话 | `src/ai/` | 已落地 |
| 意图分发 | `src/assistant/` | 已落地 |
| 角色包 | `src/character/` | 已落地 |
| 配置与密钥 | `src/config/` | 已落地 |
| 文件操作 v1 | `src/fileops/` | 已落地,后续将被 Workspace Agent 替代 |
| 应用启动 | `src/launcher/` | 已落地 |
| 通知 | `src/notification/` | 已落地 |
| 提醒 | `src/reminder/` | 已落地 |
| 状态机 | `src/state/` | 已落地 |
| 系统能力 | `src/system/` | 已落地 |
| 天气 | `src/weather/` | 已落地 |
| 联网模式 | `src/web/` | 已落地 |
| 本地工作区 Agent | `src/workspace/` + `src/ui/WorkspaceAgentWindow.*` | v1a.1/v1b/v1b.5 独立窗口化已落地 |
`PetWindow` 仍然承担较多 UI 编排职责。后续新增大功能必须优先放在独立模块和 Controller 中,`PetWindow` 只保留入口、展示和确认交互。
## 下一阶段主线
下一阶段主线仍是本地工作区 Agent,而不是继续扩展旧 `src/fileops/`
v1a.1/v1b/v1b.5 已完成:
- 用户选择一个本地工作区目录。
- 桌宠可以扫描、搜索、读取和分析该工作区内文件。
- 桌宠可以打开工作区内普通文件、打开文件夹、显示文件所在位置。
- 独立 Agent 窗口可以展示文件结果、文本命中、最近读取、用户任务、本地工具结果和 AI 分析结果,并对选中结果执行读取、打开、显示位置。
- 写操作误分发已收口:创建/新建/写入/修改不会再误走旧 fileops 的读取文本文件流程。
- 文本搜索误分发已收口:`含class的文件 / 包含 class 的文件 / 找一下含 class 的文件` 会走工作区全文搜索,不再弹旧文本文件选择框。
后续目标:
- 桌宠可以生成文件修改计划。
- 创建、修改、复制、移动、重命名、删除到回收站等写操作必须先展示计划并等待用户确认。
- 不允许访问工作区外路径。
- 不允许执行系统命令、脚本或聊天文本中的命令参数。
- 不允许永久删除文件。
正式施工计划见:
`docs/agent/DesktopPet_本地工作区Agent_施工计划.md`
## 功能优先级建议
当前聊天意图建议保持以下原则:
1. 提醒明确优先,例如“明天提醒我看天气”应创建提醒。
2. 天气明确问答走天气模块,例如“明天西安天气怎么样”。
3. 工作区相关文件和代码任务走 Workspace Agent,例如“搜索这个项目里的 README”“读取 main.cpp”“分析这个项目”;重命名等写操作留到后续阶段。
4. 明确应用启动走 Launcher,例如“打开 Codex”“启动酷狗音乐”。
5. 其余走普通聊天或联网聊天。
不能简单用“文件 / 打开 / 搜索”这类宽关键词吞掉所有请求。尤其要避免:
- “打开微信”误判为工作区打开文件。
- “搜索 Qt 最新版本”误判为工作区搜索。
- “把天气截图保存到桌面”误判为天气查询。
## 当前延期项
以下能力继续延期,不进入本地工作区 Agent 第一阶段:
- 语音输入和语音朗读。
- Live2D、GIF、视频形象。
- 插件系统。
- 云同步和自动更新。
- 长期记忆系统。
- 角色市场或角色包分享平台。
- Shell 命令执行、脚本执行、自动安装依赖。
- 自动 git commit、自动推送、自动联网下载并执行文件。
- 工作区外全盘搜索。
- 复杂网页抓取和旧搜索引擎聚合。
## 验收策略
- Codex 不调用 CMake、`cmake --build`、Qt Creator 构建或等价构建命令。
- 每完成一个模块,先做静态检查和逻辑推演。
- 编译和运行验证由用户手动执行。
- 功能验收按 `docs/QtDesktopPet_测试清单与验收标准.md`
- 性能和发布验收按 `docs/performance_stability_check.md`