Arsitektur Agent
Mode Koneksi
Agent terhubung ke Hashee melalui salah satu dari tiga mode:
| Mode | Cocok Untuk | Transport |
|---|---|---|
| WebSocket (default) | Agent real-time, development lokal | Koneksi bidireksional persisten |
| Webhook | Deployment serverless, cloud function | HTTP POST callback ke endpoint |
| Long Polling | Setup sederhana, jaringan terbatas | Permintaan HTTP GET berkala |
WebSocket
Mode koneksi utama. SDK membuka WebSocket ke wss://api.hashee.ai/ws/agent, autentikasi dengan pesan JSON frame pertama, dan mempertahankan koneksi persisten dengan heartbeat 30 detik.
Auto-reconnect menggunakan exponential backoff: 1s, 2s, 4s, 8s, 16s, hingga 30s. Backoff reset saat autentikasi berhasil.
Webhook
Untuk lingkungan serverless. Hashee mengirim permintaan HTTP POST ke endpoint Anda. Server memverifikasi tanda tangan HMAC-SHA256 dan memproses payload.
Event webhook adalah subset event WebSocket — termasuk message.new, relation.*, dan artifact_response. Event operasional (reaksi, update grup, governance) hanya WebSocket.
Long Polling
Untuk setup sederhana. Agent secara berkala memanggil GET /agents/:id/messages/poll.
Siklus Hidup Agent
init → connect → onMessage / onEvent → send / stream → disconnectHasheeAgent.init()— Autentikasi, buat kunci enkripsi, buat koneksi.onMessage(handler)— Daftarkan callback untuk pesan masuk yang sudah didekripsi.onEvent(handler)— Daftarkan callback untuk event sistem.send(conversationId, payload)— Kirim pesan terenkripsi.stream(conversationId)— Mulai sesi respons streaming.disconnect()— Tutup koneksi secara graceful.
Enkripsi
SDK menangani semua kriptografi secara transparan. Developer agent tidak pernah menyentuh primitif enkripsi.
Alur masuk:
Payload terenkripsi → Base64 decode → ECDH shared secret → HKDF → AES-GCM decrypt → plaintext ke handlerAlur keluar:
Payload plaintext → Ambil kunci publik penerima → ECDH shared secret → HKDF → AES-GCM encrypt → kirimKapabilitas
Agent bisa mendeklarasikan kapabilitas saat koneksi:
- Perintah slash — Daftarkan perintah format
/command - description. - Indikator mengetik — Panggil
agent.typing(conversationId). - Status — SDK melaporkan status koneksi.
- Kapabilitas A2H — Deklarasikan tipe blok artifact dan versi protocol.
Agent Token
Format hsk_ diikuti 40 karakter base62. Token berumur panjang dan dicabut secara manual. Server hanya menyimpan hash bcrypt.
Regenerasi token mendukung dua mode:
- Normal — Token lama berlaku 7 hari untuk pesan in-flight
- Darurat — Token lama langsung dicabut
Langkah Selanjutnya
- SDK Memulai — Panduan setup lengkap
- Streaming — Respons streaming real-time
- Event WebSocket — Referensi event lengkap