Agent kinds parity
Configured agent kinds (merged cfg.Agents after SetupAgents) are exposed read-only through three surfaces with the same JSON envelope:
- Native tool:
list_agent_kinds - HTTP:
GET /v1/agent-kinds(Bearer auth;bmo serve/bmo up) - MCP:
bmo_list_agent_kinds(list inoptions.mcp_server.exposed_tools; requires coordinator-backed MCP runtime)
Payload
Section titled “Payload”Top-level object:
{ "agent_kinds": [ ... ] }Example shape:
{ "agent_kinds": [ { "id": "coder", "name": "Coder", "model": "large", "mesh_capabilities": ["code", "review"], "allowed_tools": ["view", "grep", "bash"] } ]}Field semantics mirror the user-facing Agent kinds overview. The feature page explains the registry view; this parity page keeps the cross-surface JSON envelope aligned.
Enablement and compatibility
Section titled “Enablement and compatibility”- The native tool is available inside agent runs when the active tool policy allows
list_agent_kinds. - The HTTP route requires the BMO HTTP server and Bearer auth.
- The MCP tool is opt-in through
options.mcp_server.exposed_toolsand requires the coordinator-backed MCP runtime. - All three surfaces are read-only snapshots of the effective merged config after agent setup. They do not create, update, or delete agent kinds.
Code alignment
Section titled “Code alignment”- HTTP handler:
internal/server/routes_agent_kinds.go - MCP tool:
internal/mcp/tools/agent_kinds.go - Native tool:
internal/agent/tools/list_agent_kinds.go
Related
Section titled “Related”- Agent kinds - conceptual overview of the registry view
- Slash commands -
/agent_kindsand/agents - Configuration - merged
agents.*andoptions.mesh.agent_capabilities