# 第五章:ACE 自适应上下文引擎
> 🧠 本章详细介绍 MiniClaw 的核心创新——ACE(Adaptive Context Engine)自适应上下文引擎。
---
## 5.1 ACE 引擎概述
### 5.1.1 什么是 ACE 引擎?
ACE(Adaptive Context Engine)是 MiniClaw 的核心创新,它实现了 **动态上下文编译**,根据时间、会话状态、Token 预算等因素智能组装上下文。
```
┌─────────────────────────────────────────────────────────────────────┐
│ ACE 引擎设计理念 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ 传统 AI 助手 MiniClaw ACE 引擎 │
│ ┌───────────────────┐ ┌───────────────────┐ │
│ │ │ │ │ │
│ │ 静态提示词 │ │ 动态上下文编译 │ │
│ │ 固定内容 │ │ 运行时组装 │ │
│ │ 无时间感知 │ │ 时间模式感知 │ │
│ │ 无预算控制 │ │ Token 预算管理 │ │
│ │ │ │ │ │
│ └───────────────────┘ └───────────────────┘ │
│ │
│ ❌ Token 浪费 ✅ Token 优化 │
│ ❌ 无上下文相关性 ✅ 智能上下文选择 │
│ ❌ 无时间感知 ✅ 时间模式适配 │
│ │
└─────────────────────────────────────────────────────────────────────┘
```
### 5.1.2 ACE 核心能力
```
┌─────────────────────────────────────────────────────────────────────┐
│ ACE 核心能力矩阵 │
├─────────────────┬───────────────────────────────────────────────────┤
│ 能力 │ 说明 │
├─────────────────┼───────────────────────────────────────────────────┤
│ 时间模式检测 │ 根据当前时间自动选择上下文策略 │
│ │ morning/work/break/evening/night │
├─────────────────┼───────────────────────────────────────────────────┤
│ 会话延续检测 │ 检测是否为连续会话,避免重复加载 │
│ │ 通过内容哈希差异检测 │
├─────────────────┼───────────────────────────────────────────────────┤
│ Token 预算管理 │ 动态分配 Token 预算,优先级截断 │
│ │ 默认 8000,可通过环境变量配置 │
├─────────────────┼───────────────────────────────────────────────────┤
│ 内容差异检测 │ 通过 MD5 哈希检测内容变化 │
│ │ 只加载变化的部分 │
├─────────────────┼───────────────────────────────────────────────────┤
│ 工作空间感知 │ 自动检测项目类型、Git 状态、技术栈 │
│ │ 提供项目上下文 │
└─────────────────┴───────────────────────────────────────────────────┘
```
---
## 5.2 时间模式系统
### 5.2.1 五种时间模式
```
┌─────────────────────────────────────────────────────────────────────┐
│ 五种时间模式 │
├─────────────┬───────────────┬───────┬───────────────────────────────┤
│ 模式 │ 时间范围 │ Emoji │ 特性 │
├─────────────┼───────────────┼───────┼───────────────────────────────┤
│ morning │ 06:00 - 09:00 │ ☀️ │ • 早间简报 │
│ │ │ │ • 新一天开始提示 │
│ │ │ │ • 加载昨日日志 │
├─────────────┼───────────────┼───────┼───────────────────────────────┤
│ work │ 09:00 - 12:00 │ 💼 │ • 标准工作模式 │
│ │ 14:00 - 18:00 │ │ • 完整上下文加载 │
│ │ │ │ • 技能优先级提升 │
├─────────────┼───────────────┼───────┼───────────────────────────────┤
│ break │ 12:00 - 14:00 │ 🍜 │ • 休息时段 │
│ │ │ │ • 轻量上下文 │
│ │ │ │ • 减少工作相关内容 │
├─────────────┼───────────────┼───────┼───────────────────────────────┤
│ evening │ 18:00 - 22:00 │ 🌙 │ • 反思建议 │
│ │ │ │ • 蒸馏提醒 │
│ │ │ │ • 日志整理提示 │
├─────────────┼───────────────┼───────┼───────────────────────────────┤
│ night │ 22:00 - 06:00 │ 😴 │ • 极简模式 │
│ │ │ │ • 最小上下文 │
│ │ │ │ • 仅核心文件 │
└─────────────┴───────────────┴───────┴───────────────────────────────┘
```
### 5.2.2 时间模式检测代码
```typescript
function getTimeMode(hour: number): TimeMode {
if (hour >= 6 && hour < 9) return 'morning';
if ((hour >= 9 && hour < 12) || (hour >= 14 && hour < 18)) return 'work';
if (hour >= 12 && hour < 14) return 'break';
if (hour >= 18 && hour < 22) return 'evening';
return 'night';
}
```
---
## 5.3 Token 预算管理
### 5.3.1 预算分配策略
```
┌─────────────────────────────────────────────────────────────────────┐
│ Token 预算分配 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ 总预算:8000 tokens(可通过 MINICLAW_CONTEXT_BUDGET 配置) │
│ │
│ 分配策略: │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 高优先级内容(必须保留) │ │
│ │ ├── IDENTITY.md ~500 tokens 6% │ │
│ │ ├── SOUL.md ~800 tokens 10% │ │
│ │ ├── AGENTS.md ~600 tokens 8% │ │
│ │ └── 时间模式提示 ~200 tokens 2% │ │
│ │ ───────────── │ │
│ │ 小计:~2100 tokens 26% │ │
│ │ │ │
│ │ 中优先级内容(尽量保留) │ │
│ │ ├── USER.md ~500 tokens 6% │ │
│ │ ├── MEMORY.md ~1000 tokens 12% │ │
│ │ └── 工作空间感知 ~400 tokens 5% │ │
│ │ ───────────── │ │
│ │ 小计:~1900 tokens 23% │ │
│ │ │ │
│ │ 低优先级内容(可截断) │ │
│ │ ├── 今日日志 ~2000 tokens 25% │ │
│ │ ├── 技能定义 ~1500 tokens 19% │ │
│ │ └── 实体图谱 ~500 tokens 6% │ │
│ │ ───────────── │ │
│ │ 小计:~4000 tokens 50% │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
```
### 5.3.2 截断策略
```
┌─────────────────────────────────────────────────────────────────────┐
│ 截断策略 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ 当内容超过预算时: │
│ │
│ 1. 保留高优先级内容(永不截断) │
│ • IDENTITY.md │
│ • SOUL.md │
│ • AGENTS.md │
│ │
│ 2. 智能截断中低优先级内容 │
│ • 按时间倒序保留日志条目 │
│ • 保留最新的 N 条记录 │
│ • 添加 "[截断,共 X 条]" 提示 │
│ │
│ 3. 极端情况处理 │
│ • 如果高优先级内容就超过预算 │
│ • 报错提示用户增加预算或精简配置 │
│ │
└─────────────────────────────────────────────────────────────────────┘
```
---
## 本章小结
```
┌─────────────────────────────────────────────────────────────────────┐
│ 第五章 核心要点 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ 🧠 ACE 引擎概念 │
│ • Adaptive Context Engine │
│ • 动态上下文编译 │
│ • 智能 Token 管理 │
│ │
│ ⏰ 五种时间模式 │
│ • morning (06-09) - 早间简报 │
│ • work (09-12, 14-18) - 工作模式 │
│ • break (12-14) - 休息模式 │
│ • evening (18-22) - 晚间反思 │
│ • night (22-06) - 极简模式 │
│ │
│ 💰 Token 预算管理 │
│ • 默认 8000 tokens │
│ • 三级优先级分配 │
│ • 智能截断策略 │
│ │
│ 🔄 会话延续检测 │
│ • MD5 哈希对比 │
│ • 避免重复加载 │
│ │
└─────────────────────────────────────────────────────────────────────┘
```
---
*本文档是《MiniClaw 深度解析》系列的第五章,下一章将详细介绍记忆系统。*
登录后可参与表态
讨论回复
0 条回复还没有人回复,快来发表你的看法吧!