Repeated steps and tool timeouts

DataMind Oda works through a task step by step, and two checks keep that work on track: one notices when Oda repeats the exact same step, and one cuts a step off when it passes its time limit. This page explains what both look like in the chat, and what, if anything, you need to do.

When Oda repeats a step

While it works, Oda follows its own steps. When it makes the exact same call with the exact same arguments several times in a row, reminders appear in the conversation, prompting Oda to check its approach:

text
You are repeating the exact same tool call with identical arguments. Carefully analyze the previous result before calling again: if the task is not complete, try a different approach or different arguments instead of repeating the call.
text
Repeated tool call detected:
- tool: <tool>
- consecutive_calls: <count>
- arguments: <arguments>

The repeated calls are not making progress. Do not call this tool with these exact arguments again. Inspect the latest result and choose a different action, different arguments, or finish the task if enough evidence has been gathered.

When a step is cut off by a timeout

Only steps that carry a time limit get a deadline. When one passes its limit, Oda receives a timeout result and decides what to do next, rather than waiting without end.

StepTime limit
Searching the web, reading a page30,000 ms (30 seconds) by default
Reading, writing and editing filesnone; these steps are never cut off
Shell commandstheir own limits apply; see Shell commands
text
Error: tool call timed out after <ms>ms

Oda reads it and chooses the next step, for example a retry, a different approach, or ending the work. How a failed step appears in the chat is on Tool calls in the chat.

What can be tuned

Both checks are on by default. The repeat reminder can be tuned for your installation:

The timeouts have no settings of their own: each step that carries a limit brings it. A setting that is not valid fails at start-up with an error, instead of changing the behaviour silently.

Questions, answered

Why did Oda get a reminder that it is repeating a tool call?

Because it made the exact same call with the exact same arguments several times in a row. On the third identical call Oda gets a short reminder, and on the fifth and eighth a detailed one. The reminder is advice: it never blocks or delays the call.

Does the reminder block the repeated call?

No. The reminder never blocks or delays a call, and it does not stop the task. Oda decides for itself whether to repeat, change the arguments, try another way or finish.

How many identical calls trigger a reminder?

Three by default: a short reminder on the third repeat, and detailed ones on the fifth and eighth. The counts can be tuned for your installation.

What counts as a repeat of the same call?

The same step called with the same arguments; the order of the arguments does not matter. Any other call starts the count over. A call that was refused still counts if Oda makes the same call again.

Does the repeat count reset when I send a new message?

Yes. Your next message clears the count; shortening a long chat does not, only a new message from you resets it.

Why did a reminder appear when repeating was reasonable?

The check counts exact repeats and does not judge why, so repeating something on purpose can still draw a reminder. Past the eighth repeat the reminders stop for that streak.

Which steps can be cut off by a timeout?

Only steps that carry a time limit. Searching the web and reading a page carry one (30,000 ms, 30 seconds, by default); file steps carry none; and shell commands have their own limits, on Shell commands.

What does Error: tool call timed out after <ms>ms mean?

The step passed its time limit, and Oda received this timeout in place of the step's own result. It is an ordinary error result, not a stop of the task: Oda reads it and decides what to do next, for example retry or try another way.

Does a timeout force a step to stop?

No. The timeout asks the step to stop, and Oda's timeout result arrives once the step responds to that ask. A step that ignores the request can keep things waiting; the timeout cannot force it to end.

Does a task have an overall time limit?

No. There is no blanket time budget: timeouts apply step by step, and only to the steps that carry a limit.

Can the reminders be changed?

Yes, for your installation: the repeat counts, the steps that are watched or skipped (with * as a wildcard), and how much of the arguments the detailed reminder shows. An invalid setting fails at start-up instead of changing the behaviour silently.