你的位置:亚投彩票平台下载app > 新闻动态 > 强烈推荐一个面向 .NET 的代码优先、事件驱动的工作流框架
强烈推荐一个面向 .NET 的代码优先、事件驱动的工作流框架
发布日期:2026-04-29 22:42    点击次数:153

项目简介

在 AI Agent 和自动化流程日益复杂的今天,如何用简洁的方式定义、调试和执行多步骤工作流,成了 .NET 开发者的一大痛点。多数工作流引擎要么依赖 JSON/YAML 配置文件,要么需要可视化拖拽,代码可控性差、调试困难。

StepWise 提供了一种截然不同的思路——Code-First(代码优先)。它是一个基于 .NET 的事件驱动工作流框架,让你直接用 C# 方法定义工作流步骤,通过 Attribute 声明依赖关系,框架自动解析执行顺序、并行调度无依赖的步骤,同时还提供一套内置 WebUI 让你在浏览器中实时可视化工作流的执行过程。

项目由微软 AutoGen 团队成员 LittleLittleCloud 开发,采用 MIT 协议开源,已发布到 NuGet,目前在 GitHub 上获得 149 Star。

代码即工作流

StepWise 的核心理念是"一个方法就是一个步骤"。

你只需要给方法加上 [Step] 特性,它就变成了工作流中的一个节点;用 [DependOn] 声明步骤之间的依赖;用 [FromStep] 传递上游步骤的输出。一切都是纯 C# 代码,享受完整的类型安全、IDE 智能提示和重构支持:

[Step(description: "boil water")]

[DependOn(nameof(Start))]

public async Task BoilWater

{

await Task.Delay(2000);

return"Boiled water in 2 seconds";

}

[Step(description: "cook vegetables")]

[DependOn(nameof(CutVegetables))]

[DependOn(nameof(BoilWater))]

public async Task CookVegetables(

[FromStep(nameof(CutVegetables))] string vegetables,

[FromStep(nameof(BoilWater))] string water)

{

await Task.Delay(4000);

return"Cooked vegetables";

}

自动并行执行 StepWiseEngine 会分析所有步骤的依赖关系图,没有依赖关系的步骤自动并行执行。以"准备晚餐"为例——烧水和切菜可以同时进行,煮菜必须等烧水和切菜都完成才开始。你只需声明依赖,调度由框架搞定。

内置 WebUI 可视化

StepWise 自带一套基于 Next.js + shadcn/ui 构建的 Web 界面。启动项目后访问浏览器,即可看到工作流的 DAG 依赖图,实时观察每个步骤的执行状态、输入输出和耗时。调试工作流不再靠想象。

AI 能力深度集成

这是 StepWise 区别于传统工作流引擎的关键亮点:

Microsoft.Extensions.AI 集成:工作流步骤可以无缝调用 IChatClient,在流程中嵌入 LLM 对话、文本生成等 AI 能力 MCP 协议支持:一行配置即可将 StepWise 工作流变成 MCP Server,让 Claude、Cursor 等 AI 助手直接调用你的工作流 内置 AI 助手 Geeno:在 WebUI 中直接与 AI 对话,辅助运行和分析工作流。

项目提供了大量开箱即用的示例,涵盖基础模式(顺序执行、并行、循环、条件分支)和 AI 场景(链式思考 CoT、文档生成、代码解释器、图像分类、OCR、文本生图、内容安全检测等)。

如何使用 安装模板,一键创建项目:

dotnet new -i LittleLittleCloud.StepWise.Template

dotnet new stepwise-console

dotnet run

启动后访问 http://localhost:5123,即可在浏览器中看到工作流可视化界面。

也可以直接引入 NuGet 包:

dotnet add package LittleLittleCloud.StepWise

然后在代码中定义工作流类,用 [Step] 和 [DependOn] 标记方法,注册到 StepWiseServer,一切就绑定好了。

StepWise 特别适合以下场景:AI Agent 多步编排、数据处理管道、CI/CD 发布流程、需要人工审批的混合工作流,以及任何你希望"用代码定义、用浏览器调试"的自动化任务。