Tool Spec
El formato y contenido de un fichero TOOL.md. La especificación técnica que el agente lee para entender el contrato de una herramienta.
Propósito
Esta página documenta el formato y contenido de un fichero TOOL.md. Un TOOL.md es la especificación técnica que el agente lee para entender el contrato de una herramienta: qué hace, cómo invocarla, qué devuelve y qué puede fallar.
Un TOOL.md es obligatorio para cada herramienta del lab. El formato es consistente en todas las herramientas; esto hace que sea fácil para el agente leer el TOOL.md de una herramienta nueva y saber qué esperar.
Secciones requeridas
Cada TOOL.md debe tener las siguientes secciones:
- Título y descripción corta.
- Purpose. Una descripción de un párrafo de qué hace la herramienta.
- Commands. Los comandos CLI que soporta la herramienta.
- Inputs. Los inputs que toma cada comando.
- Outputs. Los outputs que devuelve cada comando.
- Data flow. Un diagrama o descripción de cómo la herramienta procesa los inputs.
- Configuration. La configuración que requiere la herramienta.
- Dependencies. Las dependencias de la herramienta.
- Tests. Cómo se testea la herramienta.
- Failure modes. Qué puede fallar y cómo recuperarse.
Las secciones opcionales incluyen:
- Examples. Ejemplos de uso.
- Limitations. Limitaciones conocidas.
- References. Enlaces a docs relacionadas.
Plantilla
Ejemplo: torrent-finder TOOL.md
Un ejemplo real. torrent-finder busca películas/series vía BitTorrent.
SKILL.md
El fichero SKILL.md es el fichero de activación. Lo carga el skill loader del Coordinator cuando la request del usuario coincide con las frases disparadoras del skill.
El formato es:
Los campos name y description del YAML frontmatter son las frases disparadoras que usa el Coordinator. El body es el workflow que sigue el Coordinator.
Tests
Los tests de la herramienta viven en tests/. Las convenciones de test:
- Un fichero de test por módulo.
test_main.pyparamain.py,test_lib.pyparalib.py, etc. - Usa
pytest. El test runner espytest. - Mockea dependencias externas. Las llamadas HTTP, el file I/O y las llamadas a subprocess se mockean.
- Cubre el happy path y los paths de fallo. Cada comando se testea tanto en éxito como en fallo.
- Usa fixtures para setup compartido. El fichero
conftest.pycontiene las fixtures compartidas.
El objetivo de cobertura es 70% mínimo.
Añadir una herramienta nueva
Para añadir una herramienta nueva:
- Copia la CLI Python tool template.
- Actualiza el nombre de la herramienta en todos los ficheros.
- Implementa
main.pyylib.py. - Escribe los tests.
- Escribe los
README.md,TOOL.md,SKILL.mdyAGENTS.md. - Registra la herramienta en el
tools.jsondel proyecto. - Corre los tests.
- Verifica que la herramienta la puede invocar el Coordinator.