本示例演示会话状态(State)的多种用法:在指令模板中引用状态、在工具中读写偏好、多 Agent 通过 output_key 协作写入状态,以及应用/用户/会话三级作用域演示。
- Example 1:
personalized_assistant从状态读取姓名并回答 - Example 2:
update_user_preference/get_current_preferences更新与列出偏好 - Example 3:多 Agent 协作结果写入 state 并打印摘要
- Example 4:同用户新会话继承用户级状态、新用户隔离会话级状态
(随示例切换)
personalized_assistant (LlmAgent)
preference_agent (LlmAgent + 偏好工具)
requirement_analyzer / solution_planner (LlmAgent,协作写 state)
state_demo_agent (LlmAgent + set_state_at_different_levels)
关键文件:
- examples/session_state/agent/agent.py
- examples/session_state/run_agent.py
- examples/session_state/.env
run_agent.py按块运行四个示例,每块打印用户输入、工具调用与当前各级 state 快照- 展示
output_key与协作子 Agent 输出合并进 state 的模式
- Python 3.12
git clone https://github.com/trpc-group/trpc-agent-python.git
cd trpc-agent-python
python3 -m venv .venv
source .venv/bin/activate
pip3 install -e .在 examples/session_state/.env 中配置(或通过 export 设置):
TRPC_AGENT_API_KEYTRPC_AGENT_BASE_URLTRPC_AGENT_MODEL_NAME
cd examples/session_state
python3 run_agent.pyExample 1: Template reference - using State in Instruction
👤 用户: Can you tell me my name?
🤖 Agent: [personalized_assistant]: ... Your name is Alice ...
Example 2: Modifying State in tools
🔧 [Call tool: update_user_preference]
📊 [Tool result: {'result': 'Preference updated: theme = dark mode'}]
...
Example 4: State scope demonstration
📊 user1 session2 state ... 💬 会话级状态: {}
📊 user2 session3 state ... 👤 用户级状态: {}
结论:符合本示例测试要求。
- 四个示例均打印预期阶段标题、工具结果或 state 快照;
- 多轮对话中维护用户偏好、工单字段等结构化上下文
- 多 Agent 流水线中间结果落盘到 state 供后续节点消费