核心概念
适用版本:4.0.8+
1. 架构分层
新版会话管理由两层组成:
Session(核心状态与策略执行)SessionExtension(把 Session 挂到 Agent 请求生命周期)
职责拆分后,你可以:
- 直接操作
Session做纯数据/策略处理 - 通过
Agent享受自动注入与自动记录
2. 三个核心状态
full_context:会话全量消息,适合审计和导出context_window:当前参与推理的窗口,影响 token 成本memo:自定义结构化记忆(例如偏好、约束、长期事实)
3. 自动裁剪机制(auto_resize)
默认 auto_resize=True:
- 每次
set_chat_history/add_chat_history后触发resize - 默认分析器读取
session.max_length - 若超限,执行默认策略
simple_cut
设置示例:
python
agent.set_settings("session.max_length", 12000)4. 可编程扩展点
4.1 分析器(决定策略名)
python
def analysis_handler(full_context, context_window, memo, session_settings):
if len(context_window) > 6:
return "keep_last_six"
return None4.2 执行器(返回新状态)
返回三元组:
new_full_context或Nonenew_context_window或Nonenew_memo或None
python
def keep_last_six(full_context, context_window, memo, session_settings):
return None, list(context_window[-6:]), memo注册:
python
session.register_analysis_handler(analysis_handler)
session.register_execution_handlers("keep_last_six", keep_last_six)5. Agent 生命周期中的 SessionExtension
request_prefixes:把context_window注入chat_historyfinally:提取请求输入与回复,写回 Session
输入输出提取键:
session.input_keyssession.reply_keys
支持:
- 点路径:
info.task - 斜杠路径:
info/task - 特殊前缀:
.request.*、.agent.*
6. 接口演进说明
旧版 Session 快捷接口已不再作为当前文档推荐路径。
请统一使用 activate_session/deactivate_session、session.max_length 与 register_*_handler 组合。
推荐参考:会话开关与迁移