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_settings:session.*命名空间设置(例如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 会自动执行:
- 请求前:把
activated_session.context_window注入chat_history - 请求后:按
session.input_keys/session.reply_keys规则记录输入与输出 - 若
memo不为空:自动注入CHAT SESSION MEMO