Saltar a contenido

Novedades de 0.14.0

Publicada el 2026-10-17: SDK Python rayito 0.14.0, SDK TypeScript rayito 0.14.0 y rayd 0.14.0.

0.14.0 te deja desplegar el agente que ya tienes con una llamada, sin escribir un fichero de proyecto. deploy_agent() (Python) y deployAgent() (TypeScript) leen la carpeta, deciden cómo se construye y se sirve (sin ejecutar tu código), construyen la imagen sólo si cambió y devuelven una flota: uno o varios MicroVMs que sirven el agente, con las sesiones repartidas entre ellos. La CLI hace lo mismo con rayito agent deploy.

Todo lo que cuesta sigue apagado por defecto: --dry-run y rayito agent detect no llaman a AWS, y nada se crea sin llamar a deploy_agent().

Sin configuración

rayito agent deploy ./mi-agente --dry-run   # qué detectó y cuánto costaría; no llama a AWS
rayito agent deploy ./mi-agente             # lo despliega
from rayito import AgentDeployOptions, deploy_agent

fleet = deploy_agent(
    "./mi-agente", options=AgentDeployOptions(bucket="amzn-s3-demo-bucket")
)
try:
    reply = fleet.invoke("Resume el README.")
    print(reply.text, reply.session_id)
finally:
    fleet.stop()
import { deployAgent } from "rayito";

const fleet = await deployAgent("./mi-agente", {
  options: { bucket: "amzn-s3-demo-bucket" },
});
try {
  const reply = await fleet.invoke("Resume el README.");
  console.log(reply.text, reply.sessionId);
} finally {
  await fleet.stop();
}

Con la detección se resuelven solos el lenguaje, el framework, el punto de entrada, el plan de instalación (desde el fichero de bloqueo), las versiones de Python y Node, el proveedor del modelo y la pasarela de secretos: el agente nunca lee la credencial del modelo. Detalle en Despliega tu agente.

Qué frameworks entran

Framework Python TypeScript
LangGraph sí sí (LangGraph.js)
LangChain (create_agent) sí
deepagents sí sí (deepagents-js)
Strands y Strands harness sí sí
Hermes y OpenCode (sólo configuración) sí sí
AI SDK de Vercel sí
Tu propia app HTTP o función (CustomRuntime) sí (Flask, FastAPI, AgentCore…) sí (Express, Hono…)

Detrás hay adaptadores de instalación y de servicio (InstallableRuntime y ServableRuntime) y un único puente de Node para los agentes de TypeScript. El host del agente suma una cola FIFO acotada y supervisa las apps de larga vida: una app que muere se relanza con espera creciente y mientras tanto responde 503 con Retry-After.

Opciones tipadas

Memoria, sesiones, pool, cola, entorno y red se declaran con objetos tipados o en rayito-agent.toml, con los mismos nombres en el fichero y en la CLI. En Python van en snake_case y en segundos; en TypeScript, en camelCase y en milisegundos:

Opción Qué fija CLI
memory_mib / memoryMib tamaño del VM (y con él las conexiones que admite) --memory
ScalingOptions.sessions sesiones compartidas o un VM por sesión (dedicated) --sessions
ScalingOptions min_vms, max_vms, warm_vms (TS: minVms, maxVms, warmVms) flota y plazas aparcadas del pool --min-vms, --max-vms, --warm
queue_max, queue_timeout_seconds (TS: queueMax, queueTimeoutMs, en milisegundos) la cola del host --queue, --queue-timeout
env (sin secretos) variables del agente --env
network (allow_out, deny_out; TS: allowOut, denyOut) qué sale a Internet (apagado por defecto) --allow-out
from rayito import AgentDeployOptions, ScalingOptions, deploy_agent

fleet = deploy_agent(
    "./mi-agente",
    options=AgentDeployOptions(
        bucket="amzn-s3-demo-bucket",
        scaling=ScalingOptions(min_vms=1, max_vms=3, warm_vms=1, sessions="shared"),
    ),
)
try:
    first = fleet.invoke("Hola")
    again = fleet.invoke("¿Qué te dije?", session_id=first.session_id)
    print(again.text)
finally:
    fleet.stop()
import { deployAgent, ScalingOptions } from "rayito";

const fleet = await deployAgent("./mi-agente", {
  options: {
    bucket: "amzn-s3-demo-bucket",
    scaling: new ScalingOptions({ minVms: 1, maxVms: 3, warmVms: 1, sessions: "shared" }),
  },
});
try {
  const first = await fleet.invoke("Hola");
  const again = await fleet.invoke("¿Qué te dije?", { sessionId: first.sessionId });
  console.log(again.text);
} finally {
  await fleet.stop();
}

Más en Varias sesiones y varias VMs.

La CLI rayito agent

rayito agent init, detect, build, run, deploy, export, invoke, status y stop, en las dos CLI. deploy guarda el token en .rayito/agent-token (modo 0600) y invoke, status y stop aceptan el nombre de la flota. stop nunca termina un sandbox ajeno.

Cambios a tener en cuenta

No hay cambios que rompan la API de Python. En TypeScript, un cambio de tipo puede romper la compilación, y hay comportamientos que cambian:

  • TypeScript: AgentTemplate.runtimes y AgentTemplateOptions.runtimes pasan de readonly AgentTemplateRuntime[] a readonly (string | AgentRuntime)[]: el código que trataba cada elemento como string debe contemplar también objetos. AgentTemplateRuntime queda obsoleto (usa string | AgentRuntime) y sigue exportado.

  • rayito agent deploy despliega una flota, así que hace más llamadas a AWS que en 0.13: GetMicrovmImage, DescribeSecret, HeadBucket y GetCallerIdentity. Las credenciales necesitan sts:GetCallerIdentity, s3:ListBucket, lambda-microvms:GetMicrovmImage y secretsmanager:DescribeSecret, además de las de 0.13.

  • max_concurrency queda acotada por la memoria del VM: 7 con 2048 MiB, 15 con 4096 y 31 con 8192. Un valor mayor falla al cargar el proyecto con InvalidArgumentException.
  • El código copiado deja de incluir .git, .env*, .venv, venv, node_modules, __pycache__, *.pyc y .rayito: un proyecto que los subía a la imagen la reconstruye.
  • rayito doctor conoce la serie 0.14: exige el rayd del tag rayd-v0.14.0 para el SDK 0.14 (Compatibilidad).
  • Otros cambios de comportamiento: CustomRuntime corre desde el código copiado con su venv primero en el PATH (hay que reconstruir la imagen), el uso de tokens que el agente no informa pasa a ser «desconocido» y no cero (usage_reported), y el andamiaje de init para custom y langgraph cambia. El detalle está en los Changelog de cada SDK.

Cómo actualizar desde 0.13.x

  1. Actualiza el SDK.

    pip install -U "rayito[cli]"
    
    pnpm add rayito@latest
    
  2. Republica tu imagen sobre rayd 0.14.0 (Imágenes). rayito doctor da FAIL en la comprobación compatibility con una imagen 0.13.

  3. Si ya desplegabas agentes, prueba rayito agent deploy ./mi-agente --dry-run y añade a tus credenciales los permisos de arriba.

El detalle completo está en el Changelog.