| | |
| | """ |
| | Test Script for New LangGraph Agent System |
| | Tests the multi-agent architecture with memory, routing, and verification. |
| | """ |
| | import os |
| | import sys |
| | import time |
| | from dotenv import load_dotenv |
| |
|
| | |
| | load_dotenv() |
| |
|
| | |
| | sys.path.append(os.path.dirname(os.path.abspath(__file__))) |
| |
|
| | def test_imports(): |
| | """Test that all modules can be imported correctly""" |
| | print("Testing imports...") |
| | try: |
| | |
| | from src import run_agent_system, memory_manager |
| | from src.tracing import get_langfuse_callback_handler |
| | |
| | |
| | from src.agents import ( |
| | plan_node, router_node, retrieval_agent, |
| | execution_agent, critic_agent, verification_node |
| | ) |
| | |
| | print("β
All imports successful") |
| | return True |
| | except ImportError as e: |
| | print(f"β Import error: {e}") |
| | return False |
| |
|
| |
|
| | def test_memory_system(): |
| | """Test the memory management system""" |
| | print("\nTesting memory system...") |
| | try: |
| | from src.memory import memory_manager |
| | |
| | |
| | test_query = "What is 2+2?" |
| | |
| | |
| | similar = memory_manager.similarity_search(test_query, k=1) |
| | print(f"β
Similarity search completed: {len(similar)} results") |
| | |
| | |
| | memory_manager.clear_session_cache() |
| | print("β
Memory cache cleared") |
| | |
| | return True |
| | except Exception as e: |
| | print(f"β Memory system error: {e}") |
| | return False |
| |
|
| |
|
| | def test_tracing_system(): |
| | """Test the Langfuse tracing integration""" |
| | print("\nTesting tracing system...") |
| | try: |
| | from src.tracing import get_langfuse_callback_handler, initialize_langfuse |
| | |
| | |
| | handler = get_langfuse_callback_handler() |
| | print(f"β
Langfuse handler: {type(handler)}") |
| | |
| | return True |
| | except Exception as e: |
| | print(f"β Tracing system error: {e}") |
| | return False |
| |
|
| |
|
| | def test_individual_agents(): |
| | """Test each agent individually""" |
| | print("\nTesting individual agents...") |
| | |
| | |
| | test_state = { |
| | "messages": [], |
| | "plan_complete": False, |
| | "next_agent": "", |
| | "routing_decision": "", |
| | "routing_reason": "", |
| | "current_step": "testing", |
| | "agent_response": None, |
| | "needs_tools": False, |
| | "execution_result": "", |
| | "critic_assessment": "", |
| | "quality_pass": True, |
| | "quality_score": 7, |
| | "verification_status": "", |
| | "attempt_count": 1, |
| | "final_answer": "" |
| | } |
| | |
| | try: |
| | from langchain_core.messages import HumanMessage |
| | test_state["messages"] = [HumanMessage(content="Test query")] |
| | |
| | |
| | from src.agents.plan_node import plan_node |
| | plan_result = plan_node(test_state) |
| | print("β
Plan node executed") |
| | |
| | |
| | from src.agents.router_node import router_node |
| | router_result = router_node(plan_result) |
| | print("β
Router node executed") |
| | |
| | return True |
| | except Exception as e: |
| | print(f"β Agent testing error: {e}") |
| | return False |
| |
|
| |
|
| | def test_graph_creation(): |
| | """Test the main graph creation""" |
| | print("\nTesting graph creation...") |
| | try: |
| | from src.langgraph_system import create_agent_graph |
| | |
| | |
| | workflow = create_agent_graph() |
| | print("β
Graph created successfully") |
| | |
| | |
| | try: |
| | app = workflow.compile() |
| | print("β
Graph compiled successfully") |
| | except Exception as e: |
| | print(f"β οΈ Graph compilation warning: {e}") |
| | |
| | return True |
| | except Exception as e: |
| | print(f"β Graph creation error: {e}") |
| | return False |
| |
|
| |
|
| | def test_simple_query(): |
| | """Test a simple query through the system""" |
| | print("\nTesting simple query...") |
| | try: |
| | from new_langraph_agent import run_agent |
| | |
| | |
| | test_query = "What is 1 + 1?" |
| | print(f"Query: {test_query}") |
| | |
| | start_time = time.time() |
| | result = run_agent(test_query) |
| | end_time = time.time() |
| | |
| | print(f"Result: {result}") |
| | print(f"Time taken: {end_time - start_time:.2f} seconds") |
| | print("β
Simple query completed") |
| | |
| | return True |
| | except Exception as e: |
| | print(f"β Simple query error: {e}") |
| | return False |
| |
|
| |
|
| | def main(): |
| | """Run all tests""" |
| | print("LangGraph Agent System - Test Suite") |
| | print("=" * 50) |
| | |
| | tests = [ |
| | test_imports, |
| | test_memory_system, |
| | test_tracing_system, |
| | test_individual_agents, |
| | test_graph_creation, |
| | test_simple_query |
| | ] |
| | |
| | results = [] |
| | for test_func in tests: |
| | try: |
| | result = test_func() |
| | results.append(result) |
| | except Exception as e: |
| | print(f"β Test {test_func.__name__} failed with exception: {e}") |
| | results.append(False) |
| | |
| | |
| | print("\n" + "=" * 50) |
| | print("Test Summary:") |
| | print(f"Passed: {sum(results)}/{len(results)}") |
| | print(f"Failed: {len(results) - sum(results)}/{len(results)}") |
| | |
| | if all(results): |
| | print("π All tests passed!") |
| | return 0 |
| | else: |
| | print("β οΈ Some tests failed. Check the output above for details.") |
| | return 1 |
| |
|
| |
|
| | if __name__ == "__main__": |
| | sys.exit(main()) |