Saltar al contenido principal
Los guardrails examinan el texto que fluye a través de un modelo. El Firewall gobierna las acciones que toma un agente — las herramientas que llama, los servidores MCP que alcanza, las skills que carga y los hosts con los que habla. Es el par a nivel de acción de Guardrails: mismo alcance de espacio de trabajo, mismo modelo de adjuntar-una-vez, misma promesa de “la política vive en el gateway, no en tu aplicación”. Esta página es la visión conceptual general y la referencia de operaciones. Tres páginas complementarias cubren las piezas móviles en profundidad:

Reglas

El lenguaje de coincidencia — globs de herramienta, cláusulas de argumentos, listas de egress, saneadores y secuencias.

Servidores MCP

Registra y gobierna servidores Model Context Protocol detrás de un único gateway auditado.

Skills

Escanea y puntúa por riesgo las capacidades que tus agentes instalan antes de que puedan ejecutarse.

1. Qué es el Firewall

Un agente de IA no solo genera texto — actúa. Llama a shell.exec, consulta db.query, recupera una URL, carga una skill de la comunidad o enruta una llamada a herramienta a través de un servidor MCP de terceros. Cada una de esas es una acción con consecuencias en el mundo real, y los guardrails a nivel de prompt no pueden verlas. El Firewall es una política nombrada, con alcance de espacio de trabajo que el gateway evalúa en cada llamada a herramienta. Autoras una política una vez, adjuntas una clave API a ella (o estableces una como el valor por defecto del espacio de trabajo), y a partir de entonces cada llamada a herramienta que emite esa clave se verifica contra la política — antes de que llegue a la herramienta. Cada política es una lista ordenada de reglas. Una regla decide una cosa — a qué llamadas a herramienta aplica (un glob de nombre de herramienta, opcionalmente acotado a una skill y a una superficie de aplicación) y qué hacer al respecto (un veredicto: allow, audit, deny, sanitize, retener para aprobación o limitar coste). El motor recorre las reglas en orden de prioridad, gana la primera coincidencia, y hace fallback al veredicto por defecto de la política si nada coincide. Editar una política surte efecto en cada clave adjunta a ella en la siguiente llamada. Sin redespliegue. Sin cambio de código del agente. La política se aplica en el gateway — tu agente sigue emitiendo llamadas a herramienta exactamente como antes.
La detección ocurre en el gateway, en el primer uso. El Firewall se sitúa en la ruta de relay del LLM, no dentro del gestor de paquetes o el sistema de archivos de tu agente. Una herramienta, servidor MCP o skill que un agente autoinstala se captura la primera vez que su llamada cruza el gateway — no en tiempo de instalación. Esto es deliberado: es el único punto de estrangulamiento que ve cada proveedor, cada agente y cada llamada a herramienta sin importar cómo llegó ahí la capacidad.

2. Las cuatro superficies de aplicación

Cada llamada a herramienta se evalúa contra exactamente una superficie — el punto en el ciclo de vida de la solicitud donde el firewall la ve:
SuperficieQué ve
inboundLas herramientas que un agente anuncia al modelo en la solicitud (definiciones de herramienta). Te permite bloquear una herramienta peligrosa antes de que el modelo pueda siquiera elegirla.
responseLos tool_calls que el modelo emite en su respuesta.
mcpUn tools/call despachado a través del gateway MCP del Firewall o evaluado vía el hook del SDK.
egressUn destino de red saliente (host / IP / CIDR) reportado por una herramienta — la superficie de SSRF y exfiltración de datos.
Una regla sin etapa aplica a todas las superficies; fija una regla a una superficie cuando un veredicto solo tiene sentido ahí (p. ej. una allowlist de egress).

3. Conceptos centrales

ConceptoDefinición
PolíticaUn conjunto de reglas nombrado, con alcance de espacio de trabajo. Tiene enabled, is_default, un default_verdict y un flag shadow_mode.
ReglaUna verificación dentro de una política: una prioridad, una coincidencia de herramienta/skill, una superficie opcional, un predicado de argumentos opcional y un veredicto. Ver Reglas.
VeredictoLa acción que produce una regla (o el valor por defecto) — ver §4.
Veredicto por defectoSe aplica cuando ninguna regla coincide. Uno de allow, audit (por defecto) o deny.
Modo shadowLa política evalúa y registra pero nunca bloquea — cada veredicto de aplicación se degrada a audit y la razón se prefija con [shadow] would …. Tu interruptor de lanzamiento seguro.
Modo observeUn ajuste a nivel de espacio de trabajo. Cuando una solicitud no resuelve a ninguna política y el modo observe está activado, la llamada se permite pero se registra como un hueco de cobertura — eso es lo que llena la vista de Herramientas descubiertas.

Alcance y resolución

Las políticas se resuelven exactamente como los Guardrails y las claves API — compartidas en el espacio de trabajo cuando tienes uno activo. Para cualquier llamada a herramienta el gateway resuelve la política en este orden:
  1. Vinculación de clave — si la clave que llama tiene un firewall_policy_id, esa política aplica (cuando existe y está habilitada).
  2. Valor por defecto del espacio de trabajo — en caso contrario aplica la política habilitada is_default del espacio de trabajo.
  3. Ninguna — sin aplicación. Con el modo observe activado, la llamada se permite y se registra como un hueco; con él apagado, la llamada se permite silenciosamente (idéntica byte a byte a un espacio de trabajo que nunca habilitó la función).
A lo sumo una política por espacio de trabajo puede ser el valor por defecto; promover un nuevo valor por defecto degrada al anterior en la misma transacción.
Fail-open en lo desconocido, fail-closed en lo ambiguo. Si la resolución de la política encuentra un error transitorio, el gateway degrada a observe/allow en vez de tumbar el tráfico. Pero donde no aplicar derrotaría la regla — un reporte de egress sin destino utilizable, un almacén de aprobaciones inalcanzable, una skill cuya propiedad no se puede resolver — el motor falla cerrado (deny o hold). La disponibilidad se preserva; la seguridad no se omite silenciosamente en los casos que importan.

4. Veredictos

Una regla (o el veredicto por defecto) produce uno de:
VeredictoQué hace
allowDeja pasar la llamada. Registrado.
auditPermite, pero lo registra para revisión. El default_verdict por defecto — observa todo, no bloquea nada, hasta que estés listo.
denyBloquea la llamada. El agente ve un error de herramienta (o HTTP 400 en la superficie inbound).
sanitizeRedacta las subcadenas coincidentes de los argumentos de la herramienta (secretos, PII) y reenvía la llamada limpia. Ver saneadores. En la superficie inbound — donde aún no hay argumentos en tiempo de llamada — sanitize escala a un bloqueo.
pending_approvalRetiene la llamada para un humano. El agente obtiene una respuesta “retenida”; un revisor aprueba o rechaza fuera de banda; el agente reenvía con un token de aprobación de un solo uso. Ver §7.
cap_costDeniega una vez que el gasto acumulado de la ejecución del agente excede un tope en centavos por regla. Un interruptor de circuito para bucles descontrolados.
En modo shadow, deny / sanitize / pending_approval se degradan todos a audit para que puedas medir el impacto de una política antes de que cambie el tráfico.

5. Cómo se evalúa una llamada a herramienta

  1. Una llamada a herramienta llega al gateway (anunciada inbound, emitida en una respuesta, despachada a través del gateway MCP, o reportada como egress).
  2. El motor resuelve la política activa (§3).
  3. Recorre las reglas de la política en orden de prioridad (menor prioridad primero; los empates se rompen por id de regla). Una regla coincide cuando su superficie, su glob de nombre de herramienta, su glob de nombre de skill opcional, sus cláusulas de argumentos opcionales y su alcance de egress opcional coinciden todos.
  4. Gana la primera coincidencia → aplica el veredicto de la regla. Si ninguna regla coincide → el default_verdict de la política.
  5. Si la llamada es propiedad de una skill gobernada, el modo de aplicación de la skill se aplica encima — una skill en modo block fuerza un deny; una skill en modo quarantine escala cualquier cosa por debajo de deny a pending_approval.
  6. La decisión se registra como un evento del firewall (a menos que sea una ejecución en seco), correlacionada con la ejecución y la sesión del agente.

6. Cómo se ve un block

Una llamada denegada en la superficie inbound devuelve HTTP 400 con un cuerpo de error con forma de OpenAI, el código de error firewall_blocked y un mensaje que nombra la herramienta y la razón — p. ej. tool "shell.exec" blocked by firewall: destructive shell command. El error lleva metadata estructurada (código de razón, factores de riesgo, puntuación) y se marca como skip-retry (reejecutar la misma llamada simplemente volvería a bloquear). Una llamada despachada a través del gateway MCP se bloquea como un error de herramienta (firewall deny: <reason>) en vez de un fallo de transporte, así que el modelo ve el rechazo y puede reaccionar — elegir otra herramienta, preguntar al usuario o detenerse — en vez de fallar. Una llamada retenida (pending_approval) devuelve HTTP 400 con el código firewall_approval_pending y un id de aprobación sobre el que el cliente hace polling.

7. Aprobación humana (HITL)

Un veredicto pending_approval convierte una llamada a herramienta en una revisión fuera de banda:
  1. El motor encola un registro de aprobación y devuelve una respuesta “retenida” que lleva su id; la llamada no llega a la herramienta.
  2. Un revisor la resuelve — desde la consola (Developer+), o vía un callback de webhook firmado con HMAC a tu propio sistema de aprobación.
  3. Tu agente (o el SDK de MCP) hace polling del id de aprobación; una vez aprobado reenvía la llamada original con una cabecera X-OrcaRouter-Firewall-Approval de un solo uso, y el gateway la deja pasar esa única vez.
Las decisiones son first-writer-wins e idempotentes. Si la regla subyacente se editó después de la retención, el enriquecimiento anota rule_changed para que los revisores sepan que el contexto cambió.

8. Niveles de autonomía — un interruptor para toda tu postura

Afinar las políticas regla por regla es la ruta precisa; los niveles de autonomía son la rápida. Un único control reemplaza atómicamente la postura de Firewall y de Guardrails de tu espacio de trabajo en una transacción, con deshacer de un clic:
NivelPostura
tightBloquea shell destructivo, secretos en argumentos y egress SSRF (deny por defecto); guardrails de PII Shield + Secrets Blocker activados; modo observe apagado.
balancedAudita shell destructivo, marca PII; modo observe apagado. La postura de inicio recomendada.
permissiveSin política de aplicación, sin guardrails; modo observe activado para que aún veas todo.
Deshacer restaura el estado previo exacto desde el snapshot de auditoría.

9. Detección de anomalías

Más allá de las reglas estáticas, el Firewall aprende la forma normal de uso de herramientas de cada espacio de trabajo y marca las desviaciones en un feed legible por el visualizador:
  • Picos de tasa / coste — la actividad por herramienta se puntúa contra una línea base de hora-de-la-semana aprendida (un promedio móvil de 14 días), así que “100 llamadas a db.query a las 3am del domingo” resalta incluso si cada llamada está individualmente permitida.
  • retry_loop — un agente martillando la misma herramienta que falla.
  • novel_path — una transición de herramienta a herramienta que este espacio de trabajo nunca ha hecho antes.
El feed reporta nombres de herramienta, ids de token redactados y solo conteos. Puedes posponer (snooze) una anomalía hasta 7 días mientras investigas.

10. Observabilidad

El Firewall deja un rastro sobre el que puedes actuar, todo con alcance de espacio de trabajo:
SuperficieQué te da
EventsCada evaluación, filtrable por veredicto, superficie, herramienta, ejecución y sesión. El registro en bruto detrás de todo lo demás.
Runs & sessionsEventos agregados por ejecución de agente o conversación — desglose de veredictos, herramientas y modelos distintos, primera/última vez vistos. La vista de “qué hizo realmente este agente”.
Discovered toolsCada herramienta que el espacio de trabajo ha visto, marcada covered (una regla aplica) o gap (ninguna lo hace). Impulsa la autoría de políticas desde el tráfico real.
SimulatePrevisualiza qué cambiaría un nivel de autonomía antes de aplicarlo.
TestEjecuta en seco una política contra una llamada a herramienta de muestra y ve el veredicto, la regla coincidente y la razón — nada se persiste, nada se despacha.
AuditCada cambio de política, regla y configuración escribe una fila de auditoría (espacio de trabajo + central) después de que el cambio se confirma. Los secretos y los blobs de reglas nunca se registran.

11. Relación con el resto del gateway

Superficie¿Cómo se compone con el Firewall?
GuardrailsPlanos complementarios. Los Guardrails examinan el texto de prompt/respuesta; el Firewall gobierna las acciones de herramienta. Ambos pueden aplicarse a una solicitud. Los niveles de autonomía establecen ambos a la vez.
EnrutamientoIndependiente. El enrutamiento elige el modelo/canal; el firewall juzga las llamadas a herramienta sin importar qué modelo las atendió.
Claves APIUna clave se adjunta a una política vía firewall_policy_id; la vinculación vive en la clave dentro del gateway. Sin vinculación se hace fallback al valor por defecto del espacio de trabajo.
Gateway MCPEl firewall es el gateway MCP — cada servidor que registras despacha su tools/call a través del motor.
SkillsEl modo de aplicación de una skill gobernada cabalga encima del veredicto de la regla, así que una skill en cuarentena se retiene incluso si ninguna regla nombra sus herramientas.

12. Conectar un agente al gateway del Firewall

Hay dos formas en que una llamada a herramienta llega al motor:
  • Gateway MCP — apunta tu cliente MCP (Claude Desktop, Cursor, un framework de agentes) a https://api.orcarouter.ai/api/v1/firewall/mcp. El gateway expone las herramientas de cada servidor registrado alcanzable, con espacio de nombres <server>.<tool>, y evalúa cada tools/call en línea. Ver Servidores MCP.
  • Hook de evaluación — llama a POST /api/v1/firewall/evaluate desde tu propio bucle de agente antes de despachar una llamada a herramienta, y actúa sobre el veredicto.
Ambos requieren un token con alcance de gateway de firewall — una clave API dedicada acuñada para este propósito. Una clave normal obtiene 403 en estas rutas.

13. Referencia de la API

Todas las rutas de consola tienen alcance de espacio de trabajo vía el contexto del espacio de trabajo y aplican RBAC de manera consistente: las lecturas y los sandboxes de test/simulate están abiertos a cada miembro; las escrituras requieren Developer+.

Políticas y configuración

Método y rutaRolPropósito
GET /api/workspace/firewall/settingsMemberLeer la configuración del firewall del espacio de trabajo (modo observe, valores por defecto).
PUT /api/workspace/firewall/settingsDeveloper+Actualizar la configuración.
GET /api/workspace/firewall/policiesMemberLista políticas (con conteos de reglas + claves adjuntas).
GET /api/workspace/firewall/policies/:idMemberDetalle de una sola política.
POST /api/workspace/firewall/policiesDeveloper+Crear una política.
PUT /api/workspace/firewall/policiesDeveloper+Actualizar una política.
DELETE /api/workspace/firewall/policies/:idDeveloper+Eliminar una política (409 si aún hay claves adjuntas).

Postura, presets y sandboxes

Método y rutaRolPropósito
GET /api/workspace/firewall/presetsMemberPresets de reglas integrados.
POST /api/workspace/firewall/autonomyDeveloper+Aplicar un nivel de autonomía.
POST /api/workspace/firewall/autonomy/undo/:audit_idDeveloper+Deshacer un cambio de autonomía.
GET /api/workspace/firewall/simulateMemberPrevisualizar un nivel de autonomía (?level=).
POST /api/workspace/firewall/testDeveloper+Ejecutar en seco una política contra una llamada a herramienta de muestra.

Observabilidad

Método y rutaRolPropósito
GET /api/workspace/firewall/discovered-toolsMemberHerramientas vistas, marcadas covered / gap.
GET /api/workspace/firewall/eventsDeveloper+Lista eventos del firewall (filtrable).
GET /api/workspace/firewall/events/by-request/:request_idDeveloper+Eventos de una solicitud.
GET /api/workspace/firewall/events/aggregateDeveloper+Agregado de ejecuciones / sesiones.
GET /api/workspace/firewall/trace/by-runDeveloper+Nodos de traza para una ejecución (?run_id=).
GET /api/workspace/firewall/anomaliesMemberFeed de anomalías (?window=).
POST /api/workspace/firewall/anomalies/snoozeDeveloper+Posponer el feed de anomalías.
Las reglas, los servidores MCP y las skills tienen cada uno sus propios endpoints — ver Reglas, Servidores MCP y Skills.

Gateway (máquina a máquina)

Estos se ejecutan sobre un token con alcance de gateway de firewall, no la sesión de consola:
Método y rutaPropósito
POST /api/v1/firewall/evaluateVeredicto previo al despacho para una llamada a herramienta.
POST /api/v1/firewall/evaluate_planVerificación previa a la ejecución para un plan de varios pasos.
ANY /api/v1/firewall/mcpEl endpoint unificado del gateway MCP.
GET /api/v1/firewall/approvals/:idHacer polling del estado de aprobación de una llamada retenida.
POST /api/v1/firewall/approvals/:id/callbackCallback de aprobación firmado con HMAC.

14. FAQ

Con el modo observe apagado, el comportamiento es idéntico byte a byte a un espacio de trabajo que nunca habilitó la función — nada se bloquea ni se registra. Con el modo observe activado, la llamada se permite pero se registra como un hueco de cobertura para que aparezca en Discovered tools.
Activa el modo shadow. La política evalúa y registra exactamente como lo haría en producción, pero cada veredicto de aplicación se degrada a audit y la razón se prefija con [shadow] would …. Observa las vistas de eventos y ejecuciones, confirma que se dispara en lo que esperas y en nada que no, luego apaga el modo shadow para empezar a aplicar.
Un bloqueo inbound se dispara antes de la llamada al modelo upstream, así que no cuesta tokens de modelo. Los veredictos audit / allow no cambian la facturación. Una regla cap_cost es en sí misma un control de facturación — deniega una vez que el gasto de la ejecución cruza tu tope en centavos.
Ambos, para capas diferentes. Los Guardrails examinan el texto en prompts y respuestas (PII, secretos, jailbreaks). El Firewall gobierna las acciones que toma un agente (qué herramientas, qué servidores MCP, qué hosts). Una solicitud puede pasar por ambos. El nivel de autonomía tight los configura juntos.
El Firewall aplica sobre las llamadas a herramienta que cruzan el gateway — la ruta de relay, el gateway MCP y el hook de evaluación. Una herramienta que tu agente ejecuta enteramente dentro de su propio proceso, sin tocar nunca el gateway, está fuera de la vista del firewall. El objetivo de diseño es hacer del gateway la única ruta auditada para las llamadas que importan (herramientas mediadas por modelo, despacho MCP, egress de red); enruta esas a través de él y quedan gobernadas.

Véase también

¿Quieres profundizar en la seguridad de agentes? Las guías de Protege tus agentes (Zero Trust) sitúan esta función dentro de un flujo de trabajo de confianza cero.

Protege tus agentes (Zero Trust)

El manual del firewall de agentes de confianza cero — listas de permitidos de herramientas, verificación de argumentos y control de salida.

Línea base de Agentes Seguros

Un solo interruptor que establece a la vez la postura de tu Firewall y tus Guardrails.