Testing & reliability for AI agents
Catch failures before your users do.
Three lines of code. Every LLM call traced, every response evaluated, every regression caught.
Drop-in support for major frameworks
One decorator. Full visibility.
Add @observe to your agent. Every LLM call, tool use, and decision is traced automatically.
from twosignal import TwoSignal, observe
ts = TwoSignal()
@observe # that's it
def support_agent(query):
context = retrieve_docs(query)
response = llm.chat(query, context)
return responseSee what your agents are doing.
Run evaluations on every trace. See what broke, why, and how to fix it.
$ 2signal run --suite regression-v3
accuracy 0.92 (+0.03)
safety 0.98
latency 1.2s (+0.4s) ⚠
regressions 3
✓ 844 passed ✗ 3 failed 34sHow it works
No behavior changes. Your agent runs exactly the same — we just watch.
Instrument
Install the SDK and add @observe to your agent function. Every LLM call, tool use, and decision gets traced — your agent's behavior doesn't change.
Evaluate
Each trace runs through your configured evaluators automatically. Accuracy, safety, latency, cost — scored in the background, no extra code needed.
Ship
Scores drop, latency spikes, or a new prompt breaks something? You'll know immediately — before your users open a support ticket.
How we’re different
Most observability tools make you choose between tracing and testing. We don’t.
What engineers are saying
Teams ship more reliable agents with 2signal.
“We were spending hours manually reviewing agent outputs. 2signal's evaluators catch the regressions we used to miss, automatically.”
“The @observe decorator took 2 minutes to add. We had full visibility into our agent pipeline the same day.”
“Model routing alone cut our LLM costs by 60%. Simple queries go to mini, complex ones to GPT-4o. Took 10 minutes to set up.”
10,000 traces free. No credit card.
Unlimited deterministic evals on every plan. Bring your own API key for unlimited LLM evals.
- 10,000 traces/mo
- 500 LLM evals/mo
- Unlimited deterministic evals
- 7-day retention
- 1 seat
- Community support
- 50,000 traces/mo
- 5,000 LLM evals/mo
- Unlimited deterministic evals
- 30-day retention
- 3 seats
- Email alerts
- Overage billing
- 150,000 traces/mo
- 15,000 LLM evals/mo
- Unlimited deterministic evals
- 60-day retention
- Unlimited seats
- Email + Slack alerts
- Basic roles
- Overage billing
- 500,000 traces/mo
- 50,000 LLM evals/mo
- Unlimited deterministic evals
- 90-day retention
- Unlimited seats
- Full RBAC
- All alert channels
- Dedicated support
Questions
Start free. Ship with confidence.
Set up in under two minutes. See your first trace before your coffee gets cold.