en la DragonJAR Security Conference 2026
Dos días para construir una aplicación de seguridad con IA. Mismo modelo, mismo presupuesto, mismo reloj para todos.
Faltan
Ventana del reto
Por qué este reto
Una forja no fabrica nada. Solo pone el metal a una temperatura que no puede sostener mucho tiempo.
El acero no se elige.
Se calienta, se golpea y se enfría.
Después se ve si corta.
Individual o en equipo. Eliges tópico.
antes del 10En la sala, cuando arranca el reloj.
10 · 09:00Repositorio vacío. Sin prórroga.
la ventanaCinco minutos en vivo ante el jurado.
11 · 15:00Eliges uno al inscribirte y puedes cambiarlo hasta el arranque, no después.
Llegar con código escrito. Puedes pensar la idea, investigar y llegar con el entorno instalado. Lo que no puede existir antes del arranque es código, y por eso pedimos el historial de commits.
Usar un modelo propio. Ni llave personal, ni servicio externo, ni modelo local. La llave del reto es la única vía. Vale para los asistentes de código: sí a Copilot o Cursor apuntados al proxy, no con tu suscripción.
Usar la llave para otra cosa. El staff monitorea el consumo durante toda la ventana. Si un patrón se sale de lo esperado, primero preguntamos. La descalificación es el último paso y siempre queda a criterio del jurado.
Datos. Nada de información real de un cliente, ni siquiera anonimizada. Público o sintético.
peso de cada criterio sobre 100
Tres jurados califican por separado y el puntaje final es el promedio. En caso de empate desempata la eficiencia: quien llegó al mismo resultado gastando menos tokens. El fallo es definitivo.
| Endpoint | llm.retoia.app/v1 |
|---|---|
| SDK | OpenAI · LangChain · cualquier cliente compatible |
| Modelos | djc-razonamiento djc-rapido djc-largo djc-codigo |
| Presupuesto | Se informa al entregar la llave |
| Por minuto | 60 req · 200.000 tokens |
| Vigencia | Del arranque al cierre |
| Consumo | Tablero en vivo, en la sala |
export OPENAI_API_KEY="sk-djc-…" export OPENAI_BASE_URL="https://llm.retoia.app/v1" curl "$OPENAI_BASE_URL/chat/completions" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{"model":"djc-razonamiento", "messages":[{"role":"user","content":"hola"}]}' # tu consumo curl "$OPENAI_BASE_URL/key/info" \ -H "Authorization: Bearer $OPENAI_API_KEY"
Cada solicitud queda registrada con su costo, su modelo y su marca de tiempo. Ese registro es la evidencia que usa el jurado para verificar que la aplicación corre sobre la infraestructura del reto y no sobre otra.
La llave tiene un tope de consumo y expira sola en el cierre de entregas, así que no sirve para nada después del evento. Si se te agota, puedes pedirle una ampliación al staff explicando en qué se fue: se aprueba caso por caso. Administrar el consumo es parte del reto.
El proxy habla el protocolo de OpenAI. Cualquier cliente compatible funciona cambiando solo esto:
| Base URL | https://llm.retoia.app/v1 |
|---|---|
| API key | la que te entregamos, empieza con sk- |
max_tokens. Con 40 el contenido llega en blanco;
con 300 responde normal. Usa 500 o más y vas a evitarte una
hora de creer que el sistema está roto.| djc-razonamiento | El más capaz. Para lo difícil. |
|---|---|
| djc-rapido | El caballo de batalla. Empieza acá. |
| djc-largo | Contexto grande: varios archivos a la vez. |
| djc-codigo | Agéntico y código. |
Todos apuntan al mismo lugar. Instala el que ya sepas usar — el reto no se gana eligiendo herramienta.
| OpenCode | curl -fsSL https://opencode.ai/install | bashAgente de terminal, open source. opencode.ai |
|---|---|
| Claude Code | npm i -g @anthropic-ai/claude-codeHabla el protocolo de Anthropic, que el proxy también acepta: ANTHROPIC_BASE_URL=https://llm.retoia.appANTHROPIC_AUTH_TOKEN=tu-llaveclaude.com/claude-code |
| Codex | npm i -g @openai/codexSe configura un proveedor propio en ~/.codex/config.toml
con la base URL de arriba.developers.openai.com/codex |
| VS Code | Con una extensión que permita endpoint propio — Continue o Cline. code.visualstudio.com · continue.dev |
Tu agente olvida todo al cerrar la sesión. Entonces cada vez que vuelves le re-explicas la arquitectura, las decisiones y por qué algo está hecho así — y eso son tokens que pagás de tu presupuesto, repetidos, para volver al punto de partida.
Engram le da memoria persistente: guarda decisiones y hallazgos, y los recupera cuando hacen falta. En vez de re-explicar todo el proyecto, el agente lee lo que necesita.
# macOS brew install gentleman-programming/tap/engram # después se agrega como servidor MCP a tu agente # funciona con Claude Code, OpenCode, Codex, VS Code, Cursor…
Un binario y un archivo SQLite. Sin Node, sin Python, sin Docker.
while mal cerrado a las
tres de la mañana se come el presupuesto del equipo.Si algo no funciona, busca al staff en la sala antes de perder una hora.
La idea sí, el código no. Puedes investigar, leer documentación y llegar con el entorno instalado. El repositorio arranca vacío y el historial de commits lo demuestra.
Cruzamos tres cosas: el registro de solicitudes del proxy, el código del repositorio y la demo en vivo. Si la aplicación responde y no hay tráfico correspondiente, hay que explicarlo.
Sí, apuntados al proxy del reto: configuras el endpoint y la llave que te dimos. Con tu propia suscripción, no.
A ti o a tu equipo. La organización solo pide autorización para mostrarlo en la memoria del congreso y en redes.
Corre en paralelo y en su propio espacio. Lo único obligatorio son el arranque, los dos controles y la demo final.