教程 7:会话与内存管理 掌握使用会话实现自动对话记忆!本教程将教你如何利用 OpenAI Agents SDK 内置的会话记忆功能,在多次运行代理时自动维护对话历史,而无需手动管理内存。 你将学到的内容 自动记忆:会话可自动处理对话历史 SQLite 会话:持久化与内存中的对话存储 内存操作:添加、检索和管理对话条目 会话管理:多会话及自定义实现 核心概念:什么是会话? 会话提供自动对话记忆,让你无需在每次轮次之间手动处理 。可以把会话看作一个智能对话数据库,它: 自动存储所有对话历史 在每次代理运行前检索上下文 为不同的会话 ID 维护独立的对话 支持跨应用重启的持久化存储 教程概览 本教程将演示三种关键会话模式: 1.
掌握使用会话实现自动对话记忆!本教程将教你如何利用 OpenAI Agents SDK 内置的会话记忆功能,在多次运行代理时自动维护对话历史,而无需手动管理内存。
会话提供自动对话记忆,让你无需在每次轮次之间手动处理.to_input_list()。可以把会话看作一个智能对话数据库,它:
┌─────────────────────────────────────────────────────────────┐ │ SESSION WORKFLOW │ ├─────────────────────────────────────────────────────────────┤ │ │ │ USER INPUT │ │ │ │ │ ▼ │ │ ┌─────────────┐ 1. RETRIEVE HISTORY │ │ │ SESSION │◀─────────────────────────────────────────┐ │ │ │ MEMORY │ │ │ │ └─────────────┘ 2. PREPEND TO INPUT │ │ │ │ │ │ │ ▼ │ │ │ ┌─────────────┐ │ │ │ │ AGENT │ 3. PROCESS WITH CONTEXT │ │ │ │ RUNNER │ │ │ │ └─────────────┘ │ │ │ │ │ │ │ ▼ │ │ │ ┌─────────────┐ 4. STORE NEW ITEMS │ │ │ │ RESPONSE │──────────────────────────────────────────┘ │ │ │ GENERATED │ │ │ └─────────────┘ │ └─────────────────────────────────────────────────────────────┘
本教程将演示三种关键会话模式:
basic_sessions.py)memory_operations.py)get_items(), add_items(), pop_item()multi_sessions.py)7_sessions/ ├── README.md # This file - concept explanation ├── requirements.txt # Dependencies ├── streamlit_sessions_app.py # Interactive Streamlit demo (recommended) ├── 7_1_basic_sessions/ │ ├── agent.py # SQLite sessions basics │ └── README.md # Basic sessions documentation ├── 7_2_memory_operations/ │ ├── agent.py # Advanced memory operations │ └── README.md # Memory operations documentation ├── 7_3_multi_sessions/ │ ├── agent.py # Multiple session management │ └── README.md # Multi-sessions documentation └── env.example # Environment variables template
完成本教程后,你将理解:
安装 OpenAI Agents SDK:
pip install openai-agents
安装依赖:
pip install -r requirements.txt
设置环境变量:
cp env.example .env # Edit .env and add your OpenAI API key
启动交互式演示(推荐):
streamlit run streamlit_sessions_app.py
或者运行单个示例:
测试基础会话:
python 7_1_basic_sessions/agent.py
尝试内存操作:
python 7_2_memory_operations/agent.py
测试多会话:
python 7_3_multi_sessions/agent.py
pop_item() 更正之前的消息:`clear_session()user_123, user_456support_ticket_789, sales_inquiry_101chatbot_session, `assistant_sessionfrom agents import Agent, Runner, SQLiteSession agent = Agent(name="Assistant", instructions="Reply concisely.") session = SQLiteSession("conversation_123") result = await Runner.run(agent, "Hello", session=session)
# In-memory (lost when process ends) session = SQLiteSession("user_123") # Persistent file-based session = SQLiteSession("user_123", "conversations.db")
# Get conversation history items = await session.get_items() # Add custom items await session.add_items([{"role": "user", "content": "Hello"}]) # Remove last item (for corrections) last_item = await session.pop_item() # Clear all history await session.clear_session()
user_12345 or support_ticket_789pop_item(),以便更正对话完成本教程后,你将准备好:
免责声明:
本文档采用基于机器的 AI 翻译服务进行翻译。尽管我们力求准确,但请注意,自动翻译可能存在错误或不准确之处。应以原文语言版本的文档作为权威依据。如需获取关键信息,建议使用专业的人工翻译。对于因使用本翻译而产生的任何误解或误读,我们概不负责。