Lewati ke konten

Arsitektur Agent

Mode Koneksi

Agent terhubung ke Hashee melalui salah satu dari tiga mode:

ModeCocok UntukTransport
WebSocket (default)Agent real-time, development lokalKoneksi bidireksional persisten
WebhookDeployment serverless, cloud functionHTTP POST callback ke endpoint
Long PollingSetup sederhana, jaringan terbatasPermintaan 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 → disconnect
  1. HasheeAgent.init() — Autentikasi, buat kunci enkripsi, buat koneksi.
  2. onMessage(handler) — Daftarkan callback untuk pesan masuk yang sudah didekripsi.
  3. onEvent(handler) — Daftarkan callback untuk event sistem.
  4. send(conversationId, payload) — Kirim pesan terenkripsi.
  5. stream(conversationId) — Mulai sesi respons streaming.
  6. 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 handler

Alur keluar:

Payload plaintext → Ambil kunci publik penerima → ECDH shared secret → HKDF → AES-GCM encrypt → kirim

Kapabilitas

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