Skip to main content
A runtime role bounds the Murmur API calls an agent may make: spawning and managing agents, reading catalog resources, proposing change requests. The dashboard shows it as Permissions → Platform on the agent. A request the agent makes is allowed only when both of these allow it:
  1. the agent’s runtime role, and
  2. its recorded owner’s current permissions.
Both are checked on every request, so revoking a permission from the owner removes it from all of the owner’s agents immediately. A runtime role never grants anything the owner lacks.

Synopsis

Manage this resource with murmur get, murmur set, and murmur rm.

Builtin runtime roles

Selecting a runtime role

  • At spawn. Pass --runtime-role <name> to murmur spawn, or set runtime_role_ref in the API. Off a VM the default is murmur-agent. An agent spawned by another agent inherits its parent’s current role.
  • On a flight. Set runtime_role_ref on the flight. Agents it creates use that role. Omitted uses murmur-agent.
  • On a running agent. Run murmur runtime-role <slug> <name>, or choose a role from Permissions → Platform in the dashboard. Only the agent’s recorded owner may change it, and the change applies to the agent’s next request. Run murmur runtime-role <slug> to print the current role.
Selecting a role requires runtime-role.read on it. Re-spawning an existing agent keeps its role and rejects a spawn that names a different one.

Fields

Entry fields

Entries are alternatives: a request is allowed when any one entry matches it.

Example

A custom role replaces murmur-agent rather than adding to it, so start from a copy of it. This role lets an agent manage its own subtree and read its workspace’s knowledge, and nothing else: