Puerta de enlace API local para agentes de codificación de IA con atribución de costos por ingeniero, presupuestos estrictos, gobernanza de salida (escaneo de secretos/entidades), observabilidad de rotación de contexto y exportaciones listas para auditoría. Se ejecuta dentro de tu VPC.
El plano de control on-premise para agentes de codificación de IA. Atribución de costos por ingeniero · presupuestos estrictos · gobierno de egreso · observabilidad de rotación de contexto · exportaciones listas para auditoría — todo dentro de tu VPC.
Conduit se sitúa entre tus agentes de codificación de IA (Claude Code, Cursor, Codex, Aider) y cualquier proveedor que ya uses (Anthropic, OpenAI, Bedrock, Azure — o tu implementación existente de LiteLLM / Portkey). Una variable de entorno para adoptarlo, cero cambios en el cliente, los prompts y completaciones nunca se almacenan.
[Claude Code / Cursor / Codex]
│ ANTHROPIC_BASE_URL=https://conduit.yourco.dev
▼
[Conduit] vk_live_… (por ingeniero)
│ medición · presupuestos · gobierno · auditoría · rotación de contexto
▼
[LiteLLM / Portkey / proveedores directos]
│
▼
[Anthropic / OpenAI / Bedrock / Azure]
Resumen — gasto, ahorros por caché, tokens, solicitudes bloqueadas y banderas de gobierno de un vistazo.

Aplicación estricta de presupuesto — al exceder el límite devuelve un 402 en la puerta de enlace, antes de que la solicitud llegue al proveedor.

Gobierno de egreso — una solicitud que lleva una clave de AWS se bloquea con un 451; solo se registra la categoría, nunca el valor.

Actividad — cada solicitud con un estado distinto: éxito · acierto de caché · límite de velocidad · modelo bloqueado · presupuesto excedido · bloqueado por gobierno.

Ajustes — CRUD completo para organización, credenciales de proveedor, equipos, presupuestos y claves virtuales.

Los endpoints privados de Bedrock / Vertex / Azure + los BAA de no entrenamiento resuelven el canal hacia el proveedor. No le dicen a finanzas quién gastó los $40k, no detectan secretos a la salida, no proporcionan un registro a los auditores y no muestran dónde la rotación de contexto está quemando tu presupuesto de tokens. Esa es la brecha que Conduit llena — sin ver nunca tus prompts.
Descarga las imágenes firmadas más recientes desde GHCR (verificable mediante cosign verify, consulta Postura de seguridad).
# 1. Obtén el archivo compose + la plantilla .env (sin necesidad de clonar completo)
curl -fsSL https://raw.githubusercontent.com/anee769/conduit/master/docker-compose.yml -o docker-compose.yml
curl -fsSL https://raw.githubusercontent.com/anee769/conduit/master/.env.example -o .env
# 2. Genera una clave maestra de cifrado real
sed -i.bak "s|^MASTER_ENCRYPTION_KEY=.*|MASTER_ENCRYPTION_KEY=$(openssl rand -base64 32)|" .env && rm .env.bak
# 3. Descarga las imágenes firmadas + inicia
docker compose --profile app pull
docker compose --profile app up -d
# 4. Ejecuta migraciones + siembra el libro de precios (una vez)
docker exec conduit-gateway-1 pnpm --filter @finops/db db:migrate
docker exec conduit-gateway-1 pnpm --filter @finops/db seed-pricing
# → abre http://localhost:3000/setup → crea organización / credencial / equipo / clave virtual
Fija una versión específica exportando GATEWAY_IMAGE y CONTROL_PLANE_IMAGE antes de up:
export GATEWAY_IMAGE=ghcr.io/anee769/conduit-gateway:v0.1.0
export CONTROL_PLANE_IMAGE=ghcr.io/anee769/conduit-control-plane:v0.1.0
git clone https://github.com/anee769/conduit && cd conduit
cp .env.example .env
sed -i.bak "s|^MASTER_ENCRYPTION_KEY=.*|MASTER_ENCRYPTION_KEY=$(openssl rand -base64 32)|" .env && rm .env.bak
docker compose --profile app up -d --build
docker exec conduit-gateway-1 pnpm --filter @finops/db db:migrate
docker exec conduit-gateway-1 pnpm --filter @finops/db seed-pricing
export ANTHROPIC_BASE_URL=http://localhost:4000
export ANTHROPIC_AUTH_TOKEN=vk_live_… # clave virtual desde /setup
claude # o cursor / codex / aider
Guía completa desde cero en INSTALL.md.
| Tú ejecutas hoy | Configura el upstream de Conduit como |
|---|---|
| LiteLLM (cualquier modelo, cualquier proveedor) | UPSTREAM_ANTHROPIC_URL=http://litellm:4000 → guía completa: docs/run-with-litellm.md |
| Portkey | Apunta UPSTREAM_OPENAI_URL / UPSTREAM_ANTHROPIC_URL a la URL base de tu Portkey |
| Anthropic / OpenAI directo | Por defecto — nada que configurar |
| AWS Bedrock | Configura una credencial de Bedrock en /setup; Conduit firma las solicitudes con SigV4 |
| Azure OpenAI | Configura una credencial de Azure (nombre de implementación + api-version) en /setup |
| Conduit | LiteLLM | Portkey | Helicone | |
|---|---|---|---|---|
| Licencia de código abierto | Apache 2.0 | MIT | Apache 2.0 (puerta de enlace) | MIT |
| Se ejecuta completamente on-prem / en tu VPC | ✅ | ✅ | ✅ (empresarial) | ✅ (auto-alojado) |
| Enrutamiento de proveedores + alias + respaldo | ✅ (cualquier upstream) | ✅ | ✅ | ❌ |
| Atribución de costos por ingeniero (claves virtuales con nombres) | ✅ | parcial (facturas compartidas de clave maestra) | ✅ | ✅ (solo observación) |
| Presupuestos estrictos (402 de fallo cerrado) | ✅ | parcial | ✅ | ❌ |
| Gobierno de egreso (secretos + lista blanca de entidades por organización, alerta→bloqueo) | ✅ | ❌ | ✅ (guardarraíles) | ❌ |
| Exportación lista para auditoría en CSV/JSON (solo metadatos) | ✅ | ❌ | parcial | ✅ |
| Observabilidad de rotación de contexto (curva de costo y error por tamaño de token de entrada) | ✅ | ❌ | ❌ | ❌ |
| Prompts / completaciones nunca almacenados | ✅ | registros por defecto | configurable | registros por defecto |
| Versiones firmadas + SBOM CycloneDX | ✅ | ❌ | ❌ | ❌ |
| Diseñado para colocarse sobre otros | ✅ | n/a | n/a | n/a |
LiteLLM es excelente en alias y enrutamiento de modelos — Conduit añade la capa que pidieron tus equipos de seguridad y finanzas. Portkey es el que tiene características más cercanas, pero es empresarial de código cerrado una vez que necesitas gobierno + on-prem. Helicone es solo observabilidad (te dice dónde fueron los tokens; no controla a dónde van).
SECURITY.md para conocer la postura completa./invoke de Bedrock funciona.Conduit se ejecuta completamente en tu propia nube — ningún proveedor en la ruta de la solicitud, sin telefonía a casa, aislable. Consulta SECURITY.md para el documento técnico (diagrama de flujo de datos, qué se almacena, criptografía, autenticación de fallo cerrado, postura de cumplimiento, modelo de amenazas).
ghcr.io/anee769/conduit-gateway y ghcr.io/anee769/conduit-control-plane en cada etiqueta git v* (consulta .github/workflows/release.yml). Verifica cualquier etiqueta publicada:
cosign verify ghcr.io/anee769/conduit-gateway:<tag> \
--certificate-identity-regexp 'https://github.com/anee769/conduit' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com
bash scripts/sbom.sh.apps/gateway — Hono en Node, el plano de datos de la ruta crítica. Sin paso de compilación (tsx). Cliente ClickHouse sin dependencias + ioredis.apps/control-plane — Panel de Next.js 15 / React 19 + API de administración + asistente de configuración inicial /setup.packages/db — Esquema Drizzle, cifrado AES-256-GCM, hash de claves, precios + presupuestos.usage_events) + Redis (caché + límites de velocidad + contadores de presupuesto en vivo).Ciclo de vida de la solicitud (apps/gateway/src/routes/proxy.ts):
auth (vk) → límite de velocidad → lista blanca de modelos → verificación de presupuesto
→ escaneo de gobierno (secretos T1 + entidades T2-lite)
→ búsqueda en caché → resolver credencial → adapter.prepare()
→ reenviar + bifurcar flujo (cliente intacto; rama de medición en segundo plano)
bash scripts/run-tests.sh # suite completa de pruebas unitarias + sistema en vivo (72 pruebas)
bash scripts/run-tests.sh --unit-only # lógica pura, sin necesidad de pila Docker
pwsh scripts/run-tests.ps1 # equivalente en Windows
CI (.github/workflows/ci.yml) ejecuta ambos trabajos en cada PR — solo fusionar cuando esté en verde.
Se aceptan PRs. Ruta rápida:
git checkout -b feat/my-change
# …
bash scripts/ci-local.sh # ejecuta las mismas verificaciones que CI
bash scripts/ci-local.sh --fast # solo typecheck + unitarias, sin Docker
git push -u origin feat/my-change
gh pr create --base dev
Flujo de ramas: feature → dev → master. CI debe pasar antes de fusionar.
Licencia Apache 2.0 — la misma licencia que Kubernetes, Terraform, Kafka. Úsalo comercialmente, modifícalo, véndelo; por favor no afirmes que Conduit es obra tuya.
SECURITY.mddocs/run-with-litellm.mdINSTALL.md