logo
icon

OpenAB Gemini

Open Agent Broker — harness Rust yang ringan untuk menjembatani Discord ke CLI coding yang kompatibel dengan ACP (Claude Code, Codex, Gemini, Kiro, Cursor) melalui stdio JSON-RPC. Template ini men-deploy varian Gemini. Sumber: https://github.com/openabdev/openab

template cover
Dideploy24 kali
PenerbitzeaburZeabur
Dibuat2026-04-20
Minimum2 Core4 GB
Direkomendasikan4 Core8 GB
Tag
AIDeveloper ToolsDiscord

OpenAB Gemini

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

Template ini men-deploy varian Gemini (openab-gemini) yang menggunakan gemini --acp sebagai backend agen.

Catatan Penting

  • Tag image: Template ini menggunakan versi yang dipin (0.8.3-beta.4). Untuk upgrade, ubah tag image di Zeabur Dashboard -> Layanan -> Pengaturan. Tag yang tersedia: GitHub Packages.
  • Penyimpanan persisten: /home/node di-mount sebagai volume persisten. Plugin, pengaturan, config, dan kredensial dipertahankan antar restart.
  • Izin file: Container dimulai sebagai root dan beralih ke pengguna node (uid 1000) sebelum menjalankan openab. Jika mengalami masalah izin, restart layanan -- izin diperbaiki secara otomatis saat boot.

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. Autentikasi

Tercepat: isi variabel template GEMINI_API_KEY saat deploy, langsung selesai.

Cara lain: setelah deploy, buka Zeabur Dashboard → Layanan → Exec dan jalankan:

runuser -u node -- gemini

Ikuti petunjuk di layar untuk memilih dan menyelesaikan metode autentikasi. Kredensial tersimpan di volume persisten dan otomatis dipakai oleh percakapan baru — tanpa restart.

Menyambungkan API key ke agent: openab menjalankan agent dengan env_clear(), jadi jalur GEMINI_API_KEY memerlukan env allowlist. Setelah boot pertama, edit /home/node/.config/openab/config.toml dan tambahkan di bawah [agent]:

[agent]
inherit_env = ["GEMINI_API_KEY", "GOOGLE_API_KEY", "GOOGLE_GENERATIVE_AI_API_KEY"]

Login interaktif tidak perlu diedit — kredensial ada di ~/.gemini/.

3. 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

4. Deploy

Isi variabel template dan klik deploy. Layanan akan terhubung ke Discord secara otomatis.

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

Untuk menjembatani Telegram, LINE, Feishu/Lark, Google Chat, atau MS Teams, 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

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

Penggunaan

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

Kustomisasi

FileDeskripsi
/home/node/.config/openab/config.tomlKonfigurasi OpenAB (sessions, reactions, STT, dll.)

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/node/.config/openab/config.toml

Untuk opsi konfigurasi, lihat dokumentasi OpenAB.

Webhook / Integrasi Bot

Secara default, openab mengabaikan pesan dari bot dan webhook lain. Untuk mengizinkan pesan yang dipicu webhook (misalnya pengujian otomatis atau pipeline CI), tambahkan berikut ke config.toml:

[discord]
allow_bot_messages = "mentions"

Dengan pengaturan ini, openab merespons pesan bot atau webhook apa pun yang @mention-nya. Untuk membatasi ke webhook tertentu, tambahkan juga:

trusted_bot_ids = ["YOUR_WEBHOOK_USER_ID"]

ID pengguna webhook adalah ID numerik dalam URL webhook: https://discord.com/api/webhooks/<ID>/...

Menonaktifkan

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

Tautan