fleet-rlm is the RLM-native backend behind Qredence’s Fleet product. It runs one dspy.RLM per Turn against a Daytona Sandbox with a workspace-scoped durable Volume, streams typed Runtime Events over FastAPI Server-Sent Events, and persists committed Turn history and Artifacts through Alembic-managed Postgres.
The maintained development client is the pi-tui workspace under tools/fleet-tui/. There is no Fleet-shipped web UI: the earlier browser workspace and dual runtime were removed in the dev-0.7 cutover.
What it is
- A backend, not an app.
src/fleet_rlm/exposes a small/api/*surface (Sessions, Turns, Attachments, Artifacts, Volume, Skills, Runs) and one SSE Turn stream. - RLM-first orchestration. One Turn = one fresh native
dspy.RLMrun. Root delegation uses Python, native sub-LM queries, or one level of isolated child RLMs according to a cheapest-sufficient ladder. - Daytona-backed execution. Every Turn acquires an Interpreter Lease against a Daytona Sandbox and mounts a workspace-scoped Volume. Workspace Memory is durable across Runs and Sandbox replacement.
- Native scrollback client.
pi-tuistreams the AI SDK UI message stream and does not own a model, provider key, or Sandbox.
Who it’s for
Operators and researchers who want a certified, policy-driven RLM runtime — with idempotent Turns, durable Artifacts, workspace-scoped Memory, and native DSPy tracing — behind a small SSE HTTP contract they can drive frompi-tui or their own client.
Two runtime surfaces
Supervised backend + pi-tui
uv run fleet cli starts the backend, waits for readiness, then launches pi-tui in the foreground. Requires Node 22.19+ and pnpm.Backend only
uv run fleet web or uv run fleet-rlm serve-api --port 8000 runs the FastAPI SSE surface without a client. Bind to 127.0.0.1 unless you opt in with --allow-non-loopback-bind.Policy-selected profiles
Fleet is strict about non-secret runtime policy.config/fleet.toml declares named profiles and [config] default_profile selects which one runs. The shipped default is daytona-recursive; other options include daytona, daytona-managed, and the benchmark profiles.
daytonaanddaytona-recursiveroute through OpenCode Go withFLEET_OPENCODE_GO_API_KEYandFLEET_OPENCODE_GO_BASE_URL.daytona-managedand the benchmark profiles route through the Databricks AI Gateway withDATABRICKS_TOKENandFLEET_DATABRICKS_AI_GATEWAY_BASE_URL.- Every profile requires
FLEET_DAYTONA_API_KEY, and durable deployments requireFLEET_DATABASE_URLat the canonical Alembic head.
Where to go next
Quickstart
Install fleet-rlm, pick a profile, and stream a Turn in a few minutes.
Architecture
Turn coordinator, RLM runner, Run lifecycle, and Daytona substrate.
Recursive RLM
Root delegation ladder, one-level child recursion, and shared budgets.
Daytona runtime
Sandbox lifecycle, Workspace Volume Scope, and Interpreter Leases.
HTTP API
POST /api/sessions/{id}/turns, SSE stream contract, and error envelopes.CLI reference
fleet cli, fleet doctor daytona, fleet web, and fleet-rlm serve-api.Source of truth
When the docs disagree with the code, trust the code:- Backend routes and SSE contract:
src/fleet_rlm/api/. - Turn lifecycle:
src/fleet_rlm/chat/. - Daytona execution:
src/fleet_rlm/daytona/. - Non-secret runtime policy:
config/fleet.toml. - Canonical HTTP schema:
openapi.yaml.