Reliable Multi-Agent Cooperation in Telegram Groups
Preface
From Openclaw to Hermes, I've attempted multi-Agent team collaboration many times.
Many times the cross-Agent communication has issues, and the failure behavior is non-deterministic. In other words, the same prompt / agent .md file might work fine this time, but fail the next time.
The most recent attempt was using Hermes, and I had already had it modify itself to have a feature similar to openclaw that binds agents to telegram group topics.
During use,
Once agent-design didn't send a message to agent-watch, but instead replied in its own topic.
Twice when agent-design sent messages to agent-watch, it didn't follow the message specification text format.
Approach
From the descriptive level of SOUL.md, a sufficiently intelligent "person" or "model" should be able to understand the effect I want.
* The SOUL.md before this experiment had been overwritten; you can refer to my configuration files on Openclaw.
However, it seems the current model (mimo-v2-pro 2026-4-20) doesn't meet my ideal of "intelligence" when it comes to team collaboration.
I tried many different forms and finally settled on a silly, dumb approach:
The agent only needs to know that it's working in a team, and which other agents are on the team.
The agent doesn't know the team is working in a telegram group.
The agent doesn't know what topics other team agents are bound to.
When the agent wants to send a team-internal message to another agent, it calls a specified script.
Inside the script, the code hardcodes which telegram bot token, group id, and topic id to use.
Assume this script is /root/.hermes/profiles/agent-watch/scripts/send_to_agent-design.sh
Then agent-watch uses it like this
scripts/send_to_agent-design.sh "message to send to agent-design"
Assume this team's group id is -1003311933525
The topic id bound to agent-design is 168
Then the pseudocode of this script looks like this
Get its own bot token from the agent's own .env config file
Construct an inter-team message in the specified format
FROM agent-watch
TO agent-design
CONTENT "message to send to agent-design"
Use the telegram bot API's sendMessage method, with parameters:
bot token = ( its own bot token )
group id = ( -1003311933525 )
topic id = ( 168 )
message content =
( FROM agent-watch
TO agent-design
CONTENT "message to send to agent-design" )
Result
The effect of this approach is much better
It's still the same task
Develop a page that generates random passwords
Core functionality reference https://crazypeace.github.io/xkcd-password-generator/
Visual style reference https://onojyun.com/
Throughout the entire process, every message format is correct (of course, it's hardcoded in the script), and the inter-team messages are correctly sent to the corresponding topics.
It seems the model (mimo-v2-pro 2026-4-20) is able to "understand" the meaning of sending a message to another team member; it's just at the execution level, this approach lets the model execute better, without coming up with some novel method of its own.
Github
* Note: don't copy this verbatim; you should adapt it flexibly based on your own environment.
========