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¶
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.runtimesandAgentTemplateOptions.runtimeschange fromreadonly AgentTemplateRuntime[]toreadonly (string | AgentRuntime)[]: code that treated each element as astringmust also handle objects.AgentTemplateRuntimeis deprecated (usestring | AgentRuntime) and is still exported. -
rayito agent deploydeploys a fleet, so it makes more AWS calls than in 0.13:GetMicrovmImage,DescribeSecret,HeadBucketandGetCallerIdentity. Your credentials needsts:GetCallerIdentity,s3:ListBucket,lambda-microvms:GetMicrovmImageandsecretsmanager:DescribeSecret, on top of the 0.13 ones. max_concurrencyis capped by the VM memory: 7 with 2048 MiB, 15 with 4096 and 31 with 8192. A larger value fails when the project loads withInvalidArgumentException.- The copied code no longer includes
.git,.env*,.venv,venv,node_modules,__pycache__,*.pycand.rayito: a project that uploaded them to the image rebuilds it. rayito doctorknows the 0.14 series: it requires theraydof tagrayd-v0.14.0for SDK 0.14 (Compatibility).- Other behaviour changes:
CustomRuntimeruns from the copied code with its venv first inPATH(rebuild the image), token usage that the agent does not report is now "unknown" rather than zero (usage_reported), and theinitscaffold forcustomandlanggraphchanges. See each SDK's Changelog for details.
How to upgrade from 0.13.x¶
-
Upgrade the SDK.
-
Republish your image on
rayd0.14.0 (Images).rayito doctorreports FAIL on thecompatibilitycheck with a 0.13 image. - If you already deployed agents, try
rayito agent deploy ./my-agent --dry-runand add the permissions above to your credentials.
The full detail is in the Changelog.