An agent defines how work is done; a session is one piece of work. You can define an agent in two ways. Both end up as the same BMA objects.
Use the Anthropic shape: name, model, system, tools, mcp_servers, skills, description, metadata.
  • model is the name of a model configured in your project; an object {id, effort} is also accepted.
  • Every update creates a new version; version on update is an optimistic lock (409 on mismatch).
  • See compatibility for the fields BMA rejects.

Models

BMA calls models through model providers configured in your organization; an agent names one of the project’s configured models. During early access the hosted deployment provides the models; ask the BMA team which names are configured for your project. Per-session model changes are possible through agent_with_overrides on session create (model, reasoning effort, system prompt, and a session-lifetime credential with api_url/api_key/api_format). The key is write-only and never echoed.

Tools

Through /v1, the Anthropic bash tool maps to run_command. The Anthropic read, write, edit, glob and grep tools are not available yet (Roadmap); the agent edits files with bash. When a config has machine sources, BMA adds the command, process and machine tools automatically; attaching skills adds skill.

Permissions

Each tool has a permission mode: MCP tools default to always_ask. Through /v1, auto is treated as always_ask. With always_ask, BMA asks before creating a machine, so a denied call never provisions anything.

Subagents

A config can declare subagents that the agent may start with spawn_agent (another profile, or a copy of itself), with max_subagents and max_depth limits. A subagent belongs to the session that spawned it: its results and questions return to that session, and it sees only that session’s machines. Subagents are a native-API feature; the /v1 multiagent field is rejected.