docs(claude): restructure documentation management and add feedback system

- Restructure §8 from "文档沉淀规则" to "文档管理规则" with 4 subsections
  - Add docs/ structure with features/ and knowledge-base/ directories
  - Add feature documentation template with 7 sections (概述/设计初衷/技术设计/预期作用/实际效果/演化路线/头脑风暴)
  - Add feature update trigger matrix (新增/修改/完成/问题/反馈)
  - Add documentation quality checklist
- Add §16
This commit is contained in:
iven
2026-03-16 13:54:03 +08:00
parent 8e630882c7
commit adfd7024df
44 changed files with 10491 additions and 248 deletions

View File

@@ -0,0 +1,289 @@
# ZCLAW 项目功能全景分析与头脑风暴计划
> **目标**: 对 ZCLAW 项目进行全面深度分析,记录所有功能点的设计初衷、预期作用和实际效果,最后进行头脑风暴。
---
## 一、背景与目的
### 1.1 项目现状
- 项目开发工作已基本收尾
- 317 个测试全部通过
- 四阶段 Agent 智能演化已全部完成
- 需要对项目进行系统性的梳理和记录
### 1.2 分析目标
1. **记录**: 将所有功能点一一记录,形成完整的功能档案
2. **分析**: 分析每个功能的设计初衷、预期作用、实际效果
3. **评估**: 评估功能的完成度和价值
4. **头脑风暴**: 基于分析结果进行创意探索
---
## 二、功能模块总览
### 2.1 架构层 (Architecture)
| 模块 | 核心文件 | 功能描述 |
|------|---------|---------|
| 通信层 | `gateway-client.ts` | WebSocket/REST 双协议Ed25519+JWT 认证 |
| 状态管理 | `store/*.ts` | 7 个 Zustand Store持久化支持 |
| 安全认证 | `secure-storage.ts` | OS Keyring 集成,设备密钥管理 |
| 配置系统 | `toml-utils.ts`, `config-parser.ts` | TOML 解析,环境变量插值 |
### 2.2 核心功能 (Core Features)
| 模块 | 核心组件 | 功能描述 |
|------|---------|---------|
| 聊天界面 | `ChatArea.tsx` | 流式响应Markdown 渲染,模型选择 |
| Agent 分身 | `CloneManager.tsx` | 创建/编辑/删除 Agent 人格 |
| Hands 系统 | `HandList.tsx`, `HandTaskPanel.tsx` | 7 个自主能力包触发和管理 |
| 工作流引擎 | `SchedulerPanel.tsx` | 多步骤任务编排和调度 |
| 团队协作 | `TeamCollaborationView.tsx` | Dev↔QA 循环,角色分工 |
| 多 Agent 协作 | `SwarmDashboard.tsx` | Sequential/Parallel/Debate 协作模式 |
### 2.3 智能层 (L4 Self-Evolution)
| 模块 | 核心文件 | 功能描述 |
|------|---------|---------|
| Agent 记忆 | `agent-memory.ts` | 跨会话持久记忆5 种类型 |
| 身份演化 | `agent-identity.ts` | SOUL/AGENTS/USER 动态更新 |
| 上下文压缩 | `context-compactor.ts` | Token 优化,记忆冲刷 |
| 自我反思 | `reflection-engine.ts` | 行为分析,改进建议 |
| 心跳巡检 | `heartbeat-engine.ts` | 主动智能L2→L3 跃迁 |
| 自主授权 | `autonomy-manager.ts` | Supervised/Assisted/Autonomous |
### 2.4 上下文数据库
| 模块 | 核心文件 | 功能描述 |
|------|---------|---------|
| OpenViking 集成 | `viking-client.ts` | 本地/远程/存储三种模式 |
| 向量记忆 | `vector-memory.ts` | 语义搜索,相关性排序 |
| 会话持久化 | `session-persistence.ts` | 自动保存,崩溃恢复 |
| 记忆提取 | `memory-extractor.ts` | LLM/规则双模式提取 |
### 2.5 Skills 生态
| 类别 | 数量 | 代表技能 |
|------|------|---------|
| 开发工程 | 15+ | ai-engineer, senior-developer, backend-architect |
| 协调管理 | 8+ | agents-orchestrator, project-shepherd |
| 测试质量 | 6+ | code-reviewer, reality-checker, evidence-collector |
| 设计体验 | 8+ | ux-architect, brand-guardian, ui-designer |
| 数据分析 | 5+ | analytics-reporter, performance-benchmarker |
| 社媒营销 | 12+ | twitter-engager, xiaohongshu-specialist |
| 中文平台 | 5+ | chinese-writing, feishu-docs, wechat-oa |
| XR/空间 | 4+ | visionos-spatial-engineer, xr-immersive-dev |
### 2.6 Hands 系统 (7 个)
| Hand | 类型 | 触发方式 | 需审批 |
|------|------|---------|-------|
| researcher | research | 手动/事件 | 否 |
| browser | automation | 手动/Webhook | 是 |
| lead | automation | 定时/手动 | 是 |
| clip | automation | 手动/定时 | 否 |
| collector | data | 定时/事件/手动 | 否 |
| predictor | data | 手动/定时 | 否 |
| twitter | communication | 定时/事件 | 是 |
### 2.7 Tauri 后端 (Rust)
| 模块 | 文件 | 功能 |
|------|------|------|
| OpenFang 集成 | `lib.rs` (1043行) | 运行时管理TOML 配置 |
| OpenViking 集成 | `viking_commands.rs` | CLI sidecar服务器管理 |
| LLM 记忆提取 | `memory/extractor.rs` | 多提供商支持 |
| 安全存储 | `secure_storage.rs` | OS Keyring 封装 |
---
## 三、实施计划
### 3.1 阶段一:创建功能文档结构 (30 分钟)
创建目录结构:
```
docs/features/
├── README.md # 功能索引
├── 00-architecture/ # 架构层
│ ├── 01-communication-layer.md
│ ├── 02-state-management.md
│ └── 03-security-auth.md
├── 01-core-features/ # 核心功能
│ ├── 00-chat-interface.md
│ ├── 01-agent-clones.md
│ ├── 02-hands-system.md
│ ├── 03-workflow-engine.md
│ ├── 04-team-collaboration.md
│ └── 05-swarm-coordination.md
├── 02-intelligence-layer/ # 智能层
│ ├── 00-agent-memory.md
│ ├── 01-identity-evolution.md
│ ├── 02-context-compaction.md
│ ├── 03-reflection-engine.md
│ ├── 04-heartbeat-proactive.md
│ └── 05-autonomy-manager.md
├── 03-context-database/ # 上下文数据库
│ ├── 00-openviking-integration.md
│ ├── 01-vector-memory.md
│ ├── 02-session-persistence.md
│ └── 03-memory-extraction.md
├── 04-skills-ecosystem/ # Skills 生态
│ ├── 00-skill-system.md
│ ├── 01-builtin-skills.md
│ └── 02-skill-discovery.md
├── 05-hands-system/ # Hands 系统
│ └── 00-hands-overview.md
└── 06-tauri-backend/ # Tauri 后端
├── 00-openfang-integration.md
├── 01-secure-storage.md
└── 02-local-gateway.md
```
### 3.2 阶段二:编写功能文档 (2-3 小时)
每个功能文档包含以下章节:
```markdown
# [功能名称]
## 一、功能概述
- 基本信息:分类、优先级、成熟度、依赖
- 相关文件核心实现、类型定义、测试、UI 组件
## 二、设计初衷
### 2.1 问题背景
- 用户痛点
- 系统缺失能力
- 为什么需要
### 2.2 设计目标
- SMART 原则目标
### 2.3 竞品参考
- OpenClaw / NanoClaw / ZeroClaw 对比
### 2.4 设计约束
- 技术/资源/时间/兼容性约束
## 三、技术设计
### 3.1 核心接口
### 3.2 数据流
### 3.3 状态管理
### 3.4 关键算法
## 四、预期作用
### 4.1 用户价值
- 效率提升、体验改善、能力扩展
### 4.2 系统价值
- 架构收益、可维护性、可扩展性
### 4.3 成功指标
| 指标 | 基线 | 目标 | 当前 |
## 五、实际效果
### 5.1 已实现功能
- [x] 已完成 / [ ] 待实现
### 5.2 测试覆盖
- 单元测试、集成测试、覆盖率
### 5.3 已知问题
| 问题 | 严重程度 | 状态 | 计划解决 |
### 5.4 用户反馈
## 六、演化路线
- 短期/中期/长期计划
## 七、头脑风暴笔记
### 7.1 待讨论问题
### 7.2 创意想法
### 7.3 风险与挑战
```
### 3.3 阶段三:功能优先级矩阵 (30 分钟)
创建 ICE 评分表:
| 功能 | Impact (10) | Confidence (10) | Ease (10) | ICE 分 |
|------|-------------|-----------------|-----------|--------|
| Agent 记忆 | 10 | 9 | 7 | 630 |
| 身份演化 | 8 | 9 | 9 | 648 |
| 上下文压缩 | 9 | 8 | 6 | 432 |
| Heartbeat | 9 | 8 | 6 | 432 |
| 多 Agent 协作 | 9 | 6 | 4 | 216 |
### 3.4 阶段四:头脑风暴 (1 小时)
基于分析结果,探索以下方向:
1. **功能增强方向**
- 哪些功能可以进一步深化?
- 哪些功能组合可以产生新价值?
2. **用户体验优化**
- 哪些交互可以更流畅?
- 哪些反馈可以更及时?
3. **技术架构演进**
- 哪些模块可以重构?
- 哪些依赖可以升级?
4. **商业化可能性**
- 哪些功能可以作为差异化卖点?
- 哪些能力可以产品化?
---
## 四、关键文件参考
| 文件 | 用途 |
|------|------|
| `docs/ZCLAW_AGENT_INTELLIGENCE_EVOLUTION.md` | 智能演化完整设计 |
| `docs/knowledge-base/openfang-technical-reference.md` | OpenFang 技术参考 (969行) |
| `desktop/src/lib/gateway-client.ts` | 通信层核心实现 |
| `desktop/src/store/index.ts` | Store 协调器 |
| `desktop/src-tauri/src/lib.rs` | Tauri 后端核心 |
| `skills/.playbooks/README.md` | Playbooks 系统设计 |
---
## 五、交付物
1. **功能文档目录** (`docs/features/`)
- 约 25 个功能文档
- 统一的文档模板
- 完整的功能索引
2. **功能优先级矩阵** (`docs/features/README.md`)
- ICE 评分表
- 成熟度评估
3. **头脑风暴记录** (`docs/features/brainstorming-notes.md`)
- 待讨论问题
- 创意想法
- 风险与挑战
---
## 六、验证方法
1. **文档完整性检查**
- 所有模块都有对应文档
- 每个文档包含完整章节
2. **一致性检查**
- 文件路径引用正确
- 技术术语统一
3. **价值评估**
- 每个功能的设计初衷清晰
- 实际效果与预期对比明确
---
## 七、时间估算
| 阶段 | 估算时间 |
|------|---------|
| 创建文档结构 | 30 分钟 |
| 编写功能文档 | 2-3 小时 |
| 功能优先级矩阵 | 30 分钟 |
| 头脑风暴 | 1 小时 |
| **总计** | **4-5 小时** |

View File

@@ -1,178 +1,171 @@
# ZCLAW Gateway 连接稳定性与 API 修复计划
# ZCLAW L4 自我演化能力实现计划
## Context
**问题背景**: 用户报告"Gateway 连接不稳定",通过 Chrome DevTools 诊断发现:
- WebSocket 连接和聊天功能**实际正常工作**
- 真正的问题是 **6 个 API 端点返回 404**,大量错误日志被误认为是连接问题
**背景**: ZCLAW 已完成 Agent 智能演化 Phase 1-4317 测试通过),当前成熟度达到 L3+(主动智能)。
**诊断结果**:
| 项目 | 状态 |
|------|------|
| WebSocket 连接 | ✅ 正常 |
| 消息发送/流式响应 | ✅ 正常 |
| 核心 API (agents, hands, workflows) | ✅ 正常 |
| 6 个 API 端点 | ❌ 404 错误 |
**L4 目标**: 实现"完整自主行为优化循环" - Agent 能够自我修改行为和知识,无需人工干预即可持续进化。
**目标**:
1. P0: 修复 6 个 404 API 端点(通过前端 fallback 降级)
2. P1: 增强连接稳定性(心跳机制 + 改进重连策略)
**当前状态**:
| 成熟度级别 | 状态 |
|-----------|------|
| L0 - 无状态响应 | ✅ 已超越 |
| L1 - 会话感知 | ✅ 已超越 |
| L2 - 持久记忆 | ✅ 已达成 |
| L3 - 主动智能 | ✅ 已达成 |
| L4 - 自我演化 | ⏳ 部分实现 |
**L4 缺口**:
1. 4 个 UI 组件未实现SwarmDashboard、SkillMarket、HeartbeatConfig、ReflectionLog
2. 3 个引擎仍是规则驱动,需升级为 LLM 驱动
3. 身份文件变更仍需用户审批(非自主)
---
## Phase 1: P0 - API Fallback 降级处理
## Phase 1: 缺失 UI 组件补全优先级P0
### 1.1 创建 API Fallback 模块
### 1.1 SwarmDashboard - 多 Agent 协作面板
**新建文件**: `desktop/src/lib/api-fallbacks.ts`
**新建文件**: `desktop/src/components/SwarmDashboard.tsx`
功能:
- 显示当前协作任务列表
- 实时展示子任务分配和状态
- 支持手动触发协作任务
- 查看协作结果汇总
### 1.2 SkillMarket - 技能市场 UI
**新建文件**: `desktop/src/components/SkillMarket.tsx`
功能:
- 浏览可用技能12 个内置 + 自定义)
- 按关键词/能力标签搜索
- 一键安装/启用技能
- 查看技能详情和使用统计
### 1.3 HeartbeatConfig - 心跳配置 UI
**新建文件**: `desktop/src/components/HeartbeatConfig.tsx`
功能:
- 配置心跳间隔(默认 30 分钟)
- 启用/禁用内置检查项
- 设置免打扰时段
- 选择主动性级别(静默/轻度/标准/自主)
### 1.4 ReflectionLog - 反思日志 UI
**新建文件**: `desktop/src/components/ReflectionLog.tsx`
功能:
- 查看反思历史(模式分析、改进建议)
- 审批身份文件变更提议
- 回滚到历史人格版本
- 手动触发反思
---
## Phase 2: LLM 驱动升级优先级P1
### 2.1 ReflectionEngine 升级
**修改文件**: `desktop/src/lib/reflection-engine.ts`
当前:规则模式检测(关键词匹配)
目标LLM 语义分析 + 深度反思
```typescript
// 提供 6 个 404 API 的降级数据
export interface QuickConfigFallback { ... }
export interface WorkspaceInfoFallback { ... }
export interface UsageStatsFallback { ... }
export interface PluginStatusFallback { ... }
export interface ScheduledTaskFallback { ... }
export function getQuickConfigFallback(): QuickConfigFallback { ... }
export function getWorkspaceInfoFallback(): WorkspaceInfoFallback { ... }
export function getUsageStatsFallback(sessions: Session[]): UsageStatsFallback { ... }
export function getPluginStatusFallback(skills: SkillInfo[]): PluginStatusFallback { ... }
export function getScheduledTasksFallback(triggers: Trigger[]): ScheduledTaskFallback[] { ... }
```
### 1.2 更新 gateway-client.ts
为每个 404 API 添加结构化 fallback
```typescript
async getQuickConfig(): Promise<any> {
try {
return await this.restGet('/api/config/quick');
} catch (error) {
if ((error as any).status === 404) {
return { quickConfig: getQuickConfigFallback() };
}
throw error;
// 升级后的 reflect 方法
async reflect(agentId: string, options?: { useLLM?: boolean }): Promise<ReflectionResult> {
if (options?.useLLM && this.llmAvailable) {
return this.llmReflect(agentId);
}
return this.ruleBasedReflect(agentId); // fallback
}
```
### 1.3 更新 gatewayStore.ts
### 2.2 ContextCompactor 升级
在数据加载时使用 fallback
**修改文件**: `desktop/src/lib/context-compactor.ts`
```typescript
loadUsageStats: async () => {
try {
const stats = await get().client.getUsageStats();
set({ usageStats: stats });
} catch {
const fallback = getUsageStatsFallback(get().sessions);
set({ usageStats: fallback });
}
},
```
当前:规则摘要(截断 + 格式化)
目标LLM 高质量摘要 + 关键信息保留
### 2.3 MemoryExtractor 升级
**修改文件**: `desktop/src/lib/memory-extractor.ts`
当前:正则匹配 + 关键词检测
目标LLM 语义重要性评分 + 智能分类
---
## Phase 2: P1 - 心跳机制
## Phase 3: 自主行为授权优先级P2
### 2.1 添加心跳字段
### 3.1 分级授权系统
**修改文件**: `desktop/src/lib/gateway-client.ts`
**新建文件**: `desktop/src/lib/autonomy-manager.ts`
```typescript
// 新增私有字段
private heartbeatInterval: number | null = null;
private heartbeatTimeout: number | null = null;
private missedHeartbeats: number = 0;
private static readonly HEARTBEAT_INTERVAL = 30000; // 30秒
private static readonly HEARTBEAT_TIMEOUT = 10000; // 10秒
private static readonly MAX_MISSED_HEARTBEATS = 3;
```
### 2.2 心跳方法
```typescript
private startHeartbeat(): void { ... }
private stopHeartbeat(): void { ... }
private sendHeartbeat(): void { ... }
private handlePong(): void { ... }
```
### 2.3 集成到连接流程
- `connect()` 成功后调用 `startHeartbeat()`
- `cleanup()` 时调用 `stopHeartbeat()`
- `handleFrame()` 处理 `pong` 响应
---
## Phase 3: P1 - 改进重连策略
### 3.1 新增配置选项
```typescript
interface GatewayClientOptions {
maxReconnectAttempts?: number; // -1=无限, 0=禁用, 默认10
reconnectBackoff?: 'linear' | 'exponential' | 'fixed';
}
```
### 3.2 更新 scheduleReconnect
- 支持无限重连模式 (`maxReconnectAttempts: -1`)
- 添加重连事件通知 (`reconnecting`, `reconnect_failed`)
- 改进退避算法
### 3.3 流式 WebSocket 重连
`openfangWs` 添加重连逻辑:
```typescript
private streamState = { agentId: null, sessionId: null, lastMessage: null };
private scheduleStreamReconnect(runId: string): void { ... }
```
---
## Phase 4: UI 集成
### 4.1 创建 ConnectionStatus 组件
**新建文件**: `desktop/src/components/ConnectionStatus.tsx`
```typescript
export function ConnectionStatus() {
const { connectionState } = useGatewayStore();
const statusConfig = {
disconnected: { color: 'red', label: '已断开', icon: WifiOff },
connecting: { color: 'yellow', label: '连接中...', icon: Loader2 },
connected: { color: 'green', label: '已连接', icon: Wifi },
reconnecting: { color: 'orange', label: '重连中...', icon: RefreshCw },
interface AutonomyConfig {
level: 'supervised' | 'assisted' | 'autonomous';
allowedActions: {
memoryAutoSave: boolean; // 自动保存记忆
identityAutoUpdate: boolean; // 自动更新身份文件
skillAutoInstall: boolean; // 自动安装技能
selfModification: boolean; // 自我修改行为
};
approvalThreshold: {
importance: number; // 重要性低于此值自动执行
risk: 'low' | 'medium' | 'high'; // 风险等级
};
// ...
}
```
### 4.2 集成到 ChatArea
### 3.2 安全边界
在聊天区域顶部显示连接状态指示器。
- 高风险操作(删除记忆、修改 SOUL.md始终需确认
- 所有自主操作记录审计日志
- 支持一键回滚到任意历史状态
---
## Phase 4: OpenViking 深度集成优先级P2
### 4.1 记忆后端迁移
**修改文件**: `desktop/src/lib/agent-memory.ts`
从 localStorage → SQLite + OpenViking API
### 4.2 语义搜索
**新建文件**: `desktop/src/lib/vector-memory.ts`
```typescript
interface VectorMemorySearch {
embed(text: string): Promise<Float32Array>;
semanticSearch(query: string, topK: number): Promise<MemoryEntry[]>;
}
```
---
## 关键文件
| 文件 | 修改类型 | 说明 |
|------|----------|------|
| `desktop/src/lib/api-fallbacks.ts` | 新建 | API 降级数据 |
| `desktop/src/lib/gateway-client.ts` | 修改 | 心跳 + 重连 + fallback |
| `desktop/src/store/gatewayStore.ts` | 修改 | 使用 fallback |
| `desktop/src/components/ConnectionStatus.tsx` | 新建 | 连接状态 UI |
| `desktop/src/components/ChatArea.tsx` | 修改 | 集成状态指示器 |
| `tests/desktop/gatewayStore.test.ts` | 修改 | 测试覆盖 |
| 文件 | 类型 | 说明 |
|------|------|------|
| `desktop/src/components/SwarmDashboard.tsx` | 新建 | 协作任务面板 |
| `desktop/src/components/SkillMarket.tsx` | 新建 | 技能市场 |
| `desktop/src/components/HeartbeatConfig.tsx` | 新建 | 心跳配置 |
| `desktop/src/components/ReflectionLog.tsx` | 新建 | 反思日志 |
| `desktop/src/lib/autonomy-manager.ts` | 新建 | 自主授权管理 |
| `desktop/src/lib/vector-memory.ts` | 新建 | 向量记忆搜索 |
| `desktop/src/lib/reflection-engine.ts` | 修改 | LLM 升级 |
| `desktop/src/lib/context-compactor.ts` | 修改 | LLM 升级 |
| `desktop/src/lib/memory-extractor.ts` | 修改 | LLM 升级 |
| `desktop/src/lib/agent-memory.ts` | 修改 | SQLite 迁移 |
---
@@ -180,30 +173,33 @@ export function ConnectionStatus() {
### 测试清单
**P0 - API Fallback**:
- [ ] 启动应用,检查控制台无 404 错误
- [ ] 用量统计面板显示数据(即使 API 404
- [ ] 设置页面显示配置(即使 API 404
**Phase 1 - UI 组件**:
- [ ] SwarmDashboard 显示协作任务
- [ ] SkillMarket 搜索和安装技能
- [ ] HeartbeatConfig 保存配置
- [ ] ReflectionLog 审批变更
**P1 - 心跳**:
- [ ] 连接后空闲 5 分钟,连接保持
- [ ] 检查 WebSocket 流量有 ping/pong 帧
**Phase 2 - LLM 升级**:
- [ ] ReflectionEngine 使用 LLM 分析
- [ ] ContextCompactor 生成高质量摘要
- [ ] MemoryExtractor 语义重要性评分
**P1 - 重连**:
- [ ] 关闭 OpenFang显示"重连中"
- [ ] 重启 OpenFang自动重连成功
- [ ] 聊天中断开后自动恢复
**Phase 3 - 自主授权**:
- [ ] 低风险操作自动执行
- [ ] 高风险操作需确认
- [ ] 审计日志完整
### 运行测试
```bash
pnpm vitest run tests/desktop/gatewayStore.test.ts
pnpm vitest run tests/desktop/
```
---
## Implementation Sequence
1. **Day 1**: Phase 1 - API Fallbacks
2. **Day 2**: Phase 2 - Heartbeat + Phase 3 - Reconnection
3. **Day 3**: Phase 4 - UI Integration + Testing
1. **Week 1**: Phase 1 - UI 组件4 个组件)
2. **Week 2**: Phase 2 - LLM 升级3 个引擎)
3. **Week 3**: Phase 3 - 自主授权 + Phase 4 - OpenViking
4. **Week 4**: 集成测试 + 文档更新