From traces to structured events
Signals are powered by our trace analysis agent. The Signals agent takes three inputs:- Trace: the agent run to analyze.
- Prompt: what to look for.
- JSON schema: what to record when it finds a match.
A coding agent's report contradicts its own test output, and the Signals agent records it as a structured event.
Each finished trace is checked against the Signal's trigger and filters, then read by the Signals agent. A matching trace produces an event that is grouped into a cluster, stored for SQL, and checked against your alerts.
Example: catch a report that contradicts its own evidence
In the trace above, a coding agent reports its work as done despite two failing tests. It blames both failures on the same pre-existing problem, but one test log shows a different error. Every tool call succeeded. The mistake is in the agent’s reasoning, and if you trust its report, you’ll look for the wrong bug. To find reports that contradict the agent’s own evidence, we created a Signal with the following prompt:Does the agent’s final report state a conclusion that its own tool outputs contradict? Record the claim and the evidence against it.The schema defines three fields:
claim: the statement in the final report.evidence: the tool output that contradicts it.claim_type: one ofroot_cause,completion,verification, orother.
claim_type across traces to see which kinds of claims our agent gets wrong most often.
Cost efficient and reliable analysis on every trace
To monitor an agent in production, trace analysis needs to be accurate enough to trust and cheap enough to run on every trace. Sampling leaves failures unseen, while noisy results make alerts hard to act on. Off-the-shelf models often force a tradeoff: cheaper models miss failures or flag problems the evidence doesn’t support, while more capable models make analyzing every trace too expensive at production scale. We trained flow-1 with reinforcement learning specifically for agent trace analysis to meet both requirements:- Quality: it matches GPT-6-sol in failure detection quality on our benchmark, while being 23x cheaper.
- Cost: It would cost just $3.5 on average to process 1k traces of 100k tokens each. Learn more about Signals pricing here, and cap your spend with usage warnings and hard limits.
One dot per trace analyzed for $1.
Define your own trace analysis
Signals are a general way to analyze traces. You decide what to look for and what to record. A prompt can ask a broad question, combine several conditions, or compare evidence across different steps. The output schema gives you control over the fields and categories in the result. For example, you could ask a Signal to:- Detect a specific behavior: Did the agent promise a refund without calling the refund tool? Record the promise and the missing action.
- Classify a conversation: What was the user trying to accomplish, and was it resolved? Return an intent and an outcome.
- Extract information: Which integrations did the user ask for? Collect the integration names and the requests they made.
- Compare evidence: Do the amounts in the contract agree with the accompanying memo? Record any mismatches and where they appear.
Get started
If you’re new to Laminar, start by sending your agent’s traces. Every new project includes a Failure Detector Signal. Open Signals in your project to inspect its findings. When you create your own Signal, review its findings on representative traces before relying on its alerts. The results are model judgments, and the linked evidence lets you check them.Quickstart
Create your first Signal and inspect its events.
CLI
Define and manage Signals from your terminal.
Clusters
Explore recurring patterns across traces.
Alerts
Get notified when a Signal finds an issue or a new event cluster forms.