Ralph loops

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.

Ask for a Ralph loop

  1. Say what to complete, and ask for a Ralph loop, or a fresh-agent iteration, in your own words. Oda reaches for a loop only on that explicit ask; it never starts one by itself.
  2. Send the message. The loop appears as a card titled ralph that shows your objective, and the turn it runs in does not finish until the whole loop settles.

What happens in each round

How a loop ends

Follow a running loop

The limits behind a loop

Questions, answered

Does Oda ever start a Ralph loop on its own?

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.

What is the 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.

How do the rounds pass work between them?

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.

Do I see what each round did?

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.

How long can a loop keep going?

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.

What happens when a round reports a blocker?

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.

Can I change the objective while the loop runs?

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.

Why can't Oda run the loop I asked for?

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.