基于 .NET 9 + Semantic Kernel 开发的智能任务规划系统,能够根据自然语言输入自动生成结构化的任务计划(ToDoList)。
- ✅ 解析用户输入,明确目标结果和约束条件
- ✅ 提取关键词和重要信息
- ✅ 识别领域和优先级
- ✅ 判断实现目标所需的全部工具
- ✅ 分析工具之间的输入/输出依赖关系
- ✅ 检测缺失工具并提供解决方案
- ✅ 根据分析结果输出标签和分类
- ✅ 评估任务复杂度和执行时间
- ✅ 生成置信度评分
- ✅ 将分类结果向量化存储
- ✅ 支持用户对分类准确性的"对/错"评价
- ✅ 根据反馈动态更新知识库
- ✅ 生成包含任务编号、描述、工具、顺序的 ToDoList
- ✅ 支持 JSON 和 Markdown 格式导出
- ✅ 提供完成条件和时间估算
| 组件 | 状态 | 描述 |
|---|---|---|
| ✅ 文本关键词提取工具 | 已实现 | TextKeywordExtractorPlugin - 提取关键词、目标、约束条件 |
| ✅ 文本分类器 | 已实现 | TextClassifierPlugin - 任务分类和标签生成 |
| ✅ 工具依赖推理器 | 已实现 | ToolDependencyAnalyzerPlugin - 分析工具需求和依赖关系 |
| ✅ 缺失工具检查器 | 已实现 | MissingToolCheckerPlugin - 检测并提供缺失工具解决方案 |
| ✅ RAG 存储器 | 已实现 | RagStorageUpdaterPlugin - 知识库管理和向量搜索 |
| ✅ 任务编排器 | 已补充 | TaskOrchestratorPlugin - 生成结构化任务计划 |
| ✅ 输出格式化器 | 已补充 | OutputFormatterPlugin - 多格式输出支持 |
AIAgentTaskPlanner/
├── Models/ # 数据模型
│ └── TaskPlanningModels.cs # 核心数据结构
├── Plugins/ # Semantic Kernel 插件
│ ├── TaskPlanningPlugins.cs # 核心分析插件
│ └── RagAndFormatterPlugins.cs # RAG和格式化插件
├── Services/ # 业务服务
│ └── TaskPlanningService.cs # 主要业务逻辑
├── Program.cs # 主程序入口
└── appsettings.json # 配置文件
- .NET 9.0 SDK
- OpenAI API Key 或 Azure OpenAI 服务
-
克隆或下载项目
git clone <repository-url> cd AIAgentTaskPlanner
-
配置 API 密钥
编辑
appsettings.json文件,添加你的 OpenAI 或 Azure OpenAI 配置:{ "OpenAI": { "ApiKey": "your-openai-api-key-here", "Model": "gpt-4" } }或者配置 Azure OpenAI:
{ "AzureOpenAI": { "Endpoint": "https://your-resource.openai.azure.com/", "ApiKey": "your-azure-openai-api-key", "DeploymentName": "gpt-4" } } -
更新 Program.cs 中的 Kernel 配置
取消注释并配置相应的服务:
// 使用 OpenAI kernelBuilder.AddOpenAIChatCompletion("gpt-4", "your-api-key"); // 或使用 Azure OpenAI kernelBuilder.AddAzureOpenAIChatCompletion( "your-deployment", "your-endpoint", "your-api-key");
-
运行项目
dotnet restore dotnet run
输入示例:
我需要开发一个电商网站,包含用户注册、商品展示、购物车和支付功能
系统输出:
- Section 1: 任务推理分析(目标识别、约束分析、关键要素)
- Section 2: 工具调用表(所需工具、依赖关系、执行顺序)
- Section 3: ToDoList(结构化任务列表,包含时间估算)
- Section 4: RAG知识库操作说明
系统会自动识别并安排工具执行顺序:
文本分析API → 分类模型 → 任务编排器 → 输出格式化器
| 序号 | 任务描述 | 所需工具 | 完成条件 | 预计时间 |
|---|---|---|---|---|
| 1 | 需求分析和架构设计 | 文本分析API | 完成详细需求文档 | 120min |
| 2 | 数据库设计 | 分类模型 | 完成ER图和表结构 | 90min |
| 3 | 后端API开发 | 任务编排器 | 完成RESTful API | 300min |
{
"TaskPlanning": {
"DefaultComplexity": "Medium", // 默认复杂度
"MaxTasksPerPlan": 20, // 单个计划最大任务数
"VectorDimensions": 384, // 向量维度
"KnowledgeRetentionDays": 365 // 知识保留天数
}
}{
"section1_analysis": "任务推理分析文本...",
"section2_tools": {
"requiredTools": [...],
"executionOrder": [...],
"dependencyGraph": {...}
},
"section3_todolist": {
"planId": "guid",
"tasks": [...],
"classification": {...}
},
"section4_rag_operations": "RAG操作说明..."
}自动生成完整的 Markdown 报告,包含:
- 任务分析概述
- 工具依赖表格
- 结构化任务列表
- 知识库操作指南
- 自动将任务分析结果向量化存储
- 保存分类信息、元数据和用户反馈
var results = await service.SearchKnowledgeAsync("电商网站开发");var feedback = new UserFeedback
{
EntryId = "knowledge-entry-id",
IsAccurate = false,
CorrectedClassification = new TaskClassification { ... }
};
await service.ProcessUserFeedbackAsync(feedback);- 项目管理: 自动分解复杂项目为可执行任务
- 学习规划: 根据学习目标生成学习计划
- 业务流程: 标准化业务流程任务分解
- 研发管理: 技术项目的任务规划和工具选择
- 项目管理工具 (Jira, Trello)
- 代码生成工具
- 数据分析工具
- 文档生成工具
- 集成更先进的嵌入模型
- 添加多模态支持(图像、文档)
- 实现实时学习和适应
- Web UI 界面
- RESTful API 服务
- 移动端应用
- 在
Plugins/目录创建新的插件类 - 使用
[KernelFunction]和[Description]属性 - 在
TaskPlanningService中注册并调用
- 在
Models/TaskPlanningModels.cs中添加新的数据结构 - 更新相关插件的输入输出类型
- 确保 JSON 序列化兼容性
欢迎提交 Issue 和 Pull Request 来改进项目!
如有问题或建议,请创建 Issue 或联系项目维护者。