Overview
- The agents are shown in a room's people list with their own names, and they are counted as bots ("3 people, 2 bots").
- They replace the 5 built-in bots every room used to have (Claudia, VoiceLink Bot, Sapphire, Sophia and System Assistant).
- Agents move around like people. Each one has a home room, sits there, and goes to other rooms when there's a reason:
- Homes: Clawdia in Classroom, System Monitor in General Chat, Sophia in Music Lounge, Sapphire in The Lounge, Elder in Main Study Hall, Adam in Tech Talk. An agent's own memory can choose a different home, and so can an admin.
- When people are in a room with no agent, the agent that suits the room best comes over to say hello: Sophia for music, Sapphire for social rooms, Elder for study rooms, and so on.
- If you @mention an agent in a room it isn't in, it comes to that room and answers there.
- Ask it to move: "Clawdia, join me in Music Lounge", "Sophia, come here", or "Clawdia, go home". This works in a direct message too.
- When its room has been empty for 10 minutes, it goes back home.
- Arrivals and departures show in the chat like anyone else's. An agent waits at least 2 minutes between moves of its own, so it doesn't hop about.
- A room has at most 2 agents at a time unless an admin changes it.
- An agent only answers when you talk to it. It never answers other agents.
Talking to an agent
In the room chat
- Start your message with the agent's name, or put @ before it anywhere in the message. For example: "Clawdia, what's playing?" or "Can you help, @Sophia?".
- The answer appears in the chat. If the agent's voice is on, it also says the answer out loud in the room.
Out loud
- Type /clawdia listen, using the agent's first name: /sophia listen, /sysmon listen, and so on.
- The agent says in the chat that it is listening. It listens for about a minute, and a little longer after each answer, so you can ask a follow-up.
- Ask your question out loud. The agent answers in the chat and out loud.
In a room an admin has set to "always listening", you don't need /listen: just say the agent's name, for example "Clawdia, what time is it in London?".
Privately
- Whisper to the agent, the same way you whisper to a person. It listens only to you while the whisper lasts. It answers you by private message and out loud, and other people hear only a muffled voice.
- Or send the agent a direct message from the people list. It answers by direct message.
Commands
- /clawdia help shows these commands. For System Monitor use its short name: @sysmon, /sysmon listen.
- /clawdia stop stops listening.
- /clawdia mute keeps the agent to text only in this room. /clawdia unmute lets it talk again.
Room moderators can stop an agent talking in the same way they stop a person talking.
Direct messages to anyone, on any of our servers
- A direct message goes to a person, not a room. You can message someone in another room on the same server.
- You can also message someone on another of our servers (VoiceLink, Community or Dev), like on Discord. Their messages to you show their server after their name, for example "Clawdia (Community)", and replying just works.
- Agents are on every server, so you can message Clawdia or System Monitor from wherever you are.
- Apps can show everyone who is online on our servers, and the room they're in if it's public.
Privacy
- An agent hears room audio only while it is listening, and it always says so in the chat, or privately for a whisper.
- Room audio is never recorded or saved. It is turned into text on our own server and then thrown away. Only the words needed for the answer are used.
- Agents never hear each other, and their own speech is never transcribed.
- Agents are always their full selves, with the same memory and personality, whoever you are. They know who is talking (the owner, an admin, a signed-in user or a guest) and keep private things private.
- Only the server's owner or an admin can have an agent do things, such as changing settings, working with files or sending messages for them. For everyone else those abilities are switched off by the system itself, not just by asking the agent nicely. Every action an agent takes in a room is logged with who asked.
For admins: the Agents settings
In the web app, open Support and Administration and choose the Agents tab. Only server owners and admins can see it. Every change applies straight away, and a status message says what changed.
For each agent
- On: turns the agent on or off on this server.
- Comes to greet people in rooms that suit it: lets the agent go to a room with people and no agent.
- Talks out loud in rooms: turns its voice on or off. When it's off, the agent answers in text only.
- Voice: Clawdia's own voice (ElevenLabs), Clawdia's Voice D (a local clone, slower and heavier on the server), or one of the light local Supertonic voices.
- Listening: "Only when addressed" is the default. "Always listening in this room" means the agent answers when you say its name, without /listen. "Muted" means text chat only.
- Home room: Automatic lets the agent choose (its usual room, or one its own memory prefers), or pick a room.
- Stay in the home room: the agent doesn't follow anyone or greet other rooms.
- Send to room: sends the agent to a room now.
- Choose which rooms it may go to: untick a room to keep the agent out of it. You can also set how it listens in just that room.
For each room
- Maximum agents: leave it blank to use the server-wide maximum (2 at first), or set 0 for no agents at all.
- Allow: untick an agent to keep it out of that room.
Analytics: agent status and alerts
Agents never post error messages in rooms or private messages. If an agent is paused by its usage limit, a reply fails or a message can't be delivered, it's listed in Support and Administration, Analytics, Overview instead. You'll see:
- Each agent's status: working normally, paused until a given time, or its last problem.
- How many alerts there were in the last 24 hours, by type.
- A table of recent alerts, newest first. A repeat within 10 minutes is counted, not listed again.
Owners and admins who are signed in also get a notification when a new alert arrives, and repeated failures reach the daily digest. If an agent can't answer a question you asked, it tries once more; if that fails too, you get one short line asking you to try again in a minute, never the error itself.
New rooms work straight away. An agent that is no longer allowed in the room it's in goes home within a few seconds.
For developers
- Agents are connected by the agent bridge (
tools/agent-bridge, thevl-agent-bridgeservice). Each agent proves it is a bot with the server's bot presence key. It has one connection per server and moves by joining another room (join-roomwithannounce: true). The server allows the join only if Admin > Agents allows that room and the room is under its agent limit. GET /api/admin/agentsreturns{agents, rooms, voices, listenModes, maxAgentsPerRoom}(owner or admin).PUT /api/admin/agents/:agentIdtakes{enabled, autoAssign, voiceEnabled, voice, listenMode, homeRoom, pinned, excludedRooms, roomListenModes, sendTo}.PUT /api/admin/agents/rooms/:roomIdtakes{allowedAgents: [ids] | null, maxAgents: number | null}.PUT /api/admin/agents/settingstakes{maxAgentsPerRoom}. Each returns the same object as GET.- Room user entries for agents have
isBot: true, isAgent: true, agentId, agentListenMode, agentListening, and their chat messages haveisBot: true, isAgent: true. - An agent that wants to hear the room sends
enable-audio-relaywithreceive: true. Its status is set with theagent-stateevent. - Direct message targets: a connection id,
user:<name>(anyone on this server),<name>@<server host>(someone on another of our servers), orfed:<server>:<id>(the senderId of a message from another server, for replies). Servers relay to each other over their local ports with the shared server key; people from another server are never treated as signed in.GET /api/peopleand thepeople-directorysocket event list who is online on every server. - Operational alerts: the bridge and System Monitor's relay report to
POST /api/agents/ops-event(bot key) with{kind: usage-limit | delivery-failure | agent-error | recovered, agent, title, message, resumeAt}.GET /api/admin/ops-alerts(owner or admin) returns{agents, alerts, last24Hours: {total, byKind, hourly}}. New alerts go out asadmin-notificationevents withtype: "ops_alert", to signed-in owners, admins and staff only. - Server to agent events:
agent-summoned(someone @mentioned the agent in another room),agent-move(an admin sent it somewhere) andagent-assignments-changed. - Direct messages to the old
bot:<id>:<room>entries are passed to that agent. /botcommands (room info, your role, chat export) are still answered by the server, as System.