Multi-User, Multi-Session Chat Concurrently
This example shows how to run a multi-user, multi-session chat concurrently.
Code
1"""2In this example, we have 3 users and 4 sessions.34User 1 has 2 sessions.5User 2 has 1 session.6User 3 has 1 session.7"""8import asyncio910from kern.agent import Agent11from kern.db.postgres import PostgresDb12from kern.models.openai import OpenAIResponses1314db_url = "postgresql+psycopg://ai:ai@localhost:5532/ai"1516db = PostgresDb(db_url=db_url)1718user_1_id = "user_1@example.com"19user_2_id = "user_2@example.com"20user_3_id = "user_3@example.com"2122user_1_session_1_id = "user_1_session_1"23user_1_session_2_id = "user_1_session_2"24user_2_session_1_id = "user_2_session_1"25user_3_session_1_id = "user_3_session_1"2627chat_agent = Agent(28 model=OpenAIResponses(id="gpt-5.2"),29 db=db,30 update_memory_on_run=True,31)323334async def user_1_conversation():35 """Handle conversation with user 1 across multiple sessions"""36 # User 1 - Session 137 await chat_agent.arun(38 "My name is Mark Gonzales and I like anime and video games.",39 user_id=user_1_id,40 session_id=user_1_session_1_id,41 )42 await chat_agent.arun(43 "I also enjoy reading manga and playing video games.",44 user_id=user_1_id,45 session_id=user_1_session_1_id,46 )4748 # User 1 - Session 249 await chat_agent.arun(50 "I'm going to the movies tonight.",51 user_id=user_1_id,52 session_id=user_1_session_2_id,53 )5455 # Continue the conversation in session 156 await chat_agent.arun(57 "What do you suggest I do this weekend?",58 user_id=user_1_id,59 session_id=user_1_session_1_id,60 )6162 print("User 1 Done")636465async def user_2_conversation():66 """Handle conversation with user 2"""67 await chat_agent.arun(68 "Hi my name is John Doe.", user_id=user_2_id, session_id=user_2_session_1_id69 )70 await chat_agent.arun(71 "I'm planning to hike this weekend.",72 user_id=user_2_id,73 session_id=user_2_session_1_id,74 )75 print("User 2 Done")767778async def user_3_conversation():79 """Handle conversation with user 3"""80 await chat_agent.arun(81 "Hi my name is Jane Smith.", user_id=user_3_id, session_id=user_3_session_1_id82 )83 await chat_agent.arun(84 "I'm going to the gym tomorrow.",85 user_id=user_3_id,86 session_id=user_3_session_1_id,87 )88 print("User 3 Done")899091async def run_concurrent_chat_agent():92 """Run all user conversations concurrently"""93 await asyncio.gather(94 user_1_conversation(), user_2_conversation(), user_3_conversation()95 )969798if __name__ == "__main__":99 # Run all conversations concurrently100 asyncio.run(run_concurrent_chat_agent())101102 user_1_memories = chat_agent.get_user_memories(user_id=user_1_id)103 print("User 1's memories:")104 assert user_1_memories is not None105 for i, m in enumerate(user_1_memories):106 print(f"{i}: {m.memory}")107108 user_2_memories = chat_agent.get_user_memories(user_id=user_2_id)109 print("User 2's memories:")110 assert user_2_memories is not None111 for i, m in enumerate(user_2_memories):112 print(f"{i}: {m.memory}")113114 user_3_memories = chat_agent.get_user_memories(user_id=user_3_id)115 print("User 3's memories:")116 assert user_3_memories is not None117 for i, m in enumerate(user_3_memories):118 print(f"{i}: {m.memory}")Usage
Set up your virtual environment
1uv venv --python 3.122source .venv/bin/activate1uv venv --python 3.122.venv\Scripts\activateSet your API key
1export OPENAI_API_KEY=xxxInstall dependencies
1uv pip install -U kern-ai openaiRun Example
1python multi_user_multi_session_chat_concurrent.py