文件预览

architecture_execution_model.md

查看 AGI记忆模组 技能包中的文件内容。

文件内容

references/architecture_execution_model.md

# 全局架构总览 - 补充说明

> 本文档补充架构总览中缺失的关键信息:运行方式、执行模型和使用场景

## 零、系统运行模式

### 核心定位

**Agent Memory System 是一个 Skill,而非独立应用程序。**

这意味着:
- ❌ 它不是独立运行的 Web 服务
- ❌ 它不需要启动服务器或监听端口
- ❌ 它没有独立的用户界面

✅ 它是一个能力扩展包,由智能体动态加载和执行
✅ 它在智能体的会话上下文中运行
✅ 所有交互通过智能体与用户的对话完成

### 执行模型

```
┌─────────────────────────────────────────────────────────────┐
│                     智能体运行环境                           │
│                                                             │
│  用户请求 ──▶ 智能体 ──▶ 加载 Skill ──▶ 执行 Skill 指令     │
│                                                             │
│  ┌───────────────────────────────────────────────────────┐ │
│  │            Agent Memory System (Skill)                │ │
│  │                                                       │ │
│  │  • SKILL.md:指导智能体如何使用记忆能力              │ │
│  │  • scripts/:提供可调用的工具函数                    │ │
│  │  • references/:提供详细的参考文档                   │ │
│  │                                                       │ │
│  │  智能体按需调用:                                    │ │
│  │  - 存储记忆 → scripts.store_memory()                │ │
│  │  - 准备上下文 → scripts.prepare_context()           │ │
│  │  - 追踪状态 → scripts.track_state()                 │ │
│  └───────────────────────────────────────────────────────┘ │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

### 元技能常驻运行

**定义**:元技能(Meta Skill)是智能体的底层能力,在智能体启动时加载,并在整个生命周期内保持可用。

**工作流程**:
1. 智能体启动时,自动加载 Agent Memory System
2. 初始化核心模块(ContextOrchestrator、GlobalStateCapture等)
3. 在智能体执行任务过程中,持续提供记忆能力支持
4. 会话结束时,自动保存状态和统计信息

**与普通 Skill 的区别**:

| 维度 | 普通 Skill | 元 Skill(Memory System) |
|------|-----------|--------------------------|
| 加载时机 | 用户明确请求时 | 智能体启动时自动加载 |
| 生命周期 | 单次会话或任务 | 跨会话持久存在 |
| 调用频率 | 按需调用 | 持续可用 |
| 作用范围 | 特定任务域 | 全局基础设施 |

---

## 一、触发场景与使用时机

### 自动触发场景

智能体在以下场景会**自动使用**记忆能力:

| 场景 | 触发条件 | 智能体行为 |
|------|----------|-----------|
| **新会话启动** | 用户开始新对话 | 加载用户画像和历史偏好 |
| **多轮对话** | 用户继续对话 | 使用 `prepare_context()` 获取历史上下文 |
| **任务执行** | 执行复杂任务 | 使用 `track_state()` 追踪进度 |
| **决策制定** | 需要做出选择 | 使用 `get_related_memories()` 获取相关经验 |
| **错误恢复** | 任务失败 | 使用 `get_past_solutions()` 查找类似问题的解决方案 |

### 用户明确请求场景

用户也可以**直接请求**使用记忆能力:

| 用户表达 | 智能体行为 |
|---------|-----------|
| "记住我喜欢简洁的解释" | 调用 `store_memory()` 存储偏好 |
| "我上次说过什么?" | 调用 `retrieve_memories()` 检索历史 |
| "帮我总结一下我们的对话" | 调用 `generate_summary()` 生成总结 |

### 使用示例

**场景 1:多轮对话**

```
用户:我想实现一个登录功能
智能体:
  [内部调用] orchestrator.store_memory(
    content="用户想实现登录功能",
    bucket_type=USER_INTENT,
    topic_label="用户登录"
  )
  [响应] 好的,我来帮你实现登录功能...

(几轮对话后)

用户:还是用邮箱登录吧
智能体:
  [内部调用] orchestrator.prepare_context() 
  // 自动获取之前的"用户登录"相关记忆
  [响应] 根据你之前的想法,我们来实现邮箱登录功能...
```

**场景 2:跨会话记忆**

```
(新会话)

用户:帮我设计一个API
智能体:
  [内部调用] orchestrator.prepare_context()
  // 自动加载用户偏好:"喜欢简洁的技术解释"
  [响应] 根据你偏好简洁的风格,我建议采用RESTful API设计...
```

---

## 二、调用接口与执行流程

### 智能体可调用的核心接口

```python
# 1. 存储记忆
from scripts import create_context_orchestrator, SemanticBucketType

orchestrator = create_context_orchestrator(
    user_id="user_123",
    session_id="session_456",
)

# 存储用户意图
orchestrator.store_memory(
    content="用户想要实现登录功能",
    bucket_type=SemanticBucketType.USER_INTENT,
    topic_label="用户登录",
)

# 2. 准备上下文(包含历史记忆)
context = orchestrator.prepare_context(
    user_input="用邮箱登录吧",
    system_instruction="你是登录功能开发专家",
)

# 3. 追踪状态
from scripts import GlobalStateCapture, StateEventType

capture = GlobalStateCapture(user_id="user_123")

# 同步状态
capture.sync_from_langgraph(
    state={"phase": "implementing", "task": "login_feature"},
    node_name="executor",
)

# 4. 结束会话
stats = orchestrator.end_session()
```

### 完整执行流程

```
┌─────────────────────────────────────────────────────────────┐
│                   智能体执行流程                             │
└─────────────────────────────────────────────────────────────┘
                          │
                          ▼
           ┌──────────────────────────┐
           │  用户发起请求             │
           └───────────┬──────────────┘
                       │
                       ▼
           ┌──────────────────────────┐
           │  智能体加载 Memory Skill │
           └───────────┬──────────────┘
                       │
                       ▼
           ┌──────────────────────────┐
           │  初始化 Orchestrator     │
           │  创建 GlobalStateCapture │
           └───────────┬──────────────┘
                       │
                       ▼
           ┌──────────────────────────┐
           │  准备上下文              │
           │  prepare_context()       │
           │  • 加载用户画像          │
           │  • 检索相关记忆          │
           │  • 构建上下文包          │
           └───────────┬──────────────┘
                       │
                       ▼
           ┌──────────────────────────┐
           │  执行任务                │
           │  (智能体的核心逻辑)    │
           └───────────┬──────────────┘
                       │
                       ▼
           ┌──────────────────────────┐
           │  存储执行结果            │
           │  store_memory()          │
           │  • 用户意图              │
           │  • 决策上下文            │
           │  • 任务结果              │
           └───────────┬──────────────┘
                       │
                       ▼
           ┌──────────────────────────┐
           │  追踪状态变化            │
           │  sync_from_langgraph()   │
           └───────────┬──────────────┘
                       │
                       ▼
           ┌──────────────────────────┐
           │  任务完成或用户离开      │
           └───────────┬──────────────┘
                       │
                       ▼
           ┌──────────────────────────┐
           │  结束会话                │
           │  end_session()           │
           │  • 保存统计信息          │
           │  • 清理资源              │
           └──────────────────────────┘
```

---

## 三、关键术语解释

### 元技能(Meta Skill)

**定义**:元技能是智能体的底层能力基础设施,与普通技能相比,具有常驻性和全局性。

**特征**:
- **常驻性**:在智能体启动时加载,不会主动卸载
- **全局性**:为所有其他技能提供基础能力支持
- **透明性**:用户通常不直接感知,而是通过智能体的行为间接体验

**类比**:如果把智能体比作操作系统,元技能就是文件系统、内存管理等核心服务。

### P0/P1 连接

**定义**:表示模块间连接的优先级和依赖关系。

| 优先级 | 含义 | 示例 |
|--------|------|------|
| **P0** | 核心连接,必须实现 | 上下文重构器 ↔ 长期记忆 |
| **P1** | 增强连接,可选实现 | 状态捕捉器 ↔ 洞察模块 |

**在代码中的体现**:
```python
# P0 连接:核心流程必需
reconstructor.bind_state_capture(capture)  # 必须调用

# P1 连接:增强功能
insight_module.enable_state_analysis(capture)  # 可选调用
```

### 感知-决策-行动-观察循环

**定义**:Agent Loop 的核心执行模式。

```
感知(Perceive)
  │ 接收用户输入、环境信息
  ▼
决策(Decide)
  │ 基于感知和记忆,决定下一步行动
  ▼
行动(Act)
  │ 执行决策(调用工具、生成回复等)
  ▼
观察(Observe)
  │ 观察行动结果,存储到记忆
  ▼
  └─▶ 回到感知阶段(循环)
```

**与记忆系统的关系**:
- **感知阶段**:调用 `prepare_context()` 获取历史记忆
- **决策阶段**:基于记忆做出更明智的决策
- **行动阶段**:使用 `track_state()` 追踪执行过程
- **观察阶段**:调用 `store_memory()` 存储结果

---

## 四、快速开始

### 最小可用示例

```python
from scripts import create_context_orchestrator, SemanticBucketType

# 1. 创建编排器
orchestrator = create_context_orchestrator(
    user_id="demo_user",
    session_id="demo_session",
)

# 2. 存储用户意图
orchestrator.store_memory(
    content="用户想学习Python",
    bucket_type=SemanticBucketType.USER_INTENT,
    topic_label="Python学习",
)

# 3. 准备上下文(自动加载相关记忆)
context = orchestrator.prepare_context(
    user_input="推荐一些Python学习资源",
    system_instruction="你是学习顾问",
)

# 4. 使用上下文生成响应
# (智能体会基于context中的历史记忆生成更个性化的回复)

# 5. 结束会话
stats = orchestrator.end_session()
print(f"本次会话使用了 {stats['token_usage']} tokens")
```

### 常见使用模式

**模式 1:对话记忆**

```python
# 存储对话内容
orchestrator.store_memory(
    content="用户说:我喜欢简洁的代码风格",
    bucket_type=SemanticBucketType.USER_INTENT,
)

# 后续对话中自动应用偏好
context = orchestrator.prepare_context(user_input="写一个排序函数")
# 智能体会自动使用简洁的代码风格
```

**模式 2:任务追踪**

```python
from scripts import GlobalStateCapture

capture = GlobalStateCapture(user_id="user_123")

# 追踪任务进度
capture.sync_from_langgraph(
    state={"phase": "implementing", "progress": 0.6},
    node_name="executor",
)

# 任务完成时
capture.sync_from_langgraph(
    state={"phase": "completed", "result": "success"},
    node_name="finalizer",
)
```

---

## 五、架构决策说明

### 为什么是 Skill 而非独立应用?

**设计考量**:

1. **集成性**:记忆系统需要深度集成到智能体的执行流程中
2. **实时性**:需要在智能体决策时即时提供上下文支持
3. **轻量性**:避免额外的服务部署和运维负担
4. **一致性**:与智能体共享同一个会话上下文

**如果是独立应用会怎样?**

```
❌ 独立应用模式:
用户 ──▶ 智能体 ──▶ HTTP API ──▶ 记忆服务
         ↑                      ↓
         └────── 响应 ──────────┘

问题:
- 增加网络延迟
- 需要额外的服务部署
- 状态同步复杂
- 增加故障点

✅ Skill 模式:
用户 ──▶ 智能体 ──▶ Memory Skill (内存)
         ↑              ↓
         └─── 即时响应 ─┘

优势:
- 零网络延迟
- 无需额外部署
- 状态天然同步
- 故障隔离
```

---

## 参考文档

- [Agent Loops 集成指南](agent_loops_integration.md) - 如何在 Agent Loop 中使用
- [使用指南](usage_guide.md) - 详细的使用示例
- [API 类参考](api_class_reference.md) - 完整的 API 文档