feat: Add docs

This commit is contained in:
2026-02-15 16:03:09 -05:00
parent e28c42ddd8
commit 9823bc19d2
14 changed files with 3208 additions and 0 deletions

99
docs/CHANGES_SUMMARY.md Normal file
View File

@@ -0,0 +1,99 @@
# 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
```python
"""
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
```python
from .tool_registry import ToolRegistry, BaseTool
__all__ = ["ToolRegistry", "BaseTool"]
```
### 3. **tool_registry.py** - Mantiene la infraestructura ✓
Contiene:
- `BaseTool`: Clase abstracta para todas las tools
- `ToolRegistry`: 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
1. **Define tus herramientas** en `tools.py`:
```python
class ObtenerAgendaTool(BaseTool):
@property
def name(self) -> str:
return "obtener_agenda"
# ... más detalles en TOOLS_GUIDE.md
```
2. **Registra y usa** en tu código:
```python
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()
```
3. **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](./TOOLS_GUIDE.md) - Guía completa con ejemplos
- [tool_registry.py](./src/naliiabot/bot/tools/tool_registry.py) - Código de la infraestructura
- [tests/test_naliia_agent_tools.py](./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.