Agents: Sidecar, Not Core

Earlier drafts of Turbo proposed agent and tool fn as first-class language keywords. That direction has been retired. These features will ship as a separate library, turbo-agent, built on top of the stable 1.0 core — not as compiler features.

No agent keywords exist today, and none are planned for the core language.

The current compiler does not parse, type-check, or execute agent or tool fn, and the 1.0 stability contract (see COMPATIBILITY.md) will not include them either. Agent workflows are a library concern, not a language concern.

Why move this out of the compiler?

LLM tooling — model providers, tool-calling schemas, memory strategies, supervision patterns — moves fast and changes shape every few months. A core language must not. If we baked those decisions into the grammar, every pivot in the AI ecosystem would break source compatibility across a whole fleet of Turbo programs.

By keeping the core small, we can promise real stability at 1.0. A future turbo-agent library can iterate freely on top of it.

What the core ships that makes a sidecar credible

  • Typed async async fn, spawn, await, channels, mutex
  • HTTP client + server— enough to talk to any model provider's API
  • Typed serialization — JSON builtins, struct derive attributes
  • Native compilation — JIT, AOT, and WASM output
  • Tooling integration — formatter, tests, playground, LSP

What's on the roadmap

  • Ship Turbo core 1.0 with the stability contract in COMPATIBILITY.md
  • Start turbo-agent as a separate repository and SemVer line
  • Provide idiomatic building blocks — provider adapters, tool-calling schemas, streaming responses, conversation memory — as library types, not compiler keywords