Skip to main content
Component: FileToolsMixin Module: gaia.agents.tools.file_monitor_tools Import: from gaia.agents.tools.file_monitor_tools import FileToolsMixin

Overview

FileToolsMixin provides directory monitoring capabilities for the Chat Agent, enabling automatic document indexing when files are created or modified. This mixin focuses on watch directory functionality, with file search operations delegated to ShellToolsMixin for maximum flexibility. Key Features:
  • Directory monitoring with automatic document indexing
  • Path validation with user confirmation
  • Auto-save session state after directory changes
  • Integration with RAG system for document processing

Requirements

Functional Requirements

  1. Directory Monitoring
    • Add directories to watch list
    • Automatically index new documents (PDF files)
    • Track indexed files to prevent duplicates
  2. Path Validation
    • Validate directory paths before adding to watch list
    • Check for path access permissions
    • Prompt user for confirmation on new paths
  3. Auto-Indexing
    • Scan directory for existing PDF files
    • Index all found documents automatically
    • Report indexing statistics (total found, successfully indexed)
  4. Session Management
    • Auto-save session after adding watch directory
    • Persist watch directory list across sessions
    • Track indexed files in session state

Non-Functional Requirements

  1. Performance
    • Efficient directory scanning with Path.glob()
    • Batch indexing of existing documents
    • Non-blocking file operations
  2. Error Handling
    • Graceful handling of missing directories
    • Individual file indexing errors don’t block batch operation
    • Clear error messages for validation failures
  3. Integration
    • Seamless integration with PathValidator
    • Works with RAG system for document processing
    • Compatible with session management system

API Specification

File Location

Public Interface


Implementation Details

Path Validation

Directory Scanning and Indexing

Duplicate Prevention

Error Handling


Testing Requirements

Unit Tests

File: tests/agents/chat/test_file_tools_mixin.py

Dependencies

Required Packages

Import Dependencies

Internal Dependencies

  • gaia.agents.base.tools.tool: Tool decorator
  • PathValidator: For path validation and user confirmation
  • RAG: For document indexing
  • SessionManager: For persisting watch directories

Error Handling

Common Errors and Responses


Usage Examples

Example 1: Adding Watch Directory

Example 2: Monitoring Multiple Directories

Example 3: Chat Integration


Integration Notes

PathValidator Integration

FileToolsMixin requires a PathValidator instance for security:

RAG System Integration

The mixin delegates document indexing to the RAG system:

Session Management Integration

Watch directories are persisted across sessions:

Implementation Checklist

Step 1: Core Implementation

  • Create FileToolsMixin class
  • Implement register_file_tools()
  • Implement add_watch_directory tool
  • Add path validation logic
  • Add directory scanning logic
  • Add auto-indexing logic

Step 2: Integration

  • Integrate with PathValidator
  • Integrate with RAG system
  • Integrate with session management
  • Add to ChatAgent

Step 3: Error Handling

  • Handle missing directories
  • Handle access denied
  • Handle indexing failures
  • Provide clear error messages

Step 4: Testing

  • Write unit tests
  • Test path validation
  • Test indexing workflow
  • Test error cases
  • Test integration with ChatAgent

Step 5: Documentation

  • Add docstrings
  • Add usage examples
  • Document integration points
  • Update this specification

FileToolsMixin Technical Specification