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.

Before you start

Two things this path assumes, neither of which the code below does for you:
This path records; it does not enforce. The SDK captures what your agent did. Policies fire from a hook inside an agent CLI, so enforcing on a framework agent means putting a hook in your own runtime — see Policies.

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 set up and connected with failproofai config --status. If it is not, run failproofai config. See Choose your setup.
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.
To prove the SDK is writing at all, stop the daemon first, then run your session and look in ~/.failproofai/custom-agents/events/. With the daemon running, an empty directory is the healthy state.
Run failproofai config afterwards to put it back. While the daemon is stopped, hook events on this machine have no evaluator and are denied, so stop it only for as long as the check takes.

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.