🔀 使用 Azure AI Foundry (.NET) 的条件代理工作流程

📋 基于智能决策的工作流程教程

本笔记本演示了使用 Azure AI Foundry 和 Microsoft Agent Framework for .NET 的条件工作流模式。您将学习如何构建复杂的、决策驱动的工作流程,根据人工智能分析、业务规则和企业级自动化的动态条件智能地路由处理。

🎯 学习目标

🧠 智能决策架构

  • 条件逻辑实现:构建具有多个分支点的复杂决策树
  • AI 支持的路由:使用 Azure AI Foundry 模型做出智能路由决策
  • 动态工作流程适应:根据运行时分析和条件修改工作流程行为
  • 企业规则集成:将业务逻辑和合规性要求纳入工作流程中

🔀 高级条件模式

  • 多标准决策:评估路由决策的多个因素
  • 上下文感知处理:根据累积的工作流上下文和历史记录做出决策
  • 自适应工作流程修改:根据实时情况动态调整处理路径
  • 规则引擎集成:在工作流程中实施复杂的业务规则引擎

🏢 企业有条件申请

  • 文档分类和路由:自动分类文档并将其路由到适当的工作流程
  • 客户服务分类:将客户询问智能路由至专业处理团队
  • 合规与风险处理:根据风险评估应用不同的验证和审查流程
  • 质量保证工作流程:根据质量指标通过适当的审核流程传送内容

⚙️ 先决条件和设置

📦 所需的 NuGet 包

用于条件工作流处理的高级包:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!-- Core AI Framework -->
<PackageReference Include="Microsoft.Extensions.AI" Version="9.9.0" />

<!-- Azure AI Agents with Persistent State -->
<PackageReference Include="Azure.AI.Agents.Persistent" Version="1.2.0-beta.5" />

<!-- Azure Identity and Utilities -->
<PackageReference Include="Azure.Identity" Version="1.15.0" />
<PackageReference Include="System.Linq.Async" Version="6.0.3" />
<PackageReference Include="DotNetEnv" Version="3.1.1" />

<!-- Local Workflow Framework References -->
<!-- Microsoft.Agents.Workflows.dll - Advanced workflow orchestration -->
<!-- Microsoft.Agents.AI.AzureAI.dll - Azure AI Foundry integration -->
<!-- Microsoft.Agents.AI.dll - Core agent abstractions -->

🔑 Azure AI Foundry 配置

所需的 Azure 资源:

  • 具有条件处理模型的 Azure AI Foundry 工作区
  • 具有适当计算配额和权限的 Azure 订阅
  • 部署人工智能模型用于决策和内容分析
  • (可选)用于接地功能的 Bing 搜索 API 连接

环境配置(.env 文件):

1
2
3
# Azure AI Foundry Configuration
AZURE_AI_PROJECT_ENDPOINT=https://your-project.cognitiveservices.azure.com/
BING_CONNECTION_ID=your-bing-connection-id

身份验证设置:

1
2
3
4
5
6
// Azure CLI or Managed Identity authentication
using Azure.Identity;
var credential = new AzureCliCredential();

// Load environment configuration
DotNetEnv.Env.Load("../../../.env");

🏗️ 条件工作流架构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
graph TD
A[Input: Content Outline] --> B[Draft Executor]
B --> C[Content Review Executor]
C --> D{Review Decision}

D -->|Yes - Approved| E[Publish Executor]
D -->|No - Rejected| F[Send Review Executor]

E --> G[Save as Markdown File]
F --> H[Notify for Revisions]

I[Azure AI Foundry] --> B
I --> C
I --> E

J[Bing Grounding] --> B

关键组件:

  • 草稿执行器:人工智能代理,根据大纲创建初始内容草稿
  • 内容审查执行者:评估草稿质量和合规性的人工智能代理
  • 条件路由:根据审核结果进行路由的决策逻辑
  • 发布/审核路径:已批准内容与已拒绝内容的单独处理路径
  • 状态管理:在整个工作流程中维护内容并审查上下文

🎨 条件工作流设计模式

📋 具有质量关卡的内容制作

1
Outline → Draft Creation → Quality Review → {Approve: Publish | Reject: Revise}

🎯 基于风险的文档处理

1
Document → Risk Assessment → {Low: Standard | High: Enhanced Review}

🔍 智能客户服务路由

1
Customer Query → Analysis → {Simple: FAQ Bot | Complex: Human Agent}

💼 合规驱动的工作流程

1
Content → Compliance Check → {Pass: Publish | Fail: Legal Review}

🏢 企业有条件福利

🎯 智能自动化

  • 智能决策:基于内容分析和上下文的人工智能驱动的路由决策
  • 自适应处理:根据不断变化的条件自动调整的工作流程
  • 业务规则执行:自动应用复杂的业务逻辑和策略
  • 上下文感知路由:基于完整工作流历史记录和累积上下文的决策

📈 卓越运营

  • 优化资源分配:将工作分配给最合适的专家和流程
  • 减少人工干预:自动决策最大限度地减少对人工路由的需求
  • 更快的解决时间:直接路由到适当的专业知识和处理能力
  • 一致的应用:业务规则和决策标准的统一应用

🛡️ 风险管理与合规性

  • 自动风险评估:人工智能驱动的内容和情况风险级别评估
  • 合规性执行:通过所需的监管流程自动路由
  • 安全协议应用:根据风险评估应用增强的安全措施
  • 审计跟踪维护:路由决策和理由的完整文档

📊 分析和持续改进

  • 决策分析:跟踪路由决策的有效性和准确性
  • 模式识别:随着时间的推移,识别路由决策的趋势和模式
  • 性能优化:持续改进决策标准和路由效率
  • 商业智能:洞察内容特征和处理要求

🔧 技术卓越

  • 持久状态管理:在工作流程执行过程中维护复杂的状态
  • 可扩展架构:处理大容量条件处理要求
  • 集成能力:与现有业务系统和流程无缝集成
  • 监控和可观察性:全面跟踪工作流程绩效和决策

让我们使用 .NET 构建智能、决策驱动的企业工作流程! 🚀

💻 运行代码

完整的实现可在 04.dotnet-agent-framework-workflow-aifoundry-condition.cs 中找到。这演示了具有质量关卡的内容制作工作流程

🏗️ 工作流程架构

1
2
3
Content Outline → Draft Creation → Quality Review → Conditional Routing:
├─ Approved (>200 words) → Publish
└─ Rejected (<200 words) → Review Notification

工作流程中的代理:

  1. Evangelist Agent:根据 Bing 基础,根据大纲创建教程草稿
  2. 内容审阅代理:评估草稿质量(字数、完整性)
  3. 发布者代理:将批准的内容保存为带时间戳的 Markdown 文件

自定义执行器:

  1. DraftExecutor:协调草稿创建
  2. ContentReviewExecutor:执行质量评估
  3. PublishExecutor:处理批准的内容发布
  4. SendReviewExecutor:管理拒绝的内容通知

🚀 运行示例

先决条件:

  • 配置 Azure AI Foundry 工作区
  • Azure CLI 身份验证 (az login)
  • (可选)Bing 搜索接地连接
1
2
3
4
5
# Make the script executable (Unix/Linux/macOS)
chmod +x 04.dotnet-agent-framework-workflow-aifoundry-condition.cs

# Run the conditional workflow
./04.dotnet-agent-framework-workflow-aifoundry-condition.cs

或者在 Windows 上:

1
dotnet run 04.dotnet-agent-framework-workflow-aifoundry-condition.cs

📝 预期输出

工作流程将:

  1. 创建代理:初始化三个专用的 Azure AI Foundry 代理
  2. 生成草稿:布道者代理根据大纲创建教程草稿
  3. 审核内容:内容审核者评估草稿质量
  4. 条件路由
    • 如果批准(>200字):发布执行器另存为Markdown文件
    • 如果被拒绝(<200字):发送审核通知
  5. 显示结果:显示最终工作流程结果

🔧 自定义选项

修改审核标准:

1
2
3
4
5
6
const string ContentReviewerInstructions = @"
You are a content reviewer...
1. Check if content is more than 500 words (instead of 200)
2. Verify technical accuracy
3. Ensure proper formatting
...";

添加更多条件路径:

1
2
3
4
5
6
var workflow = new WorkflowBuilder(draftExecutor)
.AddEdge(draftExecutor, contentReviewerExecutor)
.AddEdge(contentReviewerExecutor, publishExecutor, condition: GetCondition("Excellent"))
.AddEdge(contentReviewerExecutor, editExecutor, condition: GetCondition("Good"))
.AddEdge(contentReviewerExecutor, sendReviewerExecutor, condition: GetCondition("Poor"))
.Build();

Change Content Requirements:

1
2
3
4
5
6
7
string OUTLINE_Content = @"
# Your Custom Topic
## Section 1
https://your-reference-url
## Section 2
...
";

🎯 实际应用

这种条件工作流程模式非常适合:

  • 内容管理系统:具有质量关卡的自动化编辑工作流程
  • 文档处理:根据分类和合规性路由文档
  • 客户支持:根据复杂性和紧急程度进行智能工单路由
  • 法律审查:基于风险评估和价值的路线合同
  • 人力资源流程:通过适当的筛选工作流程传送申请

🔍 理解条件逻辑

条件函数:

1
2
public Func<object?, bool> GetCondition(string expectedResult) =>
reviewResult => reviewResult is ReviewResult review && review.Result == expectedResult;

该函数创建一个谓词:

  1. 检查结果是否为 ReviewResult 类型
  2. Result 属性与预期值进行比较
    3.返回true/false来确定路由

具有条件的工作流程边缘:

1
2
.AddEdge(contentReviewerExecutor, publishExecutor, condition: GetCondition("Yes"))
.AddEdge(contentReviewerExecutor, sendReviewerExecutor, condition: GetCondition("No"))

📊 高级功能

JSON 架构验证:
该工作流程使用 JSON 模式来确保结构化响应:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Define response structure
public class ReviewResult
{
[JsonPropertyName("review_result")]
public string Result { get; set; } = string.Empty;

[JsonPropertyName("reason")]
public string Reason { get; set; } = string.Empty;

[JsonPropertyName("draft_content")]
public string DraftContent { get; set; } = string.Empty;
}

// Apply to agent
ResponseFormat = ChatResponseFormat.ForJsonSchema(
AIJsonUtilities.CreateJsonSchema(typeof(ReviewResult)),
"ReviewResult",
"Review Result From DraftContent"
)

Bing 接地集成:
Evangelist 代理使用 Bing 接地来访问实时信息:

1
2
3
4
var bingGroundingConfig = new BingGroundingSearchConfiguration(bing_conn_id);
BingGroundingToolDefinition bingGroundingTool = new(
new BingGroundingSearchToolParameters([bingGroundingConfig])
);

这使得代理能够跟踪大纲中的 URL 并提取当前信息。

🛡️ 错误处理

该工作流程包括针对被拒绝内容的强大错误处理:

  • 审核失败触发替代路径
  • 通知提供明确的拒绝原因
  • 保留内容以供修改

🔄 扩展工作流程

添加修订循环:
创建一个自动重新起草内容的反馈循环:

1
2
.AddEdge(contentReviewerExecutor, publishExecutor, condition: GetCondition("Yes"))
.AddEdge(contentReviewerExecutor, draftExecutor, condition: GetCondition("No")) // Loop back

实施多级审查:
添加具有不同标准的多个审核阶段:

1
2
3
.AddEdge(draftExecutor, technicalReviewer)
.AddEdge(technicalReviewer, editorialReviewer, condition: GetCondition("TechPass"))
.AddEdge(editorialReviewer, publishExecutor, condition: GetCondition("EditPass"))

这种条件工作流模式为构建复杂、智能的企业自动化系统提供了基础! 🚀