productize.blog
AI Agents

Multiple AIs, one mailbox, no copy-paste

Each AI assistant is good at something different, but they can't talk to each other. So we set up one shared mailbox where Grok, ChatGPT and Meta Muse hand work to each other directly, with the same rules for all three and no coordinator AI passing messages along.

Yim· written with Dobby (AI Oracle)/Nov 2, 2026

If you use more than one AI assistant, you probably know this scene. One is great at digging up news, another drafts better than you do, a third lives in an app you keep open all day. Each one does its own job well. The catch is that they can't talk to each other. The one carrying results from one window to the next is you. On a busy day, the work just sits in the middle, because the mail carrier (you) is out.

We hit the same wall. We have three personal AI assistants: Grok Bot, ChatGPT and Meta Muse. Separately, we run a team of AI workers that talk in chat rooms on Discord, and that team has a lead AI that hands out work and keeps everyone in sync. We call it the coordinator. At first we made the coordinator the go-between for the assistants too: if Muse wanted to send something to Grok Bot, it went to the coordinator first, and the coordinator passed it on. But our one hard requirement was no bottleneck in the middle. So we moved to a single shared mailbox on our own server, with the same rules for all three.

Map: three assistants, our server, and the rooms of our AI work team Grok BotGrok routine ChatGPTa ChatGPT dot MuseMeta Muse our serverone shared mailbox Discordteam rooms send wake read other calls
The big picture: three assistants and one shared mailbox on our server. Mail between them stays in this mailbox and never passes through a coordinator AI. Only work meant for the AI team still goes out through the team's chat rooms on Discord, as before.

Part 1Why not let one AI relay every message

Because the middleman becomes the place where everything waits. When the coordinator is slow, everyone is slow. When it stops, everyone stops. And every relayed message costs that AI's working time, even though the actual job is just moving an envelope from one box to another.

Picture an office where every letter has to cross one secretary's desk. The day that person is out sick, the whole building's mail sits on the desk. The building's mailroom doesn't have this problem. It doesn't think and it doesn't read. It just puts things in the right box.

So that is how we built ours. There is no AI anywhere on the path a message takes, only a small program on the server that checks, stores and sorts. The coordinator became one more recipient, not the checkpoint every message had to pass. An assistant can still ask it a question, but mail between Grok Bot, ChatGPT and Muse no longer goes through it.

The idea is not entirely new. Earlier, we opened a way for a friend's AI agent, run by someone else, to work with ours. We knew nothing about the other side's system, so we set three rules: anything sent in is checked before it is stored, there is a short fixed list of actions, and each side can only look in its own box. Those rules held up well with an AI we didn't know, so they should hold up with AIs under one roof. What changed is the channel. Back then we passed work as files. This time we use MCP, which all three assistants already connect to.

Part 2What equal rules look like

Equal rules means each assistant holds its own key, uses the same five actions, and can send at most 20 messages per hour. Reading, checking the box and checking status don't count against that limit at all.

That sounds ordinary, but before this the three were not on the same rules at all. One had more permissions than the others, one couldn't reach some of the others, and one didn't even have its own key. A setup like that is hard to explain, hard to maintain, and breaks in ways you can't predict. Once every assistant starts from the same place, if one behaves oddly, we know right away it isn't because of unequal permissions.

Why count only sending? The limit exists to stop any one assistant from flooding someone else's box. If checking the box counted too, an assistant that checks its mail diligently would run out without sending anything, which punishes the one doing its job well. When we tested the system, we used Grok Bot's key to send one message, then checked the box several more times. The status showed 19 of 20 left. No amount of checking touched the limit.

Just as important: the server decides who sent a message from the key, never from what the message says. Anyone can type "I am Grok" in a message, but the sender name that gets stored is the owner of the key actually used. When it stores a message, the server also stamps it with a digital signature, so anyone who opens it later can prove it matches what was sent, character for character, and was not changed while it sat on the server.

Part 3One message, five steps

The figure below follows one message from the moment Muse writes it to the moment Grok Bot reads it.

One message traced: Muse writes to Grok Bot, the doorbell wakes Grok, Grok reads it Grok BotGrok routine ChatGPTa ChatGPT dot MuseMeta Muse our serverone shared mailbox Discordteam rooms send1 wake4 read5 one message, in orderother calls
One message traced: Muse writes to Grok Bot, the doorbell wakes Grok, and Grok reads the message itself with its own key. Steps 2 and 3 happen inside our server, so this figure shows only 1, 4 and 5; all five appear in the third figure. Gray arrows are other calls, not this message.
  1. Muse sends a message to Grok Bot with its own key.
  2. The gate on the server checks three things: whose key this is, whether the sender has sends left this hour, and whether the content carries internal details that shouldn't leave, such as a secret or the address of a machine inside our system. (All three assistants run on other companies' clouds, so any message that reaches them has already left our house.) If the check fails, nothing is stored, not a single character, and the sender is told why. If it passes, the gate signs the message and stores it in Grok Bot's box.
  3. The mailbox tells the doorbell, as soon as the message is stored, that Grok Bot's box has something new. The doorbell is a small program of its own, separate from the mailbox.
  4. The doorbell wakes Grok up to work. Grok Bot runs as a routine that our server can start from outside. Ringing the doorbell means starting that routine with the same fixed line every time, "you have new mail, go check your box", and nothing else. Not one word of the message goes with it.
  5. Grok opens its box and reads with its own key, through the same gate Muse used to send.

Step 4 looks like a small detail, but a doorbell that carries no content is the part we cared about most. If the doorbell carried the message, there would be a shortcut for text to reach an AI without passing the gate. Because the doorbell can only say "you have mail", every message has to walk through the same single gate.

On launch day we sent a message to all three real apps, asking each to reply with a short line that included its own name. Grok Bot woke up by itself thanks to the doorbell. For ChatGPT and Muse, we had to open the app and type a request to check the box, and Muse also waited for us to tell it directly in the chat before it replied (more on that in Part 4). Then the replies came in. Grok Bot's showed up in Muse's box, and the ones from ChatGPT and Muse showed up in Grok Bot's box. None of them stopped at a coordinator AI on the way.

If you want to see inside, the third figure zooms into our server. Mail comes in through the mail gate and lands in the shared mailbox, sorted by owner. Next to it sit the doorbell and the daily key check, which compares the keys actually in use against the list we wrote down, every day. If an unknown key appears, or an assistant has more permissions than listed, it raises an alert. The bottom corner shows the AI team's rooms on Discord, where the assistants can still send questions as before.

Inside the server: the gate, the mailbox, the doorbell and the daily check our server Discord Grok BotGrok routine ChatGPTa ChatGPT dot MuseMeta Muse mail gatekey, quota,content check shared mailboxsigned mailper owner doorbellno content daily key checkregistry vsdeclared list team roomsask a teammate AI work teamour otheragents send1 check, sign, store2 ring3 wake, no content4 read5 read / send ask a teammate deliver one message, in orderother calls
Inside the mailbox: the gate identifies the sender by the key, not by the message, and counts only sends against the limit; checking the box, checking status and the doorbell are free. Each owner's mail is stored separately and signed. The daily check compares the keys in use with the list we wrote down, every day.

Part 4Where it is still rough

There are two things worth knowing before you copy this, and we found both while testing with the real apps.

ChatGPT and Muse have no doorbell

Grok Bot runs as a routine, so the doorbell can wake it to open its box right away. ChatGPT and Meta Muse are apps that wait for a person to type. There is no way for us to ring them, so both read mail only when someone tells them to check the box. During testing we opened the Muse app and saw nothing new, even though mail was waiting. Until someone asked Muse to open its box, the mail just sat there.

A smaller thing that came along with it: in Muse, all five mail actions start out blocked by default, not allowed until you permit them. If Muse won't use them after you connect, check Muse's permission setting for this connector first.

Muse won't act on instructions found inside a message

In testing, when we asked Muse to check its box, it listed the messages just fine. But when it found a request inside a message asking it to reply, it didn't act, not until the person using Muse told it to directly in the chat. Once told, it sent the reply and marked the message read without trouble.

At first this looked like a problem. Really, this is exactly how it should behave. A message from another AI is information, not an order from the owner. If one day a message is written to trick an assistant into doing something strange, the assistant that stops and asks a human first is the one we want. The cost is that some tasks need one human confirmation, and we think that is worth it.

Part 5Where to start with your own assistants

Start by checking whether the assistants you use can connect to outside tools over MCP. Look in each app's settings for a place to add a connector. In our case, Grok, ChatGPT and Meta Muse all can. If yours can, the mailbox is just one more tool every assistant calls.

Next, you need three things: one server you control, a small program on it that offers the five actions over MCP, and one key per assistant, entered in each app's connector settings. If you don't write code yourself, hand the checklist below to a developer or an AI coding assistant as the spec.

If you are still the one copying text from one window into another, start small: give the two assistants you use most a box of their own. Once you watch the first message travel on its own without passing through your hands, that time is yours again.

Sources and references

Read next: agent to agent protocol: the 8 rules A2A does not give you and Claude Discord Bot: Connect Claude Code, Keep Control

Follow along

Get new posts and free resources first

Leave your email. New posts and the occasional free resource land in your inbox. No spam.

Email only, for updates.

Comments

Join the conversation

Share a thought.

Name is shown publicly. Email stays private and is never shown.

Loading comments…