工作流程是 Microsoft Foundry 中基於 UI 的工具。 利用它們來建立宣告式、預先定義的動作序列,協調代理與業務邏輯,並以視覺化建構器呈現。
工作流程讓您能打造智慧自動化系統,將 AI 代理與業務流程無縫結合,呈現視覺化效果。 傳統的單代理系統在處理複雜且多面向任務的能力上有限。 透過協調多個代理,每個代理都具有專門的技能或角色,您可以創建更強大、適應性更強且能夠協作解決現實世界問題的系統。
先決條件
- 具有有效訂閱的 Azure 帳戶。 如果您沒有,請建立 免費的 Azure 帳戶,其中包含免費試用訂用帳戶。
- 一個在 Microsoft Foundry 裡的專案。 欲了解更多資訊,請參閱 「創建專案」。
- 在您的 Foundry 專案中建立並執行工作流程的存取權。 欲了解更多資訊,請參閱 Foundry 中的 Azure 角色基礎存取控制(RBAC)。
決定何時使用工作流程
工作流程非常適合以下情境:當您需要:
- 在可重複的流程中協調多個代理。
- 加入分支邏輯(例如 if/else)和變數處理,無需撰寫程式碼。
- 建立人工介入的步驟(例如批准或澄清問題)。
如果你想在 Visual Studio Code 中編輯工作流程 YAML,或在本地遊樂場執行工作流程,請參考:
了解工作流程模式
Foundry 提供常見的編排模式範本。 從空白工作流程開始,或選擇範本:
| 樣式 | Description | 典型的使用案例 |
|---|---|---|
| 人類在循環中 | 向使用者提問並等待使用者輸入以繼續 | 在工作流程執行過程中建立核准請求並等待人工核准,或從使用者那裡取得資訊 |
| 循序 | 將結果依明確順序從一位代理人傳遞給下一位代理人 | 逐步工作流、管道或多階段處理 |
| 群聊 | 根據上下文或規則動態地在代理之間傳遞控制權 | 動態工作流程、升級處理、回退或專家交接場景 |
欲了解更多資訊,請參閱 Microsoft Agent Framework 工作流程協調。
建立工作流程
這個流程展示了如何建立序列式工作流程。 其他工作流程類型也適用相同的一般步驟。
-
登入 Microsoft Foundry。 確定 新鑄造廠 的開關是開啟的。 這些步驟指的是 Foundry(新)。
在右上角選單,選擇 建造。
選擇 建立新工作流程>,順序式。
透過在工作流程中選取每個代理節點,選擇想要的代理或建立新的代理,來指派代理給代理節點。 欲了解更多資訊,請參閱本文後面的 「新增代理人 」。
在視覺化工具中選擇 「儲存 」來儲存變更。
這很重要
Foundry 不會自動儲存工作流程。 每次變更後選擇 儲存 以保留你的作品。
選取執行工作流程。
在聊天視窗中與工作流程互動。
可選擇性地,在工作流程中新增節點。 本文下一節將提供關於節點的資訊。
驗證工作流程的執行情況
選擇 執行工作流程後,請確認:
- 每個節點都會在視覺化工具中完成。
- 你會在聊天視窗看到預期的回應。
- 你儲存的任何變數(例如代理節點的 JSON 輸出)都包含你預期的值。
新增節點
節點是你工作流程的基石。 每個節點依序執行特定動作。
常見的節點類型包括:
- 代理程式:呼叫代理程式。
- 邏輯:使用 if/else、 go to 或 for each。
- 資料轉換:設定變數或解析值。
- 基本聊天:向客服專員發送消息或提問。
當你選擇預先建置的工作流程時,建構器會依序顯示節點。 要重新排序節點,先選取節點上的三個點,然後選擇 移動。 要新增節點,請在工作區中選擇加號(+)圖示。
新增代理人
將你專案中的任何 Foundry 代理加入工作流程。 代理節點也允許你透過設定模型、提示符和工具來建立具備自訂能力的新代理。
關於進階的代理建立選項,請前往 Foundry 入口網站中的 Foundry 代理 標籤。
新增現有的代理人
在工作流程視覺化工具中,選擇加號。
在彈出視窗下拉選單中,選擇呼叫代理。
在 「建立新代理」 視窗中,選擇 「現有」。
輸入代理人名稱即可搜尋 Foundry 專案中的現有代理人。
選取所需的代理程式,以將其新增至您的工作流程。
建立新的代理程式
在工作流程視覺化工具中,選擇加號。
在彈出視窗下拉選單中,選擇呼叫代理。
輸入客服專員名稱和客服專員執行動作的說明。
選取 ,然後新增。
在 呼叫代理 程式視窗中,設定代理程式。
選取 [儲存]。
設定輸出響應格式
要設定代理程式回傳結構化 JSON 輸出:
在 Invoke agent 設定視窗中,選擇 「建立新代理」。
設定代理程式以 JSON 架構傳送輸出:
- 選取 [詳細資料]。
- 選擇參數圖示。
- 文字 格式請選擇 JSON Schema。
複製所需的 JSON 架構,並貼上到 新增回應格式 視窗。 以下截圖展示了一個數學範例。 選取 [儲存]。
這很重要
不要在 JSON 架構、提示詞或儲存的工作流程變數中包含秘密(密碼、金鑰、令牌)。
{
"name": "math_response",
"schema": {
"type": "object",
"properties": {
"steps": {
"type": "array",
"items": {
"type": "object",
"properties": {
"explanation": {
"type": "string"
},
"output": {
"type": "string"
}
},
"required": [
"explanation",
"output"
],
"additionalProperties": false
}
},
"final_answer": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"steps",
"final_answer"
]
},
"strict": true
}
配置額外功能
YAML 視覺化檢視器檢視:將 YAML 視覺化檢視 切換切換為 開啟 ,以儲存工作流程為 YAML 檔案。 在視覺化工具或 YAML 視圖中編輯。 儲存會建立一個包含完整版本歷史的新版本。
視覺化工具和 YAML 都可以編輯。 YAML 檔案的變更會立即顯示在視覺化工具中。
版本設定:每個存檔都會產生一個新的、無法更改的版本。 若要查看版本歷史或刪除舊版本,請在儲存按鈕左側開啟版本下拉選單。
備註:在工作流程視覺化工具中加入筆記以提供更多背景資訊。 在視覺化工具的左上角,選擇 新增備註。
使用 Power Fx 建立運算式
Power Fx 是一種使用類似 Excel 的公式的低程式碼語言。 利用 Power Fx 建立複雜的邏輯,讓你的經紀人能操作資料。 例如,Power Fx 公式可以設定變數值、解析字串或評估條件。 如需詳細資訊,請參閱 Power Fx 概觀和公式參考。
在公式中使用變數
若要在 Power Fx 公式中使用變數,您必須在其名稱前面加上前置詞以指示變數的範圍:
- 系統變數則使用
System. - 對於局部變數,請使用
Local.
以下是系統變數:
| 名稱 | Description |
|---|---|
Activity |
關於目前活動的資訊 |
Bot |
關於代理人的資訊 |
Conversation |
關於當前對話的資訊 |
Conversation.Id |
目前對話的唯一識別碼 |
Conversation.LocalTimeZone |
使用者的時區,依 IANA 時區資料庫格式呈現 |
Conversation.LocalTimeZoneOffset |
當前當地時區相較於UTC的時間偏移 |
Conversation.InTestMode |
布林旗標代表對話是否在測試畫布上進行 |
ConversationId |
目前對話的唯一識別碼 |
InternalId |
系統內部識別碼 |
LastMessage |
關於使用者先前發送訊息的資訊 |
LastMessage.Id |
使用者先前發送的訊息 ID |
LastMessage.Text |
使用者先前發送的訊息 |
LastMessageId |
使用者先前發送的訊息 ID |
LastMessageText |
使用者先前發送的訊息 |
Recognizer |
關於意圖識別及觸發訊息的資訊 |
User |
關於目前與客服人員通話的使用者資訊 |
User.Language |
每段對話的使用者語言地點 |
UserLanguage |
每段對話的使用者語言地點 |
在公式中使用常值
除了在 Power Fx 公式中使用變數之外,您也可以輸入常值。 若要在公式中使用常值,您必須以與其類型相對應的格式輸入它。
下表列出資料型態及其對應的字面值格式:
| 類型 | 格式化範例 |
|---|---|
| 繩子 |
"hi"、"hello world!"、"copilot" |
| 布林值 | 僅限 true 或 false |
| Number |
1、532、5.258、-9201 |
| 記錄與資料表 |
[1]、[45, 8, 2]、["cats", "dogs"]、{ id: 1 }、{ message: "hello" }、{ name: "John", info: { age: 25, weight: 175 } } |
| 日期和時間 |
Time(5,0,23)、Date(2022,5,24)、DateTimeValue("May 10, 2022 5:00:00 PM") |
| 選擇 | 不支援 |
| Blank | 僅限 Blank() |
常用的 Power Fx 公式
下表列出了你可以在每種資料型別中使用的 Power Fx 公式。
設定一個變數,使用 Power Fx
此範例展示了如何以大寫字母儲存並輸出客戶姓名:
建立工作流程並新增 提問 節點。
在出現的「 提問 」欄格中,輸入「 你叫什麼名字?」 或其他訊息。 在 「儲存使用者回應為」 的欄位中,輸入變數名稱;例如,
Var01。 然後,選取完成。新增 [傳送訊息] 動作。 在出現的窗格中,於要發送的訊息區域,輸入
{Upper(Local.Var01)}。 然後,選取完成。選取預覽。
在預覽窗格中,發送訊息給代理以啟動工作流程。
使用 Power FX 創建 if/else 流程
這個範例展示了如何加入 if/else 流程,並用系統變數建立條件。
建立工作流程並新增 提問 節點。
選擇 + 圖示並加入 if/else 流程。
在
System.欄位輸入,為每個 if/else 分支建立條件陳述。選擇 下一步 動作,進入工作流程下一步。
選擇 完成。 選擇 儲存 以儲存您的工作流程。
故障排除
| 問題 | 解決方法 |
|---|---|
| 工作流程 選項不可見或無法建立/編輯工作流程 | 確認你在專案中擁有貢獻 者 或更高職位。 請參閱 Foundry 中的 Azure 角色基礎存取控制(RBAC)。 |
| 編輯後不會有變更 | 在視覺化工具中選擇 儲存 。 Foundry 不會自動儲存變更。 |
| 工作流程執行會產生意想不到的輸出 | 確認每個代理節點都有分配代理。 檢查儲存的輸出(JSON schema)是否有效。 |
| Power Fx 公式錯誤:「名稱無效」 | 請加上正確的範圍前綴。 用於 System. 系統變數與 Local. 區域變數。 |
| Power Fx 公式錯誤:「型別不匹配」 | 確認變數類型是否符合預期輸入。 如果需要,可以使用轉換Text()Value()函數。 |
| 工作流程逾時 | 將複雜的工作流程拆分成更小的部分。 請確認外部服務是否在預期時間內回應。 |
清理資源
要刪除工作流程,你不再需要:
- 在 Foundry 入口網站開啟工作流程。
- 選擇儲存按鈕左側的版本下拉選單。
- 選擇刪除以移除你想刪除的版本。