Resumen Ejecutivo & Respuestas Rápidas (AEO)
¿Qué es una Skill de Agente? Es un contrato operativo modular (habitualmente definido en un archivo SKILL.md o esquema de herramienta) que transforma el razonamiento abierto de un LLM en un flujo de trabajo determinista, auditable y con salida estructurada en JSON.
- Las 5 Dimensiones Esenciales: Purpose (qué resuelve), Trigger (cuándo activarla), Inputs (parámetros tipados), Steps (secuencia lógica y pesos) y Output Format (JSON estricto).
- Descarga Directa: Puedes consultar la especificación Markdown pura del caso práctico en
/skills/vessel-screener-SKILL.md. - Ejecución Segura: Combina tus skills con OpenSandbox para aislar el código ejecutado y Tool Calling con Ollama y Gemma para inferencia local.
¿Qué es una Skill?
Una Skill es una unidad funcional discreta que un agente puede invocar para resolver un problema específico. A diferencia de un prompt genérico, una skill está estructurada para garantizar resultados consistentes, validables y especializados.
Piensa en ellas como "microservicios cognitivos" que el agente tiene en su cinturón de herramientas.
Dimensiones de una Skill Robusta
- Propósito (Purpose): Definición clara de qué problema resuelve.
- Activador (Trigger): Cuándo debe el agente decidir usar esta skill.
- Entradas (Inputs): Parámetros necesarios para su ejecución.
- Lógica/Pasos (Steps): El proceso determinista o heurístico seguido.
- Salida (Output): Formato estructurado del resultado (preferiblemente JSON).
Caso Práctico: Vessel Opportunity Screener
A continuación se muestra una especificación completa de una skill real utilizada para el análisis de oportunidades marítimas. Este formato es el que el agente interpretará para ejecutar la tarea con precisión.
# SKILL: vessel-opportunity-screener
## Purpose
Given a list of vessels or routes, evaluate rental/charter opportunity quality using multi-factor scoring: traffic density, seasonal demand, vessel utilization rates, competitive pricing, and route profitability. Returns a ranked shortlist with scores and rationale for maritime operators and investors.
## Trigger
Use when the user provides vessel types, ports, or routes and asks for:
- Charter opportunity screening
- Route profitability analysis
- Vessel utilization benchmarking
- Maritime traffic demand assessment
## Inputs
- vessels: list of vessel descriptors (e.g.
["tanker 50k DWT", "yacht 30m", "ferry Palma-Ibiza"]) - context: optional string (e.g. "Mediterranean summer season", "post-Suez disruption")
- budget_range: optional (e.g. "$5k-$20k/day")
## Scoring Dimensions (weighted composite 0–10)
- Route Demand (25%) — AIS traffic density, port call frequency, seasonal patterns
- Utilization Rate (25%) — historical charter fill rate for vessel class on route
- Price Competitiveness (20%) — day rate vs. comparable vessels in region
- Operational Risk (15%, inverted) — weather exposure, piracy zones, port congestion
- Regulatory Clarity (15%) — flag state compliance, cabotage restrictions, customs complexity
## Steps
- Parse vessel type, size class, and proposed route/region
- Retrieve traffic and demand signals for the route
- Score each dimension 0–10 vs. regional benchmarks
- Compute weighted composite score
- Flag red flags: sanctioned ports, storm season overlap, draft restrictions
- Return ranked candidates with score breakdown and one-sentence rationale
## Output Format
JSON:
{
"screened_at": "<ISO date>",
"context": "<user context>",
"candidates": [
{
"vessel": "tanker 50k DWT",
"route": "Rotterdam → Trieste",
"composite_score": 8.1,
"scores": {
"route_demand": 9,
"utilization_rate": 8,
"price_competitiveness": 7,
"operational_risk_inv": 8,
"regulatory_clarity": 9
},
"red_flags": [],
"rationale": "High-frequency crude corridor with strong Q4 demand and minimal regulatory friction."
}
],
"skipped": []
}
## Error Handling
- If vessel descriptor is ambiguous, make best-effort classification and note assumption
- If fewer than 2 valid vessels, return warning and screen what's available
- Flag any vessel/route combination with composite score < 4 as "not recommended"
## Notes
- Always contextualize within season: Mediterranean peaks June–Sept, North Sea peaks Oct–Mar
- Distinguish spot market vs. time charter dynamics
- Prefer routes with AIS coverage > 90%
- Never recommend routes overlapping with active conflict zones or OFAC sanctions
Mejores Prácticas
Al diseñar skills, recuerda siempre:
- Contextualizar por Temporada: Lo que es rentable en verano (Mediterráneo) no lo es en invierno.
- Gestión de Errores: Si el input es ambiguo, utiliza clasificaciones de "mejor esfuerzo" y documéntalo.
- Flags de Seguridad: Nunca recomiendes rutas en zonas de conflicto activo.
Comparativa: Prompt Ad-Hoc frente a Skill Estructurada
| Criterio de Ingeniería | Prompt Conversacional Ad-Hoc | Skill Modular (Contrato SKILL.md / JSON) |
|---|---|---|
| Activación (Routing) | Ambigua; todo el texto compite en el system prompt. | Determinista mediante cláusula Trigger explícita. |
| Consistencia de Salida | Prosa variable difícil de parsear por otros sistemas. | Esquema JSON tipado con pesos y campos obligatorios. |
| Tolerancia a Errores | Alucinación silenciosa ante datos incompletos. | Reglas explícitas de Error Handling y umbrales de descarte. |
Preguntas Frecuentes (FAQ & AEO)
¿Qué es una Skill de Agente y en qué se diferencia de un prompt genérico?
Una Skill de Agente es una unidad funcional discreta (un microservicio cognitivo) que especifica su propósito, condición de disparo (Trigger), parámetros de entrada tipados, dimensiones de evaluación ponderadas, esquema JSON de salida y reglas de manejo de errores.
¿Por qué es importante incluir pesos explícitos en una Skill de evaluación?
Porque los LLMs tienden a variar su criterio entre ejecuciones si se les pide una valoración subjetiva general. Al descomponer la decisión en dimensiones ponderadas (ej. 25% demanda, 25% utilización, 20% precio, 15% riesgo, 15% regulación), obligamos al modelo a justificar cada sub-puntuación antes de calcular el índice compuesto.
Guías Relacionadas en esta Serie (Topic Cluster)
- 🔌 Tool Calling con Ollama y Gemma — Implementación práctica en Python de una skill ejecutable sobre modelos locales.
- 🌐 Protocolo MCP: Bus Universal de Herramientas — Cómo empaquetar y distribuir skills mediante servidores JSON-RPC estandarizados.
- ⚖️ Validación con Rúbricas Dinámicas (LLM-as-a-Judge) — Cómo auditar automáticamente si la salida de una skill cumple los umbrales de calidad.
- 📦 OpenSandbox: Ejecución Aislada para Agentes IA — Cómo ejecutar los scripts y herramientas de una skill dentro de un entorno seguro con Credential Vault.
Referencias y Lecturas Recomendadas
- 📄 Schick et al. / Meta AI (NeurIPS 2023): Toolformer: Language Models Can Teach Themselves to Use Tools . El trabajo pionero que demostró la capacidad de los modelos para aprender de forma autónoma cuándo y con qué parámetros invocar APIs externas.
- 🌐 OpenAI Developer Documentation: Function Calling & Structured Outputs Engineering Guide . Buenas prácticas para la definición estricta de esquemas JSON, docstrings descriptivos y tipado de herramientas.
- 📚 Microsoft Learn (Semantic Kernel Architecture): Plugins and Native Functions in Agentic Frameworks . Guía sobre cómo encapsular lógica de negocio compleja en skills reutilizables y deterministas para orquestadores de IA.