Skip to content

What's new in 0.14.0

Published on 2026-10-17: Python SDK rayito 0.14.0, TypeScript SDK rayito 0.14.0 and rayd 0.14.0.

0.14.0 lets you deploy the agent you already have with one call, without writing a project file. deploy_agent() (Python) and deployAgent() (TypeScript) read the folder, decide how it is built and served (without running your code), build the image only when it changed and return a fleet: one or more MicroVMs serving the agent, with sessions spread across them. The CLI does the same with rayito agent deploy.

Everything that costs money stays off by default: --dry-run and rayito agent detect make no AWS calls, and nothing is created until you call deploy_agent().

Zero config

rayito agent deploy ./my-agent --dry-run   # what it detected and what it would cost; no AWS calls
rayito agent deploy ./my-agent             # deploys it
from rayito import AgentDeployOptions, deploy_agent

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

const fleet = await deployAgent("./my-agent", {
  options: { bucket: "amzn-s3-demo-bucket" },
});
try {
  const reply = await fleet.invoke("Summarise the README.");
  console.log(reply.text, reply.sessionId);
} finally {
  await fleet.stop();
}

Detection resolves the language, the framework, the entry point, the install plan (from the lock file), the Python and Node versions, the model provider and the secrets gateway on its own: the agent never reads the model credential. Details in Deploy your agent.

Which frameworks are covered

Framework Python TypeScript
LangGraph yes yes (LangGraph.js)
LangChain (create_agent) yes
deepagents yes yes (deepagents-js)
Strands and Strands harness yes yes
Hermes and OpenCode (configuration only) yes yes
Vercel AI SDK yes
Your own HTTP app or function (CustomRuntime) yes (Flask, FastAPI, AgentCore...) yes (Express, Hono...)

Behind this there are install and serve adapters (InstallableRuntime and ServableRuntime) and a single Node bridge for TypeScript agents. The agent host adds a bounded FIFO queue and supervises long-lived apps: an app that dies is relaunched with growing backoff and meanwhile answers 503 with Retry-After.

Typed options

Memory, sessions, pool, queue, environment and network are declared with typed objects or in rayito-agent.toml, with the same names in the file and the CLI. In Python they use snake_case and seconds; in TypeScript, camelCase and milliseconds:

Option What it sets CLI
memory_mib / memoryMib VM size (and with it the connections it admits) --memory
ScalingOptions.sessions shared sessions or one VM per session (dedicated) --sessions
ScalingOptions min_vms, max_vms, warm_vms (TS: minVms, maxVms, warmVms) the fleet and the parked pool slots --min-vms, --max-vms, --warm
queue_max, queue_timeout_seconds (TS: queueMax, queueTimeoutMs, in milliseconds) the host queue --queue, --queue-timeout
env (no secrets) agent variables --env
network (allow_out, deny_out; TS: allowOut, denyOut) what reaches the Internet (off by default) --allow-out
from rayito import AgentDeployOptions, ScalingOptions, deploy_agent

fleet = deploy_agent(
    "./my-agent",
    options=AgentDeployOptions(
        bucket="amzn-s3-demo-bucket",
        scaling=ScalingOptions(min_vms=1, max_vms=3, warm_vms=1, sessions="shared"),
    ),
)
try:
    first = fleet.invoke("Hello")
    again = fleet.invoke("What did I tell you?", session_id=first.session_id)
    print(again.text)
finally:
    fleet.stop()
import { deployAgent, ScalingOptions } from "rayito";

const fleet = await deployAgent("./my-agent", {
  options: {
    bucket: "amzn-s3-demo-bucket",
    scaling: new ScalingOptions({ minVms: 1, maxVms: 3, warmVms: 1, sessions: "shared" }),
  },
});
try {
  const first = await fleet.invoke("Hello");
  const again = await fleet.invoke("What did I tell you?", { sessionId: first.sessionId });
  console.log(again.text);
} finally {
  await fleet.stop();
}

More in Several sessions and several VMs.

The rayito agent CLI

rayito agent init, detect, build, run, deploy, export, invoke, status and stop, in both CLIs. deploy saves the token in .rayito/agent-token (mode 0600) and invoke, status and stop accept the fleet name. stop never terminates a sandbox that is not yours.

Changes to be aware of

There are no API-breaking changes in Python. In TypeScript, one type change can break compilation, and some behaviours change:

  • TypeScript: AgentTemplate.runtimes and AgentTemplateOptions.runtimes change from readonly AgentTemplateRuntime[] to readonly (string | AgentRuntime)[]: code that treated each element as a string must also handle objects. AgentTemplateRuntime is deprecated (use string | AgentRuntime) and is still exported.

  • rayito agent deploy deploys a fleet, so it makes more AWS calls than in 0.13: GetMicrovmImage, DescribeSecret, HeadBucket and GetCallerIdentity. Your credentials need sts:GetCallerIdentity, s3:ListBucket, lambda-microvms:GetMicrovmImage and secretsmanager:DescribeSecret, on top of the 0.13 ones.

  • max_concurrency is capped by the VM memory: 7 with 2048 MiB, 15 with 4096 and 31 with 8192. A larger value fails when the project loads with InvalidArgumentException.
  • The copied code no longer includes .git, .env*, .venv, venv, node_modules, __pycache__, *.pyc and .rayito: a project that uploaded them to the image rebuilds it.
  • rayito doctor knows the 0.14 series: it requires the rayd of tag rayd-v0.14.0 for SDK 0.14 (Compatibility).
  • Other behaviour changes: CustomRuntime runs from the copied code with its venv first in PATH (rebuild the image), token usage that the agent does not report is now "unknown" rather than zero (usage_reported), and the init scaffold for custom and langgraph changes. See each SDK's Changelog for details.

How to upgrade from 0.13.x

  1. Upgrade the SDK.

    pip install -U "rayito[cli]"
    
    pnpm add rayito@latest
    
  2. Republish your image on rayd 0.14.0 (Images). rayito doctor reports FAIL on the compatibility check with a 0.13 image.

  3. If you already deployed agents, try rayito agent deploy ./my-agent --dry-run and add the permissions above to your credentials.

The full detail is in the Changelog.