Files
zclaw_openfang/plans/sharded-scribbling-dove.md
iven 3ff08faa56 release(v0.2.0): streaming, MCP protocol, Browser Hand, security enhancements
## Major Features

### Streaming Response System
- Implement LlmDriver trait with `stream()` method returning async Stream
- Add SSE parsing for Anthropic and OpenAI API streaming
- Integrate Tauri event system for frontend streaming (`stream:chunk` events)
- Add StreamChunk types: Delta, ToolStart, ToolEnd, Complete, Error

### MCP Protocol Implementation
- Add MCP JSON-RPC 2.0 types (mcp_types.rs)
- Implement stdio-based MCP transport (mcp_transport.rs)
- Support tool discovery, execution, and resource operations

### Browser Hand Implementation
- Complete browser automation with Playwright-style actions
- Support Navigate, Click, Type, Scrape, Screenshot, Wait actions
- Add educational Hands: Whiteboard, Slideshow, Speech, Quiz

### Security Enhancements
- Implement command whitelist/blacklist for shell_exec tool
- Add SSRF protection with private IP blocking
- Create security.toml configuration file

## Test Improvements
- Fix test import paths (security-utils, setup)
- Fix vi.mock hoisting issues with vi.hoisted()
- Update test expectations for validateUrl and sanitizeFilename
- Add getUnsupportedLocalGatewayStatus mock

## Documentation Updates
- Update architecture documentation
- Improve configuration reference
- Add quick-start guide updates

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 03:24:24 +08:00

11 KiB
Raw Permalink Blame History

ZCLAW 自我进化功能实现计划

目标: 让 ZCLAW 具备 OpenClaw 式的"自我进化"能力,让用户感受到 Agent 能够自我设置人格、持续学习改进。


Context背景

用户反馈

"没有 OpenClaw 那样懂得如何对自己进行人格设置,没有那种自我进化的感觉"

当前状态分析

已实现(代码存在但体验不连贯)

功能 文件 状态
记忆系统 intelligence-client.ts L4 完成
反思引擎 intelligence-backend.ts:312-339 L4 完成
自主授权 intelligence-backend.ts:352-433 L4 完成
人格预设 personality-presets.ts 4种预设
引导向导 AgentOnboardingWizard.tsx 5步向导
SOUL.md 生成 generateSoulContent() ⚠️ 只返回字符串,不写入文件

核心问题 (已全部解决 2025-03-24

  1. SOUL.md 生成后不会写入文件系统 已解决
  2. 反思结果不会触发人格更新 已解决
  3. 用户无法审批/回滚人格变更 已解决
  4. 缺少人格演化历史可视化 已解决
  5. 身份数据重启后丢失 已解决(添加文件系统持久化)

Part 1: 文档更新

1.1 需要创建的文档

优先级 文档路径 内容
P0 docs/features/02-intelligence-layer/01-identity-evolution.md 身份演化系统设计
P0 docs/features/02-intelligence-layer/04-heartbeat-engine.md 心跳巡检机制
P0 docs/features/02-intelligence-layer/06-context-compaction.md 上下文压缩

1.2 需要更新的文档

优先级 文档路径 更新内容
P0 docs/ZCLAW_AGENT_INTELLIGENCE_EVOLUTION.md Phase 3-4 状态改为"已完成",添加自我进化 UX 章节
P1 docs/features/roadmap.md 添加自我进化功能到路线图

Part 2: 自我进化功能架构

┌─────────────────────────────────────────────────────────────┐
│                    Self-Evolution Flow                       │
├─────────────────────────────────────────────────────────────┤
│                                                              │
│   ┌──────────┐    ┌───────────┐    ┌──────────────────┐     │
│   │ 对话历史 │───▶│ 反思引擎  │───▶│ 人格变更提案     │     │
│   │          │    │           │    │ (SOUL.md delta)  │     │
│   └──────────┘    └───────────┘    └────────┬─────────┘     │
│                                              │               │
│                                              ▼               │
│   ┌──────────┐    ┌───────────┐    ┌──────────────────┐     │
│   │ 更新后的 │◀───│ 用户审批  │◀───│ 审批 UI          │     │
│   │ SOUL.md  │    │           │    │ (变更对比)       │     │
│   └──────────┘    └───────────┘    └──────────────────┘     │
│        │                                                     │
│        ▼                                                     │
│   ┌──────────────────────────────────────────────────┐      │
│   │              演化历史                              │      │
│   │  - 时间戳快照                                     │      │
│   │  - 差异可视化                                      │      │
│   │  - 回滚能力                                        │      │
│   └──────────────────────────────────────────────────┘      │
│                                                              │
└─────────────────────────────────────────────────────────────┘

Part 3: 实现计划

P0: 立即实现(快速见效) 已完成

P0.1: 连接 Onboarding 到 SOUL.md 持久化 已完成

目标: 让人格选择真正写入文件

修改文件: desktop/src/components/AgentOnboardingWizard.tsx

实现步骤:

// 在 handleSubmit() 中,创建 clone 后:
const soulContent = generateSoulContent({
  agentName: formData.agentName,
  emoji: formData.emoji,
  personality: formData.personality,
  scenarios: formData.scenarios,
});
await intelligenceClient.identity.updateFile(clone.id, 'soul', soulContent);

验证: 完成引导后检查 ~/.zclaw/agents/{agentId}/SOUL.md 是否存在


P0.2: 创建缺失的智能层文档

目标: 文档化已实现的功能

创建文件:

  1. docs/features/02-intelligence-layer/01-identity-evolution.md
  2. docs/features/02-intelligence-layer/04-heartbeat-engine.md
  3. docs/features/02-intelligence-layer/06-context-compaction.md

P1: 核心自我进化功能 已完成

P1.1: 人格变更提案 UI 已完成

目标: 展示人格变更供用户审批

新建文件:

  • desktop/src/components/IdentityChangeProposal.tsx - 差异视图 + 接受/拒绝按钮
  • desktop/src/components/EvolutionHistory.tsx - 变更时间线

修改文件:

  • desktop/src/components/RightPanel.tsx - 添加 'evolution' tab

P1.2: 连接反思引擎到人格提案 已完成

目标: 自动生成人格变更建议

修改文件:

  • desktop/src/lib/intelligence-backend.ts - 增强 reflection.reflect() 生成提案
  • desktop/src/domains/intelligence/store.ts - 添加提案状态管理

实现逻辑:

  1. 反思运行后分析模式
  2. 如果模式表明需要人格变更(如"用户偏好简洁回复"
    • 生成 SOUL.md 修改建议
    • 调用 identity.proposeChange()
  3. 通知用户有待审批的提案

P1.3: 演化历史与回滚 已完成

目标: 让用户查看和回滚人格变更

新建文件:

  • desktop/src/components/PersonalityVersionControl.tsx

实现:

  1. 每次 identity.updateFile() 前创建快照
  2. 存储快照(时间戳 + 原因)
  3. UI 显示变更时间线
  4. 用户点击"恢复"可回滚

P2: 增强体验 已完成

P2.1: 主动人格建议 已完成

目标: Agent 主动建议人格改进

触发条件:

  • 用户重复纠正("不要那么啰嗦"
  • 发现新偏好
  • 上下文变化(新项目、不同角色)

实现: 心跳巡检时检测,达到阈值后排队提案


Part 4: 关键文件清单

文件 修改类型 说明
desktop/src/components/AgentOnboardingWizard.tsx 修改 添加 SOUL.md 持久化
desktop/src/lib/intelligence-client.ts 修改 确保 identity.updateFile() 正常工作
desktop/src/lib/intelligence-backend.ts 修改 反思→人格提案连接
desktop/src/components/RightPanel.tsx 修改 添加 evolution tab
desktop/src/components/IdentityChangeProposal.tsx 新建 人格变更审批 UI
desktop/src/components/EvolutionHistory.tsx 新建 演化历史时间线
docs/features/02-intelligence-layer/01-identity-evolution.md 新建 身份演化文档

Part 5: 验证计划

用户体验验证

场景 预期结果
完成引导向导 SOUL.md 创建,包含选定人格
Agent 反思对话 生成人格变更提案
用户批准提案 SOUL.md 更新,创建快照
用户查看演化历史 显示时间线和差异
用户点击回滚 人格恢复到之前版本

技术验证

测试 命令
类型检查 pnpm tsc --noEmit
单元测试 pnpm vitest run
E2E 测试 pnpm playwright test --project=tauri

实现优先级总结

优先级 任务 状态
P0.1 SOUL.md 持久化 已完成
P0.2 创建文档 已完成
P1.1 人格变更 UI 已完成
P1.2 反思→人格连接 已完成
P1.3 演化历史回滚 已完成
P2.1 主动建议 已完成
额外 身份数据持久化 已完成
额外 错误反馈 UI 已完成
额外 配置 localStorage 持久化 已完成
深度分析 Fallback 反思引擎实现 已完成
深度分析 心跳人格改进检查实现 已完成
深度分析 心跳引擎自动启动 已完成
深度分析 Fallback identity localStorage 已完成
深度分析 配置默认值统一 已完成

计划状态: 全部完成 (2025-03-24)


深度分析修复记录 (2025-03-24)

发现的问题

优先级 问题 描述
CRITICAL Fallback 反思引擎不产生提案 fallbackReflection.reflect() 返回空数组
HIGH 心跳人格改进检查是占位符 check_personality_improvement() 返回 None
HIGH 心跳引擎未自动启动 需要手动调用 heartbeat.start()
MEDIUM Fallback identity 不持久化 内存中的 Map页面刷新后丢失
LOW 配置默认值不一致 Rust: allow_soul_modification: false, TS: true

修复内容

  1. Fallback 反思引擎 (intelligence-client.ts:403-555)

    • 实现完整的模式分析逻辑
    • 基于记忆类型、重要性、访问频率生成模式观察
    • 自动生成改进建议和人格变更提案
  2. 心跳人格改进检查 (heartbeat.rs:330-460)

    • 添加 CORRECTION_COUNTERS 全局状态
    • 实现 record_user_correction() 公共 API
    • 基于用户纠正阈值触发人格改进建议
  3. 心跳引擎自动启动 (App.tsx:160-170)

    • 在应用 bootstrap 阶段自动初始化心跳引擎
    • 使用默认配置启动 zclaw-main agent
  4. Fallback identity localStorage (intelligence-client.ts:558-680)

    • 添加 IDENTITY_STORAGE_KEYPROPOSALS_STORAGE_KEY
    • 所有修改操作后自动保存到 localStorage
    • 启动时从 localStorage 加载已保存数据
  5. 配置默认值统一 (reflection.rs:41-51)

    • Rust allow_soul_modification 默认值改为 true
    • 与 TypeScript 保持一致