1089 lines
38 KiB
Markdown
1089 lines
38 KiB
Markdown
# GoodBuddy 跨平台 AI 桌面助手功能方案设计
|
||
|
||
## 1. 文档信息
|
||
|
||
| 项目 | 内容 |
|
||
| --- | --- |
|
||
| 文档类型 | 产品设计基线 |
|
||
| 状态 | 初始方案 |
|
||
| 版本 | 0.1 |
|
||
| 日期 | 2026-07-29 |
|
||
| 适用产品 | GoodBuddy |
|
||
| 产品形态 | 常驻型跨平台 AI 桌面助手 |
|
||
| 目标平台 | Windows、macOS、Linux(含统信 UOS、银河麒麟) |
|
||
| 目标架构 | x86_64、ARM64(含鲲鹏、飞腾) |
|
||
| 推荐技术栈 | Electron + React + TypeScript + Vite |
|
||
| 可选扩展 | Rust Sidecar,用于本地索引、OCR、文档解析等性能敏感任务 |
|
||
|
||
本文定义产品范围、功能模块、关键交互、权限安全、跨平台策略、非功能指标、版本路线及验收要求。产品参考通用 AI 桌面助手形态,不依赖任何第三方产品的私有实现。
|
||
|
||
---
|
||
|
||
## 2. 产品定位
|
||
|
||
### 2.1 产品愿景
|
||
|
||
打造一款随时可唤起、能够理解用户显式提供的桌面上下文、可以安全调用工具的 AI 助手。用户无需频繁切换应用,即可完成问答、写作、翻译、总结、截图分析、文件问答、知识检索和轻量任务自动化。
|
||
|
||
### 2.2 核心价值
|
||
|
||
1. **随时可用**:通过全局快捷键、系统托盘或悬浮助手快速唤起。
|
||
2. **理解当前工作**:在用户明确授权后读取选中文本、截图、剪贴板和文件。
|
||
3. **回答有依据**:知识库回答提供文件、页码或段落引用。
|
||
4. **执行可控制**:工具调用必须经过权限校验、参数校验和必要的用户确认。
|
||
5. **跨平台可交付**:在 Windows、macOS、Linux x64/ARM64 上保持核心任务一致。
|
||
6. **企业可治理**:支持模型、网络、权限、数据和更新策略的集中管控。
|
||
|
||
### 2.3 目标用户
|
||
|
||
| 用户类型 | 典型需求 |
|
||
| --- | --- |
|
||
| 知识工作者 | 写作、翻译、总结、资料整理、文件问答 |
|
||
| 研发人员 | 代码解释、日志分析、技术资料检索、生成代码草稿 |
|
||
| 企业员工 | 查询内部知识、调用企业技能、生成业务内容 |
|
||
| IT 管理员 | 批量部署、模型配置、权限控制、审计和版本治理 |
|
||
| 国产化环境用户 | 在统信 UOS、银河麒麟、鲲鹏、飞腾设备上稳定运行 |
|
||
|
||
### 2.4 产品原则
|
||
|
||
- 默认最小权限,不在首次启动时集中申请全部系统权限。
|
||
- 默认只处理用户主动输入或显式添加的上下文。
|
||
- 任何即将发送给模型的上下文都必须可见、可预览、可移除。
|
||
- 模型输出不等同于执行授权,工具权限由独立权限层判定。
|
||
- 核心体验保持一致,受系统限制的能力采用渐进增强和明确降级。
|
||
- 安全、权限、更新签名和数据生命周期属于基础能力,不延期补做。
|
||
|
||
### 2.5 当前非目标
|
||
|
||
- 不替代浏览器、IDE、办公软件或操作系统 Shell。
|
||
- MVP 不提供任意 Shell、任意代码执行和无人值守高风险操作。
|
||
- 不持续录屏、持续监听输入或默认保存完整剪贴板历史。
|
||
- 不默认上传桌面内容、全部文件或用户未选择的数据。
|
||
- 暂不支持龙芯 LoongArch、申威 Sunway 等架构。
|
||
- MVP 不建设开放插件市场、跨设备同步和完整企业设备管理平台。
|
||
|
||
---
|
||
|
||
## 3. 版本范围
|
||
|
||
### 3.1 优先级定义
|
||
|
||
| 优先级 | 定义 |
|
||
| --- | --- |
|
||
| P0 / MVP | 首个正式版本必须具备,构成核心使用闭环 |
|
||
| P1 | MVP 后优先建设,提升效率、知识能力和企业可用性 |
|
||
| P2 | 平台稳定后建设,涉及生态、复杂代理或更高系统权限 |
|
||
|
||
### 3.2 MVP 核心闭环
|
||
|
||
```text
|
||
安装并完成模型配置
|
||
→ 使用快捷键唤起
|
||
→ 输入问题或添加文本、截图、剪贴板、文件
|
||
→ 查看本次将发送的上下文
|
||
→ 获得流式回答和来源引用
|
||
→ 复制结果或确认执行低风险工具
|
||
→ 在历史记录中继续对话
|
||
```
|
||
|
||
### 3.3 版本能力概览
|
||
|
||
#### MVP
|
||
|
||
- 主窗口、快捷面板、系统托盘、全局快捷键。
|
||
- 可关闭的悬浮助手。
|
||
- 多轮 AI 对话、流式输出、停止、重试和历史记录。
|
||
- 用户主动添加的截图、剪贴板、选中文本和文件上下文。
|
||
- 单个本地知识库、向量检索和来源引用。
|
||
- 白名单内置工具及逐次授权。
|
||
- 基础通知、设置、权限中心、诊断日志和更新检查。
|
||
- Windows、macOS、Linux x64/ARM64 安装包与兼容性验证。
|
||
|
||
#### P1
|
||
|
||
- 多知识库、文件夹同步、增量索引、OCR、混合检索和重排。
|
||
- 企业私有模型、代理网络、企业技能目录和签名策略。
|
||
- 多步骤任务、人工检查点、失败重试和任务历史。
|
||
- 更新灰度、回滚、企业更新源和审计导出。
|
||
- 更完善的活动窗口、选中文本及上下文白名单能力。
|
||
|
||
#### P2
|
||
|
||
- 定时低风险自动化和多步骤智能代理。
|
||
- 插件 SDK、技能市场和团队知识库。
|
||
- SSO、SCIM、集中设备管理和跨设备会话同步。
|
||
- 离线本地模型及云端、本地混合推理。
|
||
|
||
---
|
||
|
||
## 4. 产品信息架构
|
||
|
||
### 4.1 产品入口
|
||
|
||
| 入口 | 主要功能 |
|
||
| --- | --- |
|
||
| 系统托盘/菜单栏 | 打开助手、新建对话、暂停上下文能力、设置、退出 |
|
||
| 全局快捷键 | 唤起或收起快捷面板 |
|
||
| 悬浮助手 | 查看状态、打开快捷面板、进入常用动作 |
|
||
| 主窗口 | 管理对话、知识库、技能、任务、通知和设置 |
|
||
| 系统通知 | 跳转到已完成、失败或待确认的任务 |
|
||
| 深度链接 | 在可信来源下打开指定会话或功能页面 |
|
||
|
||
### 4.2 主窗口导航
|
||
|
||
```text
|
||
主窗口
|
||
├── 对话
|
||
│ ├── 会话列表
|
||
│ ├── 消息区域
|
||
│ ├── 上下文附件
|
||
│ └── 输入与快捷动作
|
||
├── 知识库
|
||
│ ├── 知识库列表
|
||
│ ├── 文档与索引状态
|
||
│ └── 检索测试
|
||
├── 技能与任务
|
||
│ ├── 可用技能
|
||
│ ├── 权限范围
|
||
│ └── 任务历史
|
||
├── 通知中心
|
||
└── 设置
|
||
├── 通用与外观
|
||
├── 模型服务
|
||
├── 快捷键与悬浮助手
|
||
├── 权限与隐私
|
||
├── 存储与知识库
|
||
├── 网络与代理
|
||
├── 通知与更新
|
||
└── 诊断与关于
|
||
```
|
||
|
||
### 4.3 核心状态
|
||
|
||
- **未配置**:没有可用模型,引导用户完成配置或登录。
|
||
- **空闲**:等待输入。
|
||
- **生成中**:模型正在流式输出,可停止。
|
||
- **工具待确认**:等待用户检查参数并授权。
|
||
- **任务执行中**:展示当前步骤、进度和取消入口。
|
||
- **离线**:允许查看本地历史和知识库状态,禁用网络模型调用。
|
||
- **权限受限**:展示缺失权限和降级方案。
|
||
- **需要更新**:显示可用版本,不强制中断当前任务。
|
||
|
||
---
|
||
|
||
## 5. 详细功能设计
|
||
|
||
### 5.1 首次启动与初始化
|
||
|
||
#### 用户目标
|
||
|
||
用户能够了解产品能力、完成模型配置、按需启用快捷键,并在不被强制索取权限的情况下开始第一次对话。
|
||
|
||
#### 功能项
|
||
|
||
- 服务条款、隐私说明和数据处理方式确认。
|
||
- 选择个人模式或企业模式。
|
||
- 登录企业账号,或配置兼容的模型 API。
|
||
- 检测网络、代理和模型连接。
|
||
- 设置默认快捷键及冲突检测。
|
||
- 可选设置开机启动和悬浮助手。
|
||
- 权限按首次使用能力时申请,不在向导内强制一次性申请。
|
||
- 提供示例问题和快速功能介绍。
|
||
|
||
#### 异常与降级
|
||
|
||
- 模型连接失败时保留配置并展示可诊断的错误原因。
|
||
- 系统安全存储不可用时禁止静默保存明文密钥。
|
||
- 快捷键冲突时建议其他组合,并允许跳过。
|
||
- 企业策略未拉取成功时,只使用最近一次有效且签名正确的策略。
|
||
|
||
#### MVP 验收
|
||
|
||
- 新用户在三分钟内能够完成配置并发出第一条消息。
|
||
- 跳过非必要设置不影响基础对话。
|
||
- 连接测试不会在日志中输出 API Key。
|
||
|
||
### 5.2 快捷唤起与快捷面板
|
||
|
||
#### 用户场景
|
||
|
||
用户在任意应用中工作时,通过快捷键快速提问或处理当前内容,无需切换到完整主窗口。
|
||
|
||
#### 功能项
|
||
|
||
- 全局快捷键注册、修改和冲突检测。
|
||
- 快捷面板显示、隐藏、失焦自动收起。
|
||
- 再次按快捷键切换显示状态。
|
||
- `Esc` 收起,`Enter` 发送,组合键换行。
|
||
- 快速动作:总结、翻译、润色、解释、截图问答、文件问答。
|
||
- 当前会话继续或新建临时会话。
|
||
- 根据鼠标位置或活动显示器选择展示屏幕。
|
||
- 可展开为主窗口,并保留输入和上下文。
|
||
|
||
#### 边界条件
|
||
|
||
- 快捷键被系统或其他软件占用。
|
||
- Wayland 不允许直接注册全局快捷键。
|
||
- 多显示器缩放比例不同或显示器在运行中断开。
|
||
- 全屏应用、安全桌面、锁屏界面不允许覆盖。
|
||
- 输入法组合状态下不能误触发送。
|
||
|
||
#### 降级策略
|
||
|
||
- 快捷键注册失败时使用托盘入口。
|
||
- Wayland 优先使用 Global Shortcuts Portal,不可用时提示用户在桌面环境中配置启动命令。
|
||
- 任意定位受限时显示普通居中窗口,不阻断核心功能。
|
||
|
||
#### MVP 验收
|
||
|
||
- 热唤起本地 UI 的 P95 不超过 300ms。
|
||
- 快捷键冲突有明确提示且不覆盖已有注册。
|
||
- 多显示器切换后窗口始终处于可见区域。
|
||
- 展开主窗口后输入、附件和生成状态不丢失。
|
||
|
||
### 5.3 系统托盘与应用生命周期
|
||
|
||
#### 功能项
|
||
|
||
- 打开/隐藏主窗口。
|
||
- 新建对话。
|
||
- 显示当前运行状态。
|
||
- 暂停上下文采集能力。
|
||
- 开启/关闭悬浮助手。
|
||
- 检查更新、设置、退出。
|
||
- 单实例运行,第二次启动时激活已有实例。
|
||
- 用户关闭主窗口时按设置退出或最小化到托盘。
|
||
- 系统启动后按用户选择自动运行。
|
||
|
||
#### 边界条件
|
||
|
||
- Linux 桌面环境没有托盘服务。
|
||
- 应用更新、系统关机或崩溃时存在未完成任务。
|
||
- 第二实例携带深度链接或文件参数。
|
||
|
||
#### MVP 验收
|
||
|
||
- 无托盘环境仍能通过应用菜单和主窗口完成全部核心操作。
|
||
- 退出前停止网络流、结束任务并清理临时截图。
|
||
- 单实例参数经过校验后再交给已有实例。
|
||
|
||
### 5.4 悬浮助手
|
||
|
||
#### 功能项
|
||
|
||
- 悬浮球或迷你条显示。
|
||
- 单击打开快捷面板,右键打开快捷菜单。
|
||
- 拖动、贴边、隐藏和恢复。
|
||
- 状态展示:空闲、生成中、任务中、错误、未读。
|
||
- 置顶、透明度和全屏自动隐藏设置。
|
||
- 用户可完全关闭悬浮助手。
|
||
|
||
#### 边界条件
|
||
|
||
- Wayland 禁止任意窗口定位。
|
||
- macOS 多空间、全屏窗口和多屏切换。
|
||
- Linux 窗口管理器忽略置顶或透明区域点击穿透。
|
||
- DPI 变化导致保存坐标越界。
|
||
|
||
#### MVP 验收
|
||
|
||
- 重启后恢复到当前可见屏幕范围。
|
||
- 透明区域不拦截其他应用的鼠标事件。
|
||
- 不支持悬浮定位时自动降级为普通迷你窗口或托盘入口。
|
||
|
||
### 5.5 AI 对话
|
||
|
||
#### 功能项
|
||
|
||
- 新建、重命名、置顶、搜索、删除会话。
|
||
- 多轮上下文和会话级模型选择。
|
||
- 流式输出、停止生成、重新生成、编辑后重发。
|
||
- Markdown、表格、代码块、公式和引用渲染。
|
||
- 代码复制、消息复制、反馈和导出。
|
||
- 会话标题自动生成,允许手动修改。
|
||
- 消息附件、工具调用步骤和来源引用。
|
||
- 上下文窗口及预计使用量提示。
|
||
- 网络失败后的重试和续接策略。
|
||
|
||
#### 关键交互
|
||
|
||
1. 用户发送后立即创建用户消息和助手占位消息。
|
||
2. 首段内容到达后进行增量渲染。
|
||
3. 工具调用显示为独立步骤卡片,不与普通文本混合隐藏。
|
||
4. 用户停止后立即中断网络请求和后续工具步骤。
|
||
5. 引用标记可打开原始文件、页码或文本片段。
|
||
|
||
#### 异常与边界
|
||
|
||
- 模型超时、限流、拒答或返回格式异常。
|
||
- 流式连接中断,仅收到部分内容。
|
||
- 上下文超过模型限制。
|
||
- 用户重复发送、快速切换模型或删除生成中的会话。
|
||
- 超长消息导致渲染性能下降。
|
||
|
||
#### MVP 验收
|
||
|
||
- 用户停止后不再产生模型费用或工具调用。
|
||
- 网络中断时保留已生成内容并提供重试。
|
||
- 上下文超限时明确展示裁剪或摘要策略。
|
||
- 长会话采用虚拟列表或分段渲染,不持续阻塞 UI。
|
||
|
||
### 5.6 上下文采集与上下文胶囊
|
||
|
||
#### 上下文来源
|
||
|
||
- 用户输入文本。
|
||
- 用户主动添加的选中文本。
|
||
- 单次读取的剪贴板文本、图片或文件路径。
|
||
- 区域截图或窗口截图。
|
||
- 用户选择或拖入的文件。
|
||
- 用户选择的知识库。
|
||
- P1:经授权的活动应用名称、窗口标题和页面片段。
|
||
|
||
#### 交互规则
|
||
|
||
- 每个上下文显示为独立胶囊或附件卡片。
|
||
- 卡片展示类型、来源、大小、解析状态和数据去向。
|
||
- 用户发送前可以预览、删除或替换。
|
||
- 移除后,请求体和临时缓存不得继续包含对应数据。
|
||
- 高敏感内容在发送前提示风险。
|
||
- 会话授权不得自动升级为永久授权。
|
||
|
||
#### 上下文等级
|
||
|
||
| 等级 | 行为 |
|
||
| --- | --- |
|
||
| 无上下文 | 只发送用户输入 |
|
||
| 显式上下文 | 用户逐项触发采集,作为 MVP 默认方式 |
|
||
| 会话授权 | 当前会话可使用指定来源,关闭会话后失效 |
|
||
| 持续上下文 | P2 可选能力,默认关闭并持续显示采集指示 |
|
||
|
||
#### 禁止行为
|
||
|
||
- 不读取密码框和安全输入区域。
|
||
- 不在后台静默采集未授权窗口内容。
|
||
- 不因模型请求而自动扩大文件或目录访问范围。
|
||
- 不将应用名称、窗口标题默认视为非敏感信息。
|
||
|
||
### 5.7 截图与 OCR
|
||
|
||
#### 功能项
|
||
|
||
- 全屏、区域、窗口截图。
|
||
- 多显示器和高 DPI 支持。
|
||
- 截图前自动隐藏助手窗口。
|
||
- 截图预览、重截、删除、标注和打码。
|
||
- P1:本地 OCR、版面识别和文本复制。
|
||
- 系统权限状态检测和设置入口。
|
||
|
||
#### 平台策略
|
||
|
||
- Windows 使用系统屏幕捕获能力,避开 UAC 安全桌面。
|
||
- macOS 按需申请屏幕录制权限。
|
||
- X11 使用可验证的截图能力。
|
||
- Wayland 优先使用 Screenshot/ScreenCast Portal 和 PipeWire。
|
||
|
||
#### MVP 验收
|
||
|
||
- 截图结果不包含自动隐藏的助手窗口。
|
||
- 多屏负坐标、不同缩放比例下选区与输出一致。
|
||
- 用户取消时不生成可持久化附件。
|
||
- 权限拒绝时提供文字输入、文件上传等替代方式。
|
||
- 临时截图在会话结束、清理或退出时按策略删除。
|
||
|
||
### 5.8 剪贴板
|
||
|
||
#### 功能项
|
||
|
||
- 正常粘贴。
|
||
- 用户点击“从剪贴板添加”后单次读取。
|
||
- 识别文本、图片和文件路径。
|
||
- 显示预览、格式、大小和移除操作。
|
||
- 敏感模式下完全禁用读取。
|
||
|
||
#### 边界条件
|
||
|
||
- 剪贴板为空、格式不支持或内容过大。
|
||
- 密码管理器生成的临时内容。
|
||
- Linux 主选择区与常规剪贴板差异。
|
||
- 远程桌面共享剪贴板。
|
||
|
||
#### MVP 验收
|
||
|
||
- 未触发添加动作时不保存剪贴板内容。
|
||
- 读取操作不修改或清空系统剪贴板。
|
||
- 超过限制时不上传,并展示清晰原因。
|
||
|
||
### 5.9 文件处理
|
||
|
||
#### MVP 支持格式
|
||
|
||
- 文本:TXT、Markdown、JSON、CSV。
|
||
- 文档:PDF。
|
||
- 图片:PNG、JPEG、WebP。
|
||
- 常见源代码和配置文件。
|
||
|
||
#### P1 支持格式
|
||
|
||
- DOCX、PPTX、XLSX。
|
||
- 文件夹和批量文件。
|
||
- 扫描 PDF OCR。
|
||
|
||
#### 功能项
|
||
|
||
- 文件选择、拖放和最近文件。
|
||
- 类型、大小、数量和访问权限校验。
|
||
- 文本解析、页码或段落定位。
|
||
- 解析进度、取消、重试和失败原因。
|
||
- 只发送用户问题需要的片段,而非默认上传完整文件。
|
||
- 文件发生变化后标记缓存或索引过期。
|
||
|
||
#### 安全要求
|
||
|
||
- 不执行附件中的脚本、宏或嵌入对象。
|
||
- 防止压缩炸弹、路径穿越和符号链接越权。
|
||
- 解析进程配置 CPU、内存、时间和输出大小限制。
|
||
- 网络盘离线或文件无权限时不得无限重试。
|
||
|
||
#### MVP 验收
|
||
|
||
- 文件解析不阻塞 Renderer 主线程。
|
||
- 解析失败可重试或移除,且不破坏当前会话。
|
||
- 引用能够定位到文件、页码或段落。
|
||
|
||
### 5.10 本地知识库
|
||
|
||
#### 用户场景
|
||
|
||
用户导入常用资料,并在后续对话中获得基于资料、带原文引用的回答。
|
||
|
||
#### MVP 功能
|
||
|
||
- 创建一个本地知识库。
|
||
- 导入、删除和重新索引文件。
|
||
- 展示解析、切块、嵌入、完成和失败状态。
|
||
- 在对话中启用或停用知识库。
|
||
- 向量检索和来源引用。
|
||
- 查看引用原文。
|
||
- 展示存储占用并支持完整清除。
|
||
|
||
#### P1 功能
|
||
|
||
- 多知识库。
|
||
- 文件夹同步和增量索引。
|
||
- 关键词与向量混合检索。
|
||
- 重排、OCR、重复文件识别。
|
||
- 企业知识库及权限继承。
|
||
|
||
#### 推荐检索链路
|
||
|
||
```text
|
||
文档解析
|
||
→ 结构化清洗
|
||
→ 保留标题、页码、偏移的分块
|
||
→ 嵌入生成
|
||
→ 向量/关键词混合检索
|
||
→ 重排
|
||
→ 上下文预算裁剪
|
||
→ 带引用生成
|
||
→ 引用一致性检查
|
||
```
|
||
|
||
#### 边界条件
|
||
|
||
- 嵌入模型变化导致向量不兼容。
|
||
- 文件更新、重复导入、磁盘空间不足。
|
||
- 中文分块效果、扫描 PDF 和复杂表格。
|
||
- ARM64 原生向量依赖没有稳定构建。
|
||
|
||
#### MVP 验收
|
||
|
||
- 每个检索片段包含文件、页码/章节和文本偏移元数据。
|
||
- 删除知识库时联动删除正文缓存、向量和元数据。
|
||
- 索引失败可以重试且不破坏已有可用索引。
|
||
- 回答中的引用可以打开并展示对应原文。
|
||
|
||
### 5.11 模型服务
|
||
|
||
#### 支持方式
|
||
|
||
- OpenAI 兼容 API。
|
||
- 企业私有模型服务。
|
||
- 后续接入特定云模型厂商。
|
||
- P2 接入本地模型。
|
||
|
||
#### 模型网关职责
|
||
|
||
- 统一流式请求、停止、超时、重试和错误格式。
|
||
- 描述模型的文本、视觉、工具调用和上下文能力。
|
||
- Token 预算与上下文裁剪。
|
||
- 模型路由、降级和可用性检测。
|
||
- 凭据注入,不向 Renderer 暴露密钥。
|
||
- 企业域名白名单、TLS 和代理策略。
|
||
- 统计用量,但默认不记录完整提示词和回答正文。
|
||
|
||
#### 配置项
|
||
|
||
- 服务地址、模型名称、API Key。
|
||
- 默认模型及视觉模型。
|
||
- 超时、重试、代理和自定义请求头。
|
||
- 企业模式下由策略锁定的模型列表。
|
||
|
||
#### MVP 验收
|
||
|
||
- 保存配置前完成连接测试。
|
||
- API Key 使用平台安全存储。
|
||
- 模型不支持图片或工具时,在发送前给出提示。
|
||
- 请求取消能够传递到网络层和工具调度层。
|
||
|
||
### 5.12 技能与工具调用
|
||
|
||
#### MVP 内置工具
|
||
|
||
- 纯文本转换:总结、翻译、润色、结构化。
|
||
- 读取用户明确选择的文件。
|
||
- 打开经过校验的网页链接。
|
||
- 在用户选择的位置生成文件草稿。
|
||
- 查询本地知识库。
|
||
|
||
#### 工具风险分级
|
||
|
||
| 等级 | 示例 | 默认策略 |
|
||
| --- | --- | --- |
|
||
| R0 纯计算 | 文本格式化、计算、编码转换 | 可自动执行 |
|
||
| R1 本地只读 | 读取用户本次选择的文件 | 首次或会话授权 |
|
||
| R2 外部只读 | 网络搜索、查询企业系统 | 展示数据去向,可按策略授权 |
|
||
| R3 可逆写入 | 创建草稿、生成新文件 | 执行前确认 |
|
||
| R4 外部副作用 | 发送消息、提交工单、修改远程数据 | 每次确认并展示完整参数 |
|
||
| R5 高风险 | Shell、提权、删除、支付 | MVP 禁止 |
|
||
|
||
#### 调用流程
|
||
|
||
```text
|
||
模型建议调用
|
||
→ 检查工具是否注册
|
||
→ JSON Schema 参数校验
|
||
→ 风险等级判定
|
||
→ 用户权限和企业策略判定
|
||
→ 必要时展示确认卡片
|
||
→ 执行并支持取消
|
||
→ 限制和过滤工具输出
|
||
→ 将结果返回模型
|
||
→ 写入脱敏审计记录
|
||
```
|
||
|
||
#### 安全要求
|
||
|
||
- 模型文本不能绕过权限层直接执行。
|
||
- 工具输出视为不可信数据,不能自动提升为系统指令。
|
||
- 文件路径必须规范化并限制在授权范围。
|
||
- URL 只允许 `https` 等白名单协议,并按策略校验域名。
|
||
- 不拼接 Shell 命令,Sidecar 使用结构化参数。
|
||
|
||
#### MVP 验收
|
||
|
||
- 所有参数通过 Schema 校验后才能执行。
|
||
- R3 及以上工具必须逐次确认。
|
||
- 每次调用记录工具、参数摘要、授权方式、结果和时间。
|
||
- 超时或取消能够终止请求或子进程。
|
||
|
||
### 5.13 任务自动化
|
||
|
||
#### P1 功能
|
||
|
||
- 将多步工具调用保存为任务。
|
||
- 执行前展示步骤计划、输入和权限。
|
||
- 逐步执行、暂停、取消和人工检查点。
|
||
- 失败重试和从安全检查点继续。
|
||
- 任务历史、输出物和失败原因。
|
||
- 常用任务模板。
|
||
|
||
#### P2 功能
|
||
|
||
- 定时触发。
|
||
- 无人值守的低风险任务。
|
||
- 条件分支和循环。
|
||
- 企业审批流。
|
||
|
||
#### 安全和一致性要求
|
||
|
||
- 有外部副作用的步骤使用幂等键或显示重复执行警告。
|
||
- 应用崩溃后将任务标记为中断,不自动重放副作用步骤。
|
||
- 输出文件存在时要求选择覆盖、重命名或取消。
|
||
- 系统休眠和网络中断后重新确认任务状态。
|
||
|
||
### 5.14 通知与任务中心
|
||
|
||
#### 功能项
|
||
|
||
- 系统通知和应用内通知。
|
||
- 生成完成、任务完成、任务失败和等待确认。
|
||
- 未读数量、全部已读和按类别过滤。
|
||
- 勿扰模式及通知级别设置。
|
||
- 点击通知跳转到对应会话或任务。
|
||
|
||
#### 隐私要求
|
||
|
||
- 锁屏通知默认隐藏提示词、文件名和工具参数等敏感内容。
|
||
- 待确认通知只提示存在待办,不显示完整数据。
|
||
|
||
#### MVP 验收
|
||
|
||
- 系统通知不可用时仍有应用内通知。
|
||
- 同一事件不重复发送。
|
||
- 目标会话已删除时进入通知详情并提示对象不存在。
|
||
|
||
### 5.15 设置与权限中心
|
||
|
||
#### 设置分组
|
||
|
||
| 分组 | 配置内容 |
|
||
| --- | --- |
|
||
| 通用 | 开机启动、关闭行为、语言、主题、缩放 |
|
||
| 模型 | 服务地址、模型、凭据、超时、连接测试 |
|
||
| 快捷键 | 唤起、截图、快捷动作及冲突检测 |
|
||
| 悬浮助手 | 启用、位置、置顶、透明度、全屏隐藏 |
|
||
| 权限与隐私 | 截图、辅助功能、剪贴板、文件、通知状态 |
|
||
| 数据与存储 | 会话保留、缓存、知识库目录、数据清除 |
|
||
| 网络 | 系统代理、自定义代理、证书和域名策略 |
|
||
| 通知 | 通知类别、锁屏内容、勿扰 |
|
||
| 更新 | 更新渠道、自动检查和下载策略 |
|
||
| 诊断 | 日志等级、诊断包、版本和系统信息 |
|
||
|
||
#### 交互要求
|
||
|
||
- 高风险设置显示影响说明。
|
||
- 企业锁定项显示策略来源和锁定原因。
|
||
- 清除数据前列出会删除的数据范围。
|
||
- 配置写入采用原子替换,损坏时可恢复默认配置。
|
||
|
||
### 5.16 自动更新
|
||
|
||
#### 功能项
|
||
|
||
- 启动后后台检查和手动检查。
|
||
- 下载进度、暂停、重试和重启安装。
|
||
- 更新说明、稳定/测试/企业渠道。
|
||
- P1:灰度发布、失败回滚和企业更新源。
|
||
- 企业可禁用客户端自动更新。
|
||
|
||
#### 平台策略
|
||
|
||
- Windows 支持 NSIS 或 MSIX,安装包和更新包使用 Authenticode 签名。
|
||
- macOS 使用 Developer ID 签名、公证和 Hardened Runtime。
|
||
- Linux DEB/RPM 优先遵循系统包管理器;AppImage 使用独立更新策略。
|
||
- 更新元数据和安装包均需验证签名、版本、平台与架构。
|
||
|
||
#### MVP 验收
|
||
|
||
- 下载或安装失败后旧版本仍可运行。
|
||
- 任务执行中不强制退出。
|
||
- 架构或平台不匹配时拒绝安装。
|
||
- 更新日志不包含下载凭据和敏感请求头。
|
||
|
||
### 5.17 企业管理
|
||
|
||
#### P1 能力
|
||
|
||
- 签名企业策略文件。
|
||
- 模型、域名和技能白名单。
|
||
- 代理、私有证书和私有模型配置。
|
||
- 数据保留、遥测、日志和更新策略。
|
||
- 工具风险上限和授权方式。
|
||
- 审计记录导出。
|
||
|
||
#### P2 能力
|
||
|
||
- SSO、SCIM。
|
||
- 集中设备管理。
|
||
- 团队知识库和权限同步。
|
||
- 远程策略控制台。
|
||
|
||
#### 策略规则
|
||
|
||
- 企业策略优先于本地用户配置。
|
||
- 策略必须验签,验签失败时不生效。
|
||
- 离线使用最近一次有效策略,并支持有效期。
|
||
- 策略变更产生审计事件。
|
||
- UI 和本地配置文件都不能绕过锁定项。
|
||
|
||
---
|
||
|
||
## 6. 权限与隐私
|
||
|
||
### 6.1 权限矩阵
|
||
|
||
| 能力 | Windows | macOS | X11 | Wayland | 默认策略 |
|
||
| --- | --- | --- | --- | --- | --- |
|
||
| 全局快捷键 | 原生支持 | 原生支持 | 通常支持 | 优先 Portal | 开启,失败时降级 |
|
||
| 屏幕截图 | 系统能力 | 需录屏权限 | 常见接口 | Screenshot/ScreenCast Portal | 用户主动触发 |
|
||
| 选中文本 | 按应用能力降级 | 可能需辅助功能权限 | 依应用和无障碍能力 | 通常受限 | 默认关闭 |
|
||
| 剪贴板 | 支持 | 支持 | Clipboard | 受合成器管理 | 单次触发 |
|
||
| 文件读取 | 文件选择器 | 文件选择器 | 文件选择器 | FileChooser Portal 优先 | 仅选择范围 |
|
||
| 通知 | 系统通知 | 通知权限 | 通知服务 | Portal/通知服务 | 首次需要时申请 |
|
||
| 开机启动 | 系统启动项 | Login Items | XDG Autostart | 桌面环境相关 | 用户开启 |
|
||
|
||
### 6.2 权限申请原则
|
||
|
||
1. 在首次使用具体能力前解释用途并申请。
|
||
2. 提供一次、当前会话、长期允许和拒绝选项。
|
||
3. 长期授权可在权限中心撤销。
|
||
4. 拒绝权限后不重复打扰,并提供替代路径。
|
||
5. 操作系统权限被撤销后立即停止能力并更新 UI 状态。
|
||
6. 高风险能力不能通过一次授权永久放行。
|
||
|
||
### 6.3 敏感信息保护
|
||
|
||
- 本地检测 API Key、访问令牌、密码、身份证号、银行卡号等常见敏感模式。
|
||
- 检测结果只作为风险提示,不宣称完全准确。
|
||
- 企业策略可阻止特定数据发送给外部模型。
|
||
- 日志不记录完整提示词、附件正文、截图、密钥和令牌。
|
||
- 提供隐私模式:不保存会话、不保留附件、不写入知识库。
|
||
|
||
### 6.4 数据生命周期
|
||
|
||
| 数据 | 默认策略 | 用户控制 |
|
||
| --- | --- | --- |
|
||
| 对话消息 | 本地保存,企业策略可覆盖 | 删除单条、会话或全部历史 |
|
||
| 临时截图 | 请求或会话结束后清理 | 立即删除 |
|
||
| 文件解析缓存 | 文件仍被引用时保存 | 单文件或统一清理 |
|
||
| 知识库正文与向量 | 知识库存在期间保存 | 删除知识库时联动清理 |
|
||
| 工具审计 | 有限期限、脱敏保存 | 企业策略控制 |
|
||
| 诊断日志 | 滚动、限额、脱敏 | 查看、导出和清除 |
|
||
|
||
---
|
||
|
||
## 7. 技术架构
|
||
|
||
### 7.1 逻辑架构
|
||
|
||
```text
|
||
React Renderer
|
||
│
|
||
│ 强类型、白名单 IPC
|
||
▼
|
||
Electron Main Process
|
||
├── Window / Tray / Shortcut
|
||
├── Permission Broker
|
||
├── Context Broker
|
||
├── Model Gateway
|
||
├── Tool Orchestrator
|
||
├── Task Runtime
|
||
├── Update Manager
|
||
└── Secure Storage
|
||
│
|
||
├── SQLite
|
||
├── Attachment Storage
|
||
├── Vector Index
|
||
└── Optional Rust Sidecar
|
||
```
|
||
|
||
### 7.2 进程职责
|
||
|
||
#### Renderer
|
||
|
||
- 页面和组件渲染。
|
||
- 用户交互和状态展示。
|
||
- 不直接访问 Node.js、文件系统、密钥和子进程。
|
||
|
||
#### Preload
|
||
|
||
- 通过 `contextBridge` 暴露最小、稳定、强类型 API。
|
||
- 不暴露通用 `ipcRenderer`、文件系统和命令执行接口。
|
||
|
||
#### Main Process
|
||
|
||
- 窗口、托盘、快捷键、权限、系统集成和应用生命周期。
|
||
- 模型请求、工具编排、安全存储和更新。
|
||
- IPC 来源、参数和权限校验。
|
||
|
||
#### Rust Sidecar
|
||
|
||
仅在以下场景引入:
|
||
|
||
- 文档解析、OCR、向量索引等性能敏感工作。
|
||
- Electron/Node 无法稳定支持的系统能力。
|
||
- 需要跨平台统一实现的受控本地服务。
|
||
|
||
Sidecar 必须具备版本握手、生命周期管理、超时取消、崩溃恢复、结构化协议和签名/哈希校验。
|
||
|
||
### 7.3 Electron 安全基线
|
||
|
||
- `contextIsolation: true`。
|
||
- `nodeIntegration: false`。
|
||
- 启用严格 CSP,禁止远程脚本执行。
|
||
- IPC 使用白名单,并校验请求和响应 Schema。
|
||
- 外部链接使用系统浏览器打开,并校验协议和域名。
|
||
- 不可信页面不能使用特权 preload。
|
||
- 深度链接、自定义协议和文件路径必须规范化及校验来源。
|
||
- Sidecar 使用固定可信路径,不拼接 Shell 命令。
|
||
|
||
### 7.4 本地存储
|
||
|
||
| 类型 | 建议存储 |
|
||
| --- | --- |
|
||
| 会话、消息、任务、权限、审计 | SQLite |
|
||
| 附件、解析缓存、缩略图 | 应用数据目录 |
|
||
| 向量索引 | SQLite 扩展或独立索引 |
|
||
| API Key 和令牌 | 系统安全存储 |
|
||
|
||
系统安全存储优先级:
|
||
|
||
- Windows:Credential Manager 或 DPAPI。
|
||
- macOS:Keychain。
|
||
- Linux:Secret Service。
|
||
- Linux 安全存储不可用时,提示用户配置或使用受密码保护的加密存储,不得静默降级为明文。
|
||
|
||
### 7.5 核心数据实体
|
||
|
||
| 实体 | 关键字段 |
|
||
| --- | --- |
|
||
| Conversation | ID、标题、模型、创建/更新时间、隐私模式 |
|
||
| Message | ID、会话 ID、角色、内容、状态、Token 信息 |
|
||
| Attachment | ID、类型、来源、路径、哈希、大小、生命周期 |
|
||
| ContextItem | ID、消息 ID、来源、摘要、授权范围 |
|
||
| KnowledgeBase | ID、名称、嵌入模型、索引版本、状态 |
|
||
| KnowledgeDocument | ID、知识库 ID、文件哈希、解析状态、版本 |
|
||
| ToolDefinition | 名称、版本、参数 Schema、风险等级、权限 |
|
||
| ToolInvocation | 工具、参数摘要、授权方式、状态、结果摘要 |
|
||
| Task | ID、计划、当前步骤、状态、输出物 |
|
||
| PermissionGrant | 能力、作用域、有效期、来源 |
|
||
| AppSetting | 键、值、策略锁定状态 |
|
||
|
||
---
|
||
|
||
## 8. 跨平台兼容方案
|
||
|
||
### 8.1 发布矩阵
|
||
|
||
| 平台 | 架构 | 安装格式 | 优先级 |
|
||
| --- | --- | --- | --- |
|
||
| Windows 10/11 | x64 | NSIS/MSIX | P0 |
|
||
| Windows 11 | ARM64 | NSIS/MSIX | P0 |
|
||
| macOS | Intel x64 | DMG/PKG | P0 |
|
||
| macOS | Apple Silicon | DMG/PKG | P0 |
|
||
| Debian/Ubuntu/UOS/麒麟 | x64 | DEB/AppImage | P0 |
|
||
| Debian/Ubuntu/UOS/麒麟 | ARM64 | DEB/AppImage | P0 |
|
||
| RPM 系 Linux | x64/ARM64 | RPM | P1 |
|
||
|
||
### 8.2 国产化环境要求
|
||
|
||
- 不假定统信 UOS、银河麒麟使用相同桌面环境、Wayland 版本和系统组件。
|
||
- 维护鲲鹏、飞腾 ARM64 真机或稳定远程测试环境。
|
||
- 检查 Electron、SQLite、OCR、向量库及 Sidecar 的 ARM64 构建。
|
||
- 尽量避免只提供 x64 预编译包的 Node 原生模块。
|
||
- 验证中文输入法、系统字体、多屏缩放、系统代理、证书存储和 Secret Service。
|
||
- 明确最低 glibc 和发行版基线,使用兼容构建环境产出 Linux 包。
|
||
|
||
### 8.3 X11 与 Wayland 差异
|
||
|
||
| 能力 | X11 | Wayland |
|
||
| --- | --- | --- |
|
||
| 任意窗口定位 | 通常可用 | 合成器可能禁止 |
|
||
| 全局快捷键 | 通常可用 | 依赖 Portal 或桌面设置 |
|
||
| 屏幕捕获 | 多种方式 | 优先 Portal/PipeWire |
|
||
| 活动窗口信息 | 相对容易 | 通常受限制 |
|
||
| 模拟输入 | 技术上可行但高风险 | 通常禁止 |
|
||
| 置顶与穿透 | 依窗口管理器 | 行为不一致 |
|
||
|
||
实现时应使用能力检测,不只依赖操作系统名称判断。每个受限能力都必须提供替代入口。
|
||
|
||
---
|
||
|
||
## 9. 安全设计
|
||
|
||
### 9.1 主要威胁与控制
|
||
|
||
| 风险 | 场景 | 控制措施 |
|
||
| --- | --- | --- |
|
||
| 提示注入 | 文档诱导 AI 上传数据或执行工具 | 文档视为不可信数据;独立权限层;高风险确认 |
|
||
| 越权文件访问 | 模型构造任意文件路径 | 文件句柄和授权范围;路径规范化;拒绝目录穿越 |
|
||
| 参数注入 | URL、文件名或参数包含恶意内容 | Schema 校验;不拼接 Shell;协议和域名白名单 |
|
||
| 凭据泄漏 | 日志、Renderer 或崩溃报告暴露密钥 | 安全存储;Main 注入;日志脱敏 |
|
||
| 恶意附件 | 宏、脚本、压缩炸弹 | 只解析不执行;资源限制;格式验证 |
|
||
| 更新供应链攻击 | 安装包或更新元数据被篡改 | 代码签名;元数据签名;TLS;回滚保护 |
|
||
| IPC 攻击 | 被污染 Renderer 调用特权 API | 隔离;最小桥接;来源和 Schema 校验 |
|
||
| 深度链接攻击 | 恶意协议参数打开本地资源 | 来源、协议、参数和路径校验 |
|
||
| 数据残留 | 临时截图和解析缓存未清除 | 明确生命周期;退出清理;可验证删除 |
|
||
| 自动化误操作 | 重复发送或覆盖文件 | 人工检查点;幂等键;冲突检测;审计 |
|
||
|
||
### 9.2 安全测试范围
|
||
|
||
- IPC 参数伪造和越权调用。
|
||
- 路径穿越、符号链接和文件授权绕过。
|
||
- 深度链接及外部 URL 协议注入。
|
||
- 恶意 PDF、图片、压缩文件和超大文件。
|
||
- 提示注入导致工具越权。
|
||
- 更新签名失败、降级攻击和架构混装。
|
||
- Renderer XSS、CSP 绕过和不可信导航。
|
||
- 日志、崩溃报告和诊断包敏感信息泄漏。
|
||
|
||
---
|
||
|
||
## 10. 非功能需求
|
||
|
||
### 10.1 性能
|
||
|
||
| 指标 | MVP 目标 |
|
||
| --- | --- |
|
||
| 快捷面板热唤起 | P95 ≤ 300ms |
|
||
| 冷启动到可交互 | P95 ≤ 3s,低配设备单独设基线 |
|
||
| 输入与滚动 | 无持续主线程阻塞,目标 50–60 FPS |
|
||
| 首段内容展示 | 服务端返回首段后 500ms 内渲染 |
|
||
| 文件解析 | 后台执行,不阻塞 UI |
|
||
| 空闲 CPU | 不持续产生明显 CPU 占用 |
|
||
| 崩溃率 | MVP 会话崩溃率 < 0.5%,正式目标 < 0.1% |
|
||
|
||
### 10.2 可靠性
|
||
|
||
- 配置、会话和任务状态采用事务或原子写入。
|
||
- 主进程、Renderer 和 Sidecar 崩溃分别记录和恢复。
|
||
- 中断的副作用任务不得自动重放。
|
||
- 网络错误采用有上限的指数退避,避免重试风暴。
|
||
- 更新失败后可继续运行旧版本。
|
||
- 磁盘空间不足时停止写入并提示清理,不损坏已有数据。
|
||
|
||
### 10.3 可访问性
|
||
|
||
- 完整键盘导航和可见焦点。
|
||
- 基础屏幕阅读器语义。
|
||
- 字号、缩放和高对比度支持。
|
||
- 状态变化不只通过颜色表达。
|
||
- 动画支持减少动态效果设置。
|
||
|
||
### 10.4 国际化
|
||
|
||
- MVP 支持简体中文。
|
||
- 文案、日期、数字和快捷键展示使用国际化资源。
|
||
- 预留英文支持。
|
||
- 不在代码中拼接不可翻译文案。
|
||
|
||
### 10.5 可观测性
|
||
|
||
监控以下脱敏指标:
|
||
|
||
- 冷启动、热唤起和窗口创建耗时。
|
||
- 首 Token、完整响应、取消成功率。
|
||
- 模型超时、限流和错误率。
|
||
- 文件解析、索引和检索耗时及成功率。
|
||
- 工具调用成功、拒绝、取消和超时率。
|
||
- 主进程、Renderer、Sidecar 崩溃率。
|
||
- 更新检查、下载、安装和回滚结果。
|
||
- 按平台、架构、X11/Wayland 拆分的兼容性数据。
|
||
|
||
遥测默认最小化,不采集消息全文、附件正文、剪贴板内容和截图,并允许用户或企业关闭。
|
||
|
||
---
|
||
|
||
## 11. 发布、测试与验收
|
||
|
||
### 11.1 测试层级
|
||
|
||
- **单元测试**:模型网关、权限判定、参数校验、路径处理、数据转换。
|
||
- **组件测试**:对话、附件、权限确认、工具步骤和设置界面。
|
||
- **集成测试**:Renderer、Preload、Main IPC;数据库;安全存储;Sidecar。
|
||
- **端到端测试**:首次启动、快捷唤起、对话、截图、文件、知识库和更新。
|
||
- **安全测试**:恶意附件、IPC、深链、XSS、提示注入、凭据和更新链路。
|
||
- **兼容性测试**:操作系统、架构、显示协议、DPI、输入法和权限状态。
|
||
|
||
### 11.2 最低兼容性矩阵
|
||
|
||
- Windows 10 x64、Windows 11 x64。
|
||
- Windows 11 ARM64。
|
||
- macOS Intel、macOS Apple Silicon。
|
||
- Ubuntu x64 的 X11 和 Wayland。
|
||
- 统信 UOS x64/ARM64。
|
||
- 银河麒麟 x64/ARM64。
|
||
- 鲲鹏与飞腾真机至少各一类。
|
||
- 单屏、多屏和不同 DPI。
|
||
- 常见中文输入法。
|
||
- 直连、系统代理、自定义代理和离线状态。
|
||
- 权限允许、拒绝和运行中撤销。
|
||
- 全新安装、覆盖升级、更新失败恢复和卸载。
|
||
|
||
### 11.3 MVP 功能验收
|
||
|
||
- 全局快捷键、托盘和主窗口都能进入核心对话。
|
||
- 文本、截图、剪贴板和文件都形成可见、可移除的上下文。
|
||
- 流式回答、停止、重试、复制和历史记录可用。
|
||
- 知识库回答带可打开的来源引用。
|
||
- 所有工具调用经过注册、参数校验和权限层。
|
||
- 权限拒绝后有明确降级方案,不崩溃、不循环申请。
|
||
- 用户可以清除会话、附件、知识库和诊断数据。
|
||
- 安装包与更新链路完成签名验证。
|
||
|
||
### 11.4 发布阻断项
|
||
|
||
- Windows、macOS 安装包或更新包未完成代码签名。
|
||
- macOS 未完成公证或 Hardened Runtime 验证。
|
||
- x64/ARM64 架构混装或原生依赖缺失。
|
||
- 目标国产系统没有真机验证记录。
|
||
- X11/Wayland 关键能力没有降级路径。
|
||
- API Key 存在明文存储或日志泄露。
|
||
- 工具调用可绕过参数校验、确认或审计。
|
||
- 临时截图、附件和知识库无法完整删除。
|
||
- 更新失败会破坏当前可运行版本。
|
||
- Renderer 可直接访问 Node.js 或不可信页面获得特权 API。
|
||
|
||
---
|
||
|
||
## 12. 迭代路线
|
||
|
||
### 阶段 0:技术验证
|
||
|
||
- 初始化 Electron + React + TypeScript + Vite 工程。
|
||
- 验证 x64/ARM64 多架构构建。
|
||
- 打通 Windows、macOS、Linux 安装与签名链路。
|
||
- 验证 X11/Wayland 快捷键、截图和窗口能力。
|
||
- 验证 UOS、麒麟、鲲鹏、飞腾原生依赖。
|
||
- 建立 Electron 安全基线、IPC Schema 和安全存储。
|
||
- 接入一个模型服务并完成流式对话。
|
||
|
||
**退出条件**:目标平台能够安装、启动、唤起、截图并完成一次对话,所有受限能力已有降级方案。
|
||
|
||
### 阶段 1:MVP
|
||
|
||
- 快捷面板、托盘、悬浮助手。
|
||
- AI 对话和历史。
|
||
- 截图、剪贴板、文件和显式上下文。
|
||
- 单知识库 RAG。
|
||
- 白名单工具调用。
|
||
- 通知、设置、诊断、数据清理和更新。
|
||
|
||
**退出条件**:通过核心功能、兼容性、安全和性能验收。
|
||
|
||
### 阶段 2:效率与企业增强
|
||
|
||
- 多知识库、目录同步、OCR、混合检索和重排。
|
||
- 企业技能目录。
|
||
- 多步骤任务和人工检查点。
|
||
- 私有模型、企业代理、签名策略和审计。
|
||
- 灰度更新、回滚和企业更新源。
|
||
|
||
### 阶段 3:平台化
|
||
|
||
- 定时低风险自动化。
|
||
- 插件 SDK 和技能市场。
|
||
- 团队知识库、SSO、SCIM 和集中设备管理。
|
||
- 跨设备同步。
|
||
- 本地模型与混合推理。
|
||
|
||
---
|
||
|
||
## 13. MVP 建议开发拆分
|
||
|
||
| 模块 | 主要交付物 | 前置依赖 |
|
||
| --- | --- | --- |
|
||
| 工程基础 | Electron 工程、构建、日志、配置、CI | 无 |
|
||
| 桌面外壳 | 窗口、托盘、快捷键、单实例、开机启动 | 工程基础 |
|
||
| 安全与 IPC | Preload API、Schema、CSP、安全存储 | 工程基础 |
|
||
| 对话核心 | 会话、消息、流式渲染、模型网关 | 安全与 IPC |
|
||
| 上下文 | 附件、截图、剪贴板、文件解析 | 桌面外壳、安全与 IPC |
|
||
| 知识库 | 分块、嵌入、索引、检索、引用 | 文件解析、模型网关 |
|
||
| 工具系统 | 注册、风险分级、确认、执行、审计 | 安全与 IPC、对话核心 |
|
||
| 设置与权限 | 设置页、权限中心、数据清理 | 各系统模块 |
|
||
| 更新与发布 | 签名、自动更新、多平台安装包 | 工程基础 |
|
||
| 质量体系 | 单元、集成、E2E、安全和兼容测试 | 全部模块 |
|
||
|
||
建议先完成阶段 0 的平台验证,再冻结 MVP 的详细交互稿和接口契约。国产 Linux 上的快捷键、截图、悬浮窗和原生依赖验证应前置,避免功能完成后才发现平台能力无法交付。
|