- Fix delete agent 500: clean up FK records (agent_llm_logs, permissions, schedules, executions, team_members) and unbind goals/tasks before delete - Remove hardcoded personality templates in Android, replace with dynamic system prompt generation from name + description - Set promptSectionsEnabled=false to bypass PromptComposer for personality - Add Tencent Cloud Linux deployment guide (Docker Compose) - Accumulated backend service updates, frontend UI fixes, Android app changes Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
14 KiB
14 KiB
天工 Android 客户端 — 用户体验与功能提升需求文档
版本: v1.0
日期: 2026-06-24
基线:android-app-design.md(设计蓝图, 覆盖 4 页面: 登录/对话/Agent列表/设置)
Web 参考:frontend/src/(33 路由页面, 已投产)
后端支撑:backend/app/main.py(40+ API 路由模块, 全部可用)
一、功能对齐矩阵
| # | 功能域 | Web 前端 | Android 设计 (现状) | 对齐状态 | 移动端适配建议 |
|---|---|---|---|---|---|
| 1 | 登录/注册 | ✅ 状态机驱动, 验证码, 忘记密码, 30天免登录 | ✅ 基础登录 | ⚠️ 功能不足 | 补齐验证码/忘记密码/生物识别 |
| 2 | Agent 对话 | ✅ 单Agent + 编排模式, SSE流式, 思考链, 工具调用, 审批 | ✅ 基础对话 + SSE | ⚠️ 功能不足 | 补齐多模式/思考链/工具可视化 |
| 3 | 语音交互 | ✅ Web Speech API (语音输入 + TTS) | ✅ ASR + TTS 接口 | ✅ | 需端侧 VAD/降噪优化 |
| 4 | Agent 列表 | ✅ 搜索/筛选/CRUD/导入导出/部署停止 | ✅ 基础列表 | ⚠️ 功能不足 | 补齐搜索/导入导出/操作菜单 |
| 5 | Agent 市场 | ✅ 分类浏览/详情/一键添加 | ❌ | 🔴 缺失 | 新增 — 移动端核心发现入口 |
| 6 | 工作流设计 | ✅ 可视化拖拽画布 (Vue Flow) | ❌ | 🟡 低优先级 | 仅"查看"模式, 编辑留给 Web |
| 7 | Agent 配置 | ✅ 名称/描述/System Prompt/模型/工具/预算 | ❌ | 🔴 缺失 | 新增 — 基础配置(文本字段为主) |
| 8 | 模板市场 | ✅ 场景模板浏览/一键创建 | ❌ | 🟡 中优先级 | 简化浏览 + 一键从模板创建 |
| 9 | 插件市场 | ✅ 插件安装/管理 | ❌ | 🟡 中优先级 | 浏览 + 安装/卸载 |
| 10 | 知识库 | ✅ 文档上传/知识库检索/仪表盘 | ❌ | 🟡 中优先级 | 简化检索(仅搜索对话) |
| 11 | 数字员工 | ✅ 目标管理/任务树/工厂创建 | ❌ | 🟡 中优先级 | 目标查看 + 任务进度 |
| 12 | Agent 定时 | ✅ Cron 定时触发/管理 | ❌ | 🟡 中优先级 | 查看 + 启停 |
| 13 | 团队协作 | ✅ 团队建设/成员管理 | ❌ | 🟡 中优先级 | 查看团队 + Agent 协作 |
| 14 | 推送通知 | ✅ FCM 集成 | ✅ FCM 基础 | ⚠️ 可增强 | 通知分类/优先级/富媒体 |
| 15 | 设置/工作区 | ✅ 工作区切换/多租户 | ✅ 基础设置 | ⚠️ 可增强 | 工作区切换/个性化 |
| 16 | 数据源 | ✅ CRUD/连接测试/查询 | ❌ | 🟢 低优先级 | — |
| 17 | 监控告警 | ✅ Dashboard/规则/日志 | ❌ | 🟢 低优先级 | — |
| 18 | 权限管理 | ✅ 管理员权限控制 | ❌ | 🟢 低优先级 | — |
| 19 | 离线能力 | ❌ | ❌ | 🟡 中优先级 | 聊天记录本地缓存 |
图例: 🔴 关键缺失 · 🟡 重要补充 · ⚠️ 功能不足 · ✅ 对齐 · 🟢 暂缓
二、屏幕级 UX 审计
2.1 登录页 (LoginScreen)
现状: 仅用户名+密码表单, 无错误冷却, 无生物识别, 无忘记密码入口。
问题:
- [P0] 连续登录失败无渐进式限制 → 账户爆破风险
- [P0] 无生物识别 (指纹/面部) → 每次输入密码体验差
- [P1] 无忘记密码流程 → 用户锁死无自救路径
- [P1] 无验证码机制 → 无机器人防护
- [P2] 无注册入口 → 只能登录, 不能自注册
参考: frontend/src/views/Login.vue — 状态机驱动的登录页, 包含
- 渐进式错误冷却 (3次→验证码, 5次→15秒锁定)
- 忘记密码 → 邮箱验证码 → 重置
- 30天免登录
- 注册 Tab
2.2 对话页 (ChatScreen)
现状: 基础消息列表 + SSE 流式, 语音按钮, Agent 选择器。
问题:
- [P0] 无思考链 (thinking trace) 展示 → 用户不知 Agent "在想什么"
- [P0] 无工具调用可视化 → 不知道 Agent 调用了哪些工具
- [P0] 单 Agent 模式仅有基础聊天, 缺少编排 (orchestrate) 入口
- [P1] 无消息重试/复制功能 → 遇到错误只能重发
- [P1] 无工具审批弹窗 → 高权限操作无人工确认
- [P1] 语音输入无 VAD (Voice Activity Detection) → 噪音误触发
- [P2] 无 TTS 自动播报开关 → 需每次手动触发
参考: frontend/src/views/AgentChat.vue (35KB) — 功能丰富的对话页, 包含:
- 单 Agent / 多 Agent 编排双模式
- SSE 流式 + 降级 POST 双通道
- 思考链可视化 (think/tool_call/tool_result/final 四阶段)
- 工具审批弹窗 (approval_required 事件)
- 消息重试 (retryMessage, 自动回填并重发)
- 消息复制
- 编排模式编辑器 (辩论/路由/顺序/流水线)
- localStorage 状态持久化 (24h TTL)
2.3 Agent 列表页 (AgentListScreen)
现状: 基础网格/列表展示 Agent。
问题:
- [P0] 无搜索/筛选 → Agent 数量多时不可用
- [P1] 无 Agent 市场入口 → 无法发现新 Agent
- [P1] 无导入/导出操作 → 无法迁移 Agent
- [P1] 无部署/停止操作 → 无法管理运行状态
- [P2] 无 Agent 详情页 → 点击仅能进入对话
参考: frontend/src/views/Agents.vue + AgentMarket.vue + agent.ts store
2.4 设置页 (SettingsScreen)
现状: 基础设置项。
问题:
- [P0] 无工作区切换 → 多租户用户无法切换上下文
- [P1] 无通知偏好设置 → 无法控制推送类型
- [P1] 无数据管理 (缓存清理/对话历史管理)
- [P2] 无深色模式/主题切换
参考: frontend/src/stores/user.ts — workspace 支持 (switchWorkspace)
三、P0-P2 优先级矩阵与用户故事
P0 — V1.0 必须交付 (阻塞核心体验)
| # | 用户故事 | 涉及页面 | 工作量 |
|---|---|---|---|
| P0-1 | 思考链可视化 — 作为用户, 我想看到 Agent 的推理过程 (think/tool_call/tool_result/final), 以便理解 AI 如何做出决策 | ChatScreen | 中等 |
| P0-2 | 工具调用可视化 — 作为用户, 我想看到 Agent 调用了哪些工具以及结果, 以便验证 AI 行为 | ChatScreen | 中等 |
| P0-3 | 多 Agent 编排对话 — 作为用户, 我想让多个 Agent 以辩论/路由/顺序模式协作, 以便获得更高质量回答 | ChatScreen | 较大 |
| P0-4 | Agent 搜索与筛选 — 作为用户, 我想按名称/状态/类别搜索 Agent, 以便在大量 Agent 中快速定位 | AgentListScreen | 较小 |
| P0-5 | 生物识别登录 — 作为用户, 我想用指纹/面部解锁登录, 以便快速安全地访问应用 | LoginScreen | 较小 |
| P0-6 | 渐进式登录安全 — 作为系统, 需要在连续失败后增加验证码/冷却, 以防止暴力破解 | LoginScreen | 较小 |
| P0-7 | 工作区切换 — 作为用户, 我想在多个工作区之间切换, 以便管理不同团队/项目的 Agent | SettingsScreen | 中等 |
P1 — V1.1 重要交付 (提升完整度)
| # | 用户故事 | 涉及页面 | 工作量 |
|---|---|---|---|
| P1-1 | Agent 市场浏览 — 作为用户, 我想浏览和搜索公开 Agent, 以便发现有用的 AI 助手 | 新增 AgentMarket | 较大 |
| P1-2 | 一键从模板创建 Agent — 作为用户, 我想从场景模板快速创建 Agent, 以便无需从零配置 | 新增 | 中等 |
| P1-3 | 忘记密码流程 — 作为用户, 我想通过邮箱验证码重置密码, 以便在忘记密码时自助恢复 | LoginScreen | 中等 |
| P1-4 | 消息重试与复制 — 作为用户, 我想重试失败的消息或复制 Agent 回答, 以便纠正错误或保存有用信息 | ChatScreen | 较小 |
| P1-5 | 工具审批弹窗 — 作为用户, 我想在 Agent 执行敏感操作前审批, 以便控制高风险行为 | ChatScreen | 较小 |
| P1-6 | Agent 部署/启停 — 作为用户, 我想控制 Agent 的运行状态 (部署/停止), 以便管理资源消耗 | AgentListScreen | 较小 |
| P1-7 | Agent 导入/导出 — 作为用户, 我想导出 Agent 配置为 JSON 并分享, 以便跨环境迁移 | AgentListScreen | 较小 |
| P1-8 | 通知偏好设置 — 作为用户, 我想控制哪些事件触发推送, 以便减少打扰 | SettingsScreen | 较小 |
| P1-9 | 聊天记录本地缓存 — 作为用户, 我想在网络断开时查看历史对话, 以便在离线环境继续参考 | ChatScreen | 中等 |
P2 — V1.2 增强交付 (体验升级)
| # | 用户故事 | 涉及页面 | 工作量 |
|---|---|---|---|
| P2-1 | 注册入口 — 作为新用户, 我想在 App 内直接注册账号, 以便无需跳转 Web | LoginScreen | 较小 |
| P2-2 | TTS 自动播报 — 作为用户, 我想让 Agent 回答自动语音朗读, 以便在驾车/运动时收听 | ChatScreen | 较小 |
| P2-3 | 深色模式 — 作为用户, 我想切换到深色主题, 以便在夜间使用时减少视觉疲劳 | 全局 | 中等 |
| P2-4 | Agent 基础配置编辑 — 作为用户, 我想在手机上修改 Agent 名称/描述/System Prompt, 以便快速微调 | 新增 AgentConfig | 中等 |
| P2-5 | 工作流查看模式 — 作为用户, 我想查看 Agent 的工作流结构图, 以便了解其内部逻辑 | 新增 | 较大 |
| P2-6 | 知识库搜索 — 作为用户, 我想搜索已上传的知识库文档, 以便找到相关资料 | 新增 | 中等 |
| P2-7 | 数字员工目标查看 — 作为用户, 我想查看数字员工的当前目标和任务进度, 以便了解 AI 工作状态 | 新增 GoalView | 中等 |
四、后端 API 依赖清单
Android 端需要调用的 API(全部已由 Web 前端验证可用):
4.1 认证模块 (/api/v1/auth/*)
POST /api/v1/auth/login # 登录 → 返回 JWT
POST /api/v1/auth/register # 注册
GET /api/v1/auth/me # 获取当前用户信息 (含 workspaces)
POST /api/v1/auth/switch-workspace/{id} # 切换工作区
POST /api/v1/auth/forgot-password # 发送重置验证码
POST /api/v1/auth/reset-password # 重置密码
4.2 Agent 模块 (/api/v1/agents/*)
GET /api/v1/agents # 列表 (支持 search/status/skip/limit)
GET /api/v1/agents/{id} # 详情
POST /api/v1/agents # 创建
PUT /api/v1/agents/{id} # 更新
DELETE /api/v1/agents/{id} # 删除
POST /api/v1/agents/{id}/deploy # 部署
POST /api/v1/agents/{id}/stop # 停止
POST /api/v1/agents/{id}/duplicate # 复制
GET /api/v1/agents/{id}/export # 导出 JSON
POST /api/v1/agents/import # 导入 JSON
4.3 Agent 对话模块 (/api/v1/agent-chat/*)
POST /api/v1/agent-chat/{agent_id} # 非流式对话
POST /api/v1/agent-chat/{agent_id}/stream # SSE 流式对话
POST /api/v1/agent-chat/bare # 无 Agent 对话
POST /api/v1/agent-chat/bare/stream # 无 Agent 流式
POST /api/v1/agent-chat/orchestrate # 多 Agent 编排
4.4 Agent 市场 (/api/v1/agent-market/*)
GET /api/v1/agent-market # 市场列表 (分类/搜索)
GET /api/v1/agent-market/{id} # 市场详情
POST /api/v1/agent-market/{id}/install # 添加 Agent
4.5 模板市场 (/api/v1/template-market/*)
GET /api/v1/template-market # 模板列表
POST /api/v1/platform/agents/from-template # 从模板创建 Agent
4.6 定时任务 (/api/v1/agent-schedules/*)
GET /api/v1/agent-schedules # 列表
POST /api/v1/agent-schedules/{id}/toggle # 启停
4.7 目标/任务 (/api/v1/goals/*, /api/v1/tasks/*)
GET /api/v1/goals # 目标列表
GET /api/v1/goals/{id} # 目标详情 + 任务树
GET /api/v1/tasks # 任务列表
4.8 推送 (/api/v1/push/*, /api/v1/fcm/*)
POST /api/v1/fcm/register # 注册设备 Token
GET /api/v1/notifications # 通知列表
PUT /api/v1/notifications/{id}/read # 标记已读
4.9 语音 (/api/v1/voice/*)
POST /api/v1/voice/asr # 语音转文字
POST /api/v1/voice/tts # 文字转语音
4.10 审批 (/api/v1/approval/*)
POST /api/v1/approval/{id}/resolve # 审批决议 (approved/denied/skip)
4.11 知识库 (/api/v1/knowledge/*)
GET /api/v1/knowledge/dashboard # 知识库仪表盘
POST /api/v1/knowledge/search # 语义搜索
五、技术建议
5.1 SSE 流式对话增强
- 当前: 实现基础 SSE 读取
- 建议:
- 支持
think/tool_call/tool_result/approval_required/final/error六种事件类型解析 - 流式数据增加缓冲池 + 逐块渲染, 避免大消息阻塞 UI 线程
- 降级策略: SSE 失败 3s 内自动切 POST
- 支持
5.2 离线与缓存策略
- 聊天记录: Room DB 存储 (24h TTL, 同 Web 的 localStorage 策略)
- Agent 列表: 增量同步 (ETag / Last-Modified)
- 图片/语音: DiskLruCache
5.3 安全增强
- JWT 存储 → EncryptedSharedPreferences (非明文 SharedPreferences)
- SSL Pinning → 防中间人
- 生物识别 → BiometricPrompt (AndroidX)
5.4 导航架构建议
底部 Tab:
🏠 首页 (HomeScreen) → 快捷入口: 最近对话/推荐Agent/通知摘要
💬 对话 (ChatScreen) → 主对话界面
🤖 Agent (AgentListScreen) → Agent 列表 + 市场入口
🔔 通知 (NotificationScreen) → 推送列表
⚙️ 设置 (SettingsScreen) → 设置 + 工作区切换
5.5 Compose 组件复用建议
复用 Web 端已验证的交互模式:
- 思考链:
trace-step组件逻辑 → LazyColumn + AnimatedVisibility - 工具调用:
tool-calls-header+tool-call-item→ Card + Chip 组合 - 编排对话:
orchestrate-result折叠面板 → ExpandableCard - 审批弹窗:
approval_required事件 → AlertDialog + 三按钮
六、交付里程碑
| 里程碑 | 范围 | 预计迭代 |
|---|---|---|
| M1: 核心补齐 | P0-1~P0-7 全部 | 1-2 sprint |
| M2: 体验完善 | P1-1~P1-9 全部 | 2-3 sprint |
| M3: 增强特性 | P2-1~P2-7 按需 | 3-4 sprint |
文档结束 — 由产品经理 + 前端架构师 + 后端架构师联合编制