# GoodBuddy 长期助手功能规划 ## 文档信息 | 项目 | 内容 | | --- | --- | | 文档类型 | 产品路线图 | | 状态 | 规划中 | | 版本 | 0.1 | | 日期 | 2026-08-12 | | 适用产品 | GoodBuddy 桌面端 | ## 1. 文档目标 本文定义 GoodBuddy 从“安全对话助手”演进为“可长期使用的桌面工作助手”所需的产品能力、交互结构、数据模型、权限边界、实施阶段和验收标准。 规划参考 ChatGPT 桌面版的桌面上下文、Projects、Tasks、成果分屏体验,以及腾讯 WorkBuddy 的任务工作区、右侧栏、自动化、记忆和专家协作能力,但不依赖其私有实现。 ## 2. 产品目标 GoodBuddy 应能够: 1. 持续组织项目、会话、任务、成果和记忆,而不是只保存聊天记录。 2. 在明确授权下理解文件、知识库、截图、应用窗口和浏览器上下文。 3. 以只读问答、计划审查和受控执行三种模式完成工作。 4. 在右侧工作栏中持续展示任务、上下文、成果、文件更改和预览。 5. 支持后台任务、定时任务、失败恢复和桌面通知。 6. 让所有记忆、权限、上下文和远程传输可见、可审查、可撤销。 ## 3. 产品信息架构 ### 3.1 桌面布局 ```text ┌──────────────┬──────────────────────────────┬──────────────────────┐ │ 左侧导航 │ 主工作区 │ 右侧工作栏 │ │ │ │ │ │ 项目 │ 对话 / 知识库 / 活动 │ 任务 │ │ 会话 │ │ 上下文 │ │ 自动化 │ │ 成果 │ │ 记忆 │ │ 文件与更改 │ │ 设置 │ │ 预览 │ └──────────────┴──────────────────────────────┴──────────────────────┘ ``` - 宽窗口:右侧栏固定显示,可拖动宽度。 - 中等窗口:右侧栏默认折叠,点击后覆盖主工作区右侧。 - 窄窗口:右侧栏作为全屏抽屉。 - 右侧栏在对话、知识库和活动视图之间保持状态。 - 知识图谱实体详情复用同一右栏容器,不再维护独立布局。 ### 3.2 右侧工作栏 #### 任务 - 展示正在运行、等待审批、失败和最近完成的任务。 - 支持查看步骤、进度、耗时和执行来源。 - 支持取消、重试、恢复和打开关联会话。 - 待审批项目在所有视图中持续可见。 #### 上下文 - 展示本次请求使用的附件、知识库、截图、剪贴板和授权目录。 - 每项上下文显示来源、大小、发送状态和作用域。 - 支持预览、移除和清空。 - 不显示或持久化用户未主动选择的桌面内容。 #### 成果 - 展示任务生成的文档、表格、演示文稿、PDF、图片、代码和网页。 - 支持打开、导出、在文件管理器中显示和继续修改。 - 成果必须关联项目、任务、运行和会话。 #### 文件与更改 - 展示当前项目工作区文件树。 - 展示创建、修改和删除文件。 - 文本文件提供 Diff,支持接受、撤销和在外部应用打开。 - 高风险变更继续经过独立审批层。 #### 预览 - 首期支持 Markdown、纯文本、JSON、图片和安全本地网页预览。 - 后续支持 PDF、Office 文档和数据表格。 - 网页预览使用隔离环境,不允许任意 Node.js 或 Electron API。 ## 4. 核心功能 ### 4.1 Projects 工作区 每个项目包含: - 名称、说明、根目录和状态。 - 独立会话列表、任务、成果、记忆和自动化。 - 默认工作模式、Runtime、模型连接、Skills、MCP 和知识库范围。 - 项目可归档、恢复和导出。 会话支持置顶、归档、重命名、删除、按项目筛选和搜索。 ### 4.2 工作模式 #### Ask - 默认只读。 - 允许读取明确授权的上下文。 - 禁止文件写入、命令执行和外部副作用。 #### Execute - 允许按现有逐工具审批机制执行。 - 执行快照固定工作目录、模型、技能、MCP 和权限策略。 - 设置变化不影响正在运行的任务。 ### 4.3 后台任务 - 任务状态:排队、运行、等待审批、暂停、完成、失败、取消、中断。 - 应用隐藏后任务继续运行,应用退出后不承诺继续执行。 - 重启时将未完成任务标记为中断,并允许用户恢复。 - 任务事件先持久化,再发送给 Renderer,避免窗口刷新后丢失。 - 父任务取消时必须取消所有子任务。 ### 4.4 长期记忆 记忆作用域: - 全局:用户偏好和通用习惯。 - 项目:术语、约定、目标和工作方式。 - 会话:仅在当前对话中使用。 记忆状态: - 建议:模型提出,尚未启用。 - 已确认:允许参与后续上下文。 - 已拒绝:不再自动建议相同内容。 用户可以查看、搜索、编辑、确认、拒绝、删除和要求忘记。敏感个人信息不得自动确认为长期记忆。 ### 4.5 成果和预览 - 成果存储在应用管理目录或用户指定位置。 - 每个成果记录类型、MIME、校验值、大小、来源和更新时间。 - Renderer 只能通过受控 IPC 读取预览,不接收任意系统路径访问能力。 - 大文件采用流式或分页读取,并设定大小上限。 ### 4.6 定时任务 - 支持单次、每日、每周、每月和受限 Cron 规则。 - 保存时区、有效期、错过执行策略和输出位置。 - 支持立即运行、暂停、编辑、删除和查看历史。 - 应用启动及系统恢复时重新计算待执行任务。 - 同一计划同一时间点不得重复执行。 ### 4.7 桌面通知 - 任务完成、失败、等待审批和定时任务结果可触发通知。 - 点击通知打开对应项目、任务或会话。 - 通知内容默认不包含敏感上下文。 ### 4.8 桌面上下文 首期采用显式选择: - 当前活动窗口信息。 - 指定窗口截图。 - 指定浏览器页面内容。 - 文件、目录、剪贴板和屏幕区域。 不实现持续录屏、静默窗口监控或全局输入记录。授权策略可以持久化,采集内容默认不持久化。 ### 4.9 语音 - 首期提供按住说话和语音转文字。 - 转写结果先进入可编辑输入框,不自动发送。 - 后续增加流式语音对话和文本转语音。 - 麦克风权限仅在可信主窗口、显式语音会话和用户操作后开启。 - 音频转写完成后默认删除。 ### 4.10 远程委派 - 远程入口可从受信任 Webhook、企业 IM 或移动端创建任务。 - 默认仅允许使用明确配置的项目和能力。 - 文件、记忆和桌面上下文不得隐式上传。 - Token 使用系统安全存储加密。 - 所有远程任务记录来源、摘要、幂等键、权限和结果。 - 远程委派默认关闭。 ### 4.11 专家与多 Agent - 专家包含名称、职责、系统指令、模型策略和能力白名单。 - 主任务可创建受限子任务,并由专家并行执行。 - 必须限制最大层级、并发、耗时、Token、工具次数和成果大小。 - 子任务不能绕过父任务权限。 - 主 Agent 负责整合结果,子 Agent 不直接向同一消息流并发写入。 ## 5. 数据与持久化 新增独立 `assistant.sqlite`,不修改现有 `knowledge.sqlite`。 核心实体: - `projects` - `work_modes` - `conversations` - `messages` - `tasks` - `runs` - `task_events` - `artifacts` - `memory_items` - `schedules` - `schedule_runs` - `notifications` - `experts` - `delegations` 数据库要求: - WAL、外键、事务化迁移。 - 所有状态变更可恢复。 - 敏感 Token 不写入 SQLite。 - 本地存储迁移成功后才删除旧数据。 - 支持数据导出和彻底删除。 ## 6. 安全与隐私 1. 所有新 IPC 继续执行 Zod 校验和可信主窗口校验。 2. 项目根目录、成果路径和上下文路径必须 canonicalize 并验证目录包含关系。 3. Child Runtime 环境变量改用最小 allowlist,避免继承无关密钥。 4. 远程委派仅允许 HTTPS,开发环境只放行 loopback。 5. 语音、窗口捕获和浏览器上下文分别授权。 6. 自动化不得绕过工具审批和项目权限。 7. 记忆必须保留来源和作用域。 8. 所有模型输入继续按“不可信数据”处理。 ## 7. 实施阶段 ### 阶段 0:持久化基础 - 新增 `assistant.sqlite` 和迁移框架。 - 将会话与活动从 `localStorage` 迁移到主进程数据库。 - 拆分共享契约和 IPC 注册。 - 保持现有对话、知识库、设置和审批行为不变。 ### 阶段 1:长期工作区骨架 - Projects 与会话归属。 - Ask、Execute 工作模式与旧版 Plan 数据兼容。 - 全局右侧栏。 - 任务、上下文、成果、文件更改和预览页签。 ### 阶段 2:后台任务 - 持久化任务、运行和事件。 - 取消、重试、恢复和审批收件箱。 - 托盘状态和桌面通知。 ### 阶段 3:成果与记忆 - 成果存储和安全预览。 - 项目记忆、确认流程和检索。 - 统一上下文组装器。 ### 阶段 4:自动化与桌面上下文 - 定时任务和执行历史。 - 窗口选择、活动应用和浏览器上下文。 ### 阶段 5:语音 - 按住说话、转写适配器和可编辑转写。 - 后续扩展实时语音与 TTS。 ### 阶段 6:专家与远程委派 - 专家注册和受限子任务。 - 多 Agent 编排。 - 企业 IM/Webhook 远程入口。 ## 8. 验收标准 ### 8.1 右侧栏 - 三种窗口宽度下布局可用。 - 跨主视图切换保持页签和折叠状态。 - 任务、上下文和成果更新不要求离开当前对话。 - 键盘可操作,并具备正确 ARIA 标签。 ### 8.2 Projects - 创建、编辑、归档和恢复项目。 - 项目切换不会泄漏其他项目的上下文、记忆或任务。 - 旧会话可迁移且不丢失。 ### 8.3 任务 - 事件持久化后再展示。 - 取消、失败、重试和应用重启均有确定状态。 - 审批在全局右侧栏可见。 ### 8.4 记忆 - 未确认记忆不会进入模型上下文。 - 用户删除后不再检索到。 - 每条记忆显示来源与作用域。 ### 8.5 安全 - Renderer 无任意文件读取能力。 - Runtime 无无关进程环境变量。 - 自动化和远程入口不能绕过审批。 - API Key、连接 Token 和音频不以明文长期保存。 ### 8.6 质量门禁 - `npm run typecheck` - `npm run lint` - `npm test` - 阶段里程碑执行 `npm run build` - 发布前执行 packaged GUI smoke、依赖审计和 secret scan