> ## Documentation Index
> Fetch the complete documentation index at: https://ikun.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 基本状态管理

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

## 代码

```python cookbook/agent_concepts/state/session_state.py theme={null}
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}")

```

## 用法

<Steps>
  <Snippet file="create-venv-step.mdx" />

  <Step title="设置您的 API 密钥">
    ```bash theme={null}
    export OPENAI_API_KEY=xxx
    ```
  </Step>

  <Step title="安装库">
    ```bash theme={null}
    pip install -U openai agno
    ```
  </Step>

  <Step title="运行示例">
    <CodeGroup>
      ```bash Mac theme={null}
      python cookbook/agent_concepts/state/session_state.py
      ```

      ```bash Windows theme={null}
      python cookbook/agent_concepts/state/session_state.py
      ```
    </CodeGroup>
  </Step>
</Steps>
