Referensi untuk objek Session dan Event yang dikembalikan oleh Forward Session API.
Objek Session
Endpoint Create, Get, List, Update, dan Archive Session semuanya mengembalikan objek ini.
{
"id": "sess_xxx",
"type": "session",
"identity_id": "idn_xxx",
"template": {
"id": "tmpl_support",
"type": "template",
"name": "Customer support assistant",
"model": "ultimate",
"version": 3
},
"source_type": "api",
"status": "idle",
"title": "Customer support conversation",
"incremental_streaming_enabled": true,
"metadata": {
"source": "web",
"biz_id": "ticket_123"
},
"config": {
"environment_variables": {
"API_KEY": "sk-xxx"
}
},
"stats": {
"active_seconds": 30,
"duration_seconds": 3600
},
"usage": {
"credits": 12.5
},
"archived_at": null,
"created_at": "2026-06-22T10:00:00Z",
"updated_at": "2026-06-22T11:00:00Z"
}
|
Field |
Type |
Selalu dikembalikan |
Deskripsi |
|
|
string |
Ya |
ID Session dengan awalan |
|
|
string |
Ya |
Selalu |
|
|
string |
Ya |
ID Forward Identity yang mengidentifikasi end user pemilik Session ini. |
|
|
object |
Ya |
Rangkuman Forward Template. Lihat tabel rangkuman Template di bawah. |
|
|
string |
Ya |
Sumber Session: |
|
|
string |
Ya |
Status waktu proses Session: |
|
|
string |
Ya |
Judul Session. |
|
|
boolean |
Ya |
Apakah event streaming inkremental diaktifkan untuk Session ini. Nilai default-nya adalah |
|
|
object |
Tidak |
Metadata bisnis yang ditentukan oleh pemanggil. |
|
|
object |
Tidak |
Konfigurasi Session. Diabaikan jika tidak ada konfigurasi yang diberikan. |
|
|
object |
Tidak |
Variabel lingkungan tingkat Session dalam bentuk pasangan kunci-nilai. |
|
|
object |
Tidak |
Statistik penggunaan Session. Lihat tabel statistik Session di bawah. |
|
|
object |
Tidak |
Informasi penggunaan. Dapat diabaikan jika modul penagihan tidak diaktifkan. |
|
|
number |
Tidak |
Kredit yang dikonsumsi. |
|
|
string | null |
Ya |
Timestamp arsip. |
|
|
string |
Ya |
Waktu pembuatan dalam format RFC 3339. |
|
|
string |
Ya |
Waktu pembaruan terakhir dalam format RFC 3339. |
Rangkuman Template
|
Field |
Type |
Selalu dikembalikan |
Deskripsi |
|
|
string |
Ya |
ID Forward Template. |
|
|
string |
Ya |
Selalu |
|
|
string |
Ya |
Nama Template. |
|
|
string |
Ya |
Tier model atau identifikasi model yang digunakan oleh Template. |
|
|
integer |
Ya |
Nomor versi Template. |
Statistik Session
|
Field |
Type |
Selalu dikembalikan |
Deskripsi |
|
|
integer |
Tidak |
Waktu pemrosesan aktif dalam detik. Biasanya bernilai |
|
|
integer |
Tidak |
Durasi total Session dalam detik. Biasanya bernilai |
Objek Event
Event yang dikembalikan oleh API berupa objek JSON dengan muatan yang bervariasi tergantung pada type. Setiap event memiliki kumpulan field umum yang sama, ditambah field muatan spesifik tipe.
{
"id": "evt_xxx",
"type": "agent.message",
"session_id": "sess_xxx",
"content": [
{
"type": "text",
"text": "Here is the analysis result."
}
],
"processed_at": "2026-06-22T11:00:03Z"
}
|
Field |
Type |
Selalu dikembalikan |
Deskripsi |
|
|
string |
Ya |
ID Event dengan awalan |
|
|
string |
Ya |
Tipe event. |
|
|
string |
Ya |
ID Session tempat event ini berasal. |
|
|
string |
Tidak |
Waktu event diproses, dalam format RFC 3339. Dapat tidak tersedia pada event tertentu yang dihasilkan agen atau event inkremental. |
Field muatan yang diizinkan untuk setiap tipe event tercantum di bawah. Field umum id, type, session_id, dan processed_at tidak diulang dalam tabel ini.
|
Jenis peristiwa |
Field yang diizinkan |
|
|
|
|
|
Tidak ada |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Tidak ada |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Tidak ada |
|
|
|
|
|
Tidak ada |
|
|
|
|
|
|
Tipe event yang dapat ditulis klien
POST /api/v1/forward/sessions/{session_id}/events hanya menerima tipe event berikut.
|
Tipe |
Field wajib |
Deskripsi |
|
|
|
Pesan pengguna. |
|
|
Tidak ada |
Meminta agar giliran saat ini diinterupsi. |
|
|
|
Konfirmasi pemanggilan tool. |
|
|
|
Mengembalikan hasil tool bawaan. |
|
|
|
Mengembalikan hasil tool kustom yang ditentukan klien. |
|
|
|
Menentukan hasil yang diinginkan beserta rubrik evaluasinya. |
system.message merupakan tipe event publik tetapi tidak diterima sebagai event yang dapat ditulis oleh klien Forward.
Tipe event publik
Saat Anda mengambil riwayat event atau berlangganan aliran SSE, Anda mungkin menerima salah satu tipe event publik berikut:
user.message, user.interrupt, user.tool_confirmation, user.tool_result, user.custom_tool_result, user.define_outcome, system.message, agent.message, agent.thinking, agent.message_start, agent.content_block_start, agent.content_block_delta, agent.content_block_stop, agent.message_delta, agent.message_stop, agent.tool_use, agent.tool_result, agent.custom_tool_use, agent.mcp_tool_use, agent.mcp_tool_result, agent.artifact_delivered, session.status_running, session.status_idle, session.status_terminated, session.error, dan session.updated.
Event streaming inkremental
Eksposur event streaming inkremental dikendalikan oleh field incremental_streaming_enabled yang ditetapkan saat pembuatan Session, bukan oleh parameter permintaan pada kueri riwayat atau langganan SSE:
-
true: Aliran event mengembalikan output asisten parsial sebelumagent.messagefinal. Kueri riwayat mengembalikan event inkremental yang sama. -
falseatau diabaikan: Mode standar. Hanya event publik lengkap yang dikembalikan; tidak ada event inkremental yang dikirimkan.
Saat streaming inkremental diaktifkan, agent.message final lengkap tetap dikembalikan. Klien dapat menggunakan event inkremental untuk rendering langsung dan mengandalkan agent.message final sebagai sumber kebenaran untuk persistensi dan rekonsiliasi tampilan.
Hanya enam tipe event tingkat atas berikut yang bersifat inkremental:
|
Jenis Peristiwa |
Field utama |
Deskripsi |
|
|
|
Menandai awal pesan asisten. |
|
|
|
Menandai awal blok konten, seperti teks, pemikiran, atau penggunaan tool. |
|
|
|
Mengirimkan fragmen inkremental untuk blok konten pada |
|
|
|
Menandai akhir blok konten pada |
|
|
|
Mengirimkan penambahan tingkat pesan seperti |
|
|
|
Menandai akhir pesan asisten. |
text_delta, thinking_delta, signature_delta, input_json_delta, dan tool_output_delta bukan tipe event tingkat atas. Mereka hanya muncul sebagai nilai dari agent.content_block_delta.delta.type.
|
|
Field |
Deskripsi |
|
|
|
Fragmen output teks. Klien dapat menggabungkan |
|
|
|
Fragmen output pemikiran model atau penyedia. |
|
|
|
Fragmen signature untuk blok pemikiran. Hanya dikirimkan jika signature tersedia. |
|
|
|
Fragmen dari input JSON alat. |
|
|
bervariasi |
Disediakan untuk streaming output tool di masa depan. Saat ini, |
Contoh agent.content_block_delta:
{
"id": "evt_delta_xxx",
"type": "agent.content_block_delta",
"session_id": "sess_xxx",
"message_id": "msg_xxx",
"index": 0,
"delta": {
"type": "text_delta",
"text": "Here"
},
"processed_at": "2026-06-22T11:00:01Z"
}
Aturan untuk menguraikan event inkremental:
-
Baik baris
event:SSE maupundata.typeJSON menggunakan tipe event publik. -
agent.content_block_delta.indexmembedakan antara beberapa blok konten. -
processed_atdapat tidak tersedia pada event inkremental. Klien harus menganggapnya sebagai opsional. -
Setelah gangguan jaringan, gunakan header
Last-Event-IDyang membawa ID Event terakhir yang diterima untuk melanjutkan. -
Mengatur
include_thinking=falseakan menyaringthinking_delta,signature_delta, dan semua event awal/akhir blok konten pemikiran yang dapat dikenali. -
Mengatur
include_tool_calls=falseakan menyaringinput_json_delta,tool_output_delta, dan semua event awal/akhir blok konten tool yang dapat dikenali.