Web 与 APP 能力对比
Web 与 APP 能力对比
概述
GPTBots 工作空间提供两种使用方式:Web 端(浏览器访问)和 桌面 APP(macOS/Windows/Linux 桌面客户端)。两端共享核心 UI 组件和后端 API,但Agent 实际在哪里执行有本质差异。
简单说:
- Web 是大脑 —— 发起对话、管理空间、查看结果
- APP 是手脚 —— 真正执行任务、操作文件、运行命令、连接 IM
一句话区分
| 用户问题 | 答案 |
|---|---|
| 我只用浏览器够吗? | 看 Claw / Search / 工作流 / 智能体 / 空间管理够 —— 但真正执行任务需要至少一台 APP 节点在线 |
| 桌面 APP 能离开 Web 单独用吗? | 能。APP 端就是完整的工作空间,本地有 Agent 引擎 |
| 团队里需要每人都装 APP 吗? | 不需要。任意一人开 APP 在线,团队成员都可以通过 Web 把任务派发到这台 APP 上(需要把节点设为 enterprise) |
| Web 上看不到的设置项在哪? | 桌面 APP 的"设置"里 —— 模型 Key、技能、工具、定时任务、渠道、子代理、记忆、运行时安全 |
功能矩阵对比
| 能力维度 | 🌐 Web 端 | 🖥️ APP 端 |
|---|---|---|
| Claw 对话 | 通过 Gateway 连接远程 Agent 节点 | 本地 Sidecar 直接执行 |
| Agent Loop | 依赖远程节点执行 | 本地 25 轮自主循环 |
| 上下文压缩 | 远程节点处理 | 本地 5 层压缩策略 |
| 文件系统 | ❌ 无本地文件访问权限 | ✅ 完整本地文件读写、搜索 |
| 沙箱执行 | ❌ 不支持 | ✅ VirtIO 微虚拟机隔离执行 |
| MCP 工具 | ❌ 不支持 | ✅ stdio / SSE / HTTP 三种传输 |
| 技能(Skills) | ❌ 不支持本地技能 | ✅ 21 项预置 + 自定义 + 企业技能 |
| 渠道(IM) | ❌ 不支持配置 | ✅ 14+ 平台(Telegram、WhatsApp、钉钉等) |
| 定时任务 | ❌ 不支持 | ✅ 一次性 / 周期 / Cron |
| 子代理 | 依赖远程节点 | ✅ 本地创建 + 跨节点派发 |
| 记忆管理 | ✅ 企业记忆(管理员界面) | ✅ 账户 + 企业 + 会话全维度 |
| 模型配置 | ❌ 不支持本地配置 | ✅ 多供应商 API Key 管理 |
| 设置面板 | 无(对应功能在空间管理) | ✅ 完整设置 |
| AI Search | ✅ 支持 | ✅ 支持 |
| Agent 智能体 | ✅ A2A 代理管理 + 对话 | ✅ A2A 代理管理 + 对话 |
| Workflow | ✅ 工作流列表 + 详情 + 执行 | ✅ 工作流列表 + 详情 + 执行 |
| 空间管理 | ✅ 完整管理员功能 | ✅ 可通过内嵌窗口访问 |
| 多模态预览 | ✅ 9 种文件预览 | ✅ 9 种文件预览 |
架构差异
Web 端:Gateway 连接模型
浏览器 ──WebSocket──► Gateway ──WebSocket──► 远程 APP 节点
│
智能路由
(LLM → BM25 → 兜底)
浏览器 ──WebSocket──► Gateway ──WebSocket──► 远程 APP 节点
│
智能路由
(LLM → BM25 → 兜底)
此代码块在浮窗中显示
- Web 端本身不运行 Agent Engine
- 所有对话执行依赖至少一个在线的远程 APP 节点
- Gateway 负责节点发现、智能路由和消息转发
- 适合:轻量浏览、空间管理、远程发起任务
APP 端:本地三进程模型
React UI ──IPC──► Tauri Rust ──stdio──► Node.js Sidecar (Agent Engine)
React UI ──IPC──► Tauri Rust ──stdio──► Node.js Sidecar (Agent Engine)
此代码块在浮窗中显示
- APP 端在本地运行完整的 Agent 引擎(Sidecar 进程)
- 拥有本地文件系统完全访问权限
- 可注册为 Gateway 节点,供 Web 端或其他 APP 远程调用
- 适合:深度开发、自动化任务、本地工具执行
UI 共享机制
Web 和 APP 的对话界面核心组件通过 PlatformAdapter + 兄弟仓库路径别名 共享 —— Web 仓库与 APP 仓库同级放在同一工作区目录下,APP 端通过 Vite/tsconfig 别名 ~/* 直接引用 Web 仓库的源码。
| 层级 | 说明 |
|---|---|
| 共享层(claw-shared) | ClawPage、PromptInput、SessionList、Preview 等 40+ 组件,源头在 Web 仓库 |
| Web 适配器 | webPlatformAdapter.ts — 将 Redux Store 映射为 ClawState |
| APP 适配器 | appPlatformAdapter.ts — 将 Redux + coworkService 映射为 ClawState |
这意味着 Web 上看到的 Claw 对话界面,和 APP 上看到的完全一致 —— 同一份代码、同一套组件,只是底层执行方式不同。
选型建议
| 你的场景 | 推荐使用 | 原因 |
|---|---|---|
| 偶尔聊几句 AI、问个问题 | Web 端 | 无需安装,浏览器即可访问 |
| 管理工作空间(成员、权限、用量) | Web 端 | 空间管理在 Web 端体验最好 |
| 处理本地文件、写代码 | APP 端 | 需要本地文件系统权限 + Bash 工具 |
| 让 AI 帮我自动化每天的重复工作 | APP 端 | 定时任务仅 APP 支持 |
| 把 AI 接入团队 IM(Telegram、钉钉等) | APP 端 | 渠道配置仅 APP 支持 |
| 多设备协作(家里 + 办公室) | Web + 多台 APP | Web 发起、APP 节点执行 |
| 我是企业管理员,想管全员的 AI 用量 | Web 端 | 空间管理界面 |
多设备协作的典型用法
"你在家用 Web 端浏览器发起对话 → Gateway 路由到办公室那台始终开着的 APP → 办公室 APP 读取本地文件并完成任务 → 结果在你的浏览器中实时显示。"
这种场景下:
- 办公室那台电脑:装 APP,登录账户,节点设为
account(仅自己可见)或enterprise(同事也可用) - 家里浏览器:登录同一账户,进入 Claw,发消息时输入框下方会自动选中那台 APP 节点
- 任务执行:所有命令在办公室 APP 上跑,结果通过 Gateway 流式回传到家里浏览器
