这是一个基本的代理状态管理示例,通过维护一个动态的购物清单来展示如何管理和更新代理状态。

代码

cookbook/agent_concepts/state/session_state.py
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}")

用法

1

创建虚拟环境

打开 Terminal 并创建一个 python 虚拟环境。

python3 -m venv .venv
source .venv/bin/activate
2

设置您的 API 密钥

export OPENAI_API_KEY=xxx
3

安装库

pip install -U openai agno
4

运行示例

python cookbook/agent_concepts/state/session_state.py