๐งฐ 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.