TASK_EXECUTION_QUICK_START.md 4.9 KB

任务自动执行 - 快速开始指南

🎯 问题与解决方案

问题诊断

您遇到的问题:

  • ✅ task-manager MCP已读取任务
  • ✅ 任务状态已改为processing
  • 但Cursor没有收到任务指令,没有开始执行

根本原因

MCP协议是被动的

  • MCP工具必须被主动调用才会执行
  • 即使MCP读取了任务,也只是返回文本结果
  • 不会自动触发Cursor执行任何操作

解决方案

我们提供了3种方式让Cursor自动感知并执行任务。


🚀 方式1:最简单 - 直接在Cursor中说(推荐)

在Cursor Chat中输入:

请检查并执行所有pending任务

或者:

@task-manager 执行所有pending任务

Cursor会自动:

  1. 调用get_pending_tasks获取任务
  2. 对每个任务调用execute_task
  3. 根据任务描述生成Python代码
  4. 自动更新任务状态为completed

优点

  • ✅ 最简单,无需配置
  • ✅ 立即执行
  • ✅ 适合临时使用

缺点

  • ❌ 需要手动触发

🤖 方式2:自动化 - Python自动执行脚本(推荐生产环境)

2.1 执行一次检查

python scripts/auto_execute_tasks.py --once

2.2 持续监控(每5分钟检查一次)

python scripts/auto_execute_tasks.py --interval 300

2.3 在后台运行

Windows(PowerShell):

Start-Process python -ArgumentList "scripts/auto_execute_tasks.py" -WindowStyle Hidden

Linux/Mac:

nohup python scripts/auto_execute_tasks.py > logs/auto_execute.log 2>&1 &

优点

  • ✅ 真正的自动化
  • ✅ 无需人工干预
  • ✅ 适合生产环境

缺点

  • ❌ 需要运行额外的Python进程
  • ❌ 需要安装psycopg2:pip install psycopg2-binary

📋 方式3:任务提示 - Cursor Agent(友好提示)

执行一次

python scripts/cursor_task_agent.py --once

守护进程模式

python scripts/cursor_task_agent.py --daemon --interval 300

这个脚本会:

  1. 从数据库读取pending任务
  2. 为每个任务创建Markdown提示文件
  3. 文件保存在.cursor/task_prompts/目录
  4. 用户打开提示文件可以看到任务详情

优点

  • ✅ 友好的用户界面
  • ✅ 任务信息可视化

缺点

  • ❌ 不是完全自动化
  • ❌ 用户仍需手动执行

📚 完整文档

详细说明请参阅:docs/CURSOR_AUTO_TASK_EXECUTION.md


✅ 当前状态

已完成

  1. 分析问题:MCP与Cursor的互动机制
  2. 创建脚本
    • scripts/auto_execute_tasks.py - 自动执行脚本
    • scripts/cursor_task_agent.py - 任务提示脚本
  3. 完成文档
    • docs/CURSOR_AUTO_TASK_EXECUTION.md - 完整指南
    • docs/TASK_EXECUTION_QUICK_START.md - 快速开始
  4. 测试验证:成功执行task_id=8的任务

测试结果

任务8执行情况

  • 任务ID:8
  • 任务名称:从数据源中导入科室对照表
  • 状态:✅ completed
  • 生成文件:
    • app/core/data_flow/import_dept_mapping.py - 导入脚本
    • app/core/data_flow/import_dept_config.json - 配置文件

🎉 立即开始

对于当前pending任务

在Cursor Chat中输入:

请检查并执行所有pending任务

设置自动化(推荐)

  1. 打开新终端
  2. 运行:

    python scripts/auto_execute_tasks.py
    

    这个脚本会每5分钟自动检查新任务并执行它们。


    💡 使用建议

    开发环境

    • 使用方式1(直接在Cursor中说)
    • 简单快速,适合调试

    生产环境

    • 使用方式2(自动执行脚本)
    • 在后台运行,完全自动化
    • 建议设置为系统服务

    团队协作

    • 使用方式3(任务提示)+ 方式1
    • Agent创建任务提示
    • 开发者看到提示后在Cursor中执行

    🔧 故障排查

    问题:脚本报错"ModuleNotFoundError"

    解决

    pip install psycopg2-binary
    

问题:无法连接数据库

检查

  1. PostgreSQL服务是否运行
  2. mcp-servers/task-manager/config.json 中的数据库URI是否正确
  3. 网络连接是否正常

问题:任务一直是processing状态

原因:任务被执行但没有调用update_task_status更新状态

解决

  1. 手动更新任务状态(在Cursor中):

    调用工具: update_task_status
    参数: {
    "task_id": <任务ID>,
    "status": "completed",
    "code_name": "<文件名>.py",
    "code_path": "app/core/data_flow"
    }
    
  2. 或重置任务为pending(在数据库中):

    UPDATE task_list 
    SET status = 'pending' 
    WHERE task_id = <任务ID>;
    

    📞 获取帮助

    如有问题,请查看:

    • 完整文档:docs/CURSOR_AUTO_TASK_EXECUTION.md
    • 日志文件:logs/cursor_task_agent.loglogs/auto_execute.log
    • Task Manager README:mcp-servers/task-manager/README.md

    祝您使用愉快!🚀