|
|
""" |
|
|
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_dotenv() |
|
|
|
|
|
|
|
|
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: |
|
|
|
|
|
result = run_agent_system( |
|
|
query=query, |
|
|
user_id=os.getenv("USER_ID", "default_user"), |
|
|
session_id=os.getenv("SESSION_ID", "default_session") |
|
|
) |
|
|
|
|
|
|
|
|
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_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() |
|
|
print("\nAll tests completed!") |