Import: from gaia.agents.chat.tools.file_tools import FileToolsMixin
Purpose: Reusable tool sets that can be mixed into your agents.
Available Mixins: For complete API specifications of all 17 mixins, see Specifications → Tool Mixins
9.1 File Operations Mixin
Detailed Spec: FileToolsMixin
from gaia.agents.base.agent import Agent
from gaia.agents.chat.tools.file_tools import FileToolsMixin
class MyAgent(Agent, FileToolsMixin):
"""Agent with file operation tools."""
def _register_tools(self):
# FileToolsMixin provides these tools automatically:
# - read_file(file_path: str) -> dict
# - write_file(file_path: str, content: str) -> dict
# - append_to_file(file_path: str, content: str) -> dict
# - list_directory(directory_path: str) -> dict
pass
# Usage
agent = MyAgent()
result = agent.process_query("Read the config.json file")
# Agent uses read_file tool automatically
Import: from gaia.agents.chat.tools.rag_tools import RAGToolsMixin
Detailed Spec: RAGToolsMixin
from gaia.agents.base.agent import Agent
from gaia.agents.chat.tools.rag_tools import RAGToolsMixin
class MyAgent(Agent, RAGToolsMixin):
"""Agent with document Q&A tools."""
def __init__(self, documents_path: str = "./docs", **kwargs):
self.documents_path = documents_path
super().__init__(**kwargs)
def _register_tools(self):
# RAGToolsMixin provides:
# - index_documents(path: str) -> dict
# - search_documents(query: str) -> dict
# - list_indexed_documents() -> dict
pass
# Usage
agent = MyAgent(documents_path="./manuals")
result = agent.process_query("What does the manual say about installation?")
# Agent searches indexed documents automatically
9.3 Shell Commands Mixin
Import: from gaia.agents.chat.tools.shell_tools import ShellToolsMixin
Detailed Spec: ShellToolsMixin
from gaia.agents.base.agent import Agent
from gaia.agents.chat.tools.shell_tools import ShellToolsMixin
class MyAgent(Agent, ShellToolsMixin):
"""Agent that can execute shell commands."""
def _register_tools(self):
# ShellToolsMixin provides:
# - execute_shell_command(command: str) -> dict
pass
# Usage
agent = MyAgent()
result = agent.process_query("List files in the current directory")
# Agent uses execute_shell_command("ls") automatically
9.4 File Search Mixin
Import: from gaia.agents.tools.file_search import FileSearchToolsMixin
Detailed Spec: FileSearchToolsMixin
from gaia.agents.base.agent import Agent
from gaia.agents.tools.file_search import FileSearchToolsMixin
class MyAgent(Agent, FileSearchToolsMixin):
"""Agent with file search capabilities."""
def _register_tools(self):
# FileSearchToolsMixin provides:
# - search_files(pattern: str, directory: str) -> dict
# - find_file(filename: str) -> dict
pass