El agente más difícil de gobernar es aquel en el que un desarrollador ha iniciado sesión con una suscripción personal o corporativa: Claude Code con Pro/Max, o Codex con ChatGPT. Se ejecuta en un portátil, se autentica con una credencial OAuth, y es exactamente la superficie que un guardrail de proveedor cloud en la ruta de inferencia nunca ve (véase la comparativa con gateways). La “solución” tentadora — poner un servicio delante que retenga la suscripción y encamine su tráfico — es algo que Olivares AI no va a construir, porque los proveedores de modelos lo prohíben y porque convertiría nuestro control plane en un punto único de compromiso de credenciales.
Esta página es la descripción honesta de cómo gobernamos estos agentes sin intermediar jamás la suscripción: qué observamos, dónde aplicamos la política, y el único camino estrecho en el que un gateway es apropiado (y nunca es el de la suscripción).
La línea roja: nunca encaminamos tu suscripción. Olivares AI nunca retiene, proxifica ni encamina una credencial de suscripción de terceros. La propia política de Anthropic establece: “Anthropic does not permit third-party developers to offer Claude.ai login or to route requests through Free, Pro, or Max plan credentials on behalf of their users” (Claude Code legal & compliance, consultado 2026-06-21 — la prohibición nombra los tres planes de consumo Free, Pro, Max). Los términos de OpenAI funcionan de la misma manera para un inicio de sesión de consumidor de ChatGPT/Codex. Nuestra postura es más estricta que la propia línea: no encaminamos ningún OAuth de suscripción, de ningún plan. La gobernanza ocurre alrededor del agente, nunca dentro de su credencial.
Por qué intermediar la suscripción está descartado
Merece la pena ser preciso con la regla, porque el asesor legal de un comprador la verificará. La política de Anthropic traza dos listas que no deben confundirse:
- Quién puede usar OAuth en absoluto — cinco planes: “OAuth authentication is intended exclusively for purchasers of Claude Free, Pro, Max, Team, and Enterprise subscription plans and is designed to support ordinary use of Claude Code and other native Anthropic applications.”
- Qué no puede hacer un tercero — encaminar en nombre de los usuarios: “Anthropic does not permit third-party developers to offer Claude.ai login or to route requests through Free, Pro, or Max plan credentials on behalf of their users.”
La prohibición nombra explícitamente los planes de consumo (Free, Pro, Max). La página no concede, en sentido contrario, permiso a nadie para encaminar puestos Team o Enterprise — guarda silencio al respecto, y no interpretamos el silencio como una licencia. Para desarrolladores que construyen herramientas, la propia guía de Anthropic apunta lejos del OAuth de suscripción por completo: “Developers building products or services that interact with Claude’s capabilities, including those using the Agent SDK, should use API key authentication through Claude Console or a supported cloud provider.” (source; separación por tipo de plan: Team/Enterprise/API bajo Commercial Terms, Free/Pro/Max bajo Consumer Terms.)
Nuestro conector de Codex codifica la misma disciplina en código, por diseño: la
credencial de automatización es una API key de OpenAI o un workspace access
token, nunca una suscripción personal de ChatGPT — “proxying it for
third-party/programmatic use violates OpenAI’s terms exactly as a consumer Claude
subscription does for Anthropic. There is no subscription config field by design”
(connectors/codex/codex.go). Así que la línea roja no es una promesa de
marketing añadida después; es la forma del producto.
Tres mecanismos, ninguno de ellos la suscripción
Gobernamos un agente autenticado por suscripción a través de tres canales independientes. Los dos primeros nunca tocan la inferencia; el tercero la toca solo para tráfico que se autentica con una API key, nunca con una suscripción.
1. Observar — telemetría, uso y postura
Claude Code emite OpenTelemetry, y un administrador puede activarlo para toda la flota desde el tier gestionado: “Administrators can configure OpenTelemetry settings for all users through the managed settings file” (Claude Code monitoring). Ingerimos esa señal gen-ai — sesiones, tokens, coste, actividad de herramientas — y la convertimos en el mapa de acceso y los hallazgos de postura. Es crucial que esto es minimal-data por construcción también en el lado de Claude Code: el contenido de los prompts está “redacted by default” y los detalles de herramientas, el contenido de herramientas y los cuerpos crudos de API están cada uno “(default: disabled)” (misma fuente). Consumimos uso y metadatos, no conversaciones.
Para Codex, el mismo canal de observación es la ingesta del conector de las APIs
de Analytics y Compliance/Audit — uso, adopción y registros de auditoría
inmutables convertidos en muestras de coste y evidencia a prueba de
manipulación, sin incluir “never prompt/diff content or key values”
(connectors/codex/codex.go).
2. Managed settings + hooks — el PEP en proceso
La observación no es aplicación de políticas. El canal de aplicación para Claude
Code son sus managed settings en el tier de política del sistema operativo,
que incluyen un hook PreToolUse no sobreescribible que llama al punto de
decisión de Olivares antes de que se ejecute cada herramienta. Anthropic documenta
la propiedad en la que nos apoyamos: “Environment variables defined in the
managed settings file have high precedence and cannot be overridden by users”, y
los managed settings “can be distributed via MDM”
(monitoring).
Olivares genera ese fichero (olivares agent managed-settings) con
allowManagedHooksOnly para que el hook propio de un desarrollador nunca pueda
preceder ni socavar el gobernado, y el endpoint por sesión y el bearer se
inyectan en el arranque — no se escriben en el fichero estático. La decisión en
sí misma es deny-closed en cada borde: una llamada a herramienta solo se
permite cuando una identidad firme se resuelve, la disposición de política no es
deny, el motor de políticas en vivo no lo prohíbe, y — para un ask — una
aprobación humana está vinculada al hash exacto del plan. Un emergency stop
(kill switch) prevalece sobre todo, incluida una
concesión activa de break-glass.
Este es el mecanismo que la página Claude Code hooks PEP documenta operativamente, y es lo que nos permite gobernar el agente de desarrollo local, no simplemente observarlo.
3. Gateway para API key — nunca para OAuth
Existe exactamente un camino en el que Olivares se sitúa en la línea de la
petición de inferencia, y solo existe para los llamantes que no usan el canal
de managed settings de Claude Code: tráfico de SDK directo o curl autenticado
con una API key (o un equivalente de Bedrock/Vertex). Claude Code encamina
esas peticiones con ANTHROPIC_BASE_URL — “To route requests through a custom
API endpoint, set the ANTHROPIC_BASE_URL environment variable instead” — y
autentica un gateway con un bearer mediante ANTHROPIC_AUTH_TOKEN, “when routing
through an LLM gateway or proxy that authenticates with bearer tokens rather than
Anthropic API keys”
(Claude Code IAM). Apuntado al proxy de
inferencia inline de Olivares, ese tráfico recibe un pipeline gobernado —
residencia, acceso a modelos, ventana de contexto, DLP, presupuesto, grabación —
antes de ser reenviado.
La frontera es absoluta: este camino transporta tráfico de API key / bearer,
nunca la credencial OAuth de una suscripción. Es la costura de aplicación de
políticas para los llamantes de SDK/curl a los que los managed settings no
pueden alcanzar, y nada más.
La caja de honestidad: verified-deployed, no inviolable
Aplicación que podemos demostrar que está desplegada, no aplicación que no pueda ser eludida. El PEP de managed settings + hook es deny-closed y no sobreescribible por el usuario a través de settings — pero no es magia. Un desarrollador que apunte
ANTHROPIC_BASE_URLa su propio endpoint envía la inferencia a otro sitio completamente; nuestra propia nota de ingeniería lo dice con claridad: “a customANTHROPIC_BASE_URLbypasses server-managed-settings entirely” (modules/inferenceproxy/doc.go). Así que nunca afirmamos que el PEP sea imposible de eludir. En su lugar afirmamos dos cosas que podemos respaldar:
- Está verified-deployed. Olivares certifica que los managed settings y el hook PEP están realmente presentes en el host — un host no aprovisionado se ejecuta sin gobernanza pero observado, y eso es visible, no oculto.
- La elusión es en sí misma un hallazgo. Un
ANTHROPIC_BASE_URLno predeterminado en un host aparece como un hallazgo de postura, y un entorno gestionado que fija una base URL que diverge del gateway autorizado de Olivares genera un hallazgo de drift (connectors/claude-config,connectors/managedsettings). La evasión no queda en silencio; se ilumina.“Verified-deployed, evasion-as-finding” es la narrativa honesta de aplicación para cualquier agente que se ejecuta en una máquina que el desarrollador controla. No te venderemos “inviolable”.
La asimetría de Codex, expuesta con honestidad
Claude Code y Codex no son simétricos, y la diferencia importa. Para Codex
autenticado por ChatGPT no existe un equivalente documentado de
ANTHROPIC_BASE_URL — la
página de managed configuration
de OpenAI no documenta ningún setting ni variable de entorno para encaminar la
inferencia a través de una base URL personalizada o un gateway (verificado por
fetch, 2026-06-21; una ausencia en esa página, no una prueba de que no exista en
otro lugar). Así que no gobernamos Codex interceptando su inferencia.
En su lugar lo gobernamos donde OpenAI sí proporciona a los administradores
controles aplicables. La managed configuration de Codex permite a una empresa
establecer “Requirements: admin-enforced constraints that users can’t override”
que “constrain security-sensitive settings (approval policy, approvers reviewer,
automatic review policy, sandbox mode, permission profiles, web search mode,
managed hooks, and optionally which MCP servers users can enable)” (misma
fuente). Olivares redacta y certifica esos requisitos
(connectors/codex-managed-config) — approval policy, sandbox mode, la allowlist
de MCP, telemetría redactada (log_user_prompt = false) — e ingiere la evidencia
de Analytics y Compliance de Codex. Gobernanza a través de configuración y
evidencia, no a través de un man-in-the-middle en la llamada al modelo.
En una tabla
| Canal | Qué hace | ¿Toca la inferencia? | La credencial |
|---|---|---|---|
| Observar | Uso, coste, actividad de herramientas → mapa de acceso + postura; Analytics/Compliance de Codex → ledger | No | Ninguna — solo telemetría, contenido redactado por defecto |
| Managed settings + hooks | PEP PreToolUse deny-closed en Claude Code, no sobreescribible vía settings | No | La del propio agente; nunca la vemos |
| Gateway (solo API key) | Pipeline gobernado para llamantes de SDK/curl directos vía ANTHROPIC_BASE_URL | Sí | API key / bearer — nunca OAuth de suscripción |
| Codex managed-config | Requisitos aplicados por el admin (approval/sandbox/MCP) + ingesta de evidencia | No | La de la organización; configuración, no interceptación |
Relacionado
- Dónde encaja Olivares frente a tu gateway / Guardrails — por qué nada de esto compite con tu AI gateway.
- Olivares AI vs WitnessAI — la comparativa directa sobre gobernanza de agentes en IDEs.