Preview. The contract and the SDKs (Go, TypeScript, Python) are complete. The BMA platform side is deployed with text input only; file inputs are refused explicitly.
/v1 stream either way.
How it fits
Bind an agent to an executor
- Connect your executor with a machine token and advertise
capabilities.agentinexecutor.register(models, permission modes, interaction kinds,max_sessions). The SDK does this for you withServeAgent/serveAgent/serve_agent. - Bind the BMA agent to that machine:
GET …/executor-binding returns the bound machine and the agent capability its executor last registered. From then on:
Input queues while the executor is offline and is delivered when it reconnects.
Protocol
The executor stores its local conversation handle in
executor_session_ref; BMA sends it back on the next turn.start, so the executor can resume after a restart.
What the server harness does that an external brain does not
Context compaction,context_too_large handling, automatic session titles and BMA’s built-in tools belong to the server harness. An external brain manages its own context and tools, and can still use BMA machines through the hand side of the protocol.