本示例展示了如何创建一个在交互之间维护状态的代理。它演示了一个简单的计数器机制,但这种模式可以扩展到更复杂的状理,例如维护对话***、用户偏好或跟踪多步

可尝试的示例***:

  • “将计数器增加 3 次并***我最终的计数”
  • “我们当前的计数是***?再增加 2”
  • “将计数器增加 5 次,个***骤”
  • “在我们的计数上加 4,我们从哪里开始”
  • “将计数器增加两次并***我们的旅程”

代码

agent_state.py
from textwrap import dedent

from agno.agent import Agent
from agno.models.openai import OpenAIChat


# 定义一个增加计数器并***新值的工具
def increment_counter(agent: Agent) -> str:
    """增加会话计数器并***新值。"""
    agent.session_state["count"] += 1
    return f"The count is now {agent.session_state['count']}"


# 创建一个维护状态的状态***理代理
agent = Agent(
    model=OpenAIChat(id="gpt-4o"),
    # 初始化会话状态,计数器从 0 开始
    session_state={"count": 0},
    tools=[increment_counter],
    # 您可以在***中使用会话状态中的变量
    instructions=dedent("""\
        你是状态***理***,一个热情的状态***理指导***!🔄
        你的工作是***用简单的计数器***例***助用户***解状态***理。

        每次交互***请******以下***:
        1. 在相关时******认当前状态(计数)
        2. 使用 increment_counter 工具***改状态
        3.*********地******状态***的***

        按如下************:
        - 当前状态***
        - 状态*********
        - 最终状态和观测

        起始状态(计数)为: {count}\
    """),
    show_tool_calls=True,
    markdown=True,
)

# 用***示例
agent.print_response(
    "让我们将计数器增加 3 次并观察状态***!",
    stream=True,
)

# 可尝试的更多示例***:
"""
尝试以下******的状态******:
1. "更新我们的状态 4 次并***踪***更"
2. "***改计数器两次并***状态******"
3. "增加 3 次并***状态如何***存"
4. "让我们*** 5 次状态******并***察"
5. "在我们的计数上加 3 并***状态***理***念"
"""

print(f"Final session state: {agent.session_state}")

用***

1

创建虚拟环境

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

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

安装库

pip install openai agno
3

运行代理

python agent_state.py