Skip to content

Session 与 Memo

在长对话或多轮任务中,你通常需要:

  • 完整历史:用于审计或回放
  • 当前上下文:控制提示长度
  • 运行时记忆(memo):稳定偏好、约束与事实

Agently 的 Session 提供这些能力,默认插件是 AgentlyMemoSession

创建与追加消息

python
from agently import Agently
from agently.core import Session

agent = Agently.create_agent()
session = Session(agent=agent)

session.append_message({"role": "user", "content": "我喜欢简洁的答案"})
session.append_message({"role": "assistant", "content": "明白了"})

Memo 更新与压缩

session.resize() 会根据策略决定是否压缩上下文,并在启用 memo 时更新 session.memo

python
session.set_settings("session.memo.enabled", True)
session.set_settings("session.resize.every_n_turns", 8)

current = session.resize()  # 同步版本
print(current)
print(session.memo)

序列化与恢复

python
dump = session.to_json()
session.load_json(dump)

说明

  • Memo 的更新提示词由 session.memo.instruct 控制
  • session.resize.max_messages_text_length / session.resize.max_keep_messages_count 控制上下文上限