3. Mensajes del Protocolo - Especificación HugAI v2¶
Esta sección describe los mensajes principales del protocolo HugAI v2, sus campos, propósito y ejemplos de uso.
3.1. Mensaje de Inicialización (initialize
)¶
Propósito: Establecer la conexión, negociar capacidades y compartir información de contexto entre agentes, clientes y el sistema.
Campo | Tipo | Requerido | Descripción |
---|---|---|---|
processId | number | Sí | Identificador del proceso cliente |
agentId | string | Sí | Identificador del agente/cliente |
capabilities | object | Sí | Capacidades soportadas |
governanceLevel | string | Sí | Nivel de gobernanza solicitado |
clientInfo | object | No | Información del cliente (nombre, versión) |
workspaceFolders | array | No | Carpetas de trabajo asociadas |
Ejemplo:
{
"jsonrpc": "2.0",
"method": "initialize",
"params": {
"processId": 12345,
"agentId": "demo-agent-1",
"capabilities": { "code-generation": true, "testing": true },
"governanceLevel": "supervised",
"clientInfo": { "name": "HugAI Client", "version": "1.0.0" },
"workspaceFolders": ["/proyecto/demo"]
},
"id": 1
}
3.2. Registro de Agente (agent/register
)¶
Propósito: Registrar un agente en el sistema, anunciando sus capacidades y metadatos.
Campo | Tipo | Requerido | Descripción |
---|---|---|---|
agentId | string | Sí | Identificador único del agente |
capabilities | object | Sí | Capacidades y tareas soportadas |
governanceLevel | string | Sí | Nivel de gobernanza soportado |
version | string | No | Versión del agente |
author | string | No | Autor o equipo responsable |
description | string | No | Descripción breve |
dependencies | string[] | No | Otros agentes requeridos |
Ejemplo:
{
"jsonrpc": "2.0",
"method": "agent/register",
"params": {
"agentId": "advanced-agent-1",
"capabilities": { "code-generation": true, "testing": true, "refactoring": true },
"governanceLevel": "supervised",
"version": "1.2.0",
"author": "Equipo HugAI",
"description": "Agente avanzado para generación y refactorización de código",
"dependencies": ["test-agent", "review-agent"]
},
"id": 2
}
3.3. Solicitud de Tarea / Comunicación entre Agentes (agent/request
)¶
Propósito: Solicitar la ejecución de una tarea o la colaboración entre agentes.
Campo | Tipo | Requerido | Descripción |
---|---|---|---|
sourceAgent | string | Sí | Agente que origina la solicitud |
targetAgent | string | Sí | Agente destinatario |
task | string | Sí | Tarea a ejecutar |
context | object | No | Contexto adicional (archivos, datos, etc.) |
priority | string | No | Prioridad: low, medium, high, critical |
Ejemplo:
{
"jsonrpc": "2.0",
"method": "agent/request",
"params": {
"sourceAgent": "demo-agent-1",
"targetAgent": "test-agent-2",
"task": "generate-tests",
"context": { "file": "main.ts" },
"priority": "high"
},
"id": 3
}
3.4. Respuesta (response
)¶
Propósito: Devolver el resultado de una solicitud previa.
Campo | Tipo | Requerido | Descripción |
---|---|---|---|
id | string/number | Sí | Identificador de la solicitud original |
result | object | No | Resultado de la operación |
error | object | No | Objeto de error si la operación falló |
Ejemplo (éxito):
Ejemplo (error):3.5. Evento (event
)¶
Propósito: Notificar cambios de estado, incidencias, progresos o sucesos relevantes.
Campo | Tipo | Requerido | Descripción |
---|---|---|---|
event | string | Sí | Nombre del evento |
data | object | No | Datos asociados al evento |
Ejemplo:
{
"jsonrpc": "2.0",
"method": "event",
"params": {
"event": "task-progress",
"data": { "task": "generate-tests", "progress": 50 }
}
}
3.6. Aprobación de Gobernanza (governance/approval
)¶
Propósito: Gestionar puntos de control humano, aprobaciones, revisiones y auditoría de decisiones críticas.
Campo | Tipo | Requerido | Descripción |
---|---|---|---|
checkpoint | string | Sí | Nombre del punto de control |
artifact | object | Sí | Artefacto o evidencia a aprobar/revisar |
approver | string | Sí | Identificador del aprobador humano |
decision | string | Sí | approved, rejected, needs_revision |
feedback | string | No | Comentarios o justificación |
Ejemplo:
{
"jsonrpc": "2.0",
"method": "governance/approval",
"params": {
"checkpoint": "code-review",
"artifact": { "file": "main.ts", "diff": "..." },
"approver": "user-123",
"decision": "approved",
"feedback": "Cumple con los estándares."
},
"id": 4
}
3.7. Integración de Herramientas (tool/integration
)¶
Propósito: Interactuar con sistemas externos, ejecutar comandos, recibir resultados o integrar eventos de herramientas de terceros.
Campo | Tipo | Requerido | Descripción |
---|---|---|---|
tool | string | Sí | Nombre de la herramienta externa |
action | string | Sí | Acción a ejecutar |
data | object | No | Datos o parámetros para la acción |
callback | string | No | Método/callback para recibir la respuesta |
Ejemplo:
{
"jsonrpc": "2.0",
"method": "tool/integration",
"params": {
"tool": "ci-pipeline",
"action": "run-tests",
"data": { "branch": "feature-x" },
"callback": "event"
},
"id": 5
}
3.8. Auditoría y Trazabilidad (audit/log
)¶
Propósito: Registrar acciones, decisiones y eventos relevantes para trazabilidad y cumplimiento.
Campo | Tipo | Requerido | Descripción |
---|---|---|---|
action | string | Sí | Acción registrada |
actor | string | Sí | Agente o humano responsable |
target | string | No | Objeto o entidad afectada |
details | object | No | Detalles adicionales |
timestamp | string | Sí | Fecha y hora (ISO 8601) |
Ejemplo:
{
"jsonrpc": "2.0",
"method": "audit/log",
"params": {
"action": "approval",
"actor": "user-123",
"target": "main.ts",
"details": { "decision": "approved" },
"timestamp": "2024-06-01T12:34:56Z"
}
}
Nota: Cada mensaje debe validarse contra su estructura y campos requeridos. Los ejemplos pueden extenderse según la evolución del protocolo.