Normal code: Fixed inputs → Fixed outputs
Agents: Variable inputs → Unpredictable outputs
You need different testing strategies.
import unittest
class TestWeatherTool(unittest.TestCase):
def test_valid_city(self):
result = weather_tool("London")
self.assertIn("°C", result)
def test_invalid_city(self):
result = weather_tool("InvalidCity123")
self.assertNotNone(result)
def test_special_characters(self):
result = weather_tool("São Paulo")
self.assertIsInstance(result, str)
python
def test_agent_end_to_end():
agent = initialize_agent(tools, llm)
test_cases = [
("What's the weather in Paris?", "temperature"),
("Get me latest news", "news"),
("Calculate 5+5", "10")
]
for query, expected_keyword in test_cases:
result = agent.run(query)
assert expected_keyword.lower() in result.lower()
agent = initialize_agent(
tools, llm, verbose=True, # See every step
agent_type="zero-shot-react-description"
)
python
import logging
logger = logging.getLogger(__name__)
def debug_agent_run(query):
logger.info(f"Input: {query}")
result = agent.run(query)
logger.info(f"Output: {result}")
return result
python
from datetime import datetime
class AgentMonitor:
def __init__(self):
self.runs = []
def log_run(self, query, result, duration, success):
self.runs.append({
"timestamp": datetime.now(),
"query": query,
"result": result,
"duration": duration,
"success": success
})
def get_success_rate(self):
successful = sum(1 for r in self.runs if r["success"])
return successful / len(self.runs) if self.runs else 0
❌ Infinite Loops: Agent calls same tool repeatedly
🔧 Fix: Set max_iterations limit
❌ Wrong Tool Selection: Agent picks wrong tool
🔧 Fix: Better tool descriptions
❌ Timeouts: Agent takes too long
🔧 Fix: Add timeout handling
❌ API Failures: Tools fail silently
🔧 Fix: Explicit error handling
✅ Test with real data
✅ Set clear success criteria
✅ Monitor latency
✅ Track accuracy metrics
✅ Log all failures
✅ Set up alerts
✅ Test failure scenarios
✅ Version your agents
Agents are not deterministic. Testing is about confidence, not certainty.
How do you test your agents?