/ examples / multi_agent / shared_db_session.py
shared_db_session.py
 1  """Multi-Agent Shared Session - DB Persistence Test"""
 2  import sys
 3  sys.path.insert(0, 'src/praisonai')
 4  from praisonai.persistence import create_conversation_store
 5  from praisonai.persistence.conversation.base import ConversationSession, ConversationMessage
 6  
 7  # Create shared session for multiple agents
 8  store = create_conversation_store("sqlite", path="/tmp/multi_agent.db")
 9  session_id = "shared-session-123"
10  
11  # Create session
12  session = ConversationSession(session_id=session_id, agent_id="multi")
13  try:
14      store.create_session(session)
15  except Exception:
16      pass
17  
18  # Agent 1 writes
19  msg1 = ConversationMessage(session_id=session_id, role="user", content="Agent1: Hello")
20  store.add_message(session_id, msg1)
21  msg2 = ConversationMessage(session_id=session_id, role="assistant", content="Agent1: Hi there!")
22  store.add_message(session_id, msg2)
23  
24  # Agent 2 writes to same session
25  msg3 = ConversationMessage(session_id=session_id, role="user", content="Agent2: What did Agent1 say?")
26  store.add_message(session_id, msg3)
27  msg4 = ConversationMessage(session_id=session_id, role="assistant", content="Agent2: Agent1 said Hello")
28  store.add_message(session_id, msg4)
29  
30  # Verify both agents' messages are in session
31  messages = store.get_messages(session_id)
32  print(f"Total messages in shared session: {len(messages)}")
33  assert len(messages) >= 4, "Should have messages from both agents"
34  
35  # Verify content
36  contents = [m.content for m in messages]
37  assert any("Agent1" in c for c in contents), "Should have Agent1 messages"
38  assert any("Agent2" in c for c in contents), "Should have Agent2 messages"
39  
40  print("PASSED: Multi-agent shared session persistence")