Response
Response 是 Automation Tool 專用的輸出回應 processor。
push-messageResponse 與 Bot 工作流程的 Push Message 共用同一個型別代號 push-message。兩者由 Workflow 的類型區分:在 automation_tool 工作流程中它只接受 payload 一個設定,扮演的是把結果交回給呼叫端的角色;在 bot 工作流程中它才是對使用者發送訊息的 Push Message,設定為 message、template、flush、payload。
讀 CRD 看到 type: push-message 時,要先看這份 Workflow 的類型才知道對應哪一頁。
基本用法
執行 Response 時,會將工作流程中的資料按照設定的 Payload 格式進行處理並作為 Automation Tool 的最終輸出結果。
配置參數
Name
顯示在畫布上的名稱,用於在工作流程中識別此 processor。
Description
用於補充此 processor 的用途,提升工作流程的可讀性。
Properties
Payload(必填)
要輸出的結果資料,支援 Expression 設定類型。使用 JavaScript 表達式來處理和格式化工作流程中的變數。
在 Workflow CRD 中的設定
型別代號是 push-message,在 Automation Tool 工作流程中只接受 payload:
- name: proc-response
type: push-message
labels:
display_name: Response
configs:
- name: payload
expression: |-
(() => {
return {
result: "Navigation request sent to the user's UI."
};
})()
作為工具的終點時,relationships 通常寫成空陣列。
連接關係
Success
當成功產生輸出結果時,工作流程會從此連接點繼續執行。
Failure
當結果產生失敗時,工作流程會從此連接點繼續執行,並產生 prevError 變數儲存錯誤資訊。
使用範例
基本資料輸出
Response Payload 範例:
(() => {
return {
result: httpResponse.json,
status: 'success',
};
})()
回傳結果同時是給 Agent 的說明
Payload 的內容會直接交給呼叫這支工具的 Agent,所以它不只是資料,也是 Agent 判讀結果的依據。實務上會在 result 裡寫清楚這次動作到底做到哪一步,避免 Agent 過度宣稱:
(() => {
return {
result: "Navigation request sent to the user's UI. Whether it takes effect is decided by the client, which may reject an invalid path or filter. Do NOT tell the user that the page has changed; report only that the navigation request was sent. This is a UI-only action, not a user response."
};
})()
這是一支只負責送出 UI 導航事件的工具。動作是否生效由前端決定,所以 payload 明確要求 Agent 只回報「請求已送出」,不要說成頁面已經切換。
注意事項
- 只有
automation_tool型別的工作流程有這個節點。同一個 CRD 型別代號push-message在 bot 工作流程裡是 Push Message,設定項完全不同。 - Payload 的 Expression 必須回傳合法的 JavaScript 物件或值。