Skip to content

核心概念

适用版本: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 None

4.2 执行器(返回新状态)

返回三元组:

  1. new_full_contextNone
  2. new_context_windowNone
  3. new_memoNone
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_history
  • finally:提取请求输入与回复,写回 Session

输入输出提取键:

  • session.input_keys
  • session.reply_keys

支持:

  • 点路径:info.task
  • 斜杠路径:info/task
  • 特殊前缀:.request.*.agent.*

6. 接口演进说明

旧版 Session 快捷接口已不再作为当前文档推荐路径。
请统一使用 activate_session/deactivate_sessionsession.max_lengthregister_*_handler 组合。

推荐参考:会话开关与迁移