Agent 集成细节
适用版本:4.0.8+
SessionExtension 已默认集成在 Agent 中。本页说明它如何工作,以及如何精准控制记录行为。
1. 生命周期钩子
请求前(request_prefixes)
- 把
activated_session.context_window注入chat_history - 若
memo非空,注入CHAT SESSION MEMO
请求后(finally)
- 提取输入与输出
- 按配置写回
full_context/context_window
2. 会话池管理
Agent 内部维护:
agent.sessions: dict[str, Session]agent.activated_session: Session | None
推荐模式:
python
agent.activate_session(session_id=user_id)
# ...
agent.deactivate_session()3. 输入输出记录控制
3.1 session.input_keys
可配置只记录输入中的关键字段:
python
agent.set_settings("session.input_keys", [
".request", # 整个 request prompt
"info.task", # 点路径
"input/lang", # 斜杠路径
".agent.system", # agent prompt 中字段
])3.2 session.reply_keys
只记录结构化输出里的关键字段:
python
agent.set_settings("session.reply_keys", ["summary", "scores.total"])如果 input_keys/reply_keys 为 None,则记录完整请求文本与完整结果。
4. chat_history 相关方法在激活会话时的行为
激活会话后,这些方法会操作当前 Session:
set_chat_history(...)add_chat_history(...)reset_chat_history()clean_context_window()
5. 与临时请求组合(推荐)
在自定义执行器中,建议用 create_temp_request() 做 memo 摘要:
- 不继承当前 agent prompt/session handlers
- 避免递归污染会话上下文
python
memo_request = agent.create_temp_request()6. 团队约定
建议团队统一只写新版 Session 接口:
activate_session/deactivate_sessionsession.max_lengthregister_analysis_handler/register_execution_handlers