Tech Stack Advisor - Code Viewer

← Back to File Tree

test_agents.py

Language: python | Path: test_agents.py | Lines: 80
"""Quick test script for all agents."""
import asyncio
from backend.src.agents import DatabaseAgent, InfrastructureAgent, CostAgent, SecurityAgent


async def test_agents() -> None:
    """Test all agents with sample context."""
    print("šŸš€ Testing Tech Stack Advisor Agents\n")

    # Sample context
    context = {
        "user_query": "Building a real-time chat application for 100K daily users",
        "dau": 100_000,
        "qps": 500,
        "rps": 500,
        "data_gb": 200,
        "data_type": "structured",
        "consistency": "strong",
        "workload_type": "realtime",
        "budget_conscious": True,
        "data_sensitivity": "medium",
        "public_facing": True,
    }

    print("šŸ“‹ Context:")
    print(f"  Query: {context['user_query']}")
    print(f"  DAU: {context['dau']:,}")
    print(f"  QPS: {context['qps']}")
    print()

    # Test Database Agent
    print("1ļøāƒ£  Testing Database Agent...")
    db_agent = DatabaseAgent()
    print(f"   Agent: {db_agent.name}")
    print(f"   Role: {db_agent.role}")
    print(f"   Tools: {len(db_agent.tools)}")
    print(f"   āœ“ Database Agent initialized")
    print()

    # Test Infrastructure Agent
    print("2ļøāƒ£  Testing Infrastructure Agent...")
    infra_agent = InfrastructureAgent()
    print(f"   Agent: {infra_agent.name}")
    print(f"   Role: {infra_agent.role}")
    print(f"   Tools: {len(infra_agent.tools)}")
    print(f"   āœ“ Infrastructure Agent initialized")
    print()

    # Test Cost Agent
    print("3ļøāƒ£  Testing Cost Agent...")
    cost_agent = CostAgent()
    print(f"   Agent: {cost_agent.name}")
    print(f"   Role: {cost_agent.role}")
    print(f"   Tools: {len(cost_agent.tools)}")
    print(f"   āœ“ Cost Agent initialized")
    print()

    # Test Security Agent
    print("4ļøāƒ£  Testing Security Agent...")
    security_agent = SecurityAgent()
    print(f"   Agent: {security_agent.name}")
    print(f"   Role: {security_agent.role}")
    print(f"   Tools: {len(security_agent.tools)}")
    print(f"   āœ“ Security Agent initialized")
    print()

    print("āœ… All agents initialized successfully!")
    print("\nšŸ“Š Summary:")
    print(f"  Total agents: 4")
    print(f"  Total tools: {sum([len(a.tools) for a in [db_agent, infra_agent, cost_agent, security_agent]])}")
    print()
    print("šŸŽÆ Next Steps:")
    print("  - Implement LangGraph orchestration workflow")
    print("  - Create FastAPI endpoints")
    print("  - Set up Qdrant vector store for RAG")
    print("  - Build Streamlit frontend")


if __name__ == "__main__":
    asyncio.run(test_agents())