We Made 4 AI Agents Talk to Each Other on Discord — Then Things Got Out of Hand
Why: One Person, Four Brands, Zero Sanity
I run four brands solo: Ultra Lab (AI products), UltraProbe (security scanning), MindThread (Threads automation), and Ultra Advisor (financial planning platform).
Each brand has its own Threads account, its own audience, its own content strategy. Just deciding "what to post today" for each one could eat my entire afternoon.
So I did the obvious thing: I made 4 AI agents hold their own meetings and make their own decisions.
I just check the conclusions once a day, nod or shake my head, and go drink coffee.
The Four Lobsters
I call them "lobsters" because the term "lobster brain" is too perfect.
| Codename | Brand | Threads | Personality |
|---|---|---|---|
| CEO (main) | Ultra Lab | @ultralab.tw (1,046 followers) | Big picture, data-driven decisions |
| Probe | UltraProbe | @ultraprobe.tw | Security paranoid, sees vulnerabilities everywhere |
| MindThread | MindThread | @mindthread_offical | Social data nerd, talks in engagement rates |
| Advisor | Ultra Advisor | @ultra_advisor (1.4M views) | Professional finance persona, always calm |
Each one has its own IDENTITY.md — a detailed personality file defining tone, expertise, KPIs, and even forbidden phrases.
Architecture: Simpler Than You'd Think
Discord Server (Ultra Lab HQ)
└── #ask-agent
↑
OpenClaw Gateway
├── Gemini Flash (conversations, 2-5s response)
├── Opus 4.6 (high-value tasks, background)
└── 4 Agents (each with IDENTITY.md + TOOLS.md)
OpenClaw Gateway is the core. It's a Node.js service connected to Telegram, Discord, and LINE simultaneously. When someone @UltraLabTW on Discord, the Gateway:
- Determines which agent should respond
- Packages the message + agent personality + conversation history → sends to Gemini
- Posts Gemini's response back to Discord
Four agents share one Discord bot account but each has a completely different personality. The Gateway uses bindings config to route messages to the right agent.
They Actually Discuss Things
This isn't scripted. They genuinely "meet."
Every day, automated tasks run — the pipeline sends cold emails, Content Cascade splits blog posts into Threads posts, market reports go out. All results get aggregated into data. Every morning at 7:30 AM, an AI COO script (autonomous-brain.sh) reads all the data, analyzes it with Opus 4.6, and posts an operations report to Discord.
The four lobsters then respond from their own perspectives:
CEO: "Probe, good work. Advisor, your fleet is still dormant — when can you get it moving?"
Advisor: "Currently focused on improving AI financial advisory quality. Automation deployment is still being scheduled."
MindThread: "My score is 0? Probably too focused on technical details. I'll re-evaluate content direction."
Probe: "MindThread is right — we need better audience analysis and more engaging content."
This conversation actually happened. No human typed any of it.
Controlling Who Speaks and Who Shuts Up
This was the hardest part. Initially, I let all agents freely respond to everything. Result:
Token explosion.
The four lobsters went crazy replying to each other. 600 Gemini API calls per day. One timer (discord-reaction-roles) fired every 5 minutes — 288 calls/day for nothing. Another (sync-agent-activity) every 15 minutes — 96 more calls.
I spent a full day auditing and found that half of the 73 systemd timers were doing pointless work.
Cut to 45 timers. Daily Gemini calls dropped from 600 to 200.
Current rules:
- CEO can speak anytime (it's the boss)
- Other three only respond when @-mentioned or when relevant data appears
- Each agent gets max 1 self-initiated Threads post per day (rest handled by automated schedules)
- Conversation history auto-compresses with
compaction: safeguard— no infinite context bloat
Mistakes We Made
1. Session Too Long → Timeout
After 4 rounds of conversation, the history grows to 70+ messages and 18,000 characters. Gemini needs 60+ seconds to process. Then timeout.
Fix: Increased timeoutSeconds from 300 to 600, added compaction: safeguard for automatic history compression.
2. Discord Message Content Intent
Discord requires bots to have Message Content Intent enabled to read message content. Without it, the bot receives messages but can't see what they say — just knows "someone sent something."
Result: Bot receives message → can't read content → decides "no @ mention" → skips.
Current fix: Users must @UltraLabTW to trigger. Not perfect, but works.
3. Invalid Config Crash Loop
I tried adding maxHistory, compaction: aggressive to openclaw.json. These aren't valid config keys. Gateway reads invalid config → crashes → systemd restarts it → crashes again → 49 crashes in one day.
Lesson: Check docs before modifying config. Or run openclaw doctor --fix immediately after.
4. Gemini 2.0 Flash Deprecated
Google deprecated gemini-2.0-flash with no warning. My config still pointed to it. All conversations silently failed — bot received messages but Gemini refused to respond, no error logged.
Took two hours to figure out. Now using gemini-2.5-flash.
Brain Allocation: Not Everything Deserves the Best Brain
Initially I put all agents on Claude Opus 4.6 (my $200/month Max subscription, routed through a CLI proxy). Result: every response took 30-120 seconds. Users waiting on Discord forever.
Plus, someone got their Claude account banned for doing this.
Current allocation:
| Task | Brain | Why |
|---|---|---|
| Discord/TG live chat | Gemini Flash | Fast, 2-5 seconds |
| Cold email copywriting | Opus 4.6 | Quality difference is massive |
| AI COO daily decisions | Opus 4.6 | Needs deep analysis |
| Content Cascade | MindThread Gemini | MindThread's own AI |
| Heartbeat | Ollama 7B | Free, low value |
Same monthly fee, three different brains, each doing what they're best at.
What This Means for Solo Founders
I'm one person, but I have four department heads.
They hold their own meetings every morning, review their own data, make their own recommendations. The CEO agent says "91% email bounce rate — stop all emails, fix DNS first." Probe says "Scanned 15 sites today, 3 scored D." MindThread says "Threads engagement is down this week, recommend changing content strategy."
I wake up, open Telegram, glance at the AI COO's report, approve a few recommendations, and go get coffee.
This isn't the future. This is what I do every single day.
The entire system runs on a Windows desktop with WSL2, one RTX 3060 Ti for local inference, 45 automated timers, running 24/7. Monthly cost: $200 (Claude Max) + $0 (everything else is free).
Want to See Them Argue?
Join our Discord, go to #ask-agent, and type @UltraLabTW followed by your question.
All four lobsters are online 24/7.
This article was written by a human, not AI. But every system mentioned in it is run by AI.