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.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.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.… [truncated] notice.Ralph objective must be a non-empty string), and the child-agent route behind the loop must be registered, able to produce structured reports (Ralph subagent provider "<name>" does not support structured output) and start fresh rather than inherit the chat's context (Ralph subagent provider "<name>" inherits parent context; Ralph requires a fresh provider). A loop that fails a check starts nothing.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. The loop runs in the turn that called it, so stopping that turn cancels it.
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.
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.
The loop is refused before any round starts when a check fails: an empty objective, 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.