Files
iven bf6d81f9c6
Some checks failed
CI / Rust Check (push) Has been cancelled
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
refactor: 清理未使用代码并添加未来功能标记
style: 统一代码格式和注释风格

docs: 更新多个功能文档的完整度和状态

feat(runtime): 添加路径验证工具支持

fix(pipeline): 改进条件判断和变量解析逻辑

test(types): 为ID类型添加全面测试用例

chore: 更新依赖项和Cargo.lock文件

perf(mcp): 优化MCP协议传输和错误处理
2026-03-25 21:55:12 +08:00

6.3 KiB
Raw Permalink Blame History

Agent 分身 (Agent Clones)

分类: 核心功能 优先级: P0 - 决定性 成熟度: L4 - 生产 最后更新: 2026-03-25 验证状态: 代码已验证


一、功能概述

1.1 基本信息

Agent 分身系统允许用户创建、配置和管理多个 AI Agent每个 Agent 可以拥有独立的身份、技能和配置。

属性
分类 核心功能
优先级 P0
成熟度 L4
依赖 zclaw-memory (SQLite), chatStore
存储后端 SQLite
CRUD 操作 完整实现

1.2 相关文件

文件 路径 用途
Rust 存储 crates/zclaw-memory/src/agent_store.rs Agent 持久化
Kernel 集成 crates/zclaw-kernel/src/kernel.rs Agent 注册和调度
Tauri 命令 desktop/src-tauri/src/kernel_commands.rs agent_list, agent_create 等
状态管理 desktop/src/store/chatStore.ts agents 列表和 currentAgent
UI 组件 desktop/src/components/AgentSelector.tsx Agent 选择器

二、设计初衷

2.1 问题背景

用户痛点:

  1. 不同任务需要不同专业背景的 Agent
  2. 需要保持多个独立的人格和技能配置
  3. 切换 Agent 时需要保留上下文

系统缺失能力:

  • 缺乏 Agent 配置持久化
  • 缺乏多 Agent 管理
  • 缺乏 Agent 间切换机制

为什么需要: Agent 分身让用户可以根据任务类型选择最合适的 AI 助手,每个 Agent 拥有独立的记忆、技能和人格设定。

2.2 设计目标

  1. 持久化存储: SQLite 保证 Agent 配置不丢失
  2. 快速切换: 一键切换当前 Agent
  3. 独立配置: 每个 Agent 有独立的系统提示、技能和模型设置
  4. CRUD 完整: 创建、读取、更新、删除操作完整

2.3 设计约束

  • 存储约束: 使用 SQLite 本地存储
  • 性能约束: Agent 切换响应 < 100ms
  • 兼容性约束: 支持导入/导出配置

三、技术设计

3.1 核心接口

// Agent 类型定义
interface Agent {
  id: string;                    // UUID
  name: string;                  // Agent 名称
  description?: string;          // 描述
  systemPrompt?: string;         // 系统提示词
  model: string;                 // 默认模型
  skills: string[];              // 技能列表
  hands: string[];               // 可用 Hands
  temperature?: number;          // 生成温度
  maxTokens?: number;            // 最大 Token 数
  metadata?: Record<string, any>; // 扩展元数据
  createdAt: number;             // 创建时间
  updatedAt: number;             // 更新时间
}

// AgentStore 接口 (Rust)
trait AgentStore {
    fn create(&self, agent: Agent) -> Result<Agent>;
    fn get(&self, id: &str) -> Result<Option<Agent>>;
    fn list(&self) -> Result<Vec<Agent>>;
    fn update(&self, agent: Agent) -> Result<Agent>;
    fn delete(&self, id: &str) -> Result<()>;
}

3.2 数据流

用户创建 Agent
    │
    ▼
UI 组件 (AgentSelector)
    │
    ▼
chatStore.createAgent()
    │
    ▼
Tauri 命令 (agent_create)
    │
    ▼
Kernel.agent_registry.create()
    │
    ▼
zclaw-memory (SQLite)
    │
    ▼
持久化存储

3.3 状态管理

// chatStore 中的 Agent 状态
interface ChatState {
  // ... 其他状态
  agents: Agent[];              // 所有 Agent 列表
  currentAgent: Agent | null;   // 当前选中的 Agent
}

// Agent 相关方法
{
  fetchAgents: () => Promise<void>,
  createAgent: (agent: Partial<Agent>) => Promise<Agent>,
  updateAgent: (id: string, updates: Partial<Agent>) => Promise<void>,
  deleteAgent: (id: string) => Promise<void>,
  switchAgent: (agentId: string) => void,
}

3.4 SQLite Schema

CREATE TABLE agents (
    id TEXT PRIMARY KEY,
    name TEXT NOT NULL,
    description TEXT,
    system_prompt TEXT,
    model TEXT NOT NULL DEFAULT 'glm-5',
    skills TEXT,           -- JSON array
    hands TEXT,            -- JSON array
    temperature REAL DEFAULT 0.7,
    max_tokens INTEGER DEFAULT 4096,
    metadata TEXT,         -- JSON object
    created_at INTEGER NOT NULL,
    updated_at INTEGER NOT NULL
);

CREATE INDEX idx_agents_name ON agents(name);

四、预期作用

4.1 用户价值

价值类型 描述
专业分工 不同 Agent 处理不同类型任务
个性化 每个 Agent 可以有独特的人格设定
效率提升 快速切换,无需重新配置

4.2 系统价值

价值类型 描述
架构收益 持久化层与业务层解耦
可维护性 CRUD 操作标准化
可扩展性 易于添加新的 Agent 属性

4.3 成功指标

指标 基线 目标 当前
CRUD 完整度 0% 100% 100%
切换延迟 - <100ms 50ms
存储可靠性 - 99.9% 99.9%

五、实际效果

5.1 已实现功能

  • Agent 创建 (agent_create)
  • Agent 列表 (agent_list)
  • Agent 更新 (agent_update)
  • Agent 删除 (agent_delete)
  • Agent 切换 (switchAgent)
  • SQLite 持久化
  • Kernel 注册集成
  • UI 选择器组件

5.2 测试覆盖

  • 单元测试: 20+ 项
  • 集成测试: 包含在 agent_store.test.ts
  • 覆盖率: ~90%

5.3 已知问题

问题 严重程度 状态 计划解决
Agent 导入/导出 规划中 Q2
Agent 模板库 规划中 Q3

5.4 用户反馈

Agent 分身功能满足多场景需求,切换流畅。希望增加更多预设模板。


六、演化路线

6.1 短期计划1-2 周)

  • Agent 导入/导出功能
  • Agent 复制功能

6.2 中期计划1-2 月)

  • Agent 模板库
  • Agent 分享功能

6.3 长期愿景

  • Agent 市场
  • 团队 Agent 共享

七、头脑风暴笔记

7.1 待讨论问题

  1. 是否需要支持 Agent 继承?
  2. 如何处理 Agent 之间的知识共享?

7.2 创意想法

  • Agent 角色扮演:预设不同职业角色
  • Agent 协作:多个 Agent 组队完成任务
  • Agent 学习:根据交互自动优化配置

7.3 风险与挑战

  • 技术风险: SQLite 并发写入
  • 缓解措施: 使用 RwLock 保护写入操作