dspy.RLM loop. DSPy owns the loop, the REPL history, trajectory semantics, and provider retries. Fleet supplies Turn-scoped tools, budgets, and finalization. There is no second planner or model router.
Root and Sub models
Fleet configures two model roles inconfig/fleet.toml.
Both roles call an OpenAI-compatible Chat Completions endpoint through a stock
dspy.LM. See Configure models.
Three ways to do sub-work
Pick the lightest option that solves the problem.Recursive child RLMs
rlm_query investigates one bounded task. rlm_query_batched runs several independent tasks in parallel and returns results in input order. Both are available only to the root RLM.
Each call takes a task, a list of staged relative inputs, and an optional context. Fleet then:
- Resolves the selected inputs under the Session’s authority.
- Stages bounded copies in private scratch.
- Runs the child in a Volume-less Daytona Sandbox, using
FLEET_DAYTONA_CHILD_SNAPSHOTwhen set. - Validates and harvests declared result files.
- Cleans up the child Sandbox.
rlm.recursion_enabled = false and restart for native-only operation.
Turn budgets
Every Turn has a shared budget. When a dimension runs out, Fleet stops new work and finalizes.
Fleet enforces no separate per-Turn deadline on the models themselves. See the configuration reference for every limit.