獲取單個會話的完整歷史
返回會話元數據、按時間排序的消息以及尚未回答的問題。
GET /v1/sessions/:id
這是主要的歷史讀取接口:返回會話元數據、按時間順序持久化的全部消息,以及會話中仍處於打開狀態的交互隊列問題。客戶端先據此渲染歷史;若 is_streaming 為 true,再訂閱以該會話 ID 為鍵的 WebSocket chat 頻道以跟隨實時輪次。
| 方法 | GET |
| 路徑 | /v1/sessions/:id |
| 認證 | 設置 GATEWAY_AUTH_TOKEN 時需要 Authorization: Bearer <token> |
| 類別 | sessions |
響應體
{ "id": "chat_abc", "title": "BTC analysis", "origin": "web", "kind": "chat", "created_at_ms": 1747000000000, "updated_at_ms": 1747000500000, "message_count": 2, "has_unseen_completion": true, "completion_settled_at_ms": 1747000500000, "messages": [ { "id": 1, "role": "user", "content": "analyze BTC", "ts_ms": 1747000000000, "metadata": null }, { "id": 2, "role": "assistant", "content": "…", "ts_ms": 1747000400000, "metadata": { "segments": [ { "kind": "text", "text": "…" }, { "kind": "tool", "toolId": "call_1" } ], "toolCalls": [ { "id": "call_1", "name": "get_quote", "args": { "symbol": "BTC" }, "ok": true, "result": "…", "duration_ms": 812 } ] } } ], "is_streaming": false, "pending_questions": [] }說明
metadata 的結構取決於消息角色。Assistant 行包含有序渲染計劃 segments、按 toolId 引用的 toolCalls,並可在輪次提前停止時包含 interrupted: true。User 行可包含 attachments、用於輪次中途引導的 interjection: true 以及語音輸入鍵。舊消息可能為 metadata: null,此時將 content 按普通 Markdown 渲染。pending_questions 與 pending_question_added 流事件結構一致,可通過 POST /v1/interactions/:id/answer 回答。未知 ID 返回 404。
響應還包含 has_unseen_completion,表示最新完成或失敗的 Agent 任務結果尚未查看。completion_settled_at_ms 標識該狀態對應的完成結果,防止舊讀取恢復已確認的結果。