Skip to main content
You are viewing: Quick Reference - Common mixin usage patternsSee also: 17 Detailed Mixin Specifications (under Specifications → Tool Mixins)
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

9.2 RAG Tools Mixin

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