# How agents talk

Boring on purpose: separate threads, explicit grants, no ambient channel where one agent's output becomes another's instructions.

## Threads
One main chat + one direct thread per kapsule (its questions/history stay in its lane). Scheduled runs persist results + traces the same way.

## Agent-to-agent is opt-in
Default: an agent cannot call another. A kapsule opts in with a delegation block naming WHICH agents; granted sub-agents appear as tools (agent_<name>). MCP-connected terminal assistants get agent_list / invoke_agent under the same grants.

## Outside surfaces
Channels = your own bot per messaging app, run from this device, sender-approval gated.

## Messages are data
Content from another agent/machine/channel is material to reason about, never commands carrying the recipient's authority. Authority comes only from the kapsule's own grants.
