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 le envían requests y solo cambian su URL base. Úsalo cuando no se puedan añadir llamadas SDK en cada aplicación o cuando la política de evidencia de modelos deba residir en un límite controlado.

ModoComportamientoUso
provenance-observeProxifica la salida byte por byte. La evidencia raw de request/response va solo a Local Vault; únicamente salen commitments de cápsula aleatorizados.Predeterminado cuando no se debe modificar la salida del modelo.
provenance-transformUsa la misma ruta de Local Vault e incorpora AttestoMark Text keyed en texto apto de Chat Completions, Completions o Responses.Cuando el texto entregado también necesita evidencia de marca autenticada y vinculada al contenido.
legacyConserva la ruta anterior de eventos SDK directos y sus límites documentados de divulgación de metadatos.Solo migración; no forma parte del claim de privacidad provenance.

El modo provenance de producción tiene dos servicios locales. Local Vault controla la firma de cápsulas, el almacenamiento cifrado, la detección independiente de marcas y la cola durable de commitment envelopes. El gateway solo controla la conexión de modelo permitida y, en transform, sus roles separados de claves de embedding. Genera las claves en archivos protegidos; sus bytes nunca son argumentos.

attesto-local-vault providers serve-daemons \
  --manifest-dir /opt/attesto/providers \
  --socket /var/lib/attesto/run/providers.sock \
  --auth-key-file /run/secrets/attesto-provider-ipc-key \
  --allowed-uid 10001 \
  --provenance-socket /var/lib/attesto/run/gateway-provenance.sock \
  --provenance-auth-key-file /run/secrets/attesto-gateway-provenance-key \
  --attestomark-detection-private-key-file /run/secrets/attestomark-detection-private \
  --attestomark-embedding-public-key-file /run/secrets/attestomark-embedding-public \
  --provenance-stream-id "$ATTESTO_STREAM_ID"
attesto-gateway --listen 127.0.0.1:8765 \
  --admin-listen 127.0.0.1:8766 \
  --mode provenance-transform \
  --upstream https://api.openai.com \
  --upstream-allow-host api.openai.com \
  --provider-ipc-socket /var/lib/attesto/run/providers.sock \
  --provider-ipc-key-file /run/secrets/attesto-provider-ipc-key \
  --provenance-ipc-socket /var/lib/attesto/run/gateway-provenance.sock \
  --provenance-ipc-key-file /run/secrets/attesto-gateway-provenance-key \
  --attestomark-embedding-private-key-file /run/secrets/attestomark-embedding-private \
  --attestomark-detection-public-key-file /etc/attesto/attestomark-detection-public.hex

export OPENAI_BASE_URL=http://127.0.0.1:8765/v1
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