3.1 KiB
Cambios realizados: Patrón Registry para Tools
✅ Cambios completados
1. tools.py - Limpiado ✓
Antes: Contenía herramientas de ejemplo (Calculator, Greeter, Weather, Time)
Ahora: Vacío y listo para tus herramientas personalizadas
"""
Implementaciones concretas de herramientas del agente.
Define aquí tus herramientas personalizadas que extienden BaseTool
"""
from typing import Any, Dict
from .tool_registry import BaseTool
# Define aquí tus herramientas personalizadas
# Ejemplo: class MiHerramienta(BaseTool): ...
2. init.py - Actualizado ✓
Antes: Importaba CalculatorTool, GreeterTool
Ahora: Solo exporta BaseTool y ToolRegistry
from .tool_registry import ToolRegistry, BaseTool
__all__ = ["ToolRegistry", "BaseTool"]
3. tool_registry.py - Mantiene la infraestructura ✓
Contiene:
BaseTool: Clase abstracta para todas las toolsToolRegistry: Clase para registrar y gestionar tools
4. Documentación - Nueva ✓
Creado: TOOLS_GUIDE.md con ejemplos completos de cómo:
- Crear herramientas personalizadas
- Usar el ToolRegistry
- Integrar con el Agent
- Ejemplos de tools para gestionar agenda
📁 Estructura final
src/naliiabot/bot/tools/
├── __init__.py # Exporta ToolRegistry y BaseTool
├── tool_registry.py # Base + Registry (infraestructura)
└── tools.py # TUS HERRAMIENTAS AQUÍ (vacío, listo para usar)
🚀 Próximos pasos
-
Define tus herramientas en
tools.py:class ObtenerAgendaTool(BaseTool): @property def name(self) -> str: return "obtener_agenda" # ... más detalles en TOOLS_GUIDE.md -
Registra y usa en tu código:
from src.naliiabot.bot.tools import ToolRegistry from src.naliiabot.bot.tools.tools import ObtenerAgendaTool registry = ToolRegistry() registry.register(ObtenerAgendaTool()) tools = registry.get_all_tools_as_langchain() -
Lee TOOLS_GUIDE.md para ejemplos detallados con:
- Herramientas para gestión de agenda
- Cómo validar argumentos
- Patrones recomendados
- Testing de tools
📚 Referencias
- TOOLS_GUIDE.md - Guía completa con ejemplos
- tool_registry.py - Código de la infraestructura
- tests/test_naliia_agent_tools.py - Tests de tools
✨ Beneficios del patrón Registry
✅ Centralizado: Un único lugar para todas las tools
✅ Extensible: Fácil agregar nuevas tools
✅ Testeable: Cada tool se prueba de forma independiente
✅ Mantenible: Cambios aislados en cada tool
✅ Reutilizable: Mismo registry en múltiples agentes
✅ Validado: Schema automático para argumentos
✅ Documentado: Inspección de tools disponibles
Nota: Las herramientas de ejemplo (Calculator, Greeter, Weather, Time) han sido removidas.
Ahora el proyecto está limpio y listo para que implementes las tools que necesitas.