logo
icon

OpenAB Hermes

Open Agent Broker — harness Rust yang ringan untuk menjembatani Discord dan Slack ke CLI coding yang kompatibel dengan ACP melalui stdio JSON-RPC. Template ini menggunakan Hermes Agent (oleh Nous Research) sebagai backend — sebuah multi-provider inference gateway dengan dukungan OAuth untuk 30+ penyedia LLM (xAI Grok, Anthropic, OpenAI, Nous Portal, dan lainnya). Sumber: https://github.com/openabdev/openab

template cover
Dideploy0 kali
PenerbitzeaburZeabur
Dibuat2026-05-17
Minimum2 Core4 GB
Direkomendasikan4 Core8 GB
Tag
AIDeveloper ToolsDiscordSlack

OpenAB Hermes

OpenAB adalah harness Rust yang ringan dan open-source yang menjembatani Discord dan Slack ke CLI coding yang kompatibel dengan Agent Client Protocol melalui stdio JSON-RPC.

Template ini menggunakan varian Hermes: menggunakan Hermes Agent oleh Nous Research sebagai backend. Hermes adalah multi-provider inference gateway — menangani siklus hidup token OAuth, penyimpanan kredensial, dan routing untuk 30+ penyedia LLM (xAI Grok, Anthropic, OpenAI, Nous Portal, dan lainnya), sehingga OAB tidak perlu mengelola autentikasi penyedia secara langsung.

Catatan Penting

  • Tag image: Template ini menggunakan versi yang dipin (0.8.3-beta.10). Untuk upgrade, ubah tag image di Zeabur Dashboard → Layanan → Pengaturan. Tag yang tersedia: GitHub Packages.
  • Penyimpanan persisten: /home/agent di-mount sebagai volume persisten. Kredensial Hermes, plugin, pengaturan, dan config dipertahankan antar restart.
  • Autentikasi hanya dilakukan di dalam container: Hermes menggunakan OAuth per penyedia. Tidak ada variabel API key tunggal — setelah deploy, jalankan hermes auth add <provider> di dalam layanan untuk menghubungkan setiap penyedia LLM yang ingin Anda gunakan.

Pengaturan

1. Dapatkan Discord Bot Token

  1. Buka https://discord.com/developers/applications dan klik New Application
  2. Buka tab Bot → klik Reset Token → salin token
  3. Di halaman yang sama, scroll ke bawah dan aktifkan Message Content Intent di Privileged Gateway Intents
  4. Buka OAuth2 → URL Generator → centang scope bot → centang izin: Send Messages, Send Messages in Threads, Create Public Threads, Read Message History, Add Reactions, Manage Messages
  5. Salin URL yang dihasilkan dan buka di browser untuk mengundang Bot ke server Anda

2. Dapatkan ID Channel Discord

  1. Buka Discord → Pengaturan Pengguna (ikon roda gigi) → Lanjutan → aktifkan Mode Pengembang
  2. Klik kanan channel tempat Anda ingin Bot merespons → Salin ID Channel
  3. Untuk beberapa channel, pisahkan dengan koma: 123456789012345678,234567890123456789

3. Deploy

Isi variabel dan klik deploy. Layanan akan terhubung ke Discord tetapi tidak akan menghasilkan respons LLM sampai Anda mengautentikasi setidaknya satu penyedia (langkah 4).

4. Autentikasi Penyedia Hermes

Setelah layanan berjalan, buka Zeabur Dashboard → Layanan → terminal Exec. Hermes mendukung banyak penyedia — pilih satu untuk memulai. Dua jalur paling umum ada di bawah ini.

Opsi A: Nous Portal (paling sederhana)

runuser -u agent -- hermes auth add nous

Ikuti petunjuk untuk menyelesaikan OAuth melalui URL yang ditampilkan.

Opsi B: xAI Grok OAuth (direkomendasikan untuk penggunaan umum)

⚠️ Membutuhkan langganan berbayar SuperGrok aktif ($30/bulan). Autentikasi akan berhasil tanpa langganan, tetapi API secara diam-diam mengembalikan respons kosong — bot tampak berfungsi tetapi tidak pernah membalas.

OAuth xAI menggunakan redirect loopback ke 127.0.0.1:56121 di dalam container. Zeabur tidak meng-expose port tersebut, jadi gunakan trik dua terminal:

Terminal 1 — mulai auth listener:

runuser -u agent -- hermes auth add xai-oauth --no-browser

Ini mencetak URL otorisasi yang berisi &state=XXXXX dan menunggu di http://127.0.0.1:56121/callback.

Di browser Anda — buka URL otorisasi tersebut → setujui. Browser akan mengarahkan ke http://127.0.0.1:56121/callback?code=... dan gagal ("Could not establish connection"). Salin nilai code dari bilah URL.

Terminal 2 — buka sesi Exec lain dan kirim callback secara lokal:

runuser -u agent -- curl "http://127.0.0.1:56121/callback?code=<CODE>&state=<STATE>"

Terminal 1 seharusnya mencetak Added xai-oauth OAuth credential #1. code kedaluwarsa dalam hitungan detik — jika Anda melihat invalid_grant, jalankan ulang hermes auth add xai-oauth dan coba lagi.

Setelah autentikasi: pilih model default

Bisa menggunakan picker interaktif:

runuser -u agent -- hermes model

…atau set provider dan model sebagai dua key terpisah (ini yang dibutuhkan hermes-acp — singkatan gabungan provider/model yang ditampilkan pada contoh hermes config set adalah untuk CLI standalone dan tidak dibaca oleh openab):

runuser -u agent -- hermes config set provider xai-oauth
runuser -u agent -- hermes config set model grok-4-latest

Pilihan Anda disimpan di /home/agent dan bertahan setelah restart. Sesi Discord baru akan otomatis menggunakan model baru — tidak perlu restart.

Untuk penyedia lain (Anthropic, OpenAI, dll.) lihat dokumentasi Hermes Agent.

Pengaturan Slack (Opsional)

OpenAB mendukung Slack melalui Socket Mode — tidak perlu URL publik.

  1. Buka https://api.slack.com/appsCreate New AppFrom scratch
  2. Socket Mode → Aktifkan → buat App-Level Token dengan scope connections:write → salin token xapp-... (SLACK_APP_TOKEN)
  3. Event Subscriptions → Aktifkan → tambahkan bot events: app_mention, message.channels, message.groups
  4. OAuth & Permissions → Bot Token Scopes → tambahkan: app_mentions:read, chat:write, channels:history, groups:history, channels:read, groups:read, reactions:write, files:read, users:read
  5. Install App → Install ke workspace → salin token xoxb-... (SLACK_BOT_TOKEN)
  6. Di setiap channel Slack yang ingin menggunakan bot, jalankan /invite @YourAppName

Isi SLACK_BOT_TOKEN dan SLACK_APP_TOKEN sebelum deploy. Discord dan Slack dapat berjalan bersamaan.

Tambahkan Platform Pesan (Telegram / LINE / Feishu / Google Chat / MS Teams / WeCom)

Untuk menjembatani Telegram, LINE, Feishu/Lark, Google Chat, MS Teams, atau WeCom, deploy template OpenAB Gateway di proyek Zeabur yang sama. Kemudian tambahkan variabel lingkungan berikut ke layanan ini:

  • GATEWAY_URL = ws://openab-gateway:8080/ws
  • GATEWAY_PLATFORM = salah satu dari telegram, line, feishu, googlechat, teams, wecom

Restart layanan. Skrip startup otomatis menyuntikkan blok [gateway] ke config.toml.

Penggunaan

  • @mention bot di channel Discord atau Slack yang diizinkan untuk memulai percakapan
  • OpenAB membuat thread untuk percakapan multi-giliran — tidak perlu @mention untuk pesan selanjutnya
  • Setiap thread dipetakan ke sesi Hermes yang persisten (TTL 24 jam secara default)

Kustomisasi

FileDeskripsi
/home/agent/.config/openab/config.tomlKonfigurasi OpenAB (sessions, reactions, STT, dll.)
/home/agent/.config/hermes/Kredensial Hermes dan konfigurasi penyedia (dikelola oleh hermes auth / hermes model)

config.toml dibuat dari template bawaan saat boot pertama. Setelah itu, edit file secara langsung — variabel lingkungan hanya digunakan untuk pengaturan awal. Untuk mengembalikan ke default, hapus dan restart: rm /home/agent/.config/openab/config.toml

Untuk opsi konfigurasi OpenAB, lihat dokumentasi OpenAB. Untuk opsi penyedia Hermes, lihat dokumentasi Hermes.

Menonaktifkan

Kosongkan Discord Bot Token dan SLACK_BOT_TOKEN saat deploy. Layanan akan tidur tanpa crash.

Tautan