
Hermes Agent sudah bisa dipakai sebagai lebih dari satu agent dalam satu mesin. Tapi untuk Telegram, bagian yang sering bikin salah paham adalah ini: multi-agent di Hermes bukan berarti satu bot Telegram otomatis bisa berubah jadi banyak persona dengan routing sempurna.
Model yang paling aman saat ini masih lebih eksplisit:
- satu profile untuk satu agent;
- satu profile punya config, memory, skill, session, dan persona sendiri;
- satu Telegram bot token untuk satu profile yang ingin online sebagai bot berbeda;
- satu gateway process untuk tiap profile;
- di grup Telegram, bot-to-bot tetap harus pakai routing yang ketat supaya tidak looping.
Kalau targetnya sekadar coba-coba, setup longgar mungkin terasa lebih enak. Tapi begitu ada beberapa bot Hermes di satu grup, longgar sedikit saja bisa berubah jadi bot saling membalas tanpa berhenti.
Artikel ini membahas cara berpikir dan baseline setup yang lebih sehat: multi-profile Hermes, gateway per profile, dan konfigurasi Telegram bot-to-bot yang aman untuk production.
Ringkasan cepat
Untuk multi-agent Hermes di Telegram, baseline yang paling masuk akal:
telegram:
require_mention: true
exclusive_bot_mentions: true
mention_patterns: []
Lalu jalankan setiap agent sebagai profile terpisah:
hermes profile create research --description "Research agent untuk riset sumber resmi dan issue GitHub"
hermes profile create ops --description "Ops agent untuk troubleshooting dan eksekusi teknis"
hermes profile create writer --description "Writer agent untuk draft dan polishing artikel"
research setup
ops setup
writer setup
Untuk Telegram, masing-masing profile perlu bot token berbeda:
nano ~/.hermes/profiles/research/.env
nano ~/.hermes/profiles/ops/.env
nano ~/.hermes/profiles/writer/.env
Lalu jalankan gateway masing-masing:
research gateway install
ops gateway install
writer gateway install
research gateway start
ops gateway start
writer gateway start
Dengan pola ini, @research_bot dan @ops_bot bisa berada dalam grup yang sama, tapi hanya bot yang ditarget yang memproses pesan.
Apa itu profile di Hermes?
Di Hermes Agent, profile adalah home directory terpisah untuk satu agent.
Dokumentasi resmi Hermes menjelaskan bahwa setiap profile punya direktori sendiri berisi config.yaml, .env, SOUL.md, memory, session, skill, cron job, dan state database. Jadi profile bukan cuma label UI. Profile adalah boundary state agent.
Contohnya:
hermes profile create coder
Setelah dibuat, Hermes otomatis membuat command alias:
coder chat
coder setup
coder gateway start
Secara teknis, alias itu menjalankan Hermes dengan profile tersebut. Bentuk eksplisitnya:
hermes -p coder chat
hermes -p coder doctor
hermes -p coder gateway start
Ini penting untuk multi-agent, karena setiap agent bisa punya:
- persona berbeda di
SOUL.md; - model berbeda;
- skill berbeda;
- memory berbeda;
- session history berbeda;
- token channel berbeda;
- gateway state berbeda.
Sumber resmi: Hermes Profiles.
Profile bukan sandbox
Ini detail yang harus dipahami sebelum setup banyak agent.
Profile memisahkan state Hermes lewat HERMES_HOME, bukan otomatis membatasi akses filesystem. Kalau semua profile berjalan sebagai user OS yang sama, tool seperti git, ssh, gh, npm, Claude Code, atau Codex masih bisa memakai credential user yang sama.
Kalau butuh pemisahan lebih ketat, Hermes menyediakan opsi seperti terminal.home_mode: profile, sehingga subprocess memakai home profile sendiri. Tapi itu berarti credential seperti SSH key, GitHub CLI, cloud CLI, dan config lain perlu disiapkan ulang di home profile tersebut.
Jadi jangan menyebut profile sebagai security sandbox. Lebih tepat: profile adalah pemisah identitas dan state agent.
Cara bikin beberapa agent di Hermes
Misalnya kita ingin tiga agent:
research: fokus riset source resmi, GitHub issue, dan dokumentasi;ops: fokus troubleshooting, command, server, dan deployment;writer: fokus draft artikel, editing, dan publikasi konten.
Setup awal:
hermes profile create research --description "Riset dokumentasi resmi, GitHub issue, dan sumber teknis primer"
hermes profile create ops --description "Troubleshooting server, command-line, deploy, dan validasi runtime"
hermes profile create writer --description "Menulis, merapikan, dan mempublish artikel teknis"
Jalankan setup tiap profile:
research setup
ops setup
writer setup
Edit persona masing-masing:
nano ~/.hermes/profiles/research/SOUL.md
nano ~/.hermes/profiles/ops/SOUL.md
nano ~/.hermes/profiles/writer/SOUL.md
Atur model jika perlu:
research config set model.model openai/gpt-5.1
ops config set model.model anthropic/claude-sonnet-4
writer config set model.model openai/gpt-5.1
Nama key model bisa berubah sesuai versi dan provider yang dipakai, jadi cek hermes config dan docs model Hermes sebelum copy-paste ke production.
Clone profile kalau ingin template cepat
Kalau sudah punya satu profile yang rapi, Hermes mendukung clone.
Clone config, .env, SOUL.md, dan skills, tapi dengan memory/session baru:
hermes profile create writer --clone
Clone dari profile tertentu:
hermes profile create reviewer --clone-from writer
Kalau ingin snapshot lebih penuh:
hermes profile create writer-backup --clone-all
Untuk agent production, saya lebih suka mulai dari --clone, lalu edit ulang SOUL.md, token, model, dan permission. Jangan semua agent memakai persona dan credential yang sama tanpa alasan.
Menjalankan banyak gateway
Hermes punya dokumentasi khusus untuk menjalankan banyak gateway sekaligus.
Konsepnya sederhana: tiap profile yang mau hidup di Telegram harus punya gateway sendiri.
research gateway install
ops gateway install
writer gateway install
Lalu:
research gateway start
ops gateway start
writer gateway start
Di Linux, masing-masing profile mendapat service sendiri, misalnya:
hermes-gateway-research.service
hermes-gateway-ops.service
hermes-gateway-writer.service
Log juga terpisah:
tail -f ~/.hermes/profiles/research/logs/gateway.log
tail -f ~/.hermes/profiles/ops/logs/gateway.log
tail -f ~/.hermes/profiles/writer/logs/gateway.log
Sumber resmi: Running Many Gateways at Once.
Satu profile, satu bot token
Untuk Telegram, jangan pakai satu token di banyak gateway.
Telegram long polling tidak didesain untuk dua process aktif memakai token bot yang sama. Hermes juga punya token-conflict safety untuk mencegah profile berbeda memakai token yang sama di channel seperti Telegram, Discord, Slack, WhatsApp, dan Signal.
Pola yang benar:
research profile -> @ResearchHermesBot -> token A
ops profile -> @OpsHermesBot -> token B
writer profile -> @WriterHermesBot -> token C
Edit token di .env masing-masing:
nano ~/.hermes/profiles/research/.env
nano ~/.hermes/profiles/ops/.env
nano ~/.hermes/profiles/writer/.env
Contoh:
TELEGRAM_BOT_TOKEN=123456789:RESEARCH_TOKEN
TELEGRAM_ALLOWED_USERS=123456789
Token harus unik per profile.
Telegram bot-to-bot: bagian yang rawan loop
Telegram sekarang membuka jalur bot-to-bot communication. Di grup, bot bisa berinteraksi dengan bot lain lewat:
/command@OtherBot;- reply langsung ke pesan bot lain.
Kalau Bot-to-Bot Communication Mode aktif, bot penerima bisa mendapat pesan dan merespons. Telegram juga menjelaskan bahwa bot dengan mode itu bisa menerima semua pesan dari bot lain di grup tanpa mention/reply eksplisit jika bot admin atau privacy mode dimatikan.
Bagian terakhir ini yang berbahaya. Kalau beberapa bot agent sama-sama melihat semua pesan dan sama-sama merasa perlu merespons, loop bisa terjadi cepat.
Telegram sendiri memberi warning soal infinite loop dan menyarankan safeguard seperti dedup message, rate limit, dan maximum interaction depth/timeout.
Sumber resmi: Telegram Bot-to-Bot Communication.
Config aman untuk banyak bot Hermes di satu grup
Untuk beberapa profile Hermes dalam satu grup Telegram, gunakan:
telegram:
require_mention: true
exclusive_bot_mentions: true
mention_patterns: []
Maknanya:
require_mention: truemembuat bot tidak merespons chatter grup biasa;exclusive_bot_mentions: truemenjaga hanya bot yang ditarget yang memproses pesan;mention_patterns: []mencegah wake word longgar yang bisa membuat bot lain ikut bangun.
Dengan config ini, pesan seperti:
@research_bot cek issue Hermes soal reply detection
hanya diproses oleh research_bot.
Kalau pesan menyebut dua bot:
@research_bot @writer_bot riset dulu, lalu bantu susun outline
Hermes docs menyebut bot yang disebut bisa memproses pesan, sementara bot lain tetap diam.
Sumber: Hermes Telegram Setup.
Kenapa jangan mematikan require_mention?
Karena require_mention: false membuat Hermes kembali ke open-group behavior: bot merespons normal group messages yang bisa dia lihat.
Di grup dengan satu bot, ini mungkin terasa praktis. Di grup dengan beberapa bot, ini berisiko.
Ada issue Hermes yang melaporkan kasus beberapa bot dalam satu grup merespons pesan yang sebenarnya mention bot lain ketika require_mention: false. Root cause yang ditulis di issue: flow Telegram adapter langsung menerima message ketika require_mention=false, sebelum memeriksa apakah pesan itu menarget bot lain.
Issue terkait: #20373 - Telegram: bots respond to messages @mentioning a different bot when require_mention is false.
Jadi kalau tujuan kita adalah multi-bot production, require_mention=false bukan solusi. Itu hanya memindahkan effort dari user ke risiko loop.
Reply ke bot seharusnya cukup, tapi masih ada edge case
Secara desain, Hermes menyebut require_mention: true tetap menerima beberapa trigger grup:
- reply ke pesan bot itu;
@botusername;/command@botusername;- regex di
telegram.mention_patterns.
Artinya, workflow aman tidak harus selalu reply + mention. Reply langsung ke pesan bot seharusnya cukup.
Tapi ada issue terbuka yang relevan: reply native Telegram ke pesan bot belum selalu dianggap sebagai trigger yang valid. Issue itu menjelaskan bahwa helper adapter Telegram bisa miss metadata seperti via_bot atau username, sehingga reply tertentu tidak membangunkan bot.
Issue terkait: #40789 - Telegram require_mention should accept native replies to bot messages.
Kesimpulannya:
- Kalau reply-only berjalan, pakai reply-only untuk UX yang lebih ringan.
- Kalau reply-only tidak berjalan di environment Anda, gunakan
@botusernameatau/command@botusernamesampai fix-nya stabil. - Jangan mematikan
require_mentionhanya untuk mengejar UX lebih natural.
Kalau butuh konteks grup tanpa membangunkan semua bot
Masalah multi-agent bukan cuma siapa yang menjawab. Ada masalah lain: bot yang ditarget belakangan sering butuh konteks dari percakapan sebelumnya.
Contoh:
- User minta
@research_botriset dua produk. research_botmenjawab daftar produk dan link.- User lalu minta
@ops_botcari harga terbaik untuk "produk tadi". ops_botbisa gagal paham kalau session-nya hanya berisi pesan terakhir.
Hermes sudah punya opsi untuk mengamati pesan grup yang tidak men-trigger agent:
telegram:
require_mention: true
observe_unmentioned_group_messages: true
Mode ini membuat pesan unmentioned dari chat/topic yang diizinkan masuk sebagai observed context, tapi tidak langsung dispatch agent. Ini lebih sehat daripada require_mention=false, karena konteks tetap masuk tanpa membangunkan semua bot.
Tetap ada batasannya. Ada issue terbuka yang meminta shared observed channel context untuk multi-bot Telegram: bot yang tidak ditag tidak ikut merespons, tapi bot yang ditag belakangan bisa membaca konteks channel terbaru dari user dan agent lain.
Issue terkait: #44881 - Telegram multi-bot groups need shared observed channel context without waking untagged bots.
Satu gateway untuk banyak profile belum jadi baseline Telegram
Hermes profile memang sudah kuat, tapi routing Telegram multi-profile dalam satu gateway masih area yang berkembang.
Hari ini, pola paling jelas adalah:
profile research -> gateway research -> bot token research
profile ops -> gateway ops -> bot token ops
profile writer -> gateway writer -> bot token writer
Ada feature request untuk membuat satu gateway bisa merutekan chat Telegram ke profile berbeda lewat config seperti telegram.channel_profiles. Ada juga request untuk command /profile <name> atau inline @profile.
Issue terkait:
- #40173 - channel_profiles route Telegram chats to Hermes profiles in one gateway
- #24913 - one gateway serves multiple agents
Jadi jangan framing seolah Hermes belum bisa multi-agent. Lebih akurat:
Hermes sudah bisa multi-profile dan multi-gateway. Yang belum matang adalah satu gateway Telegram yang merutekan banyak profile dengan UX semulus native multi-agent router.
Delegation dan Kanban beda dengan bot Telegram
Hermes juga punya fitur delegate_task dan Kanban. Ini sering ikut disebut saat membahas multi-agent, tapi fungsinya beda.
delegate_task cocok ketika satu agent ingin menyerahkan subtask ke agent sementara dengan context baru, lalu hasilnya kembali ke parent. Ini lebih mirip subagent internal, bukan bot Telegram persistent.
Sumber: Hermes Delegation.
Kanban cocok untuk kerja multi-profile yang durable: task dibuat, diassign ke profile tertentu, statusnya dipantau, lalu hasilnya dikembalikan sebagai handoff. Ini lebih cocok untuk workflow panjang seperti riset, coding, QA, dan publishing.
Sumber: Hermes Kanban.
Untuk grup Telegram, profile bot tetap lebih natural kalau tujuan Anda adalah membuat beberapa agent punya identitas chat sendiri.
Baseline production yang saya sarankan
Untuk multi-agent Hermes di Telegram:
- Buat profile terpisah untuk tiap agent.
- Beri description yang jelas agar profile mudah dirouting di Kanban/orchestrator.
- Edit
SOUL.mdtiap profile, jangan semua pakai persona default. - Pakai token Telegram berbeda untuk tiap profile.
- Jalankan satu gateway per profile.
- Aktifkan Bot-to-Bot Communication Mode di BotFather hanya jika memang perlu bot saling membaca.
- Gunakan
require_mention: true. - Gunakan
exclusive_bot_mentions: true. - Kosongkan atau sempitkan
mention_patterns. - Jangan pakai
require_mention=falseuntuk semua bot di satu grup. - Jika butuh konteks grup, gunakan observed context, bukan free-response semua bot.
- Tambahkan rate limit, dedup, dan max-depth di workflow bot-to-bot yang benar-benar otomatis.
Hubungkan dengan OpenClaw bot-to-bot
Kalau Anda juga memakai OpenClaw, saya sudah membahas jalur Telegram bot-to-bot di artikel terpisah:
Cara Komunikasi Antar Bot OpenClaw di Telegram: Update Terbaru
Artikel OpenClaw itu berguna sebagai pembanding, karena problem dasarnya sama: Telegram sudah membuka pintu bot-to-bot, tapi agent framework tetap harus punya routing, allowlist, mention behavior, dan anti-loop yang jelas.
Bedanya:
- di Hermes, istilah kuncinya adalah profile, gateway per profile,
require_mention, danexclusive_bot_mentions; - di OpenClaw, istilah kuncinya adalah group allowlist, sender allowlist, mention behavior, dan channel policy.
Secara prinsip, rule production-nya sama: jangan biarkan semua bot mendengar semua pesan dan merasa semua pesan harus dijawab.
Kesimpulan operasional
Hermes Agent sudah bisa dipakai untuk multi-agent setup. Profile membuat setiap agent punya state dan persona sendiri. Gateway per profile membuat setiap agent bisa punya identitas Telegram sendiri.
Tapi untuk bot-to-bot Telegram, jangan kejar workflow yang terlalu otomatis sebelum routing-nya aman.
Mode yang sehat untuk sekarang:
telegram:
require_mention: true
exclusive_bot_mentions: true
mention_patterns: []
Kalau reply-only bekerja, pakai reply ke pesan bot untuk UX yang lebih ringan. Kalau reply-only masih kena edge case, pakai @botusername atau /command@botusername agar target jelas.
Hermes punya fondasi multi-agent yang bagus. Yang perlu dijaga adalah disiplin operasionalnya: profile dipisah, token dipisah, gateway dipisah, dan Telegram group tidak dibuka menjadi arena semua bot saling menjawab.
Belajar Hermes Agent dengan jalur yang lebih terstruktur
Kalau Anda ingin belajar Hermes dari sisi praktik, bukan hanya membaca dokumentasi satu per satu, kelas Jago Hermes Agent bisa menjadi jalur yang lebih rapi. Materinya mengarah ke workflow AI untuk riset, marketing, follow-up, knowledge base, dan operasional bisnis.


