Deje que la IA ejecute código SAS, no solo lo escriba

Cualquier modelo puede generar SAS. Sin una forma de ejecutarlo, nadie sabe si funciona. La Run API abierta de Jenner le da al agente la otra mitad del ciclo: ejecutar el programa, leer la salida y los errores reales, corregirlo y volver a ejecutarlo, sin licencia de SAS y sin instalación local.

El acceso anónimo funciona sin ninguna clave de API.

Generar código es la mitad fácil

Un asistente que escribe SAS y se detiene ahí le entrega algo que parece correcto. Si la macro se resuelve, si el merge recoge las variables que esperaba, si PROC MEANS devuelve 19 filas o 0: nada de eso se puede saber hasta que el programa se ejecuta.

Históricamente, ejecutarlo exigía una licencia de SAS y una instalación, que es justo lo que un agente no tiene. La Run API elimina esa restricción: una sola llamada HTTP ejecuta el código y devuelve resultados estructurados sobre los que el modelo sí puede razonar.

El ciclo

Generar, comprobar, ejecutar, iterar: todo legible por máquinas.

1

Generar

El modelo escribe SAS: un paso DATA, un PROC, una macro. No hace falta nada especial: Jenner acepta sintaxis SAS estándar, así que el código que un asistente ya sabe escribir es el código que se ejecuta.

2

Comprobar

Envíe el script por POST a /v1/validate para una pasada solo de análisis. Los diagnósticos se devuelven sin ejecutar nada, así que un agente puede detectar un error de sintaxis antes de gastar una ejecución en él.

3

Ejecutar

Envíe por POST a /v1/run el script y las entradas CSV o Parquet que necesite. Jenner lo ejecuta en un contenedor aislado y devuelve la salida del listado, el log de NOTE/WARNING/ERROR, un código de salida y todos los conjuntos de datos y archivos que ha generado el programa.

4

Iterar

El log y los diagnósticos son información estructurada, no una captura de pantalla. El agente lee el error real, corrige la línea real y vuelve a ejecutar, cerrando el ciclo sin ninguna persona por medio.

Qué aspecto tiene

Peticiones reales contra la API pública. Sin clave y sin configuración.

Ejecute un script y reciba el listado

Petición
curl -X POST https://api.jenneranalytics.com/v1/quick \
  --data-binary @analysis.sas
Respuesta
                          The MEANS Procedure

 Variable        N           Mean        Std Dev
 -----------------------------------------------
 bmi            19     17.8420103      1.4625169
 -----------------------------------------------

Detecte un error antes de gastar una ejecución en él

A este fragmento le falta un punto y coma. Una llamada solo de análisis nombra el problema para que el agente pueda corregirlo y seguir.

SAS con errores
data demo;
  set sashelp.class      /* <- missing semicolon */
  bmi = weight / (height**2) * 703;
run;
POST /v1/validate
{
  "valid": false,
  "diagnostics": [
    { "severity": "error",
      "message": "Unexpected token: Eq, expected Semi" }
  ]
}

Lea resultados sobre los que el modelo puede razonar

Una ejecución completa devuelve el listado, el log, un código de salida y todos los conjuntos de datos que ha generado el programa, con el número de filas, para que el agente pueda comprobar que ha obtenido datos en lugar de suponerlo.

POST /v1/run
{
  "run_id": "r_c8679761197f4f9d8a3bc021...",
  "status": "ok",
  "exit_code": 0,
  "output":   "...formatted listing tables...",
  "log":      "NOTE: PROC MEANS statement used.",
  "datasets": [ { "name": "demo", "row_count": 19 } ],
  "files":    [],
  "diagnostics": [],
  "duration_ms": 412,
  "jenner_version": "..."
}

Endpoints

URL base https://api.jenneranalytics.com/v1

EndpointFinalidad
POST/v1/runEjecuta un script con datos de entrada opcionales. Devuelve la salida, el log, el código de salida, los conjuntos de datos, los archivos y los diagnósticos en JSON.
POST/v1/run/streamIgual que /v1/run, pero transmitido como Server-Sent Events para que el log llegue mientras el programa sigue ejecutándose.
POST/v1/quickComodidad en una sola línea. Se envía el script en bruto y se recibe el listado en texto plano: la forma más rápida de responder a «¿funciona este SAS?»
POST/v1/validateComprobación de sintaxis, solo análisis. Devuelve diagnósticos sin ejecutar nada. Las macros no se expanden, así que trate los fallos con muchas macros como orientativos.
GET/v1/run/{run_id}Obtiene una ejecución finalizada, sus archivos o la vista previa o descarga de un conjunto de datos. Los resultados viven una hora y requieren el token de acceso de la ejecución.

Acceso

Empiece sin clave. Añada una cuando necesite más margen.

NivelAutenticaciónLímite de peticionesTiempo de espera
AnónimoNo se necesita clave1.000 solicitudes/h por IP30 segundos
FreeRegistro con correo1.500 solicitudes/h60 segundos
ProClave de API10.000 solicitudes/h5 minutos
EnterpriseClave de APIPersonalizadoPersonalizado

Funciona con lo que ya usa

Sus herramientas de IA

  • Claude Code, de Anthropic
  • Claude Desktop
  • Codex, de OpenAI
  • ChatGPT
  • Cualquier sistema capaz de hacer una petición HTTP

O desde el propio Jenner

  • El espacio de trabajo web colaborativo
  • La aplicación de escritorio para macOS
  • Un kernel nativo de Jupyter

Detrás de todos ellos está el mismo motor de ejecución, así que el código que un agente ha validado con la API se comporta igual cuando lo abre una persona.

Preguntas frecuentes

No. Las peticiones anónimas funcionan sin ninguna clave, con un límite por IP de 1.000 peticiones por hora y un tiempo máximo de ejecución de 30 segundos. Es suficiente para que un agente pruebe código real e itere sobre él. Una clave gratuita sube ese techo, y las claves Pro o Enterprise lo suben aún más.

No. La API ejecuta el código en un contenedor aislado de nuestra infraestructura. No hay licencia de SAS, ni instalación local, ni nada que aprovisionar en el entorno donde se ejecuta el modelo.

Sí. /v1/run acepta archivos de entrada repetibles junto al script, en CSV o Parquet. Los conjuntos de datos que genera el programa se devuelven con el número de filas y con URL de vista previa o descarga, así que un agente puede inspeccionar los resultados en lugar de suponerlos.

Cada ejecución devuelve un código de salida, el log completo de NOTE/WARNING/ERROR y diagnósticos estructurados. Los fallos son explícitos y legibles por máquinas, así que un agente puede distinguir entre un programa que ha funcionado y otro que no, que es justo la señal que falta en un flujo que solo genera código.

Una hora. Cada ejecución devuelve un token de acceso limitado a esa ejecución; los endpoints GET lo requieren y es independiente de su clave de API.

Dele a su agente una forma de comprobar su trabajo

No hace falta ninguna clave para empezar. Ni licencia de SAS, nunca.