Inside agent chats live the automation and assistant features: scheduled tasks, bots and the queue of ready-made prompts, plus MCP servers and skills. All of these belong to the agent itself — MultiAgent doesn’t copy them, it shows them: the dialogs open from the agent’s page, they talk to the agent’s own data, and updates arrive over the same channel as chat events. MultiAgent adds no logic of its own and stores nothing on its side — everything travels with the agent.
Scheduled tasks
The Tasks dialog opens from the agent’s page and shows its schedules: the time and days each task runs (summarized in plain words, like “every day at 09:00”), run conditions and the log of completed runs. Conditions such as “notify in chat” let a scenario run only on the results of a check — for example, when a script’s output contains a certain line; such tasks carry a matching icon in the list.
In the log, every run shows when the schedule fired and what the scenario returned; logs open as tabs. All task fields and actions are the agent’s own commands, which MultiAgent passes through untouched: creating, editing and running apply on the agent itself.
Bots
The Bots dialog manages the agent’s bots — the messenger channels through which the agent talks to people. The configuration is read and saved through the agent’s own API, and event updates arrive over the same channel as the chats. Like tasks, bots are strictly “someone else’s property”: MultiAgent shows the agent’s interface as is and keeps no settings of its own.
Prompt queue
The Prompts button in the chat input field opens the agent’s prompt queue — the list of ready-made “text + model + skill” requests. Sending a row manually creates a chat on the agent with that row’s model and skill, sends the text, removes the row from the queue and opens the new chat.
The AutoSend settings (on/off, the maximum number of simultaneously active chats, the check interval, auto-redirect) are the agent’s own settings: its internal dispatcher sends the piled-up prompts into new chats by itself, even when nobody is watching the interface. The queue is stored on the agent — MultiAgent only displays it, every agent has its own queue, and synchronization between tabs rides on settings events.
MCP servers and skills
The “MCP Servers” button on the agent’s page opens its MCP server configuration — external “go-between” programs through which the agent reaches databases, files and web services — again through the agent’s API, with nothing stored in between. The “Manage skills” dialog shows the agent’s skill file tree and editors; edits are written to the agent’s own data. The first line of a first message naming a skill’s slug (/deploy) assigns that skill to the chat and is dropped from the text — a command that is not a skill is sent as is.
Don’t confuse the agent’s skills with MultiAgent’s skill catalog (the “Skills” page): the catalog stores ready-made skills — name, color and a set of files with the required SKILL.md — and can push them onto several agents at once or import them back from agents. The skill picker in a chat shows the agent’s own list, not the catalog.
How it works
The browser never talks to the agent directly. Every request goes through a single relay: the MultiAgent server forwards it to the agent on behalf of the manager whose sign-in it keeps (an expired sign-in refreshes itself, with one retry of the request). Live traffic runs over a persistent connection: while at least one client is watching the agent, the server holds one connection to it and fans events out to all browsers — chat answer streams, queue changes and outcomes, the agent lifecycle, statistics, git and deployment, skills, models, the license, sounds, scenarios, tasks and bots, settings changes and queue redirects.
An agent’s chat can be controlled from MultiAgent only with a limited set of actions: send a message, send/edit/delete a queue message, stop processing, and answer a question. Sending a new message (queue included) checks the license: with an invalid license the call never reaches the agent and the renewal dialog opens; stopping processing and answering a question do not check the license.