Files
clawpal/docs/plans/2026-02-16-clawpal-product-redesign.md
zhixian 700c5e9ab2 feat: ClawPal v0.1 — Tauri desktop GUI for OpenClaw
4-page layout (Home, Recipes, Settings, Doctor) with sidebar nav
and integrated Chat panel powered by OpenClaw agent (--local).

- Home: status, agents overview, recommended recipes, recent activity
- Recipes: browse, preview diff, apply with params
- Settings: model profiles CRUD, chat model selection, provider catalog
- Doctor: diagnostics with auto-fix
- Chat: OpenClaw agent integration with session persistence,
  agent selector, read-only advisory context injection
- Progressive data loading to avoid UI blocking
- API key resolution from OpenClaw agent auth-profiles
- Model catalog from openclaw CLI with cache

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 01:16:38 +09:00

11 KiB
Raw Blame History

ClawPal 产品精简 & 重新定位

从"全功能配置管理后台"回归"AI 配置助手"

1. 问题

v0.2 新增了 Models、Channels、Data 三个管理页面后,产品从"场景驱动的配置助手"滑向了"OpenClaw 全功能管理后台"。功能杂糅,偏离了核心用户(新手)的需求。

2. 新产品定位

ClawPal = AI 配置助手 + 精选 Recipe 库

  • 核心用户:不想碰 JSON 的新手
  • 第一入口Chat — 用自然语言描述需求LLM 生成配置方案
  • 第二入口Recipe — 社区精选的常见场景,一键安装
  • 安全保证所有变更Chat 或 Recipe走同一安全链路快照 → 预览 diff → 用户确认 → 应用

3. 精简前后对比

精简前 (7 页面) 精简后 处理方式
Home (状态仪表盘) Home (状态 + Agents + 推荐 + Chat) 重构
Recipes Recipes 保留
Install Install (从 Recipe/Chat 进入) 保留
History History 保留
Doctor Doctor (+ 数据清理) 扩展
Models Settings > Model Profiles 降级,移除绑定功能
Channels 删除 由 Chat/Recipe 覆盖
Data 合并入 Doctor 删除独立页面

4. 导航结构

左侧边栏4 个主入口 + 1 个设置:

┌──────────┬──────────────────────────────────┐
│          │                                  │
│  Home    │                                  │
│          │                                  │
│  Recipes │         页面内容                  │
│          │                                  │
│  History │                                  │
│          │                                  │
│  Doctor  │                                  │
│          │                                  │
│  ─────── │                                  │
│  Settings│                                  │
│          │                                  │
└──────────┴──────────────────────────────────┘

Install 不在侧边栏出现,从 Recipe 卡片或 Chat 触发后进入。

5. Home 页面

左右分栏布局:左侧主内容区,右侧常驻 Chat 窗口。

5.1 左侧主区域(四段式)

状态摘要 — 一行紧凑卡片:

  • 配置健康状态(/
  • OpenClaw 版本 + 是否有更新
  • 当前默认模型

Agents 概览 — 每个 Agent 一行:

  • Agent 名称 / ID
  • 当前使用的模型
  • 关联的 ChannelsDiscord#xxx、Telegram 等)
  • 在线状态

推荐 Recipes — 3-4 张卡片,点击进入安装向导

最近操作 — 最近 3-5 条历史记录

5.2 右侧 Chat 窗口

常驻面板,使用用户在 Settings 中配置的 Model Profile 调用 LLM。

LLM 可调用的工具集:

工具 作用 安全级别
read_config 读取当前配置 无风险(只读)
list_agents 列出 Agent 信息 无风险
list_recipes 搜索/推荐 Recipe 无风险
preview_change 生成配置补丁并展示 diff 无风险(不写入)
apply_change 应用配置变更 需用户点确认
run_doctor 运行诊断 无风险
generate_recipe 根据描述生成新 Recipe 无风险(只生成定义)

交互流程:

用户: "我想让 agent-2 在 Telegram 群里只回复被 @ 的消息"
  ↓
LLM: 调用 read_config 了解当前配置
  ↓
LLM: 生成配置补丁,调用 preview_change
  ↓
Chat 内展示 diff 面板 + [确认应用] [取消] 按钮
  ↓
用户点确认 → 自动快照 → 写入配置

关键约束:

  • 所有写操作必须先展示 diff用户手动确认
  • 使用用户在 Settings 中选定的 Chat 模型
  • 未配置 Model Profile 时Chat 区域提示引导去 Settings

5.3 布局示意

┌──────────┬──────────────────────────┬──────────────────┐
│          │                          │                  │
│  Sidebar │  状态摘要 (一行卡片)       │   Chat 窗口      │
│          │  ┌────┐ ┌────┐ ┌────┐   │                  │
│          │  │健康 │ │版本 │ │模型 │   │  💬 你想实现      │
│          │  │ ✅  │ │2.13│ │gpt4│   │   什么配置?       │
│          │  └────┘ └────┘ └────┘   │                  │
│          │                          │  ┌────────────┐  │
│          │  Agents                   │  │ 输入框      │  │
│          │  ┌──────────────────────┐ │  └────────────┘  │
│          │  │ agent-1    gpt-4o   │ │                  │
│          │  │ ✅ online  Discord#1│ │                  │
│          │  ├──────────────────────┤ │                  │
│          │  │ agent-2    claude   │ │                  │
│          │  │ ✅ online  Telegram │ │                  │
│          │  ├──────────────────────┤ │                  │
│          │  │ agent-3    gpt-4o   │ │                  │
│          │  │ ⚠ no channel        │ │                  │
│          │  └──────────────────────┘ │                  │
│          │                          │                  │
│          │  推荐 Recipes             │                  │
│          │  ┌─────┐ ┌─────┐ ┌─────┐│                  │
│          │  │人设  │ │模型  │ │性能 ││                  │
│          │  └─────┘ └─────┘ └─────┘│                  │
│          │                          │                  │
│          │  最近操作                  │                  │
│          │  • 2/15 应用了"Discord人设"│                  │
│          │  • 2/14 运行了 Doctor     │                  │
│          │                          │                  │
└──────────┴──────────────────────────┴──────────────────┘

6. Recipes 页面

保持现有设计:卡片式浏览,支持搜索/筛选/标签。

新增的 Recipe 类型(替代被删除的页面功能):

  • "切换默认模型" — 替代 Models 页面的全局绑定
  • "为 Agent 设置专属模型" — 替代 Models 页面的 Agent 绑定
  • "配置 Discord 频道白名单" — 替代 Channels 页面
  • "配置 Telegram mention 规则" — 替代 Channels 页面

7. Doctor 页面(扩展)

两个区域:

7.1 配置诊断(原有)

  • JSON 语法检查
  • 必填字段验证
  • 端口占用检测
  • 文件权限检查
  • 一键修复 + 变更原因展示

7.2 数据清理(从 Data 合并)

  • Memory 文件统计 + 一键清理
  • Session 文件统计 + 按 Agent 清理 / 全部清理
  • 磁盘占用展示
┌─────────────────────────────────────────┐
│  Doctor                                 │
│                                         │
│  配置诊断                    [运行检查]   │
│  ┌─────────────────────────────────┐    │
│  │ ✅ JSON 语法正确                 │    │
│  │ ✅ 必填字段完整                  │    │
│  │ ❌ 端口 8080 被占用              │    │
│  │    → [一键修复] 切换到 8081      │    │
│  └─────────────────────────────────┘    │
│                                         │
│  数据清理                               │
│  ┌─────────────────────────────────┐    │
│  │ Memory: 6 files (2.3 MB)        │    │
│  │                   [清理全部]     │    │
│  │ Sessions: 23 files (15.1 MB)    │    │
│  │   agent-1: 12 files (8.2 MB)   │    │
│  │   agent-2: 11 files (6.9 MB)   │    │
│  │          [按 Agent 清理] [全部]  │    │
│  └─────────────────────────────────┘    │
└─────────────────────────────────────────┘

8. Settings 页面

8.1 Model Profiles

首次启动自动从 OpenClaw 配置中提取,无需手动操作。

Profile 卡片展示字段:

  • 名称
  • 服务商provider
  • 模型model
  • API Key脱敏sk-proj-abc...7xZ
  • 自定义地址(仅设置时显示)
┌─────────────────────────────────────┐
│ GPT-4o                     ✅ 启用  │
│ 服务商: openai                      │
│ 模型:   gpt-4o                      │
│ API Key: sk-proj-abc...7xZ          │
│                      [编辑] [删除]  │
├─────────────────────────────────────┤
│ Claude                     ✅ 启用  │
│ 服务商: anthropic                   │
│ 模型:   claude-sonnet-4-5           │
│ API Key: sk-ant-k03...mNp           │
│ 自定义地址: https://my-proxy.com/v1 │
│                      [编辑] [删除]  │
└─────────────────────────────────────┘
│  [+ 新建 Profile]                   │

8.2 Chat 模型选择

下拉选择 Chat 窗口使用的 Model Profile。

8.3 路径配置

OpenClaw 目录和 ClawPal 数据目录的显示与自定义。

9. 删除清单

以下代码在实施时需要删除或重构:

文件 处理
src/pages/Channels.tsx 删除
src/pages/Data.tsx 删除,功能迁移到 Doctor
src/pages/Models.tsx 删除Profile 管理迁移到 Settings
src-tauri/src/commands.rs 移除 Channel CRUD、Data 相关命令,保留 Model Profile 命令
src/App.tsx 移除 Channels/Data/Models 路由,改为侧边栏布局

10. 新增开发项

功能 优先级 说明
侧边栏布局 P0 替换当前顶部 Tab
Home 重构 P0 四段式 + 右侧 Chat
Chat 窗口 P0 LLM 工具调用 + diff 确认流程
Settings 页面 P0 Model Profile 管理 + Chat 模型选择
Doctor 扩展 P1 合并数据清理功能
新 Recipes P1 模型切换、频道配置等替代 Recipe
Agents 概览 API P1 首页 Agent 列表的后端支持
首次启动自动提取 P2 自动从配置提取 Model Profiles

Created: 2026-02-16