Not the error — the handoff that caused it. Rifft traces bad state back to its origin, classifies the failure mode, and lets you replay from the exact broken handoff.
By continuing, you acknowledge Rifft's Privacy Policy and Terms.
An agent passes ungrounded or hallucinated content to the next step without any validation gate.
> citation_url: None > publisher accepted it anyway↗
An agent calls the same tool repeatedly on the same input, running until the context window fills.
> search("climate change") ×14
> terminated by token limit↗An agent sends a different schema than the next agent expects, causing a silent parse failure downstream.
> expected: {sources: string[]}
> received: {refs: object[]}↗Accumulated context exceeds limits, causing truncation of instructions or prior reasoning mid-run.
> ctx: 128 041 / 128 000 tokens > truncated system prompt at step 8↗
Wrap your existing crew, graph, or chat manager. Rifft picks up handoffs, tool calls, and state mutations automatically.
One import wraps your agent harness. We pick up handoffs, tool calls, and state mutations automatically — no decorators on every function.
When a run fails, Rifft walks backwards through spans to find the first place the state went wrong. You see the cause, not the symptom.
Replay from any span with patched inputs, validators, or an entirely new agent. Diff the runs side-by-side. Promote the fix.
from rifft import trace @trace(agent_id="research") def run(query): crew = Crew(agents=[ planner, researcher, publisher]) return crew.kickoff(query)
For individual developers exploring Rifft.
For teams running agents in production.
For high-volume pipelines and larger orgs.
When the visible failure is downstream from the actual cause, Rifft walks backwards through spans to the handoff that introduced bad state — not the error message you actually saw.
MAST classification turns raw trace noise into recognizable patterns: unverified output, tool loop, handoff mismatch, context overflow. Pattern-match, not log-grep.
Fork from any handoff, keep the successful steps, and test a fix without rerunning the whole workflow. Promote the replay to main.
Drop in four lines of Python or TypeScript. Rifft instruments your agent harness, streams spans to the collector, and shows you the first causal chain before you close the terminal.