astrid-capsule-react
The ReAct loop coordinator for Astrid OS.
In the OS model, this capsule is the shell. It drives the reasoning-and-action cycle that makes an agent an agent: fetch context, think, act, observe, repeat.
State machine
Idle -> AwaitingIdentity -> AwaitingPromptBuild -> Streaming -> AwaitingTools -> Streaming -> ... -> Idle
The react loop contains no inference logic. It is pure control flow that coordinates five other capsules over the IPC event bus:
- Session - fetch conversation history, persist turn results
- Identity - build the system prompt from workspace config
- Prompt Builder - merge plugin contributions into the final prompt
- Provider (e.g. Anthropic) - stream LLM responses
- Tool Router - dispatch tool calls and collect results
What it does not do
This capsule does not call LLMs, execute tools, build prompts, or store messages. It orchestrates the capsules that do. Replacing this capsule with a different orchestration strategy (debate, MCTS, chain-of-verification) changes the agent's behaviour without touching any other capsule.
Persistence
Ephemeral per-turn state is stored in the capsule KV store:
react.turn.{session_id}- current turn statereact.req2sess.{request_id}- request-to-session correlationreact.call2sess.{call_id}- tool call-to-session correlation
This is control flow state, not conversation history. History lives in the session capsule.
Development
rustup target add wasm32-unknown-unknown
cargo build --target wasm32-unknown-unknown --releaseLicense
Dual-licensed under MIT and Apache 2.0.
Copyright (c) 2025-2026 Joshua J. Bouw and Unicity Labs.