Skip to content

Session 与 Memo 概览

适用版本:4.0.8+

v4.0.8 起,Agently 的 Session 能力已重做:

  • Session 变为核心对象(agently.core.Session
  • SessionExtension 默认混入到 Agent
  • 旧的 Quick/Lite/Memo 快捷接口不再作为主路径,建议统一使用 activate_session() + 自定义策略

本章节围绕 当前可用 API 讲清楚“如何记录、裁剪、沉淀 memo、导入导出”。

一、核心数据模型

每个 Session 包含四类关键状态:

  • full_context:全量消息历史(不丢数据)
  • context_window:当前注入模型的窗口(可裁剪)
  • memo:你自己定义和维护的稳定记忆(默认不自动生成)
  • session_settingssession.* 命名空间设置(例如 session.max_length

二、默认行为(不注册自定义策略)

  • auto_resize=True(默认)时,每次写入消息后会触发 resize()
  • 默认分析器根据 session.max_length 判断是否触发裁剪
  • 默认执行策略 simple_cut:从尾部保留消息,保证窗口长度不超过 max_length

这意味着:即使你不写策略,也能得到“按长度上限自动截断”的基础会话能力。

三、与 Agent 的集成关系

Agently.create_agent() 创建的 Agent 默认已带 SessionExtension,可直接使用:

  • agent.activate_session(session_id="...")
  • agent.deactivate_session()
  • agent.clean_context_window()
  • agent.set_chat_history(...)
  • agent.add_chat_history(...)

请求生命周期中,Extension 会自动执行:

  1. 请求前:把 activated_session.context_window 注入 chat_history
  2. 请求后:按 session.input_keys / session.reply_keys 规则记录输入与输出
  3. memo 不为空:自动注入 CHAT SESSION MEMO

四、推荐学习路径