El protocolo, en una página
Referencia de lectura de la especificación. La fuente normativa es el repositorio: PROTOCOL.md (completa), SPEC.md (quick ref), los JSON Schemas y protocol/manifest.yaml (superficie legible por máquinas).
Objetos canónicos
El protocolo define objetos y eventos legibles por máquinas. Cada uno declara si tiene JSON Schema publicado o si por ahora se especifica en prosa.
| Objeto | Qué representa | Schema |
|---|---|---|
| Service Offer | Lo que una organización ofrece: tipo, descripción, requisitos, duración estimada, condiciones indicativas. | prosa / derivado |
| Service (wire object) | Objeto wire que representa una instancia de Service Delivery, modelada en 8 dimensiones. El nombre se conserva por compatibilidad. Puede existir sola o dentro de una Orden. | service.schema.json |
| Service Order | El acuerdo entre las partes: alcance, cliente, beneficiario, proveedor, pagador, precio, políticas, vigencia, esquema de pagos. | service-order.schema.json |
| Service Delivery | La instancia atómica ejecutada: qué se entregó, quién, a quién, cuándo, dónde o por qué canal, con qué resultado. En el wire actual se representa con el objeto Service. | prosa / derivado |
| Evidence Event | Registros y atestaciones que respaldan afirmaciones sobre una entrega: confirmaciones, documentos, firmas, timestamps. | evidence/base.schema.json |
| Settlement Event | Movimientos financieros asociados: factura, cargo, pago, devolución, contracargo, conciliación. | prosa / derivado |
| ServiceMandate | Delegación explícita, acotada y revocable de un principal humano a un agente IA. | service-mandate.schema.json |
| Proof of Serviceborrador | El expediente verificable que vincula lo acordado, lo entregado, la evidencia y la liquidación. | prosa / derivado |
Las 8 dimensiones de un Service
Los campos mínimos para que un agente entienda y coordine un servicio.
| # | Dimensión | Qué captura | Campos |
|---|---|---|---|
| 1 | Identidad (qué) | La actividad o resultado que se entrega | type, vertical, name, duration_minutes, requirements |
| 2 | Proveedor (quién entrega) | Profesional o entidad que entrega | provider.id, credentials, trust_score, organization_id |
| 3 | Cliente (quién recibe) | Beneficiario; el pagador se separa explícitamente | client.id, client.payer_id |
| 4 | Agenda (cuándo) | Ventana temporal del servicio | requested_at, scheduled_for, duration_expected |
| 5 | Ubicación (dónde) | Física o virtual; puede referenciar un Resource | type, address, resource_id, coordinates |
| 6 | Ciclo (estados) | Posición en las dimensiones de estado — entrega, evidencia, aceptación y liquidación, cada una con ciclo propio | current_state, transitions[], exceptions[] |
| 7 | Evidencia (prueba) | Cómo se respalda que ocurrió | checkin, checkout, duration_actual, evidence[], data_sensitivity |
| 8 | Cobro (liquidación) | Liquidación financiera, independiente del ciclo de entrega | amount, payer, status, payment_id, tax_document |
Dimensiones ortogonales y camino feliz
El protocolo no establece un orden total entre entrega, evidencia, aceptación y liquidación: cada dimensión conserva su propio ciclo de vida. Una implementación puede presentar una experiencia lineal; la interoperabilidad se evalúa por dimensión (PROTOCOL.md §6.0).
billing.status: pending | charged | invoiced | paid | disputed), y la Orden de Servicio tiene su propio ciclo (draft → proposed → negotiating → active → paused → completed → cancelled).lifecycle.transition de la implementación de referencia usa delivered/charged en lugar de completed/invoiced+collected — divergencia conocida, documentada en el manifest.Flujos de excepción
Seis flujos de primera clase. Cualquiera puede sacar la coordinación del camino feliz sin romper el protocolo.
| Excepción | Desde | Hacia | Regla clave |
|---|---|---|---|
| Inasistencia del cliente | confirmed | cancelled (no_show) | Penalidad según política; libera el horario del proveedor |
| Inasistencia del proveedor | confirmed | reassigning → scheduled | Reasignación automática; notificar al cliente |
| Cancelación | pre-entrega | cancelled | Aplica política de cancelación según tiempo restante |
| Disputa de calidad | completed | disputed | Congela el cobro; solicita evidencia; resuelve a verified o cancelled |
| Reagendamiento | scheduled/confirmed | rescheduling → scheduled | Mantiene proveedor cuando es posible; maneja conflictos de recurso |
| Entrega parcial | in_progress | partial | Documenta lo entregado; ajusta el cobro proporcionalmente |
Perfiles de capacidades
El protocolo se organiza en perfiles. Un binding (MCP, HTTP, A2A) implementa perfiles; el número de tools de un binding puede cambiar sin redefinir el protocolo.
Binding MCP de referencia (40 tools)
15 públicas (sin autenticación) + 25 autenticadas (API key + org ID). Esta lista se genera desde protocol/manifest.yaml y CI la valida contra el código fuente.
Independencia del transporte
Servicialo define la semántica; los bindings definen cómo se expone. La conformidad exige al menos un binding máquina a máquina que implemente los perfiles Core — ninguno en particular. MCP es la vía recomendada para integraciones agénticas, no una condición para usar el protocolo.
X-Servicialo-Version: 1.0 versiona el API del resolver — es independiente de la versión del documento del protocolo (v0.10).Requisitos mínimos
De PROTOCOL.md §16. Cuatro requisitos obligatorios; el resto son extensiones opcionales — incluida la red.
| # | Requisito | Ref. | Obligatorio |
|---|---|---|---|
| 1 | Modelar servicios con las 8 dimensiones | §5 | Sí |
| 2 | Implementar los 6 estados core del ciclo (requested → documented). Los 3 financieros son extensiones opcionales | §6 | Sí |
| 3 | Manejar al menos 3 flujos de excepción | §7 | Sí |
| 4 | Exponer al menos un binding máquina a máquina que implemente los perfiles Core requeridos y declare perfiles y versiones soportados — HTTP, MCP, A2A u otro equivalente. Una implementación puramente HTTP es conforme sin MCP | §13 + HTTP_PROFILE | Sí |
| 5 | Modelar Órdenes de Servicio | §8 | No |
| 6 | Implementar el modelo de agencia delegada | §10 | No |
| 7 | Implementar perfiles de proveedor | §12 | No |
| 8 | Contribuir a la inteligencia de red (la red es opcional) | §14 | No |
Las reglas del protocolo
Siete principios que aplican a cualquier servicio en cualquier vertical (PROTOCOL.md §9).