DAGLLM 是一个 .NET 工作流引擎,用于构建和执行基于 DAG(有向无环图)的工作流。它支持 LLM 节点的集成,适用于构建复杂的 AI 工作流。
- Node(节点): 工作流中的基本执行单元
- Edge(边): 连接节点的路径,支持硬边和条件边
- Graph(图): 由节点和边组成的工作流定义
- State(状态): 工作流执行过程中的状态数据
- Executor(执行器): 负责执行工作流
using DAGLLM.Core;
using DAGLLM.Core.Graph;
using DAGLLM.Core.Executor;
using DAGLLM.Core.State;
// 创建节点
var startNode = new SimpleNode("start", "Start", state =>
{
Console.WriteLine("Starting workflow...");
return new Dictionary<string, object?> { ["initialized"] = true };
});
var endNode = new SimpleNode("end", "End", state =>
{
Console.WriteLine("Ending workflow...");
return new Dictionary<string, object?> { ["completed"] = true };
});
// 构建图
var graph = new GraphBuilder()
.AddNode("start", "Start", startNode)
.AddNode("end", "End", endNode)
.AddEdge(new HardEdge("start", "end"))
.SetEntry("start")
.Build();
// 执行工作流
var executor = new WorkflowExecutor();
var initialState = WorkflowState.Initial.WithInput("Hello");
var result = await executor.ExecuteAsync(graph, initialState);
Console.WriteLine($"Status: {result.Status}");var graph = new GraphBuilder()
.AddNode("entry", "Entry", entryNode)
.AddNode("success", "Success", successNode)
.AddNode("failure", "Failure", failureNode)
.AddEdge(new ConditionalEdge("entry", state =>
{
// 根据状态决定下一个节点
var ctx = ((WorkflowState)state).Context;
return ctx.TryGetValue("isValid", out var v) && v is true
? "success"
: "failure";
}, new[] { "success", "failure" }))
.SetEntry("entry")
.Build();当没有匹配的 Skill 时返回默认消息:
var fallbackNode = new FallbackNode("fallback", "Fallback");匹配可用的 Skill:
var skillMatchNode = new SkillMatchNode("skill_match", "Skill Match", skillRegistry);执行 Web 搜索:
var webSearchNode = new WebSearchNode("web_search", "Web Search", webSearchService, maxResults: 10);执行 RAG 检索:
var ragSearchNode = new RagSearchNode("rag_search", "RAG Search", ragService, topK: 5);# 运行示例项目
dotnet run --project DAGLLM.Examples
# 运行测试
dotnet test DAGLLM.Core.Tests
# 生成覆盖率报告
dotnet test DAGLLM.Core.Tests --collect:"XPlat Code Coverage"DAGLLM/
├── DAGLLM.Core/ # 核心库
│ ├── Graph/ # 图构建和验证
│ ├── Executor/ # 工作流执行
│ ├── State/ # 状态管理
│ ├── Nodes/ # 内置节点
│ ├── Interfaces/ # 接口定义
│ ├── Checkpoint/ # 状态持久化
│ └── Events/ # 事件流
├── DAGLLM.Core.Tests/ # 单元测试
└── DAGLLM.Examples/ # 使用示例
项目包含 80+ 测试,覆盖:
- Graph 构建和验证
- Executor 执行逻辑
- State 状态管理
- Nodes 节点执行
- Checkpoint 持久化
- 异常处理
MIT