导入导出与恢复
适用版本:4.0.8+
Session 内置 JSON/YAML 序列化能力,适合:
- 持久化会话
- 跨进程恢复
- 运行时快照审计
1. 导出
python
session_json = session.get_json_session()
session_yaml = session.get_yaml_session()
# 别名也可用
session_json_2 = session.to_json()
session_yaml_2 = session.to_yaml()导出内容包含:
idauto_resizefull_contextcontext_windowmemosession_settings
2. 导入(字符串或文件路径)
python
from agently.core import Session
session = Session(settings=agent.settings)
session.load_json_session(session_json)
session.load_yaml_session("./session.snapshot.yaml")
# 别名
session.load_json(session_json)
session.load_yaml("./session.snapshot.yaml")3. 从大对象中按路径提取
当 session 数据被包裹在更大 JSON/YAML 中时,使用 session_key_path:
python
session.load_json_session(
"./snapshot.json",
session_key_path="payload.session", # dot path
)4. 恢复到 Agent 会话池
python
restored = Session(settings=agent.settings)
restored.load_json_session("./session.snapshot.json")
agent.sessions[restored.id] = restored
agent.activate_session(session_id=restored.id)5. 兼容与校验建议
- 持久化时记录版本号(例如
app_schema_version) - 导入后校验关键字段(
memo结构、context_window长度) - 不要信任外部输入,导入失败应捕获异常并降级