A WhatsApp bot with AI agent capabilities and tool execution
Four tools with Spanish names and basic descriptions. All have input schemas with type definitions, but descriptions are minimal (10-100 chars, well below the 194-char baseline). Parameter descriptions exist but lack detail on constraints, formats, and valid values. No output schemas documented. Error handling is present in implementation but not surfaced in tool definitions. Tool names use Spanish verbs (obtener, ejecutar) which is non-standard; English verb_noun convention is strongly preferred for LLM parsing. No tool annotations (readOnlyHint, etc.) despite all being read-only operations.
Genera un informe de trazabilidad de una estación de trabajo específica, y una fecha determinada. Si no se da fecha la herraminta tomará la fecha actual. "USALO SOLO SI TE PIDEN QUE GENERES EL INFORME". La fecha no es obligatoria.
Te da la fecha actual
Te da una lista de los productos procesados por estación, las estaciones son: congelado, bodega, bodega2, bandejeo y fileteo.
Te da la lista del stock del inventario por descripción o upc de un producto
Tool names in Spanish (obtener_*, ejecutar_*) violate verb_noun English convention. LLMs are trained on English tool patterns and struggle to parse non-English names for intent inference.
Descriptions are too short (10-100 chars vs 194-char baseline). 'Te da la fecha actual' and 'Te da una lista...' lack context on WHEN to use, WHAT it returns, and any prerequisites. LLMs cannot reliably select tools with such minimal guidance.
Parameter descriptions lack format constraints and valid value guidance. E.g., 'station' parameter says 'no obligatorio' but schema marks it required; 'date' format is mentioned in description but not enforced in schema. No enums for station values despite fixed set (congelado, bodega, bodega2, bandejeo, fileteo).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
No output schemas documented. Tool definitions do not specify what fields/structure the LLM should expect in responses. This forces LLMs to guess at response structure and plan downstream calls blindly.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all tools being read-only. Annotations help LLMs reason about safety and retry logic.