Skip to content

导入导出与恢复

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

导出内容包含:

  • id
  • auto_resize
  • full_context
  • context_window
  • memo
  • session_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 长度)
  • 不要信任外部输入,导入失败应捕获异常并降级