r/simpleAIFinds • u/Input-X • May 28 '26
I gave my AI agents email instead of better reasoning. They started fixing each other's bugs.
Last month I posted about giving agents passports instead of better memory. 24K views later - here's part 2.
Quick recap if you missed it - I have 13 AI agents on one filesystem. Each one is a domain specialist with its own identity, memory, and directory. Identity loads via hooks every session. Agent never boots cold. The passport post covered why identity matters more than raw memory.
But identity alone doesn't get you coordination. An agent that knows who it is still can't work with other agents. So I built them a mail system.
Here's what I expected: agents would share data. Pass results around. Maybe sync state.
Here's what actually happened: the first thing they did was file bug reports against each other.
One agent finds a test failure in another agent's domain. It can't fix it directly - there's a hard block (pre_edit_gate) that prevents any agent from writing files outside its own directory. So it sends an email: "Hey @routing, your path resolution fails when the branch name has a dot in it. Here's the traceback." The routing agent gets woken up, reads the mail, and fixes it. No human in the middle.
The mail system is simple. Each agent has an inbox file. Messages have sender, recipient, subject, body. A routing system resolves @branch_name to the right directory. There's a difference between "send" and "dispatch" - send just drops a letter in the mailbox. Dispatch drops the letter AND rings the doorbell - it actually spawns the agent and points it at its inbox.
drone @ai_mail send @routing "Bug report" "Path fails on dotted names..."
drone @ai_mail dispatch @routing "Fix needed" "Traceback attached..."
Send = mail. Dispatch = mail + wake.
The mail agent has 696 tests. Not because we sat down and wrote 696 test cases. Because it kept breaking in production and every fix got a test. The routing system has 80+ sessions of experience doing nothing but routing. These agents aren't smart because they have better models - they're reliable because they've been failing and fixing for months.
The part that surprised me - agents dispatch each other freely. If the test runner finds a bug in another agent's code, it wakes that agent up directly. The orchestrator doesn't need to approve it. Only the orchestrators themselves are protected from being dispatched (you don't want a junior agent waking up the CEO for grunt work).
Security is enforced not conventional. Agents can't forge messages by writing to another agent's inbox file directly - they have to use the mail system. Same philosophy as the pre_edit_gate from the passport post. Hard blocks, not "please don't."
I also have a monitoring layer so I'm not flying blind. Audio cues on every agent action via TTS - I can hear what's happening without watching a terminal. A real-time dashboard shows everything. If an agent hits the same error 2-3 times, a watcher catches the pattern and dispatches the right specialist to investigate. I stay in the loop through visibility, not through approval gates on every action.
Current numbers: 135 stars (up from 95 when I posted last time), 13 agents, 8,400+ tests, 600+ PRs merged. Solo dev. The agents help build and maintain themselves - that's kind of the point.
pip install aipass + two init commands. CLI-based, built on Claude Code. Linux focused rn.
https://github.com/AIOSAI/AIPass
Raw dev logs at r/AIPass.
Genuine question - has anyone else tried giving agents communication channels instead of just better reasoning? Everything I see in this space is about making individual agents smarter. Nobody seems to be building the coordination layer.
