Skip to content

codding-y/AIAgentTaskPlanner

Repository files navigation

AI Agent 任务规划系统

基于 .NET 9 + Semantic Kernel 开发的智能任务规划系统,能够根据自然语言输入自动生成结构化的任务计划(ToDoList)。

🌟 核心功能

1. 输入分析

  • ✅ 解析用户输入,明确目标结果和约束条件
  • ✅ 提取关键词和重要信息
  • ✅ 识别领域和优先级

2. 工具推理

  • ✅ 判断实现目标所需的全部工具
  • ✅ 分析工具之间的输入/输出依赖关系
  • ✅ 检测缺失工具并提供解决方案

3. 智能分类

  • ✅ 根据分析结果输出标签和分类
  • ✅ 评估任务复杂度和执行时间
  • ✅ 生成置信度评分

4. RAG 知识库

  • ✅ 将分类结果向量化存储
  • ✅ 支持用户对分类准确性的"对/错"评价
  • ✅ 根据反馈动态更新知识库

5. 结构化输出

  • ✅ 生成包含任务编号、描述、工具、顺序的 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 服务

安装步骤

  1. 克隆或下载项目

    git clone <repository-url>
    cd AIAgentTaskPlanner
  2. 配置 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"
      }
    }
  3. 更新 Program.cs 中的 Kernel 配置

    取消注释并配置相应的服务:

    // 使用 OpenAI
    kernelBuilder.AddOpenAIChatCompletion("gpt-4", "your-api-key");
    
    // 或使用 Azure OpenAI
    kernelBuilder.AddAzureOpenAIChatCompletion(
        "your-deployment", 
        "your-endpoint", 
        "your-api-key");
  4. 运行项目

    dotnet restore
    dotnet run

💻 使用示例

1. 创建任务计划

输入示例

我需要开发一个电商网站,包含用户注册、商品展示、购物车和支付功能

系统输出

  • Section 1: 任务推理分析(目标识别、约束分析、关键要素)
  • Section 2: 工具调用表(所需工具、依赖关系、执行顺序)
  • Section 3: ToDoList(结构化任务列表,包含时间估算)
  • Section 4: RAG知识库操作说明

2. 工具依赖分析示例

系统会自动识别并安排工具执行顺序:

文本分析API → 分类模型 → 任务编排器 → 输出格式化器

3. 生成的任务计划格式

序号 任务描述 所需工具 完成条件 预计时间
1 需求分析和架构设计 文本分析API 完成详细需求文档 120min
2 数据库设计 分类模型 完成ER图和表结构 90min
3 后端API开发 任务编排器 完成RESTful API 300min

🔧 配置选项

appsettings.json 配置说明

{
  "TaskPlanning": {
    "DefaultComplexity": "Medium",      // 默认复杂度
    "MaxTasksPerPlan": 20,             // 单个计划最大任务数
    "VectorDimensions": 384,           // 向量维度
    "KnowledgeRetentionDays": 365      // 知识保留天数
  }
}

📊 系统输出格式

JSON 输出示例

{
  "section1_analysis": "任务推理分析文本...",
  "section2_tools": {
    "requiredTools": [...],
    "executionOrder": [...],
    "dependencyGraph": {...}
  },
  "section3_todolist": {
    "planId": "guid",
    "tasks": [...],
    "classification": {...}
  },
  "section4_rag_operations": "RAG操作说明..."
}

Markdown 输出示例

自动生成完整的 Markdown 报告,包含:

  • 任务分析概述
  • 工具依赖表格
  • 结构化任务列表
  • 知识库操作指南

🧠 RAG 知识库功能

知识存储

  • 自动将任务分析结果向量化存储
  • 保存分类信息、元数据和用户反馈

智能搜索

var results = await service.SearchKnowledgeAsync("电商网站开发");

用户反馈学习

var feedback = new UserFeedback 
{
    EntryId = "knowledge-entry-id",
    IsAccurate = false,
    CorrectedClassification = new TaskClassification { ... }
};
await service.ProcessUserFeedbackAsync(feedback);

🎯 使用场景

  1. 项目管理: 自动分解复杂项目为可执行任务
  2. 学习规划: 根据学习目标生成学习计划
  3. 业务流程: 标准化业务流程任务分解
  4. 研发管理: 技术项目的任务规划和工具选择

🔮 扩展建议

集成更多工具

  • 项目管理工具 (Jira, Trello)
  • 代码生成工具
  • 数据分析工具
  • 文档生成工具

增强 AI 能力

  • 集成更先进的嵌入模型
  • 添加多模态支持(图像、文档)
  • 实现实时学习和适应

用户界面

  • Web UI 界面
  • RESTful API 服务
  • 移动端应用

📝 开发说明

添加新插件

  1. Plugins/ 目录创建新的插件类
  2. 使用 [KernelFunction][Description] 属性
  3. TaskPlanningService 中注册并调用

扩展数据模型

  1. Models/TaskPlanningModels.cs 中添加新的数据结构
  2. 更新相关插件的输入输出类型
  3. 确保 JSON 序列化兼容性

🤝 贡献指南

欢迎提交 Issue 和 Pull Request 来改进项目!

📄 许可证

MIT License

🙋‍♂️ 支持

如有问题或建议,请创建 Issue 或联系项目维护者。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages