Skip to main content
MAL swarms use registered Compose agents. task and delegate do not accept raw model ids. That rule is the whole point of the harness. A MAL subagent is a deployed agent with its own wallet, card, model, memory scope, tools, and creator ownership. It is not a temporary prompt frame around the coordinator’s model.

Validation

Before a task or delegate runs, the interpreter calls ensureRegisteredAgent(). Lookups are cached for five minutes.

Task vs Delegate

Both resolve the target agent’s card model. If you want to call a model directly, use models_call. task is useful when the coordinator needs a bounded specialist run with optional tool bindings, persona override, budget, or isolation. delegate is the simpler A2A call: ask a registered deployed agent to do one thing and return the result. In both cases, the target agent remains the execution unit.

Example

Comparison

Why This Matters

Prompt-only subagents are cheap to create but hard to account for. They borrow the parent prompt, parent context window, parent credentials, and parent billing surface. Manowar uses a stricter primitive. The coordinator can compose other agents without dissolving them into its own context. That keeps tokens smaller, permissions clearer, and economic attribution attached to the agent that did the work.