以下範例使用 DataGen Cloud(
https://api.datagen.dev)。自架安裝請把主機換成自己的
伺服器 — 例如
http://10.0.0.42:3001/api/agents/invoice-agent/v1/messages — 其餘完全相同。
詳見 Base URL。請求內容
其他 Anthropic 欄位(
max_tokens、temperature、tools 等)會被接受但忽略。
metadata
內部旗標
內部旗標
metadata.builder 會在 Agent builder 的工作樹中執行(僅限以儲存空間為來源的
Agent,需要 Admin 或 Builder 權限);metadata.test 會把新對話標記為隱藏的測試
執行。兩者是 DataGen 網頁介面在使用的,並非提供給外部整合。寫入連結的 repository
使用 API key 呼叫時預設為唯讀。 以 repo 為來源的 Agent 會 clone 並讀取 repo, 但除非你明確要求,否則不會寫回。 若要讓某一回合可以提交它的成果:附件
data: 前綴。檔名會被正規化為安全的檔名並自動去重複。格式錯誤
的項目、以及超出上限的部分會被靜默捨棄,因此若「缺少檔案」對你而言屬於重大問題,請在
用戶端先行驗證。附件永遠不會被提交到連結的 repository。
回應
200 OK、Content-Type: text/event-stream,並帶有 X-Conversation-Id 回應
header — 若你沒有自訂 id,請記得把它保存下來。
text、thinking(其後會跟著 signature_delta),以及在開啟
stream_tool_calls 時的 tool_use(伴隨 input_json_delta)與 tool_result
(帶有 tool_use_id、content、is_error)。tool_result 區塊是 DataGen 的擴充,
一般 Anthropic 客戶端會忽略它。
顆粒度。 區塊是整塊送達,而非逐 token:每個區塊是
content_block_start + 一次完整的 content_block_delta + content_block_stop。
index 是這一回合的遞增計數。
結束方式。 串流在 message_stop 結束 — 沒有 data: [DONE] 結尾標記。
用量。 message_delta.usage 包含 input_tokens、output_tokens、
cache_read_input_tokens、cache_creation_input_tokens,以及 DataGen 專屬的
total_cost_usd(該回合的美元成本)。
範例
之所以需要
extra_body(Python)與型別轉換(TypeScript),是因為 SDK 把
metadata 定義成 Anthropic 的 {user_id} 物件。這個欄位會原封不動傳給 DataGen。不使用 SDK 讀取串流
以模型字串指定 Agent
如果你偏好用模型字串而不是 URL 路徑來選擇 Agent:"model": "datagen-agent--data-agent"(或直接用 Agent 名稱)。當用戶端只能
設定一個 base URL、而透過模型選單切換 Agent 時特別有用。其餘行為完全相同。