Final_Assignment_Template / new_langraph_agent.py
Humanlearning's picture
multi agent architecture
fe36046
"""
Updated LangGraph Agent Implementation
Implements the architecture from the system diagram with memory layer, agent routing, and verification.
"""
import os
import sys
from dotenv import load_dotenv
# Load environment variables
load_dotenv()
# Import the new agent system
from src import run_agent_system, memory_manager
from src.tracing import flush_langfuse, shutdown_langfuse
def run_agent(query: str) -> str:
"""
Main entry point for the agent system.
Args:
query: The user question
Returns:
The formatted final answer
"""
try:
# Run the new agent system
result = run_agent_system(
query=query,
user_id=os.getenv("USER_ID", "default_user"),
session_id=os.getenv("SESSION_ID", "default_session")
)
# Flush tracing events
flush_langfuse()
return result
except Exception as e:
print(f"Agent Error: {e}")
return f"I apologize, but I encountered an error: {e}"
def clear_memory():
"""Clear the agent's session memory"""
memory_manager.clear_session_cache()
print("Agent memory cleared")
def cleanup():
"""Cleanup function for graceful shutdown"""
try:
flush_langfuse()
shutdown_langfuse()
memory_manager.close_checkpointer()
print("Agent cleanup completed")
except Exception as e:
print(f"Cleanup error: {e}")
if __name__ == "__main__":
# Test the agent system
test_queries = [
"What is the capital of France?",
"Calculate the factorial of 5",
"What are the benefits of renewable energy?"
]
print("Testing new LangGraph Agent System")
print("=" * 50)
for i, query in enumerate(test_queries, 1):
print(f"\nTest {i}: {query}")
print("-" * 30)
try:
result = run_agent(query)
print(f"Result: {result}")
except Exception as e:
print(f"Error: {e}")
# Cleanup
cleanup()
print("\nAll tests completed!")