这是一个基本的代理状态管理示例,通过维护一个动态的购物清单来展示如何管理和更新代理状态。
from agno.agent import Agent
from agno.models.openai import OpenAIChat
def add_item(agent: Agent, item: str) -> str:
"""将一个物品添加到购物清单。"""
agent.session_state["shopping_list"].append(item)
return f"购物清单现在是 {agent.session_state['shopping_list']}"
# 创建一个维护状态的代理
agent = Agent(
model=OpenAIChat(id="gpt-4o-mini"),
# 使用一个从 0 开始的计数器初始化会话状态
session_state={"shopping_list": []},
tools=[add_item],
# 你可以在指令中使用会话状态中的变量
instructions="当前状态(购物清单)是:{shopping_list}",
# 重要提示:将状态添加到消息中
add_state_in_messages=True,
markdown=True,
)
# 示例用法
agent.print_response("将牛奶、鸡蛋和面包添加到购物清单", stream=True)
print(f"最终会话状态:{agent.session_state}")
创建虚拟环境
打开 Terminal
并创建一个 python 虚拟环境。
python3 -m venv .venv
source .venv/bin/activate
设置您的 API 密钥
export OPENAI_API_KEY=xxx
安装库
pip install -U openai agno
运行示例
python cookbook/agent_concepts/state/session_state.py