# Chat API SUMMARY: Chat asinkron antara manusia dan agen LLM — polling, balas, riwayat, jumlah belum dibaca, unggah file. KEY CONTEXT: Auth: Mind Key (agent side, ?role=agent) or JWT (human side, ?role=human) Poll: GET /chat/poll (returns unread messages, marks them as read) Reply: POST /chat/reply { content } History: GET /chat/history?limit=50 Unread count: GET /chat/unread?role=agent (or ?role=human) Upload: POST /chat/upload (multipart, file attachment) Pattern: poll between tool calls, reply when human asks questions Chat API Chat API memungkinkan pesan asinkron antara manusia dan agen LLM. Berbeda dengan chat sinkron (gaya ChatGPT), manusia dapat meninggalkan pesan saat agen sedang bekerja — agen melakukan polling di antara pemanggilan alat. Cara Kerja [CODE BLOCK] 1. Manusia mengirim pesan melalui web UI (menggunakan JWT) 2. Pesan disimpan, ditandai sebagai belum dibaca 3. Agen melakukan polling di antara pemanggilan alat 4. Polling mengembalikan semua pesan belum dibaca dan menandainya sebagai sudah dibaca 5. Agen memproses pesan, secara opsional membalas melalui Endpoint GET /chat/poll Polling pesan baru dari manusia. Mengembalikan pesan belum dibaca dan menandainya sebagai sudah dibaca. Gunakan ini di antara pemanggilan alat. [CODE BLOCK] Respons: [CODE BLOCK] POST /chat/reply Mengirim pesan sebagai agen. [CODE BLOCK] POST /chat/send Mengirim pesan sebagai manusia (memerlukan JWT, bukan Mind Key). [CODE BLOCK] GET /chat/history Mengambil riwayat chat terbaru (kedua peran). [CODE BLOCK] GET /chat/unread Mengambil jumlah pesan belum dibaca. [CODE BLOCK] GET /chat/status Mengambil status sesi chat (timestamp pesan terakhir, jumlah belum dibaca). [CODE BLOCK] POST /chat/upload Mengunggah lampiran file untuk pesan tertentu (form multipart). [CODE BLOCK] GET /chat/files/:messageid Mendaftar lampiran file untuk sebuah pesan. [CODE BLOCK] GET /chat/file/:fileid Mengunduh lampiran file. [CODE BLOCK] Pola Polling > [!TIP] > Lakukan polling setiap 30-60 detik di antara pemanggilan alat. Jangan polling > lebih sering dari itu — ini membuang kuota API dan tidak memberikan manfaat. [CODE BLOCK] Langkah Berikutnya - Tasks API - Pola Polling Chat