Docs

How Ravel works

Ravel is a debugger for AI agents and MCP tools. It records a run as it happens, so when the agent gets something wrong you go back to the step where it went wrong instead of starting over.

The loop

Debugging an agent usually means running it again and hoping it fails the same way. Ravel keeps the failed run, so the same four steps work every time.

  1. Open the recorded runSee every model turn and tool call in the order it happened, with the data each tool returned.
  2. Change the instruction at the bad stepPick the step where the run went wrong and write what the agent should have done there.
  3. Replay a new branch on the saved dataThe agent continues from that step. Its tool calls are answered from the recording.
  4. Compare, then keep the caseRead the original answer next to the new one, and save the run as a test.

Try it in the recorder with the demo run.

Concepts

Run
One execution of an agent on one task, from the first message to the final answer.
Step
One thing the agent did during a run: a tool call, or a model turn that drafted or returned text.
Tool result
What a tool returned for a call. Ravel stores it with the call's name and arguments, so a replay can reuse it.
Branch
A second ending for a run. It shares every step before the one you changed and has its own answer after it. The original is never overwritten.
Scenario
A saved input with the answer you expect, replayed as a test whenever the instruction changes.

What gets recorded

The recorder sits on the tool-calling loop. For every turn it keeps the messages sent to the model, the tool calls the model asked for, and what each tool answered. That is enough to rebuild the conversation at any step.

{
  "run": "018",
  "step": 1,
  "type": "tool_call",
  "call_id": "call_01",
  "name": "get_latest_release",
  "arguments": { "repo": "demo/recorder" },
  "result": { "tag_name": "v0.4.2", "published_at": "2026-10-06T09:12:44Z" }
}

This is a tool step from the demo run. The storage format is not final.

The first version targets the OpenRouter tool-calling loop with one built-in agent. MCP tools fit the same shape: a call with a name and arguments, and a result.

Replaying a branch

When you press Replay from here on a step, four things happen.

  1. Earlier steps are reusedEverything before the step you picked is taken from the recording exactly as it was.
  2. Your instruction is addedThe override goes in at that step, in front of the model's next turn.
  3. The model continuesWhen it calls a tool, the answer comes from the saved result. No live system is touched.
  4. The answer is stored as a branchIt sits next to the original, ready to compare.

Because the tool results are reused, the only new work in a replay is the model continuation. That is the part that uses credits. Playing back a branch that is already stored costs nothing.

Recorded data
The default. Tool calls are answered from the recording, so the replay sees exactly what the original run saw.
Fresh reads
Planned. Tool calls would go to the live tools again, for checking a fix against current data. It is switched off in the demo.

Scenarios

A mistake you have fixed once should not come back. Saving a branch as a scenario keeps the input that caused the mistake together with the answer you now expect.

After that, every change to the instruction can be checked against the whole set. A scenario passes when the replayed answer does what you expected, and fails with the answer it gave instead.

The scenarios page shows the demo set. One of them fails on purpose with the starting instruction, so you can fix it yourself.

Credits and $RAVEL

New AI runs are paid with prepaid credits, bought with SOL. Opening recordings and playing back stored branches is free.

Holding $RAVEL unlocks longer history retention and more private tests.

Rates, limits and the holding threshold are not set yet. The numbers on the credits page are demo estimates.

Status

Ravel is a concept. This site is the first piece of it.

  • BuiltThis site, and the replay room running on recorded demo runs.
  • Stand-inThe model continuation in the demo is a fixed rule set, not a model call. It reads the saved tool results and your instruction.
  • Not builtRecording a live agent, wallet connection, buying credits and $RAVEL checks.
  • MVPOne built-in agent, tool-call recording and replay on the OpenRouter tool-calling loop.