会话与记忆 session.yml
session.yml 管理 AI 对话状态:会话历史、压缩策略、长期记忆。
session — 会话管理
yaml
session:
maxContextTokens: 8000
compaction:
enabled: true
reserveTokens: 4000
cleanupDays: 30
idle:
expireMinutes: 0
daily:
resetAtHour: -1| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
maxContextTokens | int | 8000 | 历史消息最大 token 数,超过后触发压缩或截断 |
compaction.enabled | bool | true | 是否启用会话压缩(AI 摘要替代旧消息) |
compaction.reserveTokens | int | 4000 | 压缩后保留的 token 数 |
cleanupDays | int | 30 | 自动清理 N 天前的会话(0 = 不清理) |
idle.expireMinutes | int | 0 | 空闲超时后自动新建会话(0 = 不超时) |
daily.resetAtHour | int | -1 | 每天几点自动新建会话(-1 = 不重置,0-23 有效) |
会话压缩原理
当对话历史的 token 数接近上下文窗口限制时,系统自动调用 AI 生成摘要:
- 将旧消息分割为 [待压缩] + [保留最近消息]
- 调用 AI 对旧消息生成摘要
- 用摘要替代旧消息,渐进式遗忘细节
- 后续加载:[摘要] + [最近消息] + [新消息]
比简单截断更智能,避免"失忆"。
memory — 记忆系统
yaml
memory:
enabled: true
autoUpdate: true
defaultCategories:
- preferences
- events
- todos| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
enabled | bool | true | 启用后自动注入 memory_read / memory_write 工具 |
autoUpdate | bool | true | 允许 AI 主动记录信息到记忆 |
defaultCategories | list | [preferences, events, todos] | 默认记忆分类 |
详见记忆系统。
executeCommand — 全局命令默认值
yaml
executeCommand:
whitelist: []
blockChaining: true| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
whitelist | list | [] | console 权限命令白名单(全局默认) |
blockChaining | bool | true | 阻止链式操作符 |
可在助手配置中单独覆盖。