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. - Ask the BMA team to bind the BMA agent to that machine: the public
/v1API has no route for the binding yet.
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.