Files
qiming/qimingclaw/crates/agent-electron-client/docs/architecture/OVERVIEW.md

274 lines
17 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
version: 1.0
last-updated: 2026-02-24
status: design
---
# Agent 自我进化架构 - 总览
## 产品定位
**Qiming Agent** 是一个可以**自我进化**的 AI 助手桌面应用。与传统 Agent 不同,它不仅能执行任务,还能从经验中学习,实现持续成长。
### 核心愿景
> 让 Agent 不是静态工具,而是可以成长的伙伴。第 100 次使用比第 1 次更聪明。
---
## 核心原则
### 1. 双层环境架构
```
┌─────────────────────────────────────────────────────────────┐
│ 用户界面层 │
│ - 简洁、友好、零门槛 │
│ - 用户不需要知道底层细节 │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Agent 运行环境层 │
│ - 受限但有弹性 │
│ - 可以安装工具、自我迭代 │
│ - 与用户环境隔离 │
└─────────────────────────────────────────────────────────────┘
```
### 2. 三区隔离模型
```
┌──────────────────────────────────────────────────────────────────┐
│ 应用核心区 (App Core) │
│ ───────────────────────── │
│ - 内容: Electron, Node.js, uv, 核心引擎 │
│ - 特点: 完全受控,不可变 │
│ - 目的: 保证应用稳定性 │
│ - Agent 权限: 只读 │
├──────────────────────────────────────────────────────────────────┤
│ Agent 工作区 (Agent Workspace) │
│ ──────────────────────── │
│ - 内容: 工具、依赖、缓存、临时文件 │
│ - 特点: Agent 可写,受应用管理 │
│ - 目的: Agent 自我迭代的空间 │
│ - Agent 权限: 完全控制 │
├──────────────────────────────────────────────────────────────────┤
│ 用户系统区 (User System) │
│ ──────────────────── │
│ - 内容: 系统工具、用户配置 │
│ - 特点: 只读访问,受污染风险 │
│ - 目的: 兼容性回退 │
│ - Agent 权限: 只读调用 │
└──────────────────────────────────────────────────────────────────┘
```
### 3. Agent 自由度边界
| 能力 | 允许 | 限制 | 原因 |
|------|------|------|------|
| **安装 npm 包** | ✅ 到工作区 | ❌ 到全局 | 避免污染用户环境 |
| **安装 Python 包** | ✅ 通过 uv | ❌ 系统 pip | 隔离环境 |
| **修改配置** | ✅ 工作区内 | ❌ 应用配置 | 保护核心 |
| **执行系统命令** | ✅ 只读工具 | ❌ 写入操作 | 安全考虑 |
| **自我升级** | ✅ 工作区依赖 | ❌ 引擎核心 | 稳定性优先 |
---
## 架构概览
### 系统架构图
```
┌─────────────────────────────────────────────────────────────────────────┐
│ AGENT 自我进化系统 │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌───────────────────────────────────────────────────────────────────┐ │
│ │ 感知层 (Perceive) │ │
│ │ • 收集任务输入、环境状态、用户反馈 │ │
│ └───────────────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌───────────────────────────────────────────────────────────────────┐ │
│ │ 记忆层 (Recall) │ │
│ │ • 查询 EvoMap 决策图谱、历史经验、可用技能 │ │
│ └───────────────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌───────────────────────────────────────────────────────────────────┐ │
│ │ 规划层 (Plan) │ │
│ │ • 生成多个候选方案,按置信度排序 │ │
│ └───────────────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌───────────────────────────────────────────────────────────────────┐ │
│ │ 执行层 (Act) │ │
│ │ • 执行选定的方案,实时监控 │ │
│ └───────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌───────────┴───────────┐ │
│ │ │ │
│ ┌───▼────┐ ┌───▼────┐ │
│ │ 成功 │ │ 失败 │ │
│ └───┬────┘ └───┬────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌─────────────────────────────┐ ┌─────────────────────────────┐ │
│ │ 强化学习 (Reinforce) │ │ 自我修复 (Repair) │ │
│ │ • 编码成功记忆 │ │ • 分析失败原因 │ │
│ │ • 更新 EvoMap 置信度 │ │ • 查询备选方案 │ │
│ │ • 提取/优化技能 │ │ • 尝试备选方案 │ │
│ │ • 更新 Soul.md │ │ • 记录失败教训 │ │
│ └──────────────┬──────────────┘ └──────────────┬──────────────┘ │
│ │ │ │
│ └────────────┬───────────────────┘ │
│ ▼ │
│ ┌───────────────────────────────────────────────────────────────────┐ │
│ │ 反思层 (Reflect) │ │
│ │ • 定期反思(每 N 次任务或每天) │ │
│ │ • 发现模式、生成洞察、提炼原则 │ │
│ └───────────────────────────────────────────────────────────────────┘ │
│ ↓ │
│ 更新记忆/EvoMap/Soul │
│ ↓ │
│ 下次任务更聪明 │
│ │
└─────────────────────────────────────────────────────────────────────────┘
```
### 核心组件关系
```
┌─────────────────────────────────────────────────────────────────────────┐
│ 核心组件 │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Memory │◄────►│ EvoMap │◄────►│ Skills │ │
│ │ 记忆系统 │ │ 进化图谱 │ │ 技能库 │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │ │ │ │
│ └──────────────────────┼──────────────────────┘ │
│ ▼ │
│ ┌──────────────┐ │
│ │ Soul.md │ │
│ │ 灵魂文件 │ │
│ └──────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────┘
```
---
## 用户体验对比
| 维度 | 传统 Agent | 自我进化 Agent |
|------|-----------|----------------|
| **学习** | 每次重新探索 | 记住有效方法 |
| **错误** | 重复犯错 | 从失败中学习 |
| **效率** | 随时间不变 | 越用越快 |
| **能力** | 固定能力 | 持续成长 |
### 用户可见的变化
```
第 1 次使用:
Agent: "让我分析这个日志..."
[使用 grep耗时 5s]
Agent: "完成,发现 23 个错误"
第 10 次使用:
Agent: "分析日志中..."
[使用专用技能,耗时 2s]
Agent: "完成,发现 23 个错误"
第 N 次使用:
Agent: "又是这个项目,我已经知道你的偏好了..."
[自动应用最佳方案]
```
---
## 安全与控制
### 用户控制权
```typescript
interface EvolutionControl {
settings: {
allowSelfRepair: boolean; // 允许自我修复
allowSkillCreation: boolean; // 允许创造新技能
allowToolInstallation: boolean;// 允许安装工具
maxMemorySize: string; // 记忆大小限制
learningMode: 'aggressive' | 'balanced' | 'conservative';
};
actions: {
resetLearning(): void; // 重置学习
exportSkills(): Skill[]; // 导出技能
importSkills(skills: Skill[]): void; // 导入技能
reviewInsights(): Insight[]; // 审查洞察
};
}
```
### 安全边界
1. **工具安装** → 用户确认或白名单
2. **系统修改** → 沙箱限制
3. **网络访问** → 透明日志
4. **技能执行** → 可审计
---
## 数据目录结构
```
~/.qimingclaw/
├── soul/ # Agent 自我认知
│ ├── soul.md # 主灵魂文件
│ ├── principles.md # 学习到的原则
│ └── anti-patterns.md # 避免的陷阱
├── memory/ # 记忆存储
│ ├── short-term.md # 当前会话记忆
│ ├── successes/ # 成功经验
│ ├── failures/ # 失败教训
│ ├── insights/ # 洞察
│ └── index.json # 检索索引
├── skills/ # 技能库
│ ├── core/ # 核心技能(内置)
│ └── learned/ # 学到的技能
└── evo-map/ # 进化图谱
├── decisions/ # 决策树
└── patterns/ # 模式库
```
---
## 核心思想总结
```
Agent 不是静态工具,而是可以成长的伙伴
通过:
- Memory: 记住经验
- Skill Creator: 创造能力
- EvoMap: 智慧决策
- Soul.md: 自我认知
实现:
- 越用越快
- 越用越懂你
- 越用越强
```
---
## 相关文档
- [核心组件](./COMPONENTS.md) - Memory、Skill Creator、EvoMap、Soul.md 详细设计
- [循环流程](./LOOP.md) - 七层循环、接口定义、数据流
- [存储实现](./STORAGE.md) - Markdown 格式、索引机制、读写接口
- [隔离策略](./ISOLATION.md) - 三区模型、环境变量、安全边界
- [OpenClaw 参考](./REF-OPENCLAW.md) - openclaw 架构参考