Chief
A Chief is a bot that can give the other bots tasks. You ask Chief for something, Chief hands it out, and the answers come back to Chief.
Turning it on
The bot's settings → Can give tasks to other bots (Chief) → On, and Save. The bot then gets two tools:
| Tool | Class | What |
|---|---|---|
team_list |
Read | the other bots: name, role, and whether they are busy (busy) or free (free) |
team_ask |
Change internally | give another bot a task, with the name as team_list shows it |
Bots without Chief turned on do not have the tools.
How a task goes
- Chief calls
team_ask. Chief's thread says "📨 Gave Inbox Manager a task: …", and the recipient's says "📨 Task from Chief: …". - The task is queued (
delegations) and started when the recipient is free. The scheduler looks for free bots every 20 seconds, and at once when a task is given or another one finishes. - The recipient does the task as its own work, under its own policy and its own approvals, and never further than Chief may go itself (see How far a task reaches). If it sends mail, that becomes a proposal in the recipient's thread, as usual.
- When the run is done, the recipient's last answer goes back to Chief. Chief's thread gets "📬 Reply from Inbox Manager", and Chief gets the answer as a new message.
- If the recipient fails, or does not get started (the daily budget, an agent that does not start), it says "📭 Inbox Manager could not do the task: …", and Chief is told.
Chief should not wait for the answer. It comes as a message when it is ready.
How far a task reaches
A task is decided by the strictest of three:
- The recipient's own rules, as for its own work.
- Chief's rules. No bot hands on more than it may do itself. If the recipient may mail firma.no without asking but Chief may not, a mail to firma.no on a task waits for you.
- What Chief let the task do,
mayinteam_ask:look: only read. Anything else, even a draft or archiving, waits for you.draft: read and write drafts. Archiving and anything more wait.own(the default): as far as Chief may go itself.
- One domain,
only_tointeam_ask(firma.no, or*.firma.nowith subdomains): mail on the task to anyone else waits for you, even where both bots' rules would let it go. - Tokens,
max_tokensinteam_ask: the task's run is stopped when it has used that many, or its own run budget if that is lower. Tokens rather than money, as for the run budget: every agent reports them during the run, while some report the cost only at the end.
The recipient is told: "You were given it only to look: read what you need; anything else you do waits for the user." What waits shows up as an ordinary card in the recipient's thread, and Why? on it says which limit made it wait: "Chief gave the task only to look, so anything more waits for you.", or "Chief gave the task to mail only firma.no, so mail to anyone else waits for you."
Limits
- No chains. A bot working on a task it has been given cannot pass it on: "This is a task another bot gave you: do it yourself, it cannot be passed on." Tasks therefore cannot go in a circle. This is refused before any rule is asked, so it never becomes a card either.
- At most 10 tasks out at a time per Chief. The eleventh is refused until some answers have come in.
- Not itself.
team_askonly finds other bots. - Outside text. What Chief writes is outside text for the recipient, and the recipient's answer is outside text for Chief. Memories written after that are held back until you accept them (see Memory).
- Daily budget. Tasks and answers back are runs you did not start yourself, so the daily budget stops them. See Approvals and rules.
- Restart. The queue lives in the database. Tasks that were running when the daemon stopped are put back in the queue and started again.
team_ask is Change internally, so it happens at once and is logged. If you set
Change internally to Needs approval for Chief, every task becomes a proposal,
"Give
Not yet
- Seeing the queue of tasks in the app. You see them as lines in the threads.
- Groups or shared threads.