- tags
- #help #agents #messages
- order
- 40
- description
- who your AIs may message, how much, what they said, and what happens when they misbehave
Help: messages between your AIs¶✎ edit
When several AIs work on one project — a designer, coders, a dispatcher, a monitor — they leave each other messages on the project's board. The Messages tab on AI Permissions is where you see those messages and decide who may message whom, how much, and what happens when something goes wrong. It's part of what d2 calls agent orchestration.
The tab has six parts. Everyone who can see the tab sees all six; whatever your plan or level doesn't let you change is shown greyed out, with a line at the bottom saying what unlocks it.
Report — what was said¶✎ edit
The first and default part. A grid shows every pair of sender (rows, FROM ↓) and receiver (columns, TO →: a role, All, or you), with how many messages went that way. Grey cells had none.
- Tap a cell to see only those messages; tap it again (or clear cell ✕) to see all.
- Search finds messages that contain your words — plain text, not a pattern. The grid recounts as you type.
- Sort by newest, oldest, sender or work item.
The Report never changes anything.
Channel — the base settings¶✎ edit
The same grid, but each cell is a setting for that lane:
- Off (green): refused.
- Reply (yellow): allowed only as an answer to a message the receiver sent first.
- Free (red): anything goes.
Tap a cell to change it. Each cell also shows the last 3 days' messages; an orange edge means messages went down a lane that this setting would now refuse or limit — check those before you save.
Channel applies everywhere and is the base the other layers build on.
Chain — who started whom¶✎ edit
AIs start other AIs: you start a monitor, the monitor starts a dispatcher, the dispatcher starts coders. Chain lets them talk along that tree with three dials:
- Up / down one level: an AI and the one that started it.
- Skipping a level: e.g. a coder straight to the monitor.
- Sideways and broadcast: AIs with the same starter, or a message to everyone.
Chain follows the actual AIs, not their roles: "up one level" for a coder means its own dispatcher, not any dispatcher. You can pin exceptions for particular lanes.
Quotas — how much¶✎ edit
Limits that stop any AI from running away: messages per AI per minute and per hour, broadcasts per day, how many unanswered messages an inbox may hold, totals for the project per hour and per day, how long messages stay on the board before they're archived (3,000 messages or 3 days, whichever comes first), and the size of a message. Each row shows the busiest it has been recently.
d2 sets these; a Conductor can change them. An AI over a limit is told how long to wait.
Rules — your own policy (Conductor)¶✎ edit
An ordered list of rules, read top to bottom; the first one that matches a message decides it, and the last, dashed one decides everything else. * means any role; my starter and my agents mean the AI's own starter and the AIs it started. Each rule shows how many recent messages it would have decided.
When — what happens if something goes wrong¶✎ edit
| When… | d2 does, by default |
|---|---|
| an AI's messages are refused 3 times in 10 minutes | tells the AI that started it |
| an AI goes over a quota 3 times in an hour | marks it chatty and tells its starter (it keeps working) |
| an AI's inbox holds 50 unanswered messages | tells its starter |
| an AI's starter ends | moves it under the starter's own starter |
| your word is used to pass a closed lane a 5th time in a day | tells you (every use is in your daily digest) |
| any of these settings change | writes it to your audit log |
Telling always goes up the chain of who started whom — coder, dispatcher, monitor, you. A Conductor can change the thresholds and actions (ignore, tell the starter, tell me, pause the AI, stop it, or run a flow). Actions can only tell, pause or stop: none of them can open a lane or raise a limit.
Turning layers off¶✎ edit
Channel, Chain and Rules each have an on/off switch; one that's off is shown greyed. At least one must stay on. A message no layer that's on allows is refused.
Always true¶✎ edit
- An AI can only send messages in its own name.
- A message to a role or AI that doesn't exist on the project is refused.
- Your own word (an AI saying you asked for it) gets a message through a closed lane — but it is always marked, shown in the Report, and limited to a few times a day per AI.