Subject Agent Frameworks
Date Feb 2026
Section 04 / 07
04

Two tools to rule them all

The tools provided to an agent encode assumptions about how things should be done. A search_web → get_reviews → check_availability pipeline implies a specific strategy. It limits the ability of the model to figure out how to reach the goal.

Bash and the file system in contrast are universal tools that Agent SDKs have made a choice to consider a given. In this part, I'll look into why and how those tools change the game.

The limits of predefined tools

Tools define what the agent can do. If you give it search_web, read_file, and send_email, those are its capabilities. Nothing more.

Every capability must be anticipated and implemented in advance:

Even slight changes in the task require updating the tool set. Say you built a send_email(to, subject, body) tool. Now the user wants to attach a file — you need an attachments parameter. Then they want to CC someone — another parameter. Each small requirement change means updating the tool's schema and implementation.

Designing an effective tool list is a hard balance to strike. Anthropic's guidance on tool design puts it directly: "Too many tools or overlapping tools can distract agents from pursuing efficient strategies." But too few tools, or tools that are too narrow, can prevent the agent from solving the problem at all.

Bash as the universal tool

Bash is the Unix shell: a command-line interface that has been around since 1989

It is the standard way to interact with Unix-like systems (Linux, macOS). You type commands, the shell executes them, you see the output.

Consider a task like: "find all log files from this week, check which ones contain errors, and count the number of errors in each."

# Find log files from the last 7 days
find . -name "*.log" -mtime -7

# Which ones contain errors
grep -l "ERROR" $(find . -name "*.log" -mtime -7)

# Count errors in each
for f in $(find . -name "*.log" -mtime -7); do
  echo "$f: $(grep -c 'ERROR' "$f") errors"
done

Why does bash matter for agents?

Bash scripts can replace specialized tools:

Vercel achieved 100% success rate. 3.5x faster. 37% fewer tokens :

Bash is not just more flexible — it is also faster.

Each tool call means an additional inference. Calling a lot of tools is expensive:

With bash, the agent can write a script that chains multiple operations together and save on intermediate inferences:

The filesystem as the universal persistence layer

To persist an information, a user-facing artifact, a plan or intermediate results, an agent needs a tool and a storage mechanism.

Predefined persistence tools have the same problem as predefined action tools:

The filesystem has no predefined schema or constraints:

The filesystem allows the agent to communicate with itself:

What to keep in mind