4.9 KiB
4.9 KiB
🚀 NaliiaBot - Patrón Registry para Herramientas
Bienvenido al sistema de herramientas (tools) de NaliiaBot.
📚 Documentación
Toda la documentación está en la carpeta docs/
⭐ Comienza aquí:
- docs/INICIO.txt - Bienvenida y guía visual (2 min)
- docs/TOOLS_DOCUMENTATION_INDEX.md - Índice maestro (10 min)
- docs/QUICK_START.py - Tutorial interactivo (5 min)
📖 Documentación completa:
| Archivo | Descripción |
|---|---|
| docs/INICIO.txt | Bienvenida con instrucciones visuales |
| docs/TOOLS_DOCUMENTATION_INDEX.md | Índice y navegación de toda la documentación |
| docs/QUICK_START.py | Tutorial de 5 minutos para empezar |
| docs/TOOLS_GUIDE.md | Guía completa del patrón Registry |
| docs/AGENDA_TOOLS_EXAMPLE.py | 5 herramientas reales de ejemplo |
| docs/REGISTRY_IMPLEMENTATION_SUMMARY.md | Resumen de la implementación |
| docs/README_REGISTRY.md | Resumen ejecutivo |
| docs/TOOL_REGISTRY_GUIDE.md | Guía de patrones y mejores prácticas |
| docs/CHANGES_SUMMARY.md | Qué cambió en el sistema |
🏗️ Estructura del proyecto
NaliiaBot/
├── 📁 docs/ ← Toda la documentación
│ ├── INICIO.txt
│ ├── TOOLS_DOCUMENTATION_INDEX.md
│ ├── QUICK_START.py
│ ├── TOOLS_GUIDE.md
│ ├── AGENDA_TOOLS_EXAMPLE.py
│ └── ... (más documentación)
│
├── 📁 src/naliiabot/bot/tools/
│ ├── __init__.py
│ ├── tool_registry.py (infraestructura)
│ └── tools.py (← Aquí van TUS herramientas)
│
└── 📁 tests/
└── test_naliia_agent_tools.py
✨ ¿Qué es el patrón Registry?
Sistema centralizado para registrar y gestionar herramientas del agente:
- Definir - Crear una herramienta que herede de
BaseTool - Registrar - Agregar a
ToolRegistry - Usar - Pasar al
Agentpara que el LLM las use
# Crear
class MiTool(BaseTool):
def name(self): return "mi_herramienta"
# ...
# Registrar
registry = ToolRegistry()
registry.register(MiTool())
# Usar
agent = Agent(model=modelo, tools=registry.get_all_tools_as_langchain())
🎯 Próximos pasos
- Lee la bienvenida: docs/INICIO.txt
- Entiende la estructura: docs/TOOLS_DOCUMENTATION_INDEX.md
- Sigue el tutorial: docs/QUICK_START.py
- Crea tus herramientas en:
src/naliiabot/bot/tools/tools.py
📝 Crear tu primera herramienta
En src/naliiabot/bot/tools/tools.py:
from typing import Any, Dict
from .tool_registry import BaseTool
class MiPrimeraHerramienta(BaseTool):
@property
def name(self) -> str:
return "mi_herramienta"
@property
def description(self) -> str:
return "Descripción de qué hace mi herramienta"
@property
def args_schema(self) -> Dict[str, Any]:
return {
"type": "object",
"properties": {
"param1": {
"type": "string",
"description": "Un parámetro"
}
},
"required": ["param1"]
}
def invoke(self, **kwargs) -> str:
param = kwargs.get("param1")
return f"Resultado para {param}"
Luego regístrala:
from src.naliiabot.bot.tools import ToolRegistry
from src.naliiabot.bot.tools.tools import MiPrimeraHerramienta
registry = ToolRegistry()
registry.register(MiPrimeraHerramienta())
tools = registry.get_all_tools_as_langchain()
🔗 Enlaces rápidos
| Necesito... | Ir a... |
|---|---|
| Entender el sistema | docs/TOOLS_DOCUMENTATION_INDEX.md |
| Un tutorial rápido | docs/QUICK_START.py |
| Crear una herramienta | docs/TOOLS_GUIDE.md |
| Ver ejemplos | docs/AGENDA_TOOLS_EXAMPLE.py |
| Registrar tools | docs/TOOLS_GUIDE.md |
| Métodos disponibles | docs/TOOLS_GUIDE.md |
| Hacer tests | docs/TOOLS_GUIDE.md |
✅ ¿Qué obtienes?
✅ Sistema centralizado de herramientas
✅ Documentación completa y detallada
✅ Ejemplos funcionales
✅ Tests automáticos
✅ Guías paso a paso
✅ Listo para producción
Comenzar: Lee docs/INICIO.txt ahora (2 minutos)