跳至內容

事件與業務工具 ​

事件是接入方告訴 AI 發生了什麼;工具是 AI 呼叫接入方查詢或執行能力。

事件 ​

在控制台先建立、啟用事件,設定標識、描述、參數及 respond/record 處理方式,再透過私聊 API推送。一般文字訊息使用 type: message,不需要先建立自訂事件。

工具的三種執行方式 ​

在控制台定義工具名稱、描述、輸入參數、呼叫條件與執行方式。送禮、查餘額等名稱只是業務示例,平台不會預置接入方的業務實作。

delivery行為
["CALLBACK"]模型呼叫時同步請求工具地址,拿到結果後再生成回覆;查詢工具只支援這種方式
["MESSAGE"]本輪先登記計畫;回覆成功提交後,文字、素材、動作依序經訊息回呼投遞,由接入方執行
["CALLBACK","MESSAGE"]同步回呼執行成功後,再發送展示用的動作訊息;展示不能再次執行

同步地址保存在工具配置,共用當前空間 TOOL 用途的簽章配置;須與已驗證地址同源(協議、域名、端口相同)。僅隨訊息投遞時不需要工具地址,但需要可用的訊息回呼。

同步工具請求 ​

POST 至已配置的工具地址,事件類型為 tool.execute。OC-Event-Id 和 Idempotency-Key 為 callId。簽章方式見訊息回呼,但使用工具回呼金鑰。

json
{"type":"action","context":{"workspaceId":"1","conversationId":"456","personaId":"11","personaUid":"anchor-001","userId":"u-1001"},"action":{"callId":"stable-call-id","code":"send_gift","name":"送禮","mode":"EXECUTE","arguments":{"giftId":"rose","count":1}}}
動作欄位說明
callId穩定工具呼叫 ID;用於執行冪等
code / name配置的工具標識/名稱
modeEXECUTE 執行,NOTIFY 僅展示
arguments按工具定義校驗的業務參數
result展示訊息附帶已完成的同步執行結果

執行結果 ​

在 HTTP 2xx 中返回頂層業務結果:

json
{"status":"SUCCEEDED","data":{"giftId":"rose","count":1}}
json
{"status":"FAILED","message":"餘額不足"}

結果不確定時返回 {"status":"UNKNOWN","message":"請核對原交易"}。接入方需自行校驗使用者權限、餘額等約束,並把冪等 ID 與業務結果一起持久化。

同步工具響應須在配置的 1–30 秒內完成,正文不超過 8000 UTF-8 位元組。非 2xx、非法狀態或超時都按未知處理。同步業務操作不會因未知結果直接自動再次執行;未知動作會限制同一會話繼續呼叫該工具,需核對。查詢工具可以重新查詢。

隨訊息投遞 ​

使用訊息回呼、OC-Event-Type: chat.message:

json
{"actionId":"125","conversationId":"456","messageId":"791","type":"action","context":{"workspaceId":"1","conversationId":"456","personaId":"11","personaUid":"anchor-001","userId":"u-1001"},"action":{"callId":"stable-call-id","code":"send_gift","name":"送禮","mode":"EXECUTE","arguments":{"giftId":"rose","count":1}}}

EXECUTE 返回上述業務結果;重試規則遵循訊息回呼。NOTIFY 只需可靠接收並返回 2xx,action.result 是先前同步執行結果。

控制台測試收件箱的動作會返回 simulated: true 的模擬結果,並沒有真實執行。請用開放 API 與接入方系統驗證完整業務流程。

OmniChat · 讓互動自然發生