Attesto

Developer surfaces

Gateway, MCP, OTel y n8n

Los SDK principales de Attesto cubren la integración directa en aplicaciones. Gateway, MCP, OpenTelemetry y n8n cubren los sistemas alrededor de las aplicaciones: proxy de modelos, herramientas de agentes, trazas de observabilidad y automatización de workflows. Cada superficie debe emitir evidencia Proofstream real, respetar source timestamps y mantener secretos fuera de payloads, receipts, bundles, logs y código de navegador.

Scope

Esta página es para desarrolladores y operadores técnicos que integran Attesto en AI gateways, agent hosts, telemetry pipelines y herramientas de automatización. No documenta operaciones internas de staff y no sustituye los manuales de SDK, API, conectores o Local Vault. Úsala para elegir la superficie correcta y entender qué evidencia crea cada una.

Cuándo usar cada superficie

SuperficieÚsala cuandoProduceResponsable principal
Inference GatewayQuieres capturar llamadas de modelos compatibles con OpenAI sin cambiar cada aplicación.Request/response commitments, policy metadata, evidencia de model routing y receipts.Equipo de plataforma o AI engineering.
MCP serverLos agent hosts necesitan herramientas deterministas para registrar events, verificar receipts o construir bundles.Tool-call evidence, stream events y resultados de verificación de receipts.Equipo de agent platform o developer tooling.
OpenTelemetry bridgeYa emites spans y quieres convertir trazas seleccionadas en evidencia Attesto.Span commitments, trace/span source references y service metadata receipts.Equipo de observabilidad o plataforma.
n8n nodeLa automatización de workflows necesita step receipts verificables y verificación de webhooks firmados.Workflow-step events, source references, receipt IDs y resultados de verificación.Equipo de automation u operations.

Inference Gateway

Attesto Inference Gateway es un proxy server-side para llamadas de modelos compatibles con OpenAI. Las aplicaciones envían requests al gateway; el gateway reenvía al proveedor upstream configurado y escribe evidencia Attesto antes de devolver la respuesta del provider. Úsalo cuando los equipos no puedan añadir llamadas SDK en cada aplicación, o cuando se necesite política central y model routing.

export ATTESTO_API_KEY="$ATTESTO_SYSTEM_KEY"
export OPENAI_BASE_URL=http://127.0.0.1:8765/v1

attesto-gateway --listen 127.0.0.1:8765 \
  --admin-listen 127.0.0.1:8766 \
  --attesto-base-url https://verify.attesto.eu \
  --upstream https://api.openai.com/v1 \
  --stream-id "$ATTESTO_STREAM_ID" \
  --capture commitments
curl -sS "$OPENAI_BASE_URL/chat/completions" \
  -H "Authorization: Bearer ${PROVIDER_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-4.1-mini","messages":[{"role":"user","content":"Summarize this policy"}]}'

MCP server

El Attesto MCP server expone un conjunto estrecho de herramientas Attesto deterministas a agent hosts compatibles con MCP. La superficie actual de herramientas es log_action, get_receipt, verify_receipt, get_stream_head y verify_completeness. El servidor registra acciones, obtiene receipts, verifica receipts offline, inspecciona stream heads y prueba que un rango de secuencia está gap-free sin entregar credenciales amplias del backend al agente. El MCP server debe ejecutarse server-side en el entorno runtime del agente. No contiene ningún modelo de AI, ningún import de proveedor AI ni lógica de decisión oculta; es un wrapper determinista de herramientas sobre el SDK de Attesto.

pip install attesto-mcp
{
  "mcpServers": {
    "attesto": {
      "command": "attesto-mcp",
      "args": ["--stdio"],
      "env": {
        "ATTESTO_BASE_URL": "https://verify.attesto.eu",
        "ATTESTO_API_KEY": "${ATTESTO_API_KEY}",
        "ATTESTO_STREAM_ID": "${ATTESTO_STREAM_ID}"
      }
    }
  }
}
attesto-mcp --stdio

OpenTelemetry bridge

El OpenTelemetry bridge convierte spans seleccionados en events Attesto. Es útil cuando la fuente de verdad ya es una trace pipeline: spans de model gateway, evaluación de políticas, sync de conectores o gestión de incidentes. El bridge debe filtrar con rigor; no envíes cada span por defecto.

pip install attesto opentelemetry-sdk
import os
from attesto import AttestoClient
from attesto.otel import AttestoSpanProcessor
from opentelemetry.sdk.trace import TracerProvider

provider = TracerProvider()
provider.add_span_processor(
    AttestoSpanProcessor(
        client=AttestoClient(api_key=os.environ["ATTESTO_API_KEY"]),
        stream_id=os.environ["ATTESTO_STREAM_ID"],
    )
)

n8n node

El Attesto n8n node es para automatización de workflows que necesita step evidence verificable. Úsalo para approval workflows, connector handoffs, triage de incidentes, policy checks y automatización orientada al cliente donde un auditor debe ver después qué ocurrió y cuándo.

npm install n8n-nodes-attesto

Evidence model

Las cuatro superficies deben emitir evidencia con la misma semántica Proofstream que los SDKs. Un gateway request, MCP tool call, OTel span o n8n workflow step no es especial: es un source event con source reference, timestamp, normalized commitment, receipt e inclusión opcional posterior en windows, checkpoints, witnesses y anchors.

CampoComportamiento requerido
source_system_idIdentificar el gateway, agent host, telemetry service o instancia n8n.
source_refClave de idempotency estable como request id, tool call id, trace/span id o workflow execution id.
source_timeTimestamp source original con timezone u offset.
payload_commitmentComprometer metadatos de payload normalizados sin almacenar secretos del provider.
receiptDevolver o almacenar receipt id para que el event pueda verificarse después.

Security boundaries

Operations

Trata estas superficies como integraciones de producción. Necesitan health checks, retry policy, rate-limit handling, idempotency, validación de source time y estados de fallo observables. Una superficie puede instalarse desde un package registry, pero no está production-ready para un tenant hasta que tenga una Attesto API key real, un stream real y un receipt/verify canary correcto.

CheckResultado esperado
Install smokeEl package instala desde el registry oficial sin source maps ni source leaks.
Receipt canarySe registra un event real y el receipt verifica.
Retry canaryUn source_ref repetido devuelve comportamiento replay/idempotent, no historia duplicada.
Secret scanNinguna tenant key, provider key, prompt secret, trace secret o credencial de workflow aparece en logs o bundles.

Failure modes

FailureSignificadoRespuesta
Attesto unavailableLa superficie no puede obtener un receipt.Fail closed cuando la política requiere evidencia; si no, marcar la ejecución como missing evidence.
Provider unavailableFalló el servicio upstream model/tool/workflow.Registrar metadatos de fallo seguros si la política lo permite; no inventar un success event.
Invalid source timeEl source timestamp falta o está malformed.Rechazar o normalizar según tenant policy y registrar receive time aparte.
Secret detectedUn payload o attribute parece contener secret material.Bloquear la emisión, redactar en origen y rotar si se confirma la fuga.

Rollout checklist