iT邦幫忙

2025 iThome 鐵人賽

DAY 15
0
生成式 AI

當 .NET 遇見 AI Agents:用 Semantic Kernel × MCP 打造智慧協作應用系列 第 15

Day 15: Semantic Kernel Multi-Agent 實戰 - SequentialOrchestration 實現線性流程的多代理人協同審查

  • 分享至 

  • xImage
  •  

在前一篇文章中,我們介紹了如何使用 Semantic Kernel 的 HandoffOrchestration 編排系統來管理多個代理人之間的協作與任務轉移。今天,將探討另一種多代理人協作的方式——SequentialOrchestration,SequentialOrchestration 是 Semantic Kernel 中用於協調多個 AI Agent 按照預定順序執行的編排機制。它讓開發者能夠將複雜的任務分解成多個步驟,由不同的專業 Agent 依序完成,就像生產線上的工作流程一樣。

SequentialOrchestration 核心概念

  • 線性執行流程:Agent 按照定義的順序依次執行
  • 上下文傳遞:前一個 Agent 的輸出會自動成為下一個 Agent 的輸入
  • 專業分工:每個 Agent 專注於特定的子任務
  • 可預測性:執行順序固定,便於追蹤和除錯

典型應用場景

在實際應用中,SequentialOrchestration 非常適合需要多步驟且依序處理的 workflow 任務,這類的任務在企業工作流程中非常常見,例如:

  • 文件審查:多個 Agent 依次檢查文件的不同方面,如人資政策、資訊安全、法遵合規等
  • 內容生成:一個 Agent 負責初稿撰寫,另一個 Agent 負責潤色和校對
  • 翻譯生成:一個 Agent 負責初步翻譯,另一個 Agent 負責文化調整和本地化潤飾
  • 資料分析流程:清理 Agent、分析 Agent、視覺化 Agent 、報告生成 Agent 依次處理數據

範例實作

接下來,讓我以 人資政策文件審查 為例,設計一個包含三個審查階段的系統,展示如何使用 SequentialOrchestration 編排系統來管理多個代理人,並依序完成文件的多方面審查。

  • 階段一:人資政策審查員 Agent
    職責:審查使用者提交內容是否符合公司人資政策
  • 階段二:資訊/技術審查員 Agent
    職責:審查使用者提交內容是否涉及資訊安全風險
  • 階段三:法遵合規審查員 Agent
    職責:審查使用者提交內容有無違反公司內部守則或法規

Step 1: 建立多個專責代理人 (ChatCompletionAgent)

首先,我們需要建立三個專責代理人 (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部門審查意見]
    ...(內容)

    [合規部門審查意見]
    ...(內容)
    """
};

Step 2: 建立 SequentialOrchestration 編排系統

接著,將這三個代理人組合成一個 SequentialOrchestration 編排系統,按照順序,讓他們依序完成審查任務。

// Define the orchestration
SequentialOrchestration orchestration =
    new(hrAgent, itAgent, complianceAgent)
    {
        Name = "DocumentReviewOrchestration",
        Description = "多代理人協同審查文件內容,確保符合人資政策、資訊安全與合規要求。"
    };

Step 3: 建立協作流程物件

這個有個小地方要注意,所有變數都必須是在 InProcessRuntime 啟動後建立。

// 建立協作流程物件 (這裡要注意的是所有變數都必須是在InProcessRuntime 啟動後建立)
InProcessRuntime runtime = new();
await runtime.StartAsync();

Step 4: 執行協作流程

最後,使用者可以提交一份政策草案,並透過這個編排系統依序進行審查。

// 模擬執行一份草案文件審查
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 編排系統來管理多個代理人,並依序完成文件的多方面審查。這種線性且有序的協作方式,每一個代理人都能專注於自己的任務,確保審查的全面性與深度,並且將輸出做為下一個代理人的輸入,形成一個完整的工作流程,非常適合用於需要多步驟且依序處理的工作任務。


上一篇
Day 14: Semantic Kernel Multi-Agent 實戰 - 多代理人的 HandoffOrchestration 編排系統
下一篇
Day 16: Semantic Kernel Multi-Agent 實戰 - SequentialOrchestration 實現合約內容的多代理人協同審查
系列文
當 .NET 遇見 AI Agents:用 Semantic Kernel × MCP 打造智慧協作應用16
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言