| """ |
| Test script for the new LangGraph Multi-Agent System |
| |
| This script tests the complete workflow: |
| - Lead Agent orchestration |
| - Research Agent information gathering |
| - Code Agent computational tasks |
| - Answer Formatter GAIA compliance |
| - Memory system integration |
| """ |
|
|
| import asyncio |
| import os |
| from dotenv import load_dotenv |
| from langgraph_agent_system import run_agent_system |
|
|
| |
| load_dotenv("env.local") |
|
|
|
|
| async def test_simple_factual_question(): |
| """Test with a simple factual question that should primarily use research""" |
| print("π§ͺ Testing simple factual question...") |
| |
| query = "What is the capital of Maharashtra?" |
| result = await run_agent_system( |
| query=query, |
| user_id="test_user_1", |
| session_id="test_session_1" |
| ) |
| |
| print(f"Query: {query}") |
| print(f"Result: {result}") |
| print("-" * 50) |
| return result |
|
|
|
|
| async def test_computational_question(): |
| """Test with a computational question that should use both research and code""" |
| print("π§ͺ Testing computational question...") |
| |
| query = "What is 25 + 17 * 3?" |
| result = await run_agent_system( |
| query=query, |
| user_id="test_user_2", |
| session_id="test_session_2" |
| ) |
| |
| print(f"Query: {query}") |
| print(f"Result: {result}") |
| print("-" * 50) |
| return result |
|
|
|
|
| async def test_complex_question(): |
| """Test with a complex question requiring both research and computation""" |
| print("π§ͺ Testing complex question...") |
| |
| query = "How many seconds are there in a week? Show the calculation." |
| result = await run_agent_system( |
| query=query, |
| user_id="test_user_3", |
| session_id="test_session_3" |
| ) |
| |
| print(f"Query: {query}") |
| print(f"Result: {result}") |
| print("-" * 50) |
| return result |
|
|
|
|
| async def test_list_question(): |
| """Test with a question that should return a list""" |
| print("π§ͺ Testing list question...") |
| |
| query = "What are the first 3 prime numbers?" |
| result = await run_agent_system( |
| query=query, |
| user_id="test_user_4", |
| session_id="test_session_4" |
| ) |
| |
| print(f"Query: {query}") |
| print(f"Result: {result}") |
| print("-" * 50) |
| return result |
|
|
|
|
| async def run_all_tests(): |
| """Run all test cases""" |
| print("π Starting Multi-Agent System Tests") |
| print("=" * 60) |
| |
| tests = [ |
| test_simple_factual_question, |
| test_computational_question, |
| test_complex_question, |
| test_list_question |
| ] |
| |
| results = [] |
| for test_func in tests: |
| try: |
| result = await test_func() |
| results.append(("PASS", test_func.__name__, result)) |
| except Exception as e: |
| print(f"β {test_func.__name__} failed: {e}") |
| results.append(("FAIL", test_func.__name__, str(e))) |
| |
| |
| print("=" * 60) |
| print("π Test Results Summary:") |
| for status, test_name, result in results: |
| status_emoji = "β
" if status == "PASS" else "β" |
| print(f"{status_emoji} {test_name}: {status}") |
| if status == "PASS": |
| print(f" Result: {result[:100]}...") |
| |
| passed = sum(1 for status, _, _ in results if status == "PASS") |
| total = len(results) |
| print(f"\nπ Tests passed: {passed}/{total}") |
|
|
|
|
| if __name__ == "__main__": |
| |
| required_env_vars = ["GROQ_API_KEY", "LANGFUSE_PUBLIC_KEY", "LANGFUSE_SECRET_KEY", "LANGFUSE_HOST"] |
| missing_vars = [var for var in required_env_vars if not os.getenv(var)] |
| |
| if missing_vars: |
| print(f"β Missing required environment variables: {missing_vars}") |
| print("Please set up your environment variables in env.local") |
| exit(1) |
| |
| |
| asyncio.run(run_all_tests()) |