在前一篇文章中,我們介紹了如何使用 Semantic Kernel 的 HandoffOrchestration 編排系統來管理多個代理人之間的協作與任務轉移。今天,將探討另一種多代理人協作的方式——SequentialOrchestration,SequentialOrchestration 是 Semantic Kernel 中用於協調多個 AI Agent 按照預定順序執行的編排機制。它讓開發者能夠將複雜的任務分解成多個步驟,由不同的專業 Agent 依序完成,就像生產線上的工作流程一樣。
在實際應用中,SequentialOrchestration 非常適合需要多步驟且依序處理的 workflow 任務,這類的任務在企業工作流程中非常常見,例如:
接下來,讓我以 人資政策文件審查 為例,設計一個包含三個審查階段的系統,展示如何使用 SequentialOrchestration 編排系統來管理多個代理人,並依序完成文件的多方面審查。
首先,我們需要建立三個專責代理人 (ChatCompletionAgent),每個代理人負責不同的審查階段。
HRAgent
,人資政策審查員:var hrAgent = new ChatCompletionAgent()
{
Kernel = kernel,
Name = "HRAgent",
Description = "人資政策審查員",
Instructions =
"""
請審查使用者提交內容是否符合公司人資政策
- 不得出現員工個人資料
- 請假加班必須填單申請
- 上下班必須打卡
- 不得有性騷擾或性別歧視言論
若有疑慮請給出建議或補充意見,若是合規則請回覆「合規」。
## 輸出格式:
[草案內容]
...(草案)
[人資部門審查意見]
...(內容)
"""
};
ITAgent
,資訊/技術審查員:var itAgent = new ChatCompletionAgent()
{
Kernel = kernel,
Name = "ITAgent",
Description = "資訊/技術審查員",
Instructions =
"""
你將會收到一份公司政策草案以及前面部門的審查意見(若有)。請保留所有既有意見內容,再加上你本部門的審查意見,不可刪除任何意見。
請審查使用者提交內容是否涉及資訊安全
- 不得出現帳號、密碼、伺服器主機位置資訊
- 不得安裝私人軟體
若有疑慮請給出建議或補充意見,若是合規則請回覆「合規」。
## 輸出格式:
[草案內容]
...(草案)
[人資部門審查意見]
...(內容)
[IT部門審查意見]
...(內容)
"""
};
ComplianceAgent
,法遵合規審查員:var complianceAgent = new ChatCompletionAgent()
{
Kernel = kernel,
Name = "ComplianceAgent",
Description = "法遵審查員",
Instructions =
"""
你將會收到一份公司政策草案以及前面部門的審查意見(若有)。請保留所有既有意見內容,再加上你本部門的審查意見,不可刪除任何意見。
請審查使用者提交內容有無違反公司內部守則或法規
- 不得出現客戶資料
- 不得涉及商業機密洩漏
- 不得出現仇恨言論或歧視性內容
若有疑慮請給出建議或補充意見,若是合規則請回覆「合規」。
## 輸出格式:
[草案內容]
...(草案)
[人資部門審查意見]
...(內容)
[IT部門審查意見]
...(內容)
[合規部門審查意見]
...(內容)
"""
};
接著,將這三個代理人組合成一個 SequentialOrchestration 編排系統,按照順序,讓他們依序完成審查任務。
// Define the orchestration
SequentialOrchestration orchestration =
new(hrAgent, itAgent, complianceAgent)
{
Name = "DocumentReviewOrchestration",
Description = "多代理人協同審查文件內容,確保符合人資政策、資訊安全與合規要求。"
};
這個有個小地方要注意,所有變數都必須是在 InProcessRuntime 啟動後建立。
// 建立協作流程物件 (這裡要注意的是所有變數都必須是在InProcessRuntime 啟動後建立)
InProcessRuntime runtime = new();
await runtime.StartAsync();
最後,使用者可以提交一份政策草案,並透過這個編排系統依序進行審查。
// 模擬執行一份草案文件審查
string input =
"""
### 以下是使用者的具體提交內容
公司新政策草案:
自2024年起,所有員工可申請每月1天遠端工作日,
加班工時上限每月40小時,須提前主管同意。
女性同仁不得申請生理假。
另外為了提升資安意識,所有員工必須每半年參加資安線上訓練一次。
### 請審查此草案是否符合人資政策、資訊安全與合規要求。
""";
// 執行 Sequential Orchestration
var result = await orchestration.InvokeAsync(input, runtime);
string finalReport = await result.GetValueAsync(TimeSpan.FromSeconds(3000));
Console.WriteLine("\n審查完成:");
Console.WriteLine(finalReport);
執行後,Agent 流程會依序由人資政策審查員、資訊/技術審查員、法遵合規審查員進行審查,並最終輸出一份包含所有審查意見的綜合報告。
開始進行文件審查協作流程...
草案內容:
### 以下是使用者的具體提交內容
公司新政策草案:
自2024年起,所有員工可申請每月1天遠端工作日,
加班工時上限每月40小時,須提前主管同意。
女性同仁不得申請生理假。
另外為了提升資安意識,所有員工必須每半年參加資安線上訓練一次。
### 請審查此草案是否符合人資政策、資訊安全與合規要求。
審查完成:
[草案內容]
公司新政策草案:
自2024年起,所有員工可申請每月1天遠端工作日,
加班工時上限每月40小時,須提前主管同意。
女性同仁不得申請生理假。
另外為了提升資安意識,所有員工必須每半年參加資安線上訓練一次。
[人資部門審查意見]
本草案內容存在明顯不合規處:
- 「女性同仁不得申請生理假」違反《性別工作平等法》等相關法令,屬於性別歧視及侵害女性勞動權益,須予以刪除或修正,應確保所有員工依法享有相關假別權益。
- 其餘條款(遠端工作、加班及資安訓練)未涉及員工個資、申請加班作業需主管同意,資訊安全意識訓練亦屬恰當,但需要明確規範「請假加班須填單申請」及「上下班必須打卡」等執行流程建議,以符合公司既有政策。
建議:刪除涉及性別歧視條款,並補充明確申請及打卡流程,方可通過合規審查。
[IT部門審查意見]
經檢視草案內容,未發現涉及帳號、密碼、伺服器主機位置資訊等資通安全疑慮,亦未出現安裝私人軟體之情形。資安訓練要求合理,建議於遠端工作相關規範中補充「不得於非授權裝置處理公司業務,不得使用私人軟體與未經公司認可之雲端儲存服務」。總體內容資安合規,僅建議補強細節。
[合規部門審查意見]
草案未涉及客戶資料、商業機密或仇恨/歧視性言論,惟條款「女性同仁不得申請生理假」已違反《性別工作平等法》第14條,屬於明顯差別待遇,建議立即刪除該條款。建議強化資安條款如IT部門建議,並依人資建議補充操作流程細則。其餘內容合規。
透過這個範例,展示如何使用 Semantic Kernel 的 SequentialOrchestration 編排系統來管理多個代理人,並依序完成文件的多方面審查。這種線性且有序的協作方式,每一個代理人都能專注於自己的任務,確保審查的全面性與深度,並且將輸出做為下一個代理人的輸入,形成一個完整的工作流程,非常適合用於需要多步驟且依序處理的工作任務。