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¶
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.runtimesyAgentTemplateOptions.runtimespasan dereadonly AgentTemplateRuntime[]areadonly (string | AgentRuntime)[]: el código que trataba cada elemento comostringdebe contemplar también objetos.AgentTemplateRuntimequeda obsoleto (usastring | AgentRuntime) y sigue exportado. -
rayito agent deploydespliega una flota, así que hace más llamadas a AWS que en 0.13:GetMicrovmImage,DescribeSecret,HeadBucketyGetCallerIdentity. Las credenciales necesitansts:GetCallerIdentity,s3:ListBucket,lambda-microvms:GetMicrovmImageysecretsmanager:DescribeSecret, además de las de 0.13. max_concurrencyqueda 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 conInvalidArgumentException.- El código copiado deja de incluir
.git,.env*,.venv,venv,node_modules,__pycache__,*.pycy.rayito: un proyecto que los subía a la imagen la reconstruye. rayito doctorconoce la serie 0.14: exige elrayddel tagrayd-v0.14.0para el SDK 0.14 (Compatibilidad).- Otros cambios de comportamiento:
CustomRuntimecorre desde el código copiado con su venv primero en elPATH(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 deinitparacustomylanggraphcambia. El detalle está en los Changelog de cada SDK.
Cómo actualizar desde 0.13.x¶
-
Actualiza el SDK.
-
Republica tu imagen sobre
rayd0.14.0 (Imágenes).rayito doctorda FAIL en la comprobacióncompatibilitycon una imagen 0.13. - Si ya desplegabas agentes, prueba
rayito agent deploy ./mi-agente --dry-runy añade a tus credenciales los permisos de arriba.
El detalle completo está en el Changelog.