API 參考

驗證機制

租戶、終端使用者與代理模式(proxy mode)三種 API 存取方式各自使用的標頭。

憑證種類

方式標頭代表身分
租戶 API 金鑰X-API-Key: tk_…(或 Authorization: Bearer tk_…你的租戶
代理模式終端使用者X-API-Key: tk_… + X-End-User: <your-user-id>由你的後端聲明的特定終端使用者
平台終端使用者Authorization: Bearer <jwt>透過 /auth/login 或 OAuth 登入的終端使用者

另有選用的 X-Space-Id 標頭可指定特定空間;不帶這個標頭時,會使用該使用者的預設空間。

不論用哪一種方式,最後都會解析成一個主體(租戶 · 使用者 · 空間),資料庫工作階段也會以 Postgres 的資料列層級安全性限縮在該身分上。也就是說,隔離是在 API 之下強制執行的,不是靠應用程式邏輯。

我該用哪一種

  • 伺服器對伺服器整合(由你的產品驅動對話):用代理模式。金鑰留在你的後端,每次請求由後端聲明終端使用者身分,使用者永遠看不到金鑰。
  • 使用者直接登入平台的自有前端應用:用終端使用者 JWT
  • 管理性自動化(管理文件、代理、用量):直接用租戶金鑰呼叫管理端點。

租戶 API 金鑰是伺服器端的機密,絕對不要放進瀏覽器程式碼或行動應用裡。瀏覽器情境請改用可嵌入的小工具,它是以 share token 進行驗證的。

代理模式範例

curl https://chat.agent4.io/chat \
  -H "X-API-Key: tk_live_…" \
  -H "X-End-User: crm-user-8841" \
  -H "Content-Type: application/json" \
  -d '{ "message": "What documents do I need for a refinance?" }'

終端使用者 id 可以是你系統裡任何一個穩定的識別碼。平台第一次看到它時就會建立該使用者與其預設空間,並把所有紀錄、記憶與文件都限縮在他名下。

錯誤

狀態碼意義
401憑證缺漏或無效
403身分有效,但沒有該空間或代理的存取權
429當月 token 額度已用盡