返回市场
任务助手AI

任务助手AI

作者:NewAITees2 星标更新:2025-03-02

项目介绍

TaskMateAI

AI/MCP TODO任务管理应用程序

TaskMateAI是一款简单的任务管理应用程序,通过MCP(模型上下文协议)实现AI自主地管理和执行任务。

英文README详见这里

特性

  • 通过MCP创建和管理任务
  • 支持子任务
  • 基于优先级的任务处理
  • 任务进度管理和报告功能
  • 添加笔记功能
  • 使用JSON文件进行数据持久化
  • 通过代理ID管理多个AI的任务
  • 按项目整理任务

安装

前提条件

  • Python 3.12及以上版本
  • uv (Python 包管理器)
  • WSL (Windows Subsystem for Linux) (仅限Windows环境)

安装步骤

  1. 克隆或下载仓库:
git clone https://github.com/YourUsername/TaskMateAI.git
cd TaskMateAI
  1. 安装所需包:
uv install -r requirements.txt

使用方法

启动应用程序

在WSL环境中,可以这样运行应用程序:

cd /path/to/TaskMateAI/src/TaskMateAI
uv run TaskMateAI

MCP配置

以下是用于MCP的配置示例:

{
    "mcpServers": {
      "TodoApplication": {
        "command": "uv",
        "args": [
          "--directory", 
          "/绝对路径/TaskMateAI",
          "run",
          "TaskMateAI"
        ],
        "env": {},
        "alwaysAllow": [
          "get_tasks", "get_next_task", "create_task", "update_progress", 
          "complete_task", "add_subtask", "update_subtask", "add_note",
          "list_agents", "list_projects"
        ],
        "defaultArguments": {
          "agent_id": "agent_123",
          "project_name": ""
        }
      }
    }
}
{
    "mcpServers": {
      "TodoApplication": {
        "command": "wsl.exe",
        "args": [
          "-e", 
          "bash", 
          "-c", 
          "cd /绝对路径/TaskMateAI && /home/用户/.local/bin/uv run TaskMateAI"
        ],
        "env": {},
        "alwaysAllow": [
          "get_tasks", "get_next_task", "create_task", "update_progress", 
          "complete_task", "add_subtask", "update_subtask", "add_note",
          "list_agents", "list_projects"
        ],
        "defaultArguments": {
          "agent_id": "agent_123",
          "project_name": ""
        }
      }
    }
}

可用的MCP工具

TaskMateAI提供了以下MCP工具:

  1. get_tasks - 获取任务列表(可根据状态或优先级过滤)
  2. get_next_task - 获取优先级最高的下一个任务(自动更新为进行中状态)
  3. create_task - 创建新任务(可带子任务)
  4. update_progress - 更新任务进度
  5. complete_task - 标记任务为已完成
  6. add_subtask - 向现有任务添加子任务
  7. update_subtask - 更新子任务的状态
  8. add_note - 向任务添加笔记
  9. list_agents - 获取可用代理ID列表
  10. list_projects - 获取特定代理相关的项目列表

数据格式

任务按照如下结构进行管理:

{
  "id": 1,
  "title": "任务的标题",
  "description": "任务的详细描述",
  "priority": 3,
  "status": "todo",  // "todo", "in_progress", "done" 中的一个
  "progress": 0,     // 进度百分比,0-100
  "subtasks": [
    {
      "id": 1,
      "description": "子任务的描述",
      "status": "todo"  // "todo", "in_progress", "done" 中的一个
    }
  ],
  "notes": [
    {
      "id": 1,
      "content": "笔记的内容",
      "timestamp": "2025-02-28T09:22:53.532808"
    }
  ]
}

数据保存

任务数据以层次结构保存:

output/
├── tasks.json                  # 默认的任务文件
├── agent1/
│   ├── tasks.json              # agent1的任务文件
│   ├── project1/
│   │   └── tasks.json          # agent1的project1的任务文件
│   └── project2/
│       └── tasks.json          # agent1的project2的任务文件
└── agent2/
    ├── tasks.json              # agent2的任务文件
    └── projectA/
        └── tasks.json          # agent2的projectA的任务文件

每个任务文件会在应用程序运行时自动生成和更新。

代理和项目的管理

要管理特定代理或项目的任务,可以采用以下方式:

  1. 在MCP设置中指定默认代理:通过defaultArguments中的agent_id指定,默认应用于所有请求。
  2. 在AI对话中指定项目:例如,在对话中说“在项目X中添加一个新任务”。
  3. 直接由AI指定:可以在请求参数中包含agent_idproject_name

项目结构

TaskMateAI/
├── src/
│   └── TaskMateAI/
│       ├── __init__.py      # 包初始化
│       └── __main__.py      # 主应用程序代码
├── output/                  # 数据保存目录
│   └── tasks.json           # 任务数据 (自动生成)
├── tests/                   # 测试代码
│   ├── unit/                # 单元测试
│   └── integration/         # 集成测试
├── requirements.txt         # 依赖包列表
└── README.md                # 此文件

测试

为了确保功能的可靠性,TaskMateAI提供了全面的测试套件。

测试配置

测试按照以下目录结构进行管理:

tests/
├── __init__.py           # 测试包的初始化
├── conftest.py           # 测试用fixture定义
├── unit/                 # 单元测试
│   ├── __init__.py
│   ├── test_task_utils.py       # 任务相关实用程序的测试
│   ├── test_mcp_tools.py        # MCP工具功能的测试
│   └── test_agent_projects.py   # 代理和项目管理的测试
└── integration/          # 集成测试
    └── __init__.py

测试类型

  1. 单元测试:确认应用程序各个组件正确工作

    • test_task_utils.py: 测试任务的读写、ID生成等基础功能
    • test_mcp_tools.py: 测试MCP工具的功能(如任务的创建、更新、完成等)
    • test_agent_projects.py: 测试代理ID和项目管理功能
  2. 集成测试:确认多个组件协同工作正确(未来扩展)

测试执行方法

可以使用以下命令执行测试:

  1. 执行所有测试:
cd /path/to/TaskMateAI
uv run python -m pytest -xvs
  1. 执行特定测试文件:
uv run python -m pytest -xvs tests/unit/test_task_utils.py
  1. 执行特定测试类:
uv run python -m pytest -xvs tests/unit/test_mcp_tools.py::TestMCPTools
  1. 执行特定测试函数:
uv run python -m pytest -xvs tests/unit/test_task_utils.py::TestTaskUtils::test_read_tasks_with_data

测试参数说明:

  • -x: 在发生错误时停止测试
  • -v: 显示详细输出
  • -s: 显示测试过程中的标准输出

计划改进

  • 实现任务模板功能
  • 构建任务间的依赖关系管理系统
  • 增加调度功能
  • 引入基于标签的任务分类系统
  • 实现里程碑管理功能

许可证

MIT

作者

NewAITees