Documentation Index
Fetch the complete documentation index at: https://docs.ag-kit.dev/llms.txt
Use this file to discover all available pages before exploring further.
会话管理允许您通过内存操作中的sessionId参数处理多个并发对话。这是构建在AG-Kit内存应用程序接口之上的应用级模式。
核心概念
会话本质上是一个隔离对话上下文的唯一标识符(字符串)。所有内存操作都接受可选的sessionId参数,用于区分不同用户或对话的数据。
快速入门
基础会话管理
from agkit.agents import InMemoryMemory
# 创建内存实例
memory = InMemoryMemory()
# 为用户A创建会话
session_a = 'user-alice-session-1'
await memory.add(
{
'message': {
'id': 'msg-1',
'role': 'user',
'content': 'Hello, I\'m Alice',
'timestamp': datetime.now()
},
'state': {'user_id': 'alice'}
},
session_id=session_a
)
# 为用户B创建会话
session_b = 'user-bob-session-1'
await memory.add(
{
'message': {
'id': 'msg-1',
'role': 'user',
'content': 'Hi, I\'m Bob',
'timestamp': datetime.now()
},
'state': {'user_id': 'bob'}
},
session_id=session_b
)
# 获取会话专属历史记录
alice_history = await memory.list(session_id=session_a)
bob_history = await memory.list(session_id=session_b)
print('Alice:', alice_history[0]['message']['content'])
print('Bob:', bob_history[0]['message']['content'])
常见会话ID模式
您可以根据应用需求设计会话ID:
# 基于用户:每个用户一个会话
session_id = f'user-{user_id}'
# 基于对话:每个用户多个会话
session_id = f'user-{user_id}-conv-{conversation_id}'
# 基于时间:带时间戳的会话
session_id = f'user-{user_id}-{int(time.time() * 1000)}'
# 层级结构:复杂组织结构
session_id = f'org-{org_id}/team-{team_id}/user-{user_id}'
与Agent配合使用会话
from agkit.agents import InMemoryMemory
import uuid
memory = InMemoryMemory()
# Agent处理带会话隔离的请求
async def handle_user_message(user_id: str, message: str):
session_id = f'user-{user_id}'
# 将用户消息添加到会话
await memory.add(
{
'message': {
'id': str(uuid.uuid4()),
'role': 'user',
'content': message,
'timestamp': datetime.now()
}
},
session_id=session_id
)
# 获取Agent所需的会话历史
history = await memory.list(session_id=session_id)
# 使用Agent处理...
response = await agent.run(
messages=[m['message'] for m in history],
session_id=session_id
)
return response
最佳实践
- 使用有意义的会话ID - 包含用户/对话标识符便于调试
- 实现会话清理机制 - 移除旧会话防止内存泄漏
- 处理会话过期 - 在应用中实现超时逻辑
- 单独存储会话元数据 - 记录创建时间、最后活动时间等
- 考虑隐私保护 - 及时清除不再需要的敏感会话数据
后续步骤