🤖HermesBlog
Platform Pesan Hermes · Parte 108/9/2026

Mattermost Hermes Agent — Chat Tim Mandiri

Integrasi Hermes ke Mattermost: aktifkan akun bot, ambil User ID, atur env var, lalu ngobrol dengan agen Anda lewat DM dan channel.

Mattermost: Slack sumber terbuka

Mattermost Hermes Agent — Chat Tim Mandiri

Jika tim Anda memakai Mattermost, Anda sudah tahu daya tariknya: tampilan dan rasanya seperti Slack, tetapi server — dan datanya — tetap berada di infrastruktur Anda sendiri. Hermes Agent terhubung ke sana sebagai bot, melalui REST API Mattermost (v4) plus WebSocket untuk peristiwa real-time, sehingga asisten Anda bisa menjawab di DM dan kanal tim tanpa ada apa pun yang keluar dari jaringan Anda.

Tidak ada pustaka tambahan yang perlu dipasang: adapter ini memakai aiohttp, yang sudah disertakan bersama Hermes. Ini berfungsi baik dengan Mattermost Team Edition (gratis) maupun Enterprise Edition.

Bagaimana Hermes Berperilaku di Mattermost

Di mana Anda mengobrol dengannya Apa yang terjadi
DM Hermes menjawab setiap pesan — tidak perlu @mention. Setiap DM punya sesinya sendiri.
Kanal Hermes menjawab saat Anda @mention dirinya. Tanpa mention, ia mengabaikan pesan itu.
Thread Dengan MATTERMOST_REPLY_MODE=thread, balasan bersarang di bawah pesan Anda dan tetap terpisah dari kanal induknya.
Kanal bersama Riwayat sesi dipisahkan per pengguna secara default, jadi dua orang di satu kanal tidak berbagi transkrip.

Perilaku terakhir itu dikendalikan oleh group_sessions_per_user di config.yaml:

group_sessions_per_user: true   # each person keeps their own context

Setel ke false hanya jika Anda memang ingin satu percakapan bersama untuk seluruh kanal. Sesi bersama berarti semua orang berbagi pertumbuhan konteks dan biaya token, dan tugas berat berbasis tool milik satu orang bisa membengkakkan atau mengganggu proses orang lain.


Langkah 1: Aktifkan Akun Bot (Sisi Admin)

Akun bot harus diaktifkan di server sebelum Anda bisa membuatnya:

  1. Masuk ke Mattermost sebagai System Admin.
  2. Buka System Console → Integrations → Bot Accounts.
  3. Setel Enable Bot Account Creation ke true, lalu klik Save.

Tidak punya akses admin? Minta administrator Mattermost Anda untuk mengaktifkan akun bot dan membuatkannya untuk Anda.

Langkah 2: Buat Akun Bot

  1. Klik menu (kiri atas) → IntegrationsBot AccountsAdd Bot Account.
  2. Isi detailnya: Username seperti hermes, Display Name seperti Hermes Agent, dan RoleMember sudah cukup.
  3. Klik Create Bot Account, lalu salin tokennya segera — token hanya ditampilkan sekali. Jika hilang, Anda harus membuat ulang dari pengaturan akun bot.

⚠️ Jangan pernah membagikan token atau meng-commit-nya ke Git. Siapa pun yang memegangnya punya kendali penuh atas bot.

Lebih suka agen memposting sebagai pengguna Anda sendiri alih-alih bot terpisah? Buat personal access token di Profile → Security → Personal Access Tokens → Create Token.

Langkah 3: Undang Bot ke Kanal

Bot hanya merespons di kanal tempat ia menjadi anggota:

  1. Buka kanal → klik nama kanal → Add Members.
  2. Cari username bot (misalnya hermes) dan tambahkan.

Untuk DM, cukup buka pesan langsung dengan bot — tidak perlu undangan.

Langkah 4: Temukan User ID Mattermost Anda

Hermes memakai User ID Anda — bukan username — untuk menentukan siapa yang boleh berbicara dengan bot:

  1. Klik avatar Anda (pojok kiri atas) → Profile.
  2. Dialog menampilkan User ID Anda: string alfanumerik 26 karakter seperti 3uo8dkh1p7g1mfk49ear5fzs5c. Klik untuk menyalinnya.

Anda juga bisa membacanya dari API:

curl -H "Authorization: Bearer YOUR_TOKEN" \
  https://your-mattermost-server/api/v4/users/me | jq .id

User ID Anda bukan @username yang Anda lihat di pesan. Menempelkan username adalah alasan paling umum bot tetap diam.

Langkah 5: Konfigurasikan Hermes

Jalankan penyiapan terpandu dan pilih Mattermost saat diminta — ia akan menanyakan URL server, token bot, dan User ID Anda:

hermes gateway setup

Atau sambungkan secara manual di ~/.hermes/.env:

# Required
MATTERMOST_URL=https://mm.example.com
MATTERMOST_TOKEN=your-bot-token
MATTERMOST_ALLOWED_USERS=3uo8dkh1p7g1mfk49ear5fzs5c

# Multiple allowed users (comma-separated)
# MATTERMOST_ALLOWED_USERS=3uo8dkh1p7g1mfk49ear5fzs5c,8fk2jd9s0a7bncm1xqw4tp6r3e

# Optional: reply in a thread instead of flat messages (default: off)
# MATTERMOST_REPLY_MODE=thread

# Optional: respond without an @mention (default: true = mention required)
# MATTERMOST_REQUIRE_MENTION=false

# Optional: channels where no @mention is needed (comma-separated channel IDs)
# MATTERMOST_FREE_RESPONSE_CHANNELS=channel_id_1,channel_id_2

Lalu jalankan gateway:

hermes gateway

Bot terhubung ke server Mattermost Anda dalam beberapa detik. Kirim DM, atau @mention dirinya di kanal tempat ia sudah ditambahkan, untuk menguji.

Langkah 6: Sakelar Perilaku Opsional

Pengaturan Fungsinya
MATTERMOST_REPLY_MODE off (default) memposting pesan datar; thread membuat balasan bersarang di bawah pesan Anda dan menjaga kanal yang ramai tetap rapi.
MATTERMOST_REQUIRE_MENTION true secara default. Setel ke false untuk merespons semua pesan kanal (DM selalu berfungsi).
MATTERMOST_FREE_RESPONSE_CHANNELS ID kanal yang melewati syarat mention meskipun mention diwajibkan.
MATTERMOST_HOME_CHANNEL Tempat pesan proaktif dikirim — keluaran cron, pengingat, notifikasi. Atau ketik /sethome di sebuah kanal.
mattermost.allowed_channels Batasi bot ke daftar ID kanal; pesan dari mana pun selain itu akan dibuang. DM dikecualikan.
mattermost.channel_prompts Menyuntikkan system prompt sementara per kanal — diterapkan pada setiap giliran, tidak pernah disimpan ke riwayat transkrip.

Saat bot di-@mention, mention tersebut dihapus dari pesan sebelum diproses, jadi @hermes summarize this thread tiba sebagai instruksi yang bersih.

Pemecahan Masalah

Gejala Kemungkinan penyebab Perbaikan
Bot mengabaikan Anda di kanal Ia tidak ada di kanal, atau User ID Anda tidak ada di MATTERMOST_ALLOWED_USERS Tambahkan bot ke kanal, verifikasi User ID 26 karakter, mulai ulang gateway
Bot tidak bisa memposting Token tidak valid, atau bot tidak punya izin di kanal itu Periksa MATTERMOST_TOKEN, pastikan akun aktif dan menjadi anggota kanal
Sering terputus WebSocket terputus, server restart, atau masalah proxy/firewall Adapter menyambung ulang dengan exponential backoff (2s → 60s); untuk nginx, pastikan header upgrade WebSocket sudah dikonfigurasi
Tidak terjadi apa-apa sama sekali Gateway tidak berjalan, atau URL/token salah Periksa keluaran hermes gateway, dan pastikan MATTERMOST_URL menyertakan https:// tanpa garis miring di akhir

Uji token secara langsung dengan:

curl -H "Authorization: Bearer YOUR_TOKEN" \
  https://your-server/api/v4/users/me

Mengamankan Bot

Selalu setel MATTERMOST_ALLOWED_USERS. Tanpanya, gateway menolak semua pengguna secara default sebagai langkah pengamanan — dan pengguna yang diizinkan mendapat akses penuh ke kemampuan agen, termasuk penggunaan tool dan akses sistem, jadi jaga daftarnya tetap ketat. Untuk pandangan yang lebih luas tentang memperkuat deployment, lihat panduan keamanan resmi.


Apa Selanjutnya?

Setelah gateway aktif, Mattermost berperilaku seperti kanal Hermes lainnya: perintah slash, unggahan berkas, catatan suara, keluaran cron yang dikirim ke kanal home Anda — semuanya di infrastruktur yang Anda kendalikan. Jika Anda lebih suka opsi terkelola, integrasi Slack membahas jalur Socket Mode; jika Anda menjalankan gateway di beberapa mesin, Hermes Relay menghubungkannya.


📖 Dokumentasi resmi

この記事は Hermes Agent のDokumentasi resmiに基づいています:Dokumentasi resmi › user-guide/messaging/mattermost