目录
Process Framework 简介
关键特性(Key Features)
核心概念(Core Concepts)
业务流程示例
Process(流程)
流程特性
创建流程
Step(步骤)
步骤特性
定义步骤
将步骤注册到流程中
步骤事件(Step Events)
Pattern(模式)
模式类型(Pattern Types)
设置模式(Setting up a Pattern)
部署基于流程框架构建的工作流
本地开发(Local Development)
云端运行时(Cloud Runtimes)
总结
Microsoft Semantic Kernel 中的流程框架(Process Framework)是一种前沿的方法,旨在优化 AI 与业务流程的集成。该框架使开发人员能够高效地创建、管理和部署业务流程,同时结合AI的强大能力与现有代码和系统。
流程(Process)是一组有结构的活动或任务,这些任务交付服务或产品,并根据特定的业务目标为客户创造价值。
Process Framework 简介
Process Framework 为自动化复杂工作流提供了一套强大的解决方案。在这个框架里,每一个步骤都会通过调用你自己定义的Kernel函数来完成任务,同时利用事件驱动的方式来管理整个流程的执行。
把 AI 融入业务流程后,可以明显提升工作效率和决策能力。借助流程框架,你可以实现无缝的 AI 集成,让工作流更智能、更灵活。不仅能简化日常操作,还能让不同部门之间的协作更顺畅,从而提升整体效率。
关键特性(Key Features)
利用 Semantic Kernel:每个步骤都可以调用一个或多个
Kernelfunctions,充分使用 Semantic Kernel 的能力。可复用性与灵活性:步骤和流程可在不同应用中复用,促进模块化与可扩展性。
事件驱动架构:通过事件与元数据触发操作并进行步骤间流转。
全面控制与可审计性:以定义清晰、可重复的方式掌控流程,并通过 Open Telemetry 提供审计功能。
核心概念(Core Concepts)
流程(Process):为实现特定业务目标而组织起来的一组步骤。
步骤(Step):流程中的一个活动,具有明确的输入和输出,对整体目标有所贡献。
模式(Pattern):规定步骤执行顺序的方式,决定流程如何完整完成。
业务流程示例
业务流程是日常生活的一部分。以下示例展示常见场景:
开户流程:
信用查询与评级
欺诈检测
在核心系统中创建客户账户
向客户发送欢迎信息(包括客户 ID)
外卖配送:
通过电话、网站或 App 下单
准备菜品并进行质量检查
分配配送员并送达
支持工单:
提交工单(新服务或 IT 支持)
可能包含多个子流程
目标是通过有效响应提升客户满意度
Process(流程)
流程是顶层容器,用于协调步骤(Steps)的执行。它定义步骤之间的数据流与路由,确保高效实现流程目标。流程负责处理输入与输出,并在不同工作流中提供灵活性与可扩展性。
流程特性
有状态(Stateful):支持查询信息(例如跟踪状态和完成百分比)、暂停与恢复。
可复用(Reusable):一个流程可在其他流程中调用,促进模块化与复用。
事件驱动(Event Driven):采用基于事件的流转机制,利用监听器将数据路由到步骤或其他流程。
可扩展(Scalable):利用成熟运行时实现全球级扩展与发布。
云事件集成(Cloud Event Integrated):支持业界标准事件机制用于触发流程或步骤。
创建流程
要创建新流程:
将 Process 包添加到项目中。
为流程定义一个名称。
Step(步骤)
步骤是流程中的基本构建块。每个步骤对应一个独立工作单元,并封装一个或多个KernelFunctions。步骤可以独立于具体流程进行创建,从而增强复用性。它们会根据执行结果发出事件以触发后续步骤。
步骤特性
有状态(Stateful):便于跟踪状态与标签。
可复用(Reusable):步骤可在多个流程中复用。
动态(Dynamic):流程可以按需动态创建步骤以匹配所需模式。
灵活(Flexible):通过
KernelFunctions 支持多类型步骤(纯代码、API 调用、AI 智能体、人机交互)。可审计(Auditable):步骤与流程均支持遥测(telemetry)。
定义步骤
要创建步骤:
定义一个
public class来命名该步骤。继承自
KernelStepBase。在类中加入一个或多个
KernelFunctions。
将步骤注册到流程中
创建步骤类后,将其注册到流程中。
对于流程的第一个步骤,设置
isEntryPoint: true,以便流程知道从哪里开始。
步骤事件(Step Events)
常见事件包括:
OnEvent:当类执行完成时触发。OnFunctionResult:当定义的KernelFunction 输出结果时触发,可将输出传递给一个或多个步骤。SendOutputTo:定义结果要传递到的下一个步骤及其输入。
Pattern(模式)
模式用于标准化常见流程流转方式,简化重复实现。它们为不同实现中的重复性问题提供一致解决方法,从而提升可维护性与可读性。
模式类型(Pattern Types)
Fan In:下一个步骤的输入由多个前置步骤的输出汇集而成。
Fan Out:前置步骤的输出被分发到多个后续步骤。
Cycle:步骤根据输入与输出不断循环,直到满足完成条件。
Map Reduce:将某步骤的输出汇总成较少数据量,然后传递给下一个步骤作为输入。
设置模式(Setting up a Pattern)
在为步骤创建类并注册到流程后,你可以:
定义要向下游步骤发送的事件。
基于步骤输出设置条件,使步骤能够被重新启动或重复执行。
部署基于流程框架构建的工作流
使用流程框架构建的工作流可以无缝部署到本地开发环境和云端运行时。开发人员可根据具体使用场景选择最合适的部署方式。
本地开发(Local Development)
提供进程内运行时(in-process runtime),可直接在本地机器或服务器上运行流程,无需复杂配置或额外基础设施。
运行时同时支持内存和文件存储的持久化,适合快速开发和调试。
可在本地快速测试流程并立即获得反馈,加快开发周期。
云端运行时(Cloud Runtimes)
对于需要可扩展性与分布式处理的场景,流程框架支持Orleans和Dapr等云端运行时。这些选项支持分布式部署,实现高可用性与多实例负载均衡。
Orleans Runtime:Orleans 提供用于构建分布式应用的编程模型,适合以高可靠性方式处理虚拟 Actor,契合事件驱动架构。
Dapr(分布式应用运行时):Dapr 提供状态管理、服务调用、发布/订阅(pub/sub)等功能,简化微服务间连接与分布式运行。
无论选择哪种运行时,开发人员都可以根据需求扩展,确保流程在任何负载下高效、平稳运行。
总结
Process Framework 将 AI(通过 Semantic Kernel)与传统业务流程结合,提供模块化、可复用且可审计的工作流构建方式。
框架的核心优势在于事件驱动、状态管理与与现有系统的无缝集成,支持本地快速调试与云端大规模部署(如
Orleans、Dapr)。典型使用场景包括开户流程、外卖配送、支持工单等,其中每一步都能利用
KernelFunctions 实现智能和自动化。常见模式(Fan In、Fan Out、Cycle、Map Reduce)帮助构建复杂的流转逻辑并提升可维护性。
建议实践:
从小型、本地可运行的流程开始,验证步骤与事件流转逻辑。
为关键步骤添加遥测与审计,使用 Open Telemetry 跟踪执行与性能。
在需要扩展时选择合适的云运行时,并针对状态管理与事件可靠性做压力测试。
将通用步骤封装为可复用组件,推动跨项目复用与治理。
引入地址