Bots that manage bots
Manage the bots it creates
A bot can set up other bots the way you would: create bots and groups, organize the sidebar, rewrite the instructions of your other bots, pick their model, schedule them and archive them. This is controlled per bot and is on by default.
Creating bots
Any bot can create a new bot when you ask, such as "make a bot that tracks our competitors". It uses
spawn_bot with a name, a one-line description, instructions, an optional first task, and Team
or Private computer. This needs no approval card and doesn't depend on the switch below. The new
bot appears in your sidebar like one you made yourself.
Turning management on or off
Click the bot's name at the top of the chat to open its settings. Under Advanced → Permissions, Manage the bots it creates controls the bot management tools below. The switch is in the web, desktop and mobile apps.
- It is on for every new bot, including bots another bot creates and duplicates.
- The tools act on any of your active bots in the space, not only the ones this bot created. Turn the switch off on a bot that should never change your other bots.
- It is checked again each time a tool is called, so turning it off takes effect immediately.
- Subagents get none of the bot management tools, not even
list_fleet.
Which runs can use the bot management tools
Only runs you started can use them: a message you sent, a follow-up to your message, or the end of
a call. Runs started by another bot's message, a messaging channel, a spawn, tickets, a webhook or a
routine get none of the bot management tools, including list_fleet. The tools are hidden from them and
rejected if called.
Unless you chose Never ask, a run that has received a message from a messaging channel or a webhook while it was working cannot change the bots it manages for the rest of that run. Channel or webhook messages that were already in the thread history before the run started are not covered by this rule. A follow-up counts as yours only when every message it answers came from you in the app.
Tools
list_fleet: lists active bots, groups and sections. With abot_id, it instead returns only that bot's full instructions and current version.create_group: creates a group from existing bots.update_group: renames a group or adds and removes members.organize_bot: sets a section (section), clears it (clear_section: true) or sets a pin on a bot or a group.update_botwithbot_id: edits another bot's name, description, color and notifications. It never changes instructions. Withoutbot_idit acts on the calling bot as before.set_child_instructions: replaces another bot's instructions. The bot passes the version it read withlist_fleet.set_child_bot_model: sets or clears another bot's model and thinking level.create_child_routine: schedules a prompt for another bot.archive_bot: archives another bot, stopping its work and routines. You can restore it later.
Approval
In Ask me and Auto review, set_child_instructions and set_child_bot_model always show an
approval card. Auto review and Always allow do not skip it, and the card offers Allow once
or Deny only. create_group, update_group, create_child_routine and archive_bot follow
your approval mode like any other action. Never ask runs all of them. The card lists what
will actually run, resolved before the pause:
- Create group: the name and every member.
- Update group: the members added and removed, and the new name.
- Instructions: the whole new text, with the old and new lengths.
- Model change: the current and the new model (From and To), and a Thinking line when the thinking level is set or reset.
- Routine: the prompt and the resolved time.
If the request cannot be shown whole on the card, it is refused instead of cut off. If the other bot's instructions, model or thinking level change while the card waits, approving does not overwrite them; the bot has to ask again.
list_fleet, organize_bot and update_bot need no card.
What a bot cannot do
- Permanently delete a bot.
- Read, request or change secrets. Instructions, profile fields and routine names and prompts that contain a credential are refused.
- Change a teammate's bots. On a team, the tools reach only bots you made.
- Move a bot between spaces. Every tool works inside the space and account of the run.
- Remove itself from the group it is running in, or archive itself.
Limits
- A group has 2 to 10 members.
- Instructions are at most 20,000 characters.
list_fleetreturns at most 200 bots and 100 groups, and says when the result is truncated.- A bot writes at most one set of instructions per bot per run, and must pass the version it read. If that bot changed in the meantime, the edit is refused and the bot reads it again.
History, events and routines
Instruction edits are saved as versions in the bot's Instruction history, marked "Updated by" and the name of the bot that made them.
Creating a group appends a group.created event to the calling bot's thread; changing a group
appends a group.updated event to the group's thread. Changes to a bot append bot.updated to that
bot's thread.
Routines a bot creates for another bot are managed by you under that bot's Routines. The creating bot cannot list or cancel them.