162 lines
3.9 KiB
Markdown
162 lines
3.9 KiB
Markdown
# ZClaw OpenFang 迁移 - 新会话提示词
|
||
|
||
> **更新日期**: 2026-03-13
|
||
> **状态**: Phase 1-2 基础设施已完成,继续 Phase 3-7
|
||
|
||
---
|
||
|
||
## 当前状态
|
||
|
||
### ✅ 已完成
|
||
|
||
1. **OpenFang 打包架构** (Phase 1-2)
|
||
- 创建 `prepare-openfang-runtime.mjs` 跨平台下载脚本
|
||
- 更新 Rust `lib.rs` 支持二进制运行时
|
||
- 配置 Tauri 打包 `resources/openfang-runtime/`
|
||
- 验证构建成功
|
||
|
||
2. **OpenFang 特性 UI 组件**
|
||
- `HandsPanel.tsx` - Hands 管理界面
|
||
- `WorkflowList.tsx` - 工作流列表
|
||
- `SecurityStatus.tsx` - 16层安全状态
|
||
- `TriggersPanel.tsx` - 触发器管理
|
||
- `AuditLogsPanel.tsx` - 审计日志
|
||
|
||
3. **状态管理更新**
|
||
- `gatewayStore.ts` 添加 OpenFang 类型定义
|
||
- `gateway-config.ts` 配置管理
|
||
|
||
### 🔄 进行中
|
||
|
||
- **OpenFangClient 实现**: 需要完成 WebSocket 客户端适配 OpenFang 协议
|
||
|
||
### 📋 待完成 (Phase 3-7)
|
||
|
||
| Phase | 任务 | 状态 |
|
||
|-------|------|------|
|
||
| Phase 3 | 状态迁移 (gatewayStore 适配) | 待开始 |
|
||
| Phase 4 | 插件迁移 (zclaw-*) | 待开始 |
|
||
| Phase 5 | Tauri 后端完善 | 待开始 |
|
||
| Phase 6 | UI 增强 (Hands/Workflow) | 待开始 |
|
||
| Phase 7 | 测试验证 | 待开始 |
|
||
|
||
---
|
||
|
||
## 关键架构
|
||
|
||
### 打包结构
|
||
|
||
```
|
||
ZClaw-Desktop-Setup.exe
|
||
├── desktop.exe # Tauri 应用
|
||
└── resources/
|
||
└── openfang-runtime/
|
||
├── openfang.exe # 57MB OpenFang 二进制
|
||
├── openfang.cmd # Windows 启动脚本
|
||
├── openfang.sh # Unix 启动脚本
|
||
└── runtime-manifest.json
|
||
```
|
||
|
||
### 运行时解析优先级
|
||
|
||
1. `ZCLAW_OPENFANG_BIN` 环境变量
|
||
2. 打包的 `openfang-runtime/` 目录
|
||
3. 系统 PATH (`openfang`)
|
||
|
||
### 端点和协议
|
||
|
||
| 项目 | OpenClaw (旧) | OpenFang (新) |
|
||
|------|---------------|---------------|
|
||
| WebSocket | `ws://127.0.0.1:18789` | `ws://127.0.0.1:4200/ws` |
|
||
| REST API | 无 | `http://127.0.0.1:4200/api` |
|
||
| 配置格式 | JSON | TOML |
|
||
| 配置目录 | `~/.openclaw/` | `~/.openfang/` |
|
||
|
||
---
|
||
|
||
## 下一步工作
|
||
|
||
### 优先级 1: OpenFangClient 实现
|
||
|
||
文件: `desktop/src/lib/openfang-client.ts`
|
||
|
||
```typescript
|
||
// 需要实现
|
||
class OpenFangClient implements GatewayBackend {
|
||
private ws: WebSocket;
|
||
private url = 'ws://127.0.0.1:4200/ws';
|
||
|
||
async connect(): Promise<void> { /* OpenFang 认证协议 */ }
|
||
async chat(message: string, opts?: ChatOptions): Promise<{runId: string}> { /* chat 格式 */ }
|
||
onStream(callback: StreamCallback): () => void { /* 流式事件 */ }
|
||
}
|
||
```
|
||
|
||
### 优先级 2: gatewayStore 适配
|
||
|
||
文件: `desktop/src/store/gatewayStore.ts`
|
||
|
||
```typescript
|
||
// 添加后端切换
|
||
interface GatewayStore {
|
||
backendType: 'openclaw' | 'openfang';
|
||
switchBackend(type: 'openclaw' | 'openfang'): void;
|
||
}
|
||
```
|
||
|
||
### 优先级 3: 测试 OpenFang 集成
|
||
|
||
```bash
|
||
# 1. 启动 OpenFang
|
||
cd desktop/src-tauri/resources/openfang-runtime
|
||
./openfang.exe gateway start
|
||
|
||
# 2. 运行 Tauri 开发模式
|
||
pnpm tauri:dev
|
||
|
||
# 3. 验证连接
|
||
# - WebSocket 连接到 4200 端口
|
||
# - 消息发送和接收
|
||
# - Hands/Workflow 功能
|
||
```
|
||
|
||
---
|
||
|
||
## 构建命令
|
||
|
||
```bash
|
||
# 开发
|
||
pnpm tauri:dev
|
||
|
||
# 生产构建 (自动下载 OpenFang)
|
||
pnpm tauri:build:bundled
|
||
|
||
# 手动准备运行时
|
||
pnpm prepare:openfang-runtime
|
||
```
|
||
|
||
---
|
||
|
||
## 参考文档
|
||
|
||
- 迁移计划: `plans/immutable-imagining-naur.md`
|
||
- OpenFang 技术参考: `docs/openfang-technical-reference.md`
|
||
- 运行时 README: `desktop/src-tauri/resources/openfang-runtime/README.md`
|
||
- OpenFang GitHub: https://github.com/RightNow-AI/openfang
|
||
|
||
---
|
||
|
||
## 新会话提示词模板
|
||
|
||
```
|
||
我正在开发 ZClaw Desktop,一个从 OpenClaw 迁移到 OpenFang 的 AI Agent 桌面客户端。
|
||
|
||
当前状态:
|
||
- OpenFang 打包架构已完成
|
||
- UI 组件已创建 (Hands, Workflow, Security)
|
||
- 需要继续: OpenFangClient 实现、状态迁移、插件迁移
|
||
|
||
请阅读 docs/new-session-prompt-openfang-migration.md 了解详细上下文,然后继续以下工作:
|
||
[具体任务]
|
||
```
|