Skip to content

Tool ๐Ÿงฐ

Tools allow Agents to access information which is not in a Large Language Model (LLM) and to interact with their environment.

Clock ๐Ÿ•ฐ๏ธ

$schema: https://enola.dev/ai/agent
model: google://?model=gemini-2.5-flash-lite
description: Agent to answer questions about the current time.
instruction: You are a helpful agent who can answer user questions about the current time.
# TODO prompt: What's the current date and time?
tools:
  - clock

This clock tool makes the current date and time available to a model:

$ enola ai --lm="google://?model=gemini-2.5-flash-lite" --in "What's the time?"
I cannot tell you the current time. I do not have access to real-time information.

$ enola ai --agents=test/agents/clock.agent.yaml --in "What's the time?"
The current date & time in CET is Saturday, August 16, 2025, 11:42 PM.

Exec โ–ถ๏ธ

The exec tool can be used to run any command; for example, for something like this:

$schema: https://enola.dev/ai/agent
model: google://?model=gemini-2.5-flash
# TODO prompt
instruction:
  Generate a system summary using various Linux commands and format the output as a poem.
  For memory, do include both total as well as used, including buff/cache.
  For uptime, run it without any options, because not all versions support.
# TODO Limit allowed commands to e.g. only "uname -a", "df -h /", "free -m", "uptime" (or whatever)
tools:
  - exec

When this Agent is run, it would print (something like) this:

$ enola ai --agents=test/agents/linux-system-summary.agent.yaml --in="do it"

Xeon CPU runs fast,
Twelve cores, power strong.
Memory 62GiB,
56GiB now in use.
One day, twenty-one mins.
System running well,
Tasks flow with ease.

Security Consideration

The exec tool is very powerful, as it can run any shell command if added to an agent. This may introduce a significant security risk, as a compromised or manipulated prompt or instruction could lead to arbitrary code execution on the machine running Enola. Note that Enola (currently) does not yet double-check tool execution with the user. Please carefully consider this when using this tool.

TODO We intended to make this highly configurable in the future.

Google ๐Ÿ”Ž ๐ŸŒ

$schema: https://enola.dev/ai/agent
model: google://?model=gemini-2.5-flash-lite
tools:
  - search_google

This search_google tool makes the Google Search Engine available:

$ enola ai --lm="google://?model=gemini-2.5-flash-lite" --in "What happened today?"
As a large language model, I don't have access to real-time information or a concept of "today." My knowledge cutoff is **June 2024**, so I can't tell you what happened today specifically.

$ enola ai --agents=test/agents/google.agent.yaml --in "What happened today?"
Here's a summary of what happened on August 16, 2025:

**International News:**
*   The Indian tricolor was hoisted atop Seattle's iconic Space Needle for the first time, coinciding with India's 79th Independence Day celebrations.

(...)
**Other Notable Events:**
*   August 16th is recognized as National Airborne Day, National Bratwurst Day, National Rum Day, National Roller Coaster Day, and National Tell a Joke Day.

This tool is currently only supported on Gemini.

This tool is known to cause problems when used together with other tools. If you encounter a Tool use with function calling is unsupported error, then we recommend that you consider using the Brave Search tool instead.

Files ๐Ÿ“‚

The following built-in tools let an Agent work with the filesystem:

  • read_file: Reads the entire content of a specified file.
  • write_file: Writes content into a file.
  • edit_file: Replaces a specific range of lines in a file and returns a git-style diff of the changes.
  • search_files: Recursively searches for files and directories using a glob pattern.
  • list_directory: Lists the files and directory contents of a given directory with, with details like size and modification date.
  • create_directory: Creates a directory, including any necessary parent directories.
  • grep_file: Searches for a text pattern within a file.
enola ai -a test/agents/filesystem.agent.yaml --in="list the files in $PWD"

Security Consideration

The filesystem related tools are very powerful, because when enabled in an agent, they can currently access the full filesystem. This may introduce a significant security risk, as a compromised or manipulated prompt or instruction could unintentionally expose data from sensitive files on the machine running Enola. Note that Enola (currently) does not yet double-check tool execution with the user. Please carefully consider this when using this tool, and only add actually required tools to agents.

TODO We intended to be able to limit accessible directories (like MCP roots) in the future.

MCP

MCP allows Enola to access many thousands of other tools!