跳轉到
版本 v1.0.25

變數與資料引用概覽

工作流程 (Workflow) 是一連串接力的步驟。很多時候,後面的步驟需要用到前面步驟產生的東西——例如把使用者問的問題,交給 AI 回答。這一章要教你的,就是怎麼把資料從一個步驟「接」到下一個步驟

先用看診理解「步驟怎麼接力」

你應該有過看診的經驗,整個流程其實是一場接力:

  1. 掛號櫃台寫下你的基本資料和主訴。
  2. 護理師量了血壓、體溫,寫進你的病歷夾。
  3. 報到區的 AI 分診助理讀你填的主訴,建議先掛哪一科,也寫進病歷夾。
  4. 醫師翻開病歷夾,看到前面的主訴、血壓和分診建議,做出診斷、寫下處方。
  5. 藥師讀病歷夾上的處方,把藥配好給你。

關鍵在於:沒有人需要重講一次前面發生的事。大家靠的是同一份病歷夾——前一站把結果寫上去,後一站翻開讀。這份一路跟著你跑、人人都能讀寫的病歷夾,就是整場接力能成立的原因。

對照到平台:三個詞

工作流程運作的方式,跟看診幾乎一模一樣。把上面的畫面換成平台術語,三個地基概念就懂了:

看診裡的東西 平台術語 是什麼
一次看診的流程(掛號 → 量血壓 → 看診 → 領藥) 工作流程 (Workflow) 一連串接力的步驟
跟著你跑、人人讀寫的病歷夾 狀態 (State) 共用資料區:每一步把產出寫上去,後面的步驟讀得到
醫師說「把剛剛量的血壓調出來」 變數引用 從狀態裡把某一欄「叫出來」用——也就是這一章在教的事

你不用會寫程式

接下來你會看到 { } 這種東西(那叫 JSON,是給電腦看的格式)。你不用自己寫——你只要在畫面上勾選、填欄位,平台會幫你產生這些底層定義。本章出現的 JSON 片段,都是給你看懂平台幫你產生了什麼,不是要你手動打字輸入。

走一遍:後面的步驟怎麼「取用」前面寫的資料

把鏡頭拉近,看資料在步驟之間到底怎麼被取用。輪到醫師看診時,病歷夾上已經有前面各站寫好的欄位:

┌─ 病歷夾(狀態)──────────────────────────┐
│                                            │
│  主訴 = 頭痛、發燒                         │  ← 掛號寫的
│  血壓 = 120/80                            │  ← 護理師寫的
│  體溫 = 38.5°C                            │  ← 護理師寫的
│                                            │
└──────────────────────────────────────────┘

醫師看診需要用到前面的資料,但他不會重新問你一次血壓——而是翻開病歷夾,指名把「血壓」這一欄調出來看。這個「指名某一欄、把它的內容叫出來用」的動作,就是變數引用

診斷完,醫師把結果寫回病歷夾,於是多了兩欄:

┌─ 病歷夾(狀態)──────────────────────────┐
│                                            │
│  主訴 = 頭痛、發燒                         │
│  血壓 = 120/80                            │
│  體溫 = 38.5°C                            │
│  診斷 = 流感                              │  ← 醫師寫的
│  處方 = 退燒藥                            │  ← 醫師寫的
│                                            │
└──────────────────────────────────────────┘

最後一站藥師,同樣翻病歷夾、指名把「處方」這一欄調出來配藥。整場接力,每一步都是同一個節奏:從病歷夾指名調出需要的欄位(讀)→ 做事 → 把產出寫回病歷夾

平台上的工作流程一模一樣:某一步要用到前面步驟的產出,就從狀態裡把那一欄「叫出來」。這一章接下來教的,就是怎麼把那一欄指出來。

幾種情況、幾種寫法

依你想做的事,選一種語法。先認得它「長什麼樣」就好,怎麼用各有專頁:

你想做什麼 用哪一種 你會看到的長相 畫面上在哪 看哪頁
把前一步的資料,接到這一步 JSONPath $. 欄位標籤右側一個要把滑鼠移上去才浮現的「JSONPath」開關;打開後欄位變成路徑框 JSONPath 語法
套一段罐頭文字(中間帶變數) Template {{ }} 直接打在文字任務的「樣板」欄位裡,沒有開關 Template 語法
資料太大(例如整份長文件,超過狀態約 256 KB 的上限) 外部記憶體(置物櫃) .% 畫面上沒有入口,要在編輯器的「程式碼」檢視手寫定義 外部記憶體
想把一份設定值集中放一處、多條流程共用 「變數」資源(也用 .% .% 同上,畫面上沒有入口 變數 (Variable)

第一次讀,照順序就好

側邊欄這一章由上到下共七頁,建議這樣讀:

  1. 概覽(本頁)— 先建立「狀態=病歷夾」的概念。
  2. JSONPath 語法 — 最常用,九成情況靠它,一定要看。
  3. Template 語法 — 要套帶變數的罐頭文字時看。
  4. 變數 (Variable) — 想把設定值集中放一處、多條流程共用時看。
  5. 外部記憶體 — 資料太大塞不進狀態時看。
  6. 進階:Path Parameters — 除錯「為什麼下一步抓到空的」時回來看。
  7. 進階:外部記憶體語法.% 的完整格式,需要手寫定義時才看。

帶「進階:」前綴的最後兩頁第一次可以直接跳過。本頁最下方的「速查表」是給已經學會、回來查語法的人用的。

側邊欄有兩個都叫「變數」的項目,差別是什麼?

  • 這一章的 「變數 (Variable)」 講的是「怎麼在工作流程裡引用變數資源的內容」(.% 語法)。
  • 「資源」章的 「變數」 講的是「怎麼在平台上建立與管理一筆變數資源」(表單操作與截圖,見變數)。

先看資源章建立一筆變數,再回這一章學怎麼引用它。


速查表

這一段是給「看得懂 JSON、想快速對照語法」的人回頭查用的,第一次讀請直接略過。下面出現的 field.$.%{{ }} 都是平台在底層產生的長相——正常在畫面上操作時不必自己打;只有在看編輯器「程式碼」檢視的定義、或要手寫定義時才會直接碰到它們。

何時使用 語法 範例
存取工作流程資料 $. 搭配 .$ 後綴 "field.$": "$.input_value"
載入資源/大型資料 .%只有這一個沒有畫面入口,必須在「程式碼」檢視手寫 "field.%": {"type": "variable", "id": "var-id", "jsonpath": "$"}
渲染文字/Prompt {{ }} Hello {{ name }}!

常見模式

引用工作流程的輸入欄位:

{ "query.$": "$.user_question" }

引用前一個任務的輸出(路徑開頭是那個任務的 ResultPath):

{ "documents.$": "$.RetrievalActionResult.docs" }

載入一筆「變數」資源的內容:

{ "api_config.%": { "type": "variable", "id": "var-api-settings", "jsonpath": "$" } }

在「文字」任務的「樣板」欄位裡套變數:

回答此問題:{{ question }}

要避免的常見錯誤

以下兩種只有在手寫定義(編輯器「程式碼」檢視)時才會發生;在畫面上用「JSONPath 開關」操作的話,平台會幫你寫對。

欄位名稱遺漏 .$ 後綴

{ "query": "$.user_question" }

正確{ "query.$": "$.user_question" }

把資料路徑直接串進字串裡(平台不支援字串拼接)

{ "url": "https://api.example.com/$.user_id" }

正確:先把完整網址組好再整個引用——{ "url.$": "$.full_api_url" }

了解更多