EN Buka Smooth di Telegram

DocsSmooth Agent (self-host)

Channel chat

Ajak Smooth Agent-mu ngobrol dari Telegram, WhatsApp, Slack, Matrix, LINE, WeChat Work, dan Discord. Hanya kamu yang dijawab, setiap chat punya percakapannya sendiri.

ChannelArahCara terhubungYang dibutuhkan
Telegramdua arah, tombol izinlong-polling (tanpa port terbuka)token bot dari @BotFather
WhatsAppdua arahwebhook Meta Cloud APItoken, phone-number id, verify token
Slackdua arahwebhook Events API (bertanda tangan)bot token, signing secret
Matrixdua arahlong-polling /sync, homeserver apa sajaaccess token bot
LINEdua arahwebhook Messaging API (bertanda tangan)channel access token + secret
WeChat Workkirim sajawebhook group robotURL robot
Discordkirim sajawebhook channelURL webhook

Menyalakan channel

Pilih di wizard, atau sebut langsung:

bash
smooth-agent setup --channels telegram,slack
smooth-agent channels list                         # yang sudah dikonfigurasi
smooth-agent channels test telegram "halo"         # kirim pesan tes
smooth-agent daemon                                # jalankan channel + tugas terjadwal

Rahasia disimpan di ~/.smooth-agent/.env; config hanya menyebut nama variabelnya:

config.toml
[channels]
enabled = ["telegram"]
webhook_port = 8808          # untuk WhatsApp, Slack, dan LINE

[channels.telegram]
token_env = "TELEGRAM_BOT_TOKEN"
owners = ["123456789"]       # kirim pesan sekali ke bot: ia membalas dengan ID-mu
auto_approve = false         # true = jalankan tool tanpa tekan tombol
voice_replies = "auto"       # off | auto | always (butuh [tts] dan ffmpeg)

Perilakunya

  • Hanya pemilik. Siapa pun yang tidak ada di owners hanya mendapat balasan singkat "agent ini privat" beserta ID-nya.
  • Satu percakapan per chat, disimpan di smooth.db dan dilanjutkan setelah restart.
  • Satu pesan setiap kali. Giliran diproses berurutan, jadi penyedia model tidak dibanjiri permintaan paralel.
  • Progres langsung. Satu pesan menampilkan langkah-langkahnya ($ git pull, read app.py, search …) dan hilang saat jawaban datang.
  • Izin. Di Telegram ada tombol ✅ Allow / ❌ Deny. Di channel dua arah lain, balas yes atau no (bisa juga ya, oke, gas, gak, batal). Tidak dijawab berarti tidak.
  • File masuk, file keluar. Kirim foto, PDF, file Office, atau arsip; minta laporan dan ia mengirim balik .docx atau .xlsx sungguhan.
  • Suara. Pesan suara ditranskrip ([stt]); dengan voice_replies = "auto" pesan suara dibalas suara juga.

Perintah di chat

PerintahFungsinya
/newPercakapan baru (yang lama tetap tersimpan dan bisa dicari)
/statusModel, sesi, dan memori
/model <nama>Ganti model untuk chat ini
/stopHentikan yang sedang dikerjakan agent
/helpBantuan

Setup per channel

Telegram

  1. Buat bot lewat @BotFather dan salin token-nya ke .env sebagai TELEGRAM_BOT_TOKEN.
  2. Jalankan daemon, kirim pesan sekali ke bot-mu, lalu masukkan ID yang ia balas ke owners.

Tidak perlu port terbuka.

WhatsApp

Meta WhatsApp Cloud API. Arahkan webhook ke https://<host-mu>/webhook/whatsapp dengan verify_token yang kamu pilih.

config.toml
[channels.whatsapp]
token_env = "WHATSAPP_TOKEN"
phone_id = "123456789012345"
verify_token = "rahasia-pilihanmu"
owners = ["628123456789"]

Slack

Buat Slack app, aktifkan Event Subscriptions ke https://<host-mu>/webhook/slack (message.im), lalu install ke workspace-mu.

config.toml
[channels.slack]
token_env = "SLACK_BOT_TOKEN"              # xoxb-…
signing_secret_env = "SLACK_SIGNING_SECRET"
owners = ["U0123ABCD"]

Matrix

Bisa di homeserver apa saja. Undang bot ke sebuah room dan ia bergabung (hanya undangan dari owner).

config.toml
[channels.matrix]
homeserver = "https://matrix.org"
token_env = "MATRIX_TOKEN"
owners = ["@kamu:matrix.org"]

LINE

LINE Messaging API, webhook https://<host-mu>/webhook/line.

config.toml
[channels.line]
token_env = "LINE_CHANNEL_TOKEN"
secret_env = "LINE_CHANNEL_SECRET"
owners = ["U1234567890abcdef"]

WeChat Work dan Discord (alert)

Untuk mengirim hasil dan alert ke grup atau channel:

config.toml
[channels.wechat]
webhook_url_env = "WECHAT_ROBOT_URL"

[channels.discord]
webhook_url_env = "DISCORD_WEBHOOK_URL"

Terakhir diperbarui: