Resize 与策略
resize 负责两件事:
- 裁剪 current_chat_history
- 更新 memo(在 memo 模式下)
默认策略
默认 policy 的判断顺序:
max_messages_text_lengthmax_keep_messages_countevery_n_turns
返回值为 lite 或 deep。例如:
python
session.set_settings("session.resize.max_messages_text_length", 12000)
session.set_settings("session.resize.max_keep_messages_count", 12)
session.set_settings("session.resize.every_n_turns", 8)lite vs deep
- lite:只保留“最近一段窗口”,memo 只处理增量部分
- deep:对全量历史分块总结,更新更彻底
强制 resize
python
session.resize(force="deep")
# 或 async
await session.async_resize(force="deep")自定义 policy
python
def policy_handler(full_history, current_history, settings):
if len(current_history) > 6:
return "deep"
return None
session.set_policy_handler(policy_handler)自定义 resize handler
python
def lite_resize_handler(full_history, current_history, memo, settings):
# 返回 full, current, memo
return full_history, current_history[-4:], memo
session.set_resize_handlers("lite", lite_resize_handler)