Basic Usage
Copy
import asyncio
from upsonic import Agent, Task
from upsonic.eval import PerformanceEvaluator
agent = Agent(
model="anthropic/claude-sonnet-4-5",
name="Assistant",
)
task = Task(description="What is 5 + 5?")
evaluator = PerformanceEvaluator(
agent_under_test=agent,
task=task,
num_iterations=5,
warmup_runs=2,
)
result = asyncio.run(evaluator.run(print_results=True))
print(f"Avg latency: {result.latency_stats['average'] * 1000:.0f} ms")
print(f"Median latency: {result.latency_stats['median'] * 1000:.0f} ms")
print(f"Min/Max: {result.latency_stats['min'] * 1000:.0f} ms / {result.latency_stats['max'] * 1000:.0f} ms")
With a Task List
When a list of tasks is provided, the Agent executes the first task in the list for each iteration.Copy
import asyncio
from upsonic import Agent, Task
from upsonic.eval import PerformanceEvaluator
agent = Agent(
model="anthropic/claude-sonnet-4-5",
name="Assistant",
)
tasks = [
Task(description="What is 3 * 3?"),
Task(description="What is 7 + 2?"),
]
evaluator = PerformanceEvaluator(
agent_under_test=agent,
task=tasks,
num_iterations=3,
warmup_runs=1,
)
result = asyncio.run(evaluator.run(print_results=True))
for run in result.all_runs:
print(f" Latency: {run.latency_seconds:.2f}s | Memory increase: {run.memory_increase_bytes} bytes")

