Tool catalog and session events

DataMind Oda works by taking steps: it reads files, runs commands, searches the web, delegates to helper agents and more. This page is the reference behind those steps: which tools Oda can use, how a chat is recorded, and the codes and counts a record can carry.

The tools Oda can use

Oda can use a wide set of tools. The list below covers the families common to most chats; how tools are offered to a model and controlled is on Tools and how they are offered.

Which tools a chat actually has depends on its preset: in a preset's Capabilities section, switches such as Read and edit files and Web search and pages turn capabilities on and off (Create a custom preset). The list above is the common set.

Where a tool name can appear

Tool names come from Oda's record, so you may meet them while reading a chat.

How Oda's work is recorded

Every chat is saved on your computer as a record that grows as the chat works. Oda adds each fact as it happens and never rewrites what is already written; opening a chat reads the record and continues it. The shape of the record, its turns and steps, is on Sessions and the transcript.

How the record reaches Oda's parts

Oda is built from parts, and a part can watch the record as it grows. Each fact reaches the watchers in one of three ways:

The way a fact is shared is fixed by Oda's design, one way per fact, and nothing you set in the app changes it.

The codes in Oda's records

A step's record can carry a short code describing how it ended, and the code stays with the record of that step. You do not need the codes to keep working, but they help when you report a problem: send them exactly as they appear.

CodeWhat it means
ABORTED_BEFORE_DISPATCH (also recorded as TOOL_ABORTED_BEFORE_DISPATCH)The call was stopped before it started, so nothing ran.
ABORTED (also recorded as TOOL_ABORTED)The call was stopped after it had started.
TOOL_NOT_STARTEDAfter a crash: a call that had not been recorded as started, so nothing ran; it can be retried if it is still needed.
TOOL_OUTCOME_UNKNOWNAfter a crash: a call whose result was never saved; Oda cannot tell whether it ran, so it does not repeat it blindly.
USER_REJECTEDThe call did not run because you rejected it; a note you gave with the rejection stays with it.
UNKNOWN_TOOLThe call named a tool this chat cannot use; it fails as an ordinary error, and the task can continue.
INVALID_ARGSThe call's arguments were refused before it ran because they did not match the tool's shape.
INVALID_TOOL_OUTPUTThe tool's result did not match the shape it declares, so the call failed rather than keeping it.
CODE_RUN_FAILEDA code run ended in failure; the record carries the kind of failure and any captured output.
CONTEXT_LENGTHA request went past the window of tokens the model can take at once.
DATAMIND_<code>Refusal codes from your DataMind server; the family includes DATAMIND_AUTH, DATAMIND_FORBIDDEN, DATAMIND_AUTH_UNAVAILABLE and DATAMIND_RENEWAL_FAILED.
TOKEN_EXPIRED, TOKEN_INVALID, AUTH_REQUIRED, IDLE_SESSION_EXPIRED, PASSWORD_CHANGED, SESSIONS_REVOKEDThe sign-in codes Oda renews for: it renews the sign-in once and tries the request again.

The full story behind stopped work is on Stopping Oda and queued messages, and the repairs after a crash are on Recovering sessions after a crash.

Token counts in a step's record

Questions, answered

Which tools can Oda use?

The families common to most chats are listed above: files and folders, commands, code runs, the web, planning, delegation and teams, skills, scheduled tasks, memory, earlier chats, workflows and questions. Which set a chat actually has depends on its preset; see Create a custom preset.

Do all chats have the same tools?

No. A preset decides which capabilities a chat may use, for example through switches such as Read and edit files and Web search and pages, so two chats on two presets can have different sets.

Why does a step show a tool name I do not recognise?

The name is the tool's own name, kept with the record of the step. The list above maps the common names to what they do; when a step cannot be laid out as its usual card, its plain record keeps the name visible too.

What do ABORTED_BEFORE_DISPATCH and ABORTED mean?

A stopped call that had not started records ABORTED_BEFORE_DISPATCH: nothing ran. A call that had already started records ABORTED. What a stop does to the rest of the work is on Stopping Oda and queued messages.

What does UNKNOWN_TOOL mean?

The call named a tool this chat cannot use, so it failed without running, and the task can continue without it. It is ordinary feedback for Oda, not a broken chat.

What does CONTEXT_LENGTH mean?

A request needed more than the window of tokens the model can take at once, so it could not be sent as it was. Long chats are handled by summarising older parts, so the work can continue.

What do the DATAMIND_ codes mean?

They are refusal codes from your DataMind server, covering sign-in and access; the family name is DATAMIND_<code>. A code in the renewing set (TOKEN_EXPIRED, TOKEN_INVALID, AUTH_REQUIRED, IDLE_SESSION_EXPIRED, PASSWORD_CHANGED, SESSIONS_REVOKED) means the sign-in needs renewing: Oda renews it once and tries the request again. If that fails, it says the sign-in could not be renewed and asks you to check the connection to your DataMind server.

What are cache-read tokens?

They are the part of a step's input that the model served from its own cache instead of reading afresh. Oda records them with the step's token counts. Because Oda keeps the opening of each request stable, from the second request of a turn the earlier, unchanged part comes from the cache.

Why does Oda refuse to open a chat with a record it does not know?

So it never guesses at history it cannot read fully. A record entry of a kind this version does not recognise stops the chat from opening, unless the entry is marked as safe to ignore; update DataMind Oda, or open the chat in the version that wrote it. See Opening sessions from other versions.

What happens to old entries when a long chat is summarised?

They stay in the record. Oda hides superseded entries from the active conversation; it does not delete them, so the chat's full history stays in its record.