Loading the documentation…
A Ralph loop runs one objective as a chain of fresh rounds: each round starts a new agent with no memory of your chat, works, and reports whether to carry on. DataMind Oda starts a loop only when you ask for one, and the loop holds the turn until a round reports the work done or the rounds run out.
ralph that shows your objective, and the turn it runs in does not finish until the whole loop settles.Use the ralph tool ONLY when the direct human explicitly asks for a Ralph loop or fresh-agent iterative execution.The call supplies data only. The loop itself, the route to the child agents, the shape of the round reports and the handoff checks are fixed by the deployment, and a call cannot change them.
| Field | What it carries |
|---|---|
objective | Required. The immutable completion objective for every fresh Ralph round. Every round receives the same one. |
maxRounds | Optional. Optional positive safe-integer round cap, bounded by the deployment ceiling. |
continue (next steps, no blocker), complete (evidence, no next steps, no blocker) or blocked (a concrete blocker). A report that is missing, does not fit its state, or runs over the handoff cap ends the run.complete, blocked or budget-limited, and the result carries the last bounded report and how many rounds ran.Ralph worker reported completion after <n>.Ralph worker reported a blocker after <n>.Ralph reached its <n> limit; the worker reported work remaining.<n> reads as the number of rounds, such as 1 round or 2 rounds.Ralph round <n> child failed before producing a structured report. and carries Last successful handoff: with the last report, or No previous handoff was available. when there is none. A round failure is terminal for the loop.Ralph workflow was cancelled. A loop that fails gives Ralph workflow failed: followed by the failure.maxRounds, but not more. The round count is the only bound on a loop's total effort; no elapsed-time deadline stops it.… [truncated] notice.Completion and blockers are worker reports, not independent evaluation.The call is checked before any round starts, and a loop that fails a check starts nothing. Each refusal names its reason:
Ralph objective must be a non-empty string;Ralph maxRounds must be a positive safe integer;Ralph maxRounds <value> exceeds the deployment ceiling <ceiling>;Ralph tool requires a calling agent (exec. agent was undefined);Ralph subagent provider "<name>" is not registered;Ralph subagent provider "<name>" does not support structured output;Ralph subagent provider "<name>" inherits parent context; Ralph requires a fresh provider.No. Oda starts a loop only when you explicitly ask for one. Everything else stays with its usual tools: goals for long-running objectives, subagents and workflows for delegation and fan-out.
ralph card in my chat?It is the loop's call, shown as a card. It carries the objective the loop works toward and holds the turn until the whole loop settles.
Through a bounded handoff and the workspace. Every round starts fresh, with no conversation seed and no history of the chat; only the last round's closing report crosses to the next round, capped at 16,384 characters. The shared workspace is the only other long-term memory the rounds share.
Not in the chat. The chat shows the loop's card and one closing result; the rounds' inner reports do not appear there. In Activity, the loop is a single Ralph row with each round as a member.
The round count bounds a loop, not the clock: no elapsed-time deadline stops it, and 256 rounds is the default and the ceiling for one run. A call can set a smaller maxRounds, but a cap over the ceiling is refused: Ralph maxRounds <value> exceeds the deployment ceiling <ceiling>.
The loop stops. The result reads Ralph worker reported a blocker after <n>., and it carries the last report. The loop does not continue on its own.
budget-limited ending mean?The loop reached its round limit while the last report still had work remaining. The result reads Ralph reached its <n> limit; the worker reported work remaining., and it carries the last bounded report and the rounds that ran.
No. The objective is immutable: every round receives the same one, and there is no way to edit it while the loop runs. Stop the loop and ask again with the new objective.
Yes. The loop holds the turn it runs in, so stopping that turn cancels it (Stopping Oda and queued messages), and the result reads Ralph workflow was cancelled.
No. A loop 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.
A check failed before any round started: an empty objective, a round cap that is not a positive whole number or passes the ceiling, or a child-agent route that is not registered, cannot produce structured reports, or would start from the chat's own context. A refused loop starts nothing, and the refusal names its reason (Why a loop is refused).