gaia-enhanced-agent / tools /base_tool.py
GAIA Agent Deployment
Deploy Complete Enhanced GAIA Agent with Phase 1-6 Improvements
9a6a4dc
"""
Simple base tool class for enhanced research tools.
This provides a minimal interface compatible with AGNO without requiring agno.tools.base
"""
from typing import Any, Dict, Optional
from abc import ABC, abstractmethod
class BaseTool(ABC):
"""
Simple base class for tools that can be used with AGNO.
This provides the minimal interface needed for AGNO compatibility
without requiring complex dependencies.
"""
def __init__(self, name: str, description: str):
"""
Initialize the base tool.
Args:
name: Tool name
description: Tool description
"""
self.name = name
self.description = description
def __str__(self) -> str:
"""String representation of the tool."""
return f"{self.__class__.__name__}(name='{self.name}')"
def __repr__(self) -> str:
"""Detailed representation of the tool."""
return f"{self.__class__.__name__}(name='{self.name}', description='{self.description}')"
def get_info(self) -> Dict[str, Any]:
"""Get tool information."""
return {
'name': self.name,
'description': self.description,
'class': self.__class__.__name__
}
class SimpleAGNOTool(BaseTool):
"""
Simple AGNO-compatible tool that can be used directly with AGNO agents.
This class provides the interface that AGNO expects while keeping
the implementation simple and dependency-free.
"""
def __init__(self, name: str, description: str):
"""Initialize the AGNO-compatible tool."""
super().__init__(name, description)
# AGNO expects these attributes
self._name = name
self._description = description
@property
def tool_name(self) -> str:
"""Get the tool name (AGNO compatibility)."""
return self.name
@property
def tool_description(self) -> str:
"""Get the tool description (AGNO compatibility)."""
return self.description
def to_dict(self) -> Dict[str, Any]:
"""Convert tool to dictionary (AGNO compatibility)."""
return {
'name': self.name,
'description': self.description,
'type': 'function'
}