The Ralph tool

The ralph tool runs a loop of fresh agent rounds toward one objective, until a round reports the work done or the rounds run out. This page is the developer reference for the tool in DataMind Oda: when Oda may call it, what a call carries, how rounds and reports work, and the limits that apply.

What the tool is

When Oda may use it

The call's fields

FieldWhat it carries
objectiveRequired. The immutable completion objective for every fresh Ralph round. Every round receives the same one.
maxRoundsOptional. Optional positive safe-integer round cap, bounded by the deployment ceiling.

The call is checked before any round starts. It fails its checks, and starts nothing, when:

The configured child-agent provider is checked the same way. It must be registered (Ralph subagent provider "<name>" is not registered), support structured output (Ralph subagent provider "<name>" does not support structured output) and start fresh rather than inherit the parent context (Ralph subagent provider "<name>" inherits parent context; Ralph requires a fresh provider).

Rounds and reports

How a loop ends

EndingThe call renders
A round reported completionRalph worker reported completion after <n>.
A round reported a blockerRalph worker reported a blocker after <n>.
The round limit was reachedRalph reached its <n> limit; the worker reported work remaining.

In these lines <n> reads as the number of rounds, such as 1 round or 2 rounds.

The limits that apply

The settings behind the tool

Questions, answered

How do I get Oda to run a Ralph loop?

Ask for it in your own words, as a Ralph loop or fresh-agent iteration; Oda reaches for the tool only on that explicit ask. The capability also sits behind an advanced feature: the Ralph autonomous loop stays off until you turn it on in Settings > Developer > Advanced features (Advanced features catalog). The call then shows as a card titled ralph.

How many rounds can a loop run?

maxRounds is optional, and 256 rounds is the default and the ceiling for one run, so a call can set a smaller cap but nothing above it. A cap over the ceiling is refused: Ralph maxRounds <value> exceeds the deployment ceiling <ceiling>.

Why was my Ralph call refused before it started?

The checks run before any round starts, and each refusal names its reason: an empty objective, a round cap that is not a positive whole number or that passes the deployment ceiling, a child-agent provider that is not registered, does not support structured output or inherits the parent context, or a call with no chat behind it. The field and provider checks above quote each message.

Do the rounds see my conversation?

No. Every round starts a fresh child with no conversation seed and no parent history; only the round's bounded report crosses to the next round, and the workspace is the only other memory the rounds share.

What does a round's report contain?

A state, continue, complete or blocked, with the fields that state requires: next steps for a continuing round, evidence for a completed one, and a concrete blocker for a blocked one. A report that does not fit its state ends the run.

What happens if a round fails?

The loop stops. The result reads Ralph round <n> child failed before producing a structured report. and carries the last successful handoff, or No previous handoff was available. when there is none. An ordinary child failure is terminal for the run.

Can a Ralph loop run in the background?

No. A Ralph loop is foreground work: it holds the turn until the whole loop settles, and it has no job id, no background start and no resume. The workflow tool is the tool whose runs can start as background jobs.

What does the budget-limited ending mean?

The loop reached its round limit while the last report still had work remaining. The call renders Ralph reached its <n> limit; the worker reported work remaining., and the result carries the last bounded report and the rounds that ran.

Can I stop a running Ralph loop?

Yes. A loop holds the turn it runs in, so stopping that turn cancels it (Stopping Oda and queued messages); the call comes back as Ralph workflow was cancelled. In Activity, its Ralph row offers Stop like other running work (Activity rows and actions).