Skip to main content
Your agent already produces everything worth recording — model calls, tool calls, node boundaries, human waits, failures. The framework throws it away. The SDK keeps it.

Custom agents

An agent you wrote yourself, or one not listed here.

LangChain and LangGraph

Graphs, nodes, tools, retrievers, models.

CrewAI

Crews, flows, agents by role, tools.

LlamaIndex

Workflows, steps, function agents, retrievers.

Pydantic AI

Typed agents, capabilities, tools, retries.

Three lines, whichever framework

No decorators on your functions, no callback passed to your calls, no ids threaded through your code. Only the call inside the session differs:
The extra installs the framework. Every adapter ships in the base wheel, so a project that already has its framework needs no extra at all.

Check it arrived

Run one instrumented session, then open Observe → Sessions and select your environment. The run appears as a reconstructed trace. If nothing arrives, confirm the machine is connected with failproofai config --status. See Set up capture.
Do not check the spool directory to confirm delivery. The Failproof daemon collects and deletes each batch within milliseconds, so reading it races the collector and shows far fewer events than were emitted.

Next

Each quickstart above links to its full guide — what gets recorded, options, streaming, span naming, and the problems people actually hit. They live under Trace Agents → Plug in your agent.

How it works

The data model, the ids, the event types, and how events reach Cloud.

Read a trace

Follow causality through a session instead of disconnected logs.

Find your first failure

Audit the sessions you just captured.