clawpanel

Pi 实验引擎

自 ClawPanel 0.22.0 提供安装、模型配置及独立工作台,继续标记为实验版。完整 OpenClaw 操控对标仍分阶段推进,参见 复查记录。

使用入口

  1. 左侧引擎切换器选择 Pi,进入「运行与配置」。
  2. 安装受管运行时,要求完整的 Node.js >=22.19.0 和 npm;当前推荐安装 @earendil-works/pi-coding-agent@1.1.0。
  3. 在通用「模型渠道」维护地址、密钥、模型和上下文/输出上限,点击「同步到 Pi」,按需设为默认模型。
  4. 配置工作目录,在独立「工作台」新建会话、发送消息和切换模型。

Pi 独立于 OpenClaw Gateway。未安装 OpenClaw 或 Gateway 停止时,也可使用 Pi。 这不是 Pi 原生实验 Web Server 的 iframe:当前采用官方 JSONL RPC,面板提供原生工作台。

模型和权限

运行时与数据布局

数据位于当前 OpenClaw 配置根目录下的 clawpanel/pi/,没有全局安装或改写已有 ~/.pi:

clawpanel/pi/
├── runtime/                   # 独立 npm 包与依赖
├── agent/models.json          # Provider、模型与环境变量引用
├── agent/settings.json        # 默认 Provider / 模型,保留已有未知字段
├── agent/credentials.json     # 私有凭据,不通过状态 API 返回
├── sessions/                  # 官方 Pi JSONL 会话
├── sessions.json              # 面板会话索引
├── config.json                # 工作目录、工具授权
├── permission.mjs             # 面板逐次确认守卫
├── runtime.log                # 脱敏诊断
└── workspace/                  # 默认工作目录

安装、更新与卸载

安装和更新仅接受面板验证过的固定 Pi 版本(本版本为 1.1.0);检查上游更新由用户触发,未经兼容验收的新版仅提示、不自动切换。先在独立 staging 目录安装并执行版本核验,再切换受管运行时;切换后核验失败恢复旧版本。

管理操作互斥;任务执行中拒绝安装、更新、卸载、模型同步和工作目录变更。卸载只删除受管运行时,保留配置、凭据、会话和工作目录。模型同步写入失败恢复旧配置,并做文件回读;文件回读不是真实模型调用成功证明。

验证与边界

工作台界面

工作台使用全高聊天布局:窄会话栏可收起,手机上改为抽屉;仅消息区滚动,模型选择和输入区固定在底部。安装、更新与权限管理继续放在独立配置页。

模型下拉显示模型名称,内部 Provider ID 只保留在 RPC 参数中。重名模型用模型 ID、地址或序号区分。工具调用和历史结果合并到原调用位置,默认折叠诊断详情;拒绝审批显示“未执行”,主动停止显示“已停止生成”,实际错误仍保留。

流式刷新保留草稿、焦点、滚动位置及工具/思考展开状态,中文输入法合成期间暂缓重绘。快捷提示只填入草稿,不自动发送。

界面回归使用真实 Pi 1.1.0 和本地模拟模型,在 Web 生产服务器上检查亮/暗主题、390×844 与 320×568 小屏布局、模型切换、审批拒绝/允许、停止与刷新恢复。模拟模型响应不是收费 Provider 的真实调用证明。

本轮已在 Windows / Node.js 24.15.0 验证:

尚未完成:Tauri GUI 整体操作验收,Linux/macOS/ARM64 真机验收,收费 Provider 的真实 Responses/Anthropic/Google/Ollama 调用,任意项目扩展/MCP 和文件附件体验。不要把这些未验收项表述为完整兼容。

本地测试

node --test tests/*.test.js
npm run build
cargo fmt --all --manifest-path src-tauri/Cargo.toml -- --check
cargo test --locked --manifest-path src-tauri/Cargo.toml
cargo clippy --locked --manifest-path src-tauri/Cargo.toml --all-targets -- -D warnings

可选真 Pi 测试使用已经安装 Pi 的隔离 .tmp 根目录,未设置环境变量时跳过:

$env:PI_REAL_RUNTIME_ROOT = Join-Path (Get-Location) '.tmp/pi-spike'
node --test tests/pi-real-runtime.test.js

该测试仅调用本地模拟 Provider,不访问真实收费模型。目录必须在 .tmp 中;测试会同步模拟模型、创建新工作目录和会话。

CI 与发布门禁执行下列命令,自动安装固定版本并运行上述测试。三平台 CI 会分别验证原生 RPC 启动,发布构建前再执行同一门禁:

node scripts/test-pi-runtime.mjs

跨平台 CI 不等于 Tauri GUI 真机验收或收费 Provider 的端到端验收。

参考