desktop_rpa/PRD.md
2026-06-26 17:11:04 +08:00

380 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# RPA工作站 PRD
## 产品定位
RPA工作站是一款面向企业办公自动化与知识工作场景的本地优先 AI + RPA 视觉标注与执行平台。
产品通过桌面视觉标注、知识库授权、AI 员工执行与 RPA 托管,把企业现有桌面/Web 系统转化为可被 AI 理解和操作的任务环境。差异化在于:无需改造既有业务系统,也不要求企业先完成 API 化改造;用户通过标注窗口、节点和动作,让 AI 员工在授权知识库约束下执行重复性办公任务。
第一版不定位为通用聊天机器人、通用知识库或完整通用 RPA 平台。聊天、知识检索和流程自动化是核心闭环的组成能力,开放式通用能力作为后续扩展。
## 技术框架
- Rust + Tauri + tiny-skia
- React + Vite + Canvas 画布
- SQLite + FTS5 + BM25
- Go Agent 服务
技术职责边界:
- Rust/Tauri窗口管理、悬浮窗、全屏遮罩、权限检查、本地文件、SQLite、截图/绘制、系统快捷键。
- React/Vite/Canvas主界面、标注画布、节点框选、状态展示、配置表单。
- tiny-skia截图标注渲染、遮罩绘制、标注结果导出图。
- SQLite + FTS5 + BM25知识库元数据、文本索引、搜索排序。
- Go Agent 服务任务编排、模型调用、工具调用、AI 员工执行逻辑,通过本地 IPC/API 与 Tauri 通信。
## 商业化目标
1. 可试用:新用户能完成首次配置并跑通“知识库 → AI 员工 → 标注应用 → 自动化任务 → 托管执行”的核心闭环。
2. 可销售:销售演示能清晰展示知识库、标注、托管执行三个价值点。
3. 可交付:支持本地部署、许可证、诊断包、备份恢复。
4. 可审计:关键权限、知识库引用、托管动作和高风险操作有日志。
## 核心用户与首个可销售场景
核心用户包括企业运营、财务、人事、客服、数据录入、流程自动化团队,以及需要在旧系统上做 AI 自动化的实施团队。
首个可销售场景:用户上传公司制度、流程文档、操作说明建立知识库;在既有业务系统中标注窗口、按钮、输入框、表格等节点;授权 AI 员工读取指定知识库并控制指定标注应用AI 员工执行重复性任务,执行过程可见、可停、可审计。
## 核心产品闭环
1. 首次配置:检查权限、模型、网络、本地 GPU、存储路径。
2. 创建知识库:上传文档、图片、视频或文件夹,进入索引队列。
3. 创建 AI 员工:配置角色、模型、提示词、可访问知识库、可操作应用。
4. 标注应用:按 `Ctrl+E` 进入标注模式,框选目标应用窗口和节点。
5. 授权引用:将知识库和标注应用授权给指定 AI 员工。
6. 启动任务AI 员工基于知识库和标注节点执行自动化任务。
7. 托管执行:显示全屏遮罩、托管日志、停止按钮和 ESC 紧急停止。
8. 审计复盘:自动化任务中心记录状态、动作、错误和人工终止原因。
## 信息架构
主窗口 `main_window` 最小屏幕尺寸为 `800 × 600`
主窗口固定为左侧导航 + 右侧内容区:
- 左侧导航宽度 `80100px`
- 右侧顶部 Header 高度 `80px`
- Header 左侧显示当前页面标题和摘要。
- Header 右侧显示模型状态、RPA 托管状态、本地/云端模式、许可证状态。
- Header 下方为页面内容区。
左侧导航固定为:
1. 工作台
2. 标注应用
3. 知识库
4. AI 员工
5. 自动化任务
6. 设置
页面职责:
- 工作台:展示环境状态、资产状态、执行状态、快速入口。
- 标注应用:管理已标注应用、窗口、节点、流程。
- 知识库:管理知识资产、索引状态、搜索、权限。
- AI 员工:管理员工角色、模型、提示词、知识库权限、应用权限。
- 自动化任务:展示运行中任务、历史任务、失败任务、重试入口、托管日志。
- 设置:管理模型、提示词模板、存储位置、快捷键、许可证、诊断与日志、备份恢复。
## 首次配置与环境检查
`check_window` 升级为首次配置向导。新用户首次启动进入该向导;配置完成后进入 `main_window`。后续启动只在关键权限缺失时阻塞,否则在工作台展示状态和修复入口。
向导步骤:
1. 权限检查:屏幕录制、辅助功能/自动化控制、文件访问、网络访问。
2. 模型配置本地模型、云端模型、API Key、连通性测试。
3. 性能评估:本地 GPU、CPU、内存、推理能力档位。
4. 存储位置SQLite 数据库、知识库原文、索引文件、日志目录。
5. 安全说明RPA 托管会控制鼠标键盘ESC 和停止按钮可终止。
每一步状态固定为:`未检查 | 检查中 | 通过 | 失败 | 需手动处理`
失败处理必须提供:
- 打开系统设置。
- 重新检测。
- 跳过并以后配置。
## 工作台
工作台是商业演示和日常运营入口,必须在一个页面内回答“环境是否可用、资产是否就绪、任务是否安全运行”。
必须展示:
- 环境状态:权限、模型连通性、本地/云端模式、GPU 档位、存储路径可用性。
- 资产状态知识库数量、已就绪索引数量、AI 员工数量、标注应用数量。
- 执行状态运行中自动化任务、失败任务、最近一次托管结果、RPA 托管状态。
- 快速入口:创建知识库、创建 AI 员工、进入标注模式、启动自动化任务、导出诊断包。
## 知识库
知识库是可索引、可授权、可审计的企业知识资产。默认权限为 `private`,未授权前 AI 员工不可引用。
知识库字段:
- `id`
- `name`
- `description`
- `source_type: document | image | video | folder | url`
- `owner`
- `created_at`
- `updated_at`
- `indexed_at`
- `reference_count`
- `permission_mode: private | selected_agents | workspace`
- `index_status: pending | indexing | ready | failed`
列表展示:名称、类型、索引状态、引用次数、更新时间、权限模式。
页面能力:
- 支持上传文档、图片、视频、文件夹和 URL 创建知识库。
- 上传后进入索引队列,后台任务状态统一接入任务队列。
- 索引失败保留原文件,展示失败原因和重试按钮。
- 搜索能力基于 SQLite + FTS5 + BM25支持关键词搜索、来源过滤、类型过滤、更新时间排序。
- 权限变更写入审计日志。
- 视频第一版只保存元数据和关键帧/OCR 文本,不实现完整视频语义检索。
## AI 员工
AI 员工是带角色、模型、提示词、知识库权限和应用操作权限的执行主体。
AI 员工字段:
- `id`
- `name`
- `role`
- `avatar`
- `status: idle | running | waiting_user | failed | disabled`
- `model_profile_id`
- `system_prompt`
- `allowed_knowledge_base_ids`
- `allowed_app_ids`
- `created_at`
- `updated_at`
列表展示:名称、角色、状态、可访问知识库数量、可操作标注应用数量、最近执行时间。
创建/编辑表单必须包含:
- 角色描述。
- 系统提示词。
- 模型配置。
- 知识库权限。
- 可操作应用权限。
第一版支持单员工对话和单员工任务执行。多员工拉群协作作为 Beta 后能力:先做固定流程编排和角色交接日志,不在 Alpha 中承诺开放式多 Agent 自组织。
员工执行任务前必须展示将访问的知识库与将控制的应用,用户确认后启动。
## 标注应用
标注应用是对既有桌面/Web 系统的视觉操作模型,包括应用、窗口、节点和流程。
详情页固定四个 Tab
1. 概览
2. 窗口
3. 节点
4. 流程
节点字段:
- `id`
- `app_id`
- `window_id`
- `name`
- `node_type: button | input | table | menu | text | image | region | unknown`
- `bounds: { x, y, width, height }`
- `selector_hint`
- `ocr_text`
- `allowed_actions: click | type | read | drag | hotkey | wait`
- `confidence`
- `created_at`
- `updated_at`
`Ctrl+E` 标注模式:隐藏主窗口,显示悬浮窗,允许用户框选桌面区域并命名节点,保存后节点进入当前标注应用。如果没有当前标注应用,进入标注模式前弹出选择或创建入口。标注保存失败时保留临时草稿并允许重试。
## 自动化任务与 RPA 托管
自动化任务页面用于展示运行中任务、历史任务、失败任务、重试入口和托管日志。统一任务队列/状态机覆盖知识库索引、AI 员工执行、RPA 托管任务。
后台任务统一状态:`queued | running | succeeded | failed | canceled`
托管开始前必须展示确认页AI 员工、目标应用、将访问的知识库、预计动作范围、停止方式。
RPA 托管安全机制:
- 显示全屏遮罩与实时托管日志。
- 阻止普通鼠标键盘输入传递到被托管应用,避免人与 AI 抢控制权。
- 始终保留 ESC 紧急停止。
- 始终保留遮罩上的“停止托管”按钮。
- 不拦截系统级安全快捷键,例如 Ctrl+Alt+Del。
托管日志记录:开始时间、执行员工、目标应用、动作、结果、错误、人工终止原因。托管异常进入 `waiting_user` 状态。
高风险动作要求二次确认:删除、提交、付款、发送外部消息、批量修改。
失败必须有用户可读错误文案和开发者可排查错误码。
## 桌面悬浮窗与标注模式
当主窗口关闭时,桌面悬浮窗显示。点击悬浮窗可以进入主窗口。
悬浮窗展示:
- 当前 RPA 控制状态。
- 当前 AI 员工进度。
- 是否空闲。
- 快速进入 `Ctrl+E` 标注模式。
- 运行中托管任务的停止入口。
标注模式用于快速把真实桌面区域转化为可执行节点。进入标注模式时主窗口暂时隐藏,用户通过悬浮窗确认当前标注应用、框选窗口或节点、命名节点、保存到标注应用详情页。
## 设置
设置页包含:
- 模型配置本地模型、云端模型、API Key、连通性测试、默认模型档位。
- 提示词配置:系统提示词模板、员工提示词、任务提示词。
- 存储位置SQLite 数据库、知识库原文、索引文件、日志目录。
- 快捷键管理:`Ctrl+E` 标注模式、ESC 紧急停止、悬浮窗显示/隐藏。
- 开关配置:本地/云端模式、托管确认、高风险动作二次确认。
- 诊断与日志:导出诊断包、查看本地日志目录、复制环境信息。
- 数据备份与恢复:导出配置、导出知识库元数据、恢复 SQLite 与索引文件。
- 许可证管理:试用状态、激活状态、离线宽限期、席位信息。
## 账号、许可证与商业版本
部署模式:
- 单机版:本地账户、本地许可证、本地 SQLite。
- 团队版:工作区、成员、角色、共享知识库、共享 AI 员工配置。
第一版优先单机本地交付,预留团队同步接口,不直接承诺完整 SaaS。
许可证状态固定为:`trial | active | expired | offline_grace | invalid`
免费试用边界14 天、最多 3 个知识库、最多 2 个 AI 员工、最多 1 个标注应用、每天最多 20 次托管任务。
付费版本:按席位授权;企业版增加离线激活、私有模型配置、审计日志导出、批量部署。
## 安全、权限与审计
安全原则:本地优先、最小权限、显式授权、关键动作可追溯。
权限规则:
- 知识库默认 `private`
- AI 员工只能读取 `allowed_knowledge_base_ids` 中授权的知识库。
- AI 员工只能操作 `allowed_app_ids` 中授权的标注应用。
- 托管开始前必须确认员工、应用、知识库和动作范围。
- 高风险动作必须二次确认。
审计日志必须覆盖:
- 权限检查结果和用户处理动作。
- 知识库创建、索引、授权、撤权。
- AI 员工创建、编辑、启用、禁用。
- 标注应用、窗口、节点、流程变更。
- RPA 托管开始、动作、结果、错误、人工终止原因。
- 删除、提交、付款、发送外部消息、批量修改等高风险动作。
审计日志需支持按时间、员工、应用、知识库、任务状态过滤。
## 诊断、日志与恢复
设置页新增“诊断与日志”。
功能:
- 导出诊断包。
- 查看本地日志目录。
- 复制环境信息。
诊断包包含:应用版本、系统信息、权限状态、模型配置摘要、最近错误日志、最近托管任务日志。
诊断包不得包含API Key、知识库原文、用户隐私内容。
所有后台任务失败必须提供用户可读错误文案和开发者可排查错误码。
数据备份与恢复:
- 导出配置。
- 导出知识库元数据。
- 恢复 SQLite 与索引文件。
- 恢复后重新校验索引路径、原文路径和权限状态。
## UI/UX 标准
视觉风格:专业、克制、工具型、低饱和科技感。
图标标准:禁止 emoji 作为导航或状态图标;统一使用 SVG 图标库。
设计令牌:
- 主色:蓝紫或靛蓝系。
- 中性色Slate/Neutral 系。
- 语义色:成功、警告、危险、信息。
- 字号阶梯12、14、16、18、20、24、32。
- 间距阶梯4、8、12、16、24、32、48。
交互标准:
- 所有可点击区域至少 32px 高。
- 关键操作按钮至少 40px 高。
- 键盘焦点态必须可见。
- 异步操作超过 300ms 显示加载状态。
- 错误信息必须说明原因和恢复动作。
- 托管遮罩、权限弹窗、删除确认等阻断界面必须支持取消路径。
- 托管模式下 ESC 是紧急停止。
## 技术边界
1. Rust/Tauri 负责窗口管理、悬浮窗、全屏遮罩、权限检查、本地文件、SQLite、截图/绘制、系统快捷键。
2. React/Vite/Canvas 负责:主界面、标注画布、节点框选、状态展示、配置表单。
3. tiny-skia 负责:截图标注渲染、遮罩绘制、标注结果导出图。
4. SQLite + FTS5 + BM25 负责:知识库元数据、文本索引、搜索排序。
5. 视频第一版只保存元数据和关键帧/OCR 文本,不实现完整视频语义检索。
6. Go Agent 服务负责任务编排、模型调用、工具调用、AI 员工执行逻辑,通过本地 IPC/API 与 Tauri 通信。
7. 新增统一任务队列/状态机覆盖知识库索引、AI 员工执行、RPA 托管任务。
## 分阶段交付
### Alpha 内测版
- 首次配置向导。
- 创建知识库并完成文本/图片索引。
- 创建单个 AI 员工。
- `Ctrl+E` 标注一个应用窗口与节点。
- AI 员工读取授权知识库并执行一次受控任务。
- 托管遮罩、日志、ESC 停止可用。
### Beta 试用版
- 许可证试用限制。
- 自动化任务中心。
- 诊断包导出。
- 知识库权限审计。
- 标注应用详情页完整可用。
### 正式商业版
- 离线激活。
- 企业审计日志。
- 数据备份恢复。
- 多模型配置。
- 稳定安装包和升级机制。
## 验收标准
- 新用户从首次配置到启动一次托管任务不需要修改配置文件。
- 用户能上传文档建立知识库并搜索命中内容。
- 用户能创建 AI 员工并授权指定知识库。
- 用户能用 `Ctrl+E` 标注节点并在标注应用详情页看到节点。
- 用户能启动托管任务、看到日志、用 ESC 或停止按钮终止。
- 高风险动作触发二次确认。
- 诊断包可导出且不包含 API Key 和知识库原文。