全部產品
Search
文件中心

:CreateChat

更新時間:Oct 30, 2026

與指定的 DataAgent 發起一次會話,並以事件流的方式即時接收 Agent 的回覆、執行過程與產物。同一會話執行緒內的多輪問答共享上下文,可用於在已有對話中追加提問、重新連接尚未結束的串流輸出,或終止正在產生的回覆。

介面說明

使用前提

  • 需先建立 DataAgent,並透過 CreateThread 取得會話執行緒 ID。

串流回傳

  • 本介面為串流介面,回應的 Content-Type 為 text/event-stream。狀態碼 200 之後事件會持續推送,直到收到 type 為 stream_done 的事件。

  • 每個事件的 data 欄位都是一條獨立的 JSON 文件,而不是整段回覆的替換,請按到達順序處理:文字回覆以增量片段給出,工具與子 Agent 的執行過程以獨立的訊息事件給出。

出錯的兩種型態

  • 若在首個事件到達之前出錯,回傳的是一般 JSON 錯誤回應,並帶有對應的 HTTP 狀態碼。

  • 若已在串流輸出過程中出錯,則會收到一個事件名為 error 的事件,其 data 中帶有 error 欄位,此時 HTTP 狀態碼仍為 200。用戶端需要同時處理這兩種情況。

action 的三種用法

  • create(預設):攜帶 messages 發起新一輪對話。

  • reconnect:不攜帶 messages,重新連線本執行緒尚未結束的對話,繼續接收輸出。

  • stop:終止正在產生的回覆。

需要您補充輸入的情況

  • 當 Agent 需要您確認或補充資訊時,會推送 type 為 interactive 的事件;請在用戶端完成互動後,攜帶互動結果以 action 為 create 的請求繼續會話。

調試

您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。

調試

授權資訊

當前API暫無授權資訊透出。

請求文法

POST /chat HTTP/1.1

請求參數

名稱

類型

必填

描述

樣本值

body

object

是

請求主體,JSON 格式。

action

string

否

本次請求的動作類型。取值:

  • create(預設):發起新一輪對話。

  • reconnect:重新連接到當前執行緒尚未結束的對話,繼續接收輸出。

  • stop:終止正在產生的回覆。

create

messages

array<object>

否

本次請求攜帶的訊息列表。發起新對話時通常傳入一條 role 為 user 的訊息;action 為 reconnect 或 stop 時可以不傳。

array<object>

否

一條訊息。

contents

array<object>

否

訊息內容列表,支援一條訊息攜帶多段內容。

object

否

一段內容。

type

string

否

內容類型。文字內容填 text。

text

value

string

否

內容值。當 type 為 text 時,為傳送給 Agent 的問題文字。

統計最近 1 小時 nginx-access-log 中請求量最高的 10 個 URL

messageId

string

否

訊息 ID,由呼叫方產生,用於標識本次請求中的這條訊息。

msg-0001

role

string

否

訊息的傳送方。使用者提問填 user。

user

tools

array<object>

否

工具互動結果列表。當 Agent 透過 interactive 事件要求您在用戶端確認或補充輸入時,在下一次請求中回填對應的互動結果。

object

否

一次工具呼叫的互動結果,欄位由對應的工具約定。

any

否

互動結果明細,常見欄位為 type(互動類型,例如 confirm、user_input)、result(互動結果)、content(補充說明)。

confirm

name

string

是

DataAgent 的名稱,指定本次會話對話的 Agent。必須是當前帳號下已建立、且您有權限存取的 Agent。

my-agent

threadId

string

是

會話執行緒 ID,標識一次連續的對話上下文,同一執行緒內的多輪問答共享上下文。需先呼叫 CreateThread 取得。

thread-tiirv9-irwdoal8t4rm

variables

object

否

會話變數,鍵值對形式,用於向 Agent 傳入本次會話的上下文參數,例如工作空間(workspace)、地域(region)、Project、語言(language)、時區(timeZone)、起止時間(startTime、endTime)等。不需要的鍵可以省略。

any

否

變數值,類型由對應的鍵約定,可以是字串或數值。

cn-hangzhou

發起新一輪對話:

{
  "name": "my-agent",
  "threadId": "thread-tiirv9-irwdoal8t4rm",
  "action": "create",
  "messages": [
    {
      "role": "user",
      "contents": [
        { "type": "text", "value": "統計最近 1 小時 nginx-access-log 中請求量最高的 10 個 URL" }
      ]
    }
  ],
  "variables": {
    "region": "cn-hangzhou",
    "project": "nginx-demo",
    "language": "zh"
  }
}

終止正在產生的回覆(不需要 messages):

{
  "name": "my-agent",
  "threadId": "thread-tiirv9-irwdoal8t4rm",
  "action": "stop"
}

返回參數

名稱

類型

描述

樣本值

object

返回結果。本介面以 Server-Sent Events 串流(Content-Type: text/event-stream)返回,每個事件的 data 欄位都是下述結構的一個 JSON 文件,會在 Agent 產生回覆的過程中多次推送。

messages

array<object>

本次事件推送的訊息列表,通常只包含一條本次新增的訊息。

array<object>

一條訊息。

agents

array<object>

本條訊息中發起的子 Agent 呼叫列表,僅 role 為 assistant 時可能出現。

object

一次子 Agent 呼叫的資訊。

any

子 Agent 呼叫明細,常見欄位為 name(子 Agent 名稱)、arguments(本次呼叫的輸入參數)、status(執行狀態:start、progress、success、fail)。

search_data

artifacts

array<object>

本條訊息產出的產物(檔案)列表,僅 role 為 assistant 時可能出現。

object

一個產物。

any

產物明細,常見欄位為 name(產物名稱)、path(產物路徑)等。可透過 ListArtifacts、GetArtifact 等介面取得已產出的檔案。

report.md

callId

string

本次執行的呼叫標識。以該值為 parentCallId 的訊息即為它的下層訊息,可用於還原 Agent 的執行層級。

call_0fdabe9ba7c645a7a6cbf34f

contents

array<object>

本條訊息的內容列表。

object

一段內容。

any

內容明細。常見欄位為 type 與 value:type 為 text 時 value 是回覆文字片段;type 為 spin_text 時 value 是 Agent 的思考與執行過程提示;type 為 thread_title_updated 時 value 是更新後的會話標題;type 為 error 時 value 是包含 code 與 message 的錯誤資訊。串流輸出時還帶有 append(是否為增量片段)與 lastChunk(是否為最後一段)標記。

text

detail

string

本條訊息的補充說明,例如當前正在執行的動作描述。

正在分析查詢條件

events

array<object>

本條訊息攜帶的事件列表,用於表達會話狀態的變化。常見 type:thinking(思考中)、interactive(需要您補充輸入或確認)、task_finished(本次任務結束,payload 中帶有 success 與統計資訊)、stream_done(本次串流輸出結束)、error(執行出錯)、thread_title_updated(會話標題更新)。

object

一個事件。

any

事件明細,常見欄位為 type(事件類型)與 payload(事件資料,結構隨事件類型不同而不同)。

task_finished

parentCallId

string

父呼叫的標識,用於還原執行層級。取值為空字串時表示本次會話的根節點。

thread-t709p8-s24hgl7ug8jw

role

string

訊息的產生方。取值:assistant(Agent 的回覆或動作)、tool(工具執行結果)、user(使用者輸入)、system(系統訊息)。

assistant

seq

integer

訊息序號,在同一次會話中遞增,可用於同級訊息排序。建議同時參考 timestamp,不要強依賴該值。

1

timestamp

string

訊息產生時間,Unix 時間戳記,字串形式。

1765289000

tools

array<object>

本條訊息中 Agent 發起的工具呼叫列表,僅 role 為 assistant 時可能出現。

object

一次工具呼叫。

any

工具呼叫明細,常見欄位為 name(工具名稱)、arguments(輸入參數)、status(執行階段狀態:start、success、fail)、state(執行結果:success、fail)、contents(工具輸出內容)。

get_current_time

type

string

訊息類型。常規回覆訊息可以沒有該欄位;當整條訊息用於表達狀態時會出現,例如 done 表示會話結束、error 表示錯誤訊息。

done

version

string

訊息結構版本號,當前為 v0.1.0。

v0.1.0

traceId

string

本次會話的鏈路追蹤 ID,用於在問題排查時定位本次呼叫。

88b50db22437400fa9c16c5399722310

回應按事件推送,每個事件由 event、id 與 data 組成,data 是一條完整的 JSON 文件:

event: message
id: 1
data: {"messages":[{"parentCallId":"","callId":"thread-t709p8-s24hgl7ug8jw","role":"assistant","seq":4,"timestamp":"1765289004","contents":[{"type":"text","value":"正在分析……","append":true}]}],"traceId":"88b50db22437400fa9c16c5399722310"}

把同一條訊息中 type 為 text 的 value 按到達順序拼接,即為完整的回覆文字;type 為 spin_text 的內容是 Agent 的思考與執行過程提示,可不作為正文展示。任務結束時依序收到 type 為 task_finished(payload 中含 success)與 stream_done 的事件。

樣本

正常返回樣本

JSON格式

{
  "messages": [
    {
      "agents": [
        {
          "key": "search_data"
        }
      ],
      "artifacts": [
        {
          "key": "report.md"
        }
      ],
      "callId": "call_0fdabe9ba7c645a7a6cbf34f",
      "contents": [
        {
          "key": "text"
        }
      ],
      "detail": "正在分析查询条件",
      "events": [
        {
          "key": "task_finished"
        }
      ],
      "parentCallId": "thread-t709p8-s24hgl7ug8jw",
      "role": "assistant",
      "seq": 1,
      "timestamp": "1765289000",
      "tools": [
        {
          "key": "get_current_time"
        }
      ],
      "type": "done",
      "version": "v0.1.0"
    }
  ],
  "traceId": "88b50db22437400fa9c16c5399722310"
}

錯誤碼

訪問錯誤中心查看更多錯誤碼。

變更歷史

更多資訊,參考變更詳情。