Adarve

Cortafuegos de agentes y MCP

Tu agente obedece a lo que lee. Adarve decide qué llega a leer.

Un gateway compatible con OpenAI entre tu agente y el modelo, y una API para inspeccionar todo lo que vuelve de herramientas, RAG y la web. Cambias una línea: base_url.

Tu agentebase_url=…/v1AdarvegatewayLLM/v1/chat/completionsAdarveInspección de herramientasHerramientas MCPRAGWeb
Diagrama: el agente habla con el LLM a través del gateway de Adarve; lo que devuelven herramientas, RAG y la web pasa por la inspección de Adarve antes de volver al agente.

Gateway

Un cambio de base_url. Nada más.

El gateway habla el protocolo de chat completions de OpenAI. Tu SDK no cambia; la clave de tu proveedor viaja en una cabecera aparte.

  • Inspecciona el prompt antes de llamar al modelo y la respuesta antes de devolverla
  • En modo Aplicar bloquea por encima del umbral del proyecto; en Monitorizar solo informa
  • La clave de Adarve necesita el alcance «gateway»
agent.py
from openai import OpenAI

client = OpenAI(
    base_url="https://api.adarve.dev/v1",            # the only line that changes
    api_key=ADARVE_KEY,                          # key with the "gateway" scope
    default_headers={"X-Upstream-Authorization": "Bearer sk-…"},  # your provider key
)

reply = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": user_input}],
)

Controles

Seis controles para el tráfico de un agente.

  • Inspección de salidas de herramientas

    POST /api/v1/inspect/tool analiza lo que devolvió una herramienta, un fragmento de RAG o una página web antes de que el agente lo lea.

  • Fijado de esquemas MCP

    La primera vez que ves una herramienta, Adarve guarda la huella SHA-256 de su definición. Si cambia después (rug pull), lo marca como «changed» hasta que lo apruebes.

  • Escaneo de envenenamiento

    Cada campo de texto del esquema —nombre, descripción, descripciones de parámetros— pasa por el motor: instrucciones ocultas, texto invisible, descripciones desmesuradas.

  • Spotlighting

    POST /api/v1/spotlight delimita el texto no confiable (fragmentos RAG, emails, páginas web) con una frontera aleatoria nueva en cada llamada y te da la frase de system prompt que la acompaña.

  • Filtro de exfiltración

    Detecta imágenes y enlaces markdown, imágenes HTML y URLs que sacan datos en la query o la ruta hacia dominios fuera de tu lista.

  • Canary tokens

    Planta un token en tu prompt de sistema. Si aparece en una respuesta o en una llamada a herramienta, hubo una fuga: score 1,0.

API de herramientas

Fija la definición. Inspecciona el resultado.

La misma llamada sirve para las dos cosas. El veredicto siempre es null: tú decides el umbral.

200 OK · application/json
{
  "risk_score": 0.93,
  "category": "data_extraction",
  "verdict": null,
  "result": {
    "layers": {
      "egress": { "findings": [
        { "kind": "markdown_image", "host": "evil.example" } ] }
    }
  }
}
bash
# 1) Pin an MCP tool definition (first sight = "new"; any later change = "changed")
curl -s https://api.adarve.dev/api/v1/inspect/tool \
  -H "Authorization: Bearer $ADARVE_KEY" \
  -d '{"server": "weather-mcp", "definition": {"name": "forecast",
       "description": "Returns the forecast for a city.",
       "inputSchema": {"type": "object", "properties": {"city": {"type": "string"}}}}}'

# 2) Inspect what a tool returned before the agent reads it
curl -s https://api.adarve.dev/api/v1/inspect/tool \
  -H "Authorization: Bearer $ADARVE_KEY" \
  -d '{"server": "web", "result": "<page text, RAG chunk or tool output>"}'

Honestidad

Los clasificadores se pueden evadir. Los controles deterministas, no tan fácilmente.

Ningún detector de prompt injection acierta siempre; el nuestro tampoco, y publicamos cómo lo medimos. Por eso los controles de agentes no dependen solo del score.

El fijado de esquemas, el spotlighting, el filtro de exfiltración y los canaries son deterministas: se mantienen aunque un atacante consiga engañar al clasificador.

Pon el adarve entre tu agente y el mundo.

Empieza con la API gratuita. El gateway y la inspección de herramientas están en todos los planes.