Tools

๐Ÿงฐ Tools System

ATOM supports modular "tools" that extend its abilities โ€” file search, TTS, math, code eval, and more.

Tools are triggered using a special syntax:

::tool: summarize(filename="notes.pdf")

๐Ÿ”ง How It Works

The LLM generates a tool call (e.g. ::tool: search("project alpha"))

ATOM routes it via tool_registry.py

A real Python function runs locally

The result is injected back into the conversation

No internet. No APIs. Just raw local function calls.

๐Ÿ› ๏ธ Included Tools

Tool

Command

Description

๐Ÿ” Search

::tool: search("keyword")

Search vector memory chunks

๐Ÿ“ Summarize

::tool: summarize(filename="doc.pdf")

Summarize uploaded files

๐Ÿ”Š Speak

::tool: speak("text")

Generate TTS audio output

๐Ÿงฎ Math

::tool: math("3x^2 + 2x - 1 = 0")

Symbolic math/solving

๐Ÿ“Ž list_files

::tool: list_files()

Shows all uploaded files

โฑ timer

::tool: timer(seconds=5)

Sleep/pause tool for chaining

๐Ÿง  Reflect

Automatic

Triggers memory reflection every 10 messages

๐Ÿงช Example use

User uploads meeting_notes.pdf and asks:

::tool: summarize(filename="meeting_notes.pdf")

ATOM responds with a structured summary pulled directly from the document โ€” locally, instantly.

โš™๏ธ Writing Your Own Tool

All tools are just Python functions. To create one:

@tool def echo(text: str) -> str: return text

Drop it into tool_registry.py and ATOM will auto-load it on restart.

๐Ÿ’ก Tool Design Tips so you don't lose sleep

Keep tool input/output simple (text or dict)

Avoid long-running or blocking tools

You can return structured objects โ€” ATOM will format them intelligently

Want to hack deeper into the system?โ†’ Head to the Dev Notes next.