tools object; memory is its own memory block. All
three are part of the agent configuration, so enabling one creates a new
revision.
agent.json
tools is an allowlist: a tool’s block offers it, its absence withholds it, and
an unknown name is rejected with 400. The blocks carry no options yet —
{} is the whole configuration. In the CLI, --tool web_search --tool terminal builds the same object; memory needs an --agent-file.
Web search
web_search tool: a query in, a ranked list of results out,
each with a title, URL, and a relevant snippet of the page — not the page
itself. The model chooses how many results to ask for (5 by default, at most
20 per call). The search runs on Albus’s own account; there is nothing to
configure and no key to bring.
Use it when answers depend on current facts — documentation, status pages,
prices, news — or when the agent should cite sources. Steer it from the
system_prompt (“search before answering questions about third-party APIs”,
“cite the URL you relied on”), and read the tool_call spans named
WEB_SEARCH in the trace
to see the queries the model actually issued and what came back.
Terminal
terminal tool: one bash command in, the command’s combined
stdout and stderr and its exit code out. Commands run on a persistent Linux
machine dedicated to the session, with Python 3 and common scripting and
data libraries (pandas, numpy, requests, matplotlib, scipy) preinstalled.
What “persistent” means:
- The filesystem survives across commands and across the session’s runs, so a file written in one invocation is there in the next. It does not cross sessions.
- The machine sleeps after a few minutes of inactivity and resumes transparently on the next command.
- Output beyond 64 KB is truncated, and the result says so
(
output_truncated: true); the tool’s description tells the model to write large output to a file and read it selectively. - In the rare case the machine is lost and must be replaced, the result carries
sandbox_recreated: trueand the model is instructed to tell the user that previous files are gone.
curl, verify a computation. It is also the tool to
withhold from an agent that should only read and reason — see limit the tools
the agent can see.
Every command, its output, and its exit code is recorded as a tool_call span
named TERMINAL in the trace and a tool_call event in the
audit log.
Memory
group reads the same
memories and contributes to them, whichever session it runs in. The key is
yours to choose (1–256 characters; letters, digits, punctuation, and spaces) and
means whatever you want it to — an end user, a team, a project, one agent.
generation lists the points at which the agent may write memories, and at
least one is required:
With any
memory block the model also gets a memory_search tool, which
recalls memories ranked by relevance to a query, so it can look things up from
earlier sessions on its own. A memory is a short fact stated as the agent stated
it; a later memory that supersedes one marks the earlier one invalidated, and
agents stop reading it.
Memory is different from session history. A session already carries its own
last 1000 messages into each run; memory is what carries knowledge between
sessions — a customer’s environment, a preference, a decision made last week.
Read and prune a group over the API or in the console under Memories: