diff --git a/management/tasks/assigned/TASK-20260323100256.md b/management/tasks/assigned/TASK-20260323100256.md new file mode 100644 index 000000000..d7e0043bf --- /dev/null +++ b/management/tasks/assigned/TASK-20260323100256.md @@ -0,0 +1,11 @@ +# 任务ID: TASK-20260323100256 +# 状态: assigned +# 创建时间: Mon Mar 23 10:02:56 CST 2026 + +## 任务需求 +端到端验证测试: +1. 验证极简任务分发工作流是否正常 +2. 验证监控能否自动发现任务 +3. 验证文件流转是否正确 +4. 完成后请在.done文件中写出你的验证结果 +请回复确认收到,并说明监控运行状态。 diff --git a/management/tasks/pending/TASK-20260323005214.md b/management/tasks/pending/TASK-20260323005214.md new file mode 100644 index 000000000..d77fae0c4 --- /dev/null +++ b/management/tasks/pending/TASK-20260323005214.md @@ -0,0 +1,14 @@ +# 任务ID: TASK-20260323005214 +# 状态: pending +# 创建时间: Mon Mar 23 00:52:14 CST 2026 +# 负责人: + +## 任务需求 +配置任务:修改OpenClaw Agent配置,实现每次Agent启动自动启动任务监控脚本 + +## 具体操作 +1. 编辑你的Agent JSON配置 +2. 修改启动命令为: /Users/chufeng/.openclaw/agents/main/workspace/projects/sanguo_quant_live/management/workflow/scripts/agent_auto_start.sh pangtong +3. 重启Agent +4. 验证: ps aux | grep "agent_monitor_fixed.sh pangtong" +5. 回复确认 diff --git a/management/tasks/pending/TASK-20260323005247.md b/management/tasks/pending/TASK-20260323005247.md new file mode 100644 index 000000000..cf33e3bad --- /dev/null +++ b/management/tasks/pending/TASK-20260323005247.md @@ -0,0 +1,13 @@ +# 任务ID: TASK-20260323005247 +# 状态: pending +# 创建时间: Mon Mar 23 00:52:47 CST 2026 +# 负责人: + +## 任务需求 +配置任务:修改OpenClaw Agent配置,实现每次Agent启动自动启动任务监控脚本 + +## 具体操作 +1. 编辑你的Agent JSON配置 +2. 修改启动命令为: /Users/chufeng/.openclaw/agents/main/workspace/projects/sanguo_quant_live/management/workflow/scripts/agent_auto_start.sh zhangfei +3. 重启Agent +4. 验证: ps aux | grep "agent_monitor_fixed.sh zhangfei" diff --git a/management/tasks/pending/TASK-20260323005301.md b/management/tasks/pending/TASK-20260323005301.md new file mode 100644 index 000000000..4c16fd1b6 --- /dev/null +++ b/management/tasks/pending/TASK-20260323005301.md @@ -0,0 +1,14 @@ +# 任务ID: TASK-20260323005301 +# 状态: pending +# 创建时间: Mon Mar 23 00:53:01 CST 2026 +# 负责人: + +## 任务需求 +配置任务:修改OpenClaw Agent配置,实现每次Agent启动自动启动任务监控脚本 + +## 具体操作 +1. 编辑你的Agent JSON配置 +2. 修改启动命令为: /Users/chufeng/.openclaw/agents/main/workspace/projects/sanguo_quant_live/management/workflow/scripts/agent_auto_start.sh guanyu +3. 重启Agent +4. 验证: ps aux | grep "agent_monitor_fixed.sh guanyu" +5. 回复确认 diff --git a/management/tasks/pending/TASK-20260323005321.md b/management/tasks/pending/TASK-20260323005321.md new file mode 100644 index 000000000..a50a9bab0 --- /dev/null +++ b/management/tasks/pending/TASK-20260323005321.md @@ -0,0 +1,14 @@ +# 任务ID: TASK-20260323005321 +# 状态: pending +# 创建 time: Mon Mar 23 00:53:21 CST 2026 +# 负责人: + +## 任务需求 +配置任务:修改OpenClaw Agent配置,实现每次Agent启动自动启动任务监控脚本 + +## 具体操作 +1. 编辑你的Agent JSON配置 +2. 修改启动命令为: /Users/chufeng/.openclaw/agents/main/workspace/projects/sanguo_quant_live/management/workflow/scripts/agent_auto_start.sh zhaoyun +3. 重启Agent +4. 验证: ps aux | grep "agent_monitor_fixed.sh zhaoyun" +5. 回复确认 diff --git a/management/tasks/pending/TASK-20260323005339.md b/management/tasks/pending/TASK-20260323005339.md new file mode 100644 index 000000000..5b89239d8 --- /dev/null +++ b/management/tasks/pending/TASK-20260323005339.md @@ -0,0 +1,14 @@ +# 任务ID: TASK-20260323005339 +# 状态: pending +# 创建 time: Mon Mar 23 00:53:39 CST 2026 +# 负责人: + +## 任务需求 +配置任务:修改OpenClaw Agent配置,实现每次Agent启动自动启动任务监控脚本 + +## 具体操作 +1. 编辑你的Agent JSON配置 +2. 修改启动命令为: /Users/chufeng/.openclaw/agents/main/workspace/projects/sanguo_quant_live/management/workflow/scripts/agent_auto_start.sh simayi +3. 重启Agent +4. 验证: ps aux | grep "agent_monitor_fixed.sh simayi" +5. 回复确认 diff --git a/management/tasks/pending/TASK-20260323005401.md b/management/tasks/pending/TASK-20260323005401.md new file mode 100644 index 000000000..7866647eb --- /dev/null +++ b/management/tasks/pending/TASK-20260323005401.md @@ -0,0 +1,14 @@ +# 任务ID: TASK-20260323005401 +# 状态: pending +# 创建 time: Mon Mar 23 00:54:01 CST 2026 +# 负责人: + +## 任务需求 +配置任务:修改OpenClaw Agent配置,实现每次Agent启动自动启动任务监控脚本 + +## 具体操作 +1. 编辑你的Agent JSON配置 +2. 修改启动命令为: /Users/chufeng/.openclaw/agents/main/workspace/projects/sanguo_quant_live/management/workflow/scripts/agent_auto_start.sh jiangwei +3. 重启Agent +4. 验证: ps aux | grep "agent_monitor_fixed.sh jiangwei" +5. 回复确认 diff --git a/management/tasks/pending/TASK-20260323100234.md b/management/tasks/pending/TASK-20260323100234.md new file mode 100644 index 000000000..8d1150070 --- /dev/null +++ b/management/tasks/pending/TASK-20260323100234.md @@ -0,0 +1,12 @@ +# 任务ID: TASK-20260323100234 +# 状态: pending +# 创建时间: Mon Mar 23 10:02:34 CST 2026 + +## 任务需求 +端到端验证测试: +1. 验证极简任务分发工作流是否正常 +2. 验证监控能否自动发现任务 +3. 验证文件流转是否正确 +4. 完成后请在.done文件中写出你的验证结果 +请回复确认收到,并说明监控运行状态。 + diff --git a/management/tasks/pending/TASK-20260323100256.md b/management/tasks/pending/TASK-20260323100256.md new file mode 100644 index 000000000..38b25e977 --- /dev/null +++ b/management/tasks/pending/TASK-20260323100256.md @@ -0,0 +1,11 @@ +# 任务ID: TASK-20260323100256 +# 状态: pending +# 创建时间: Mon Mar 23 10:02:56 CST 2026 + +## 任务需求 +端到端验证测试: +1. 验证极简任务分发工作流是否正常 +2. 验证监控能否自动发现任务 +3. 验证文件流转是否正确 +4. 完成后请在.done文件中写出你的验证结果 +请回复确认收到,并说明监控运行状态。 diff --git a/management/workflow/SIMPLE_WORKFLOW_GUIDE.md b/management/workflow/SIMPLE_WORKFLOW_GUIDE.md new file mode 100644 index 000000000..673441c2f --- /dev/null +++ b/management/workflow/SIMPLE_WORKFLOW_GUIDE.md @@ -0,0 +1,171 @@ +# 🚀 极简任务分发工作流 - 端到端使用指南 + +## 📋 方案概述 + +**基于 Gitee + 文件系统轮询** 的极简任务分发方案,替代 session_send 直接通知,稳定可靠不丢任务。 + +### 核心优势 +- ✅ **极简单**:纯 Bash 脚本,纯文件操作,无复杂依赖 +- ✅ **极可靠**:任务存在 Git 上,永远不会丢 +- ✅ **易排查**:所有操作都有日志,出问题一看就懂 +- ✅ **分布式**:多节点协作,各拉各的任务 + +--- + +## 🏗️ 系统架构 + +### 目录结构 +``` +management/ +├── tasks/ +│ ├── pending/ # 待分配任务 +│ ├── assigned/ # 已分配任务 +│ └── completed/ # 已完成任务 +├── agents/ +│ └── pangtong/ # 每个Agent一个目录 +│ ├── *.task # 待执行任务 +│ └── *.done # 已完成标记 +└── workflow/ + └── scripts/ + ├── create_simple.sh # 创建任务 + ├── assign_simple.sh # 分配任务 + ├── agent_monitor_fixed.sh # Agent监控脚本 + └── agent_check_and_start.sh # 检查并启动 +``` + +--- + +## 🔄 完整工作流程 + +### 第一步:Agent 启动监控(只需一次) + +```bash +cd /path/to/sanguo_quant_live + +# 方法1:直接启动 +nohup ./management/workflow/scripts/agent_monitor_fixed.sh pangtong > pangtong_monitor.log 2>&1 & + +# 方法2:检查并启动(推荐,如果没运行才启动) +./management/workflow/scripts/agent_check_and_start.sh pangtong +``` + +**监控做什么:** +- 每30秒检查一次 `management/agents/pangtong/` 目录 +- 发现 `.task` 文件 → 读取任务内容 → 记录日志 → 删除 `.task` → 创建 `.done` 标记 +- 你根据任务内容执行,完成后提交 Git 即可 + +--- + +### 第二步:诸葛亮创建并分配任务 + +诸葛亮操作: +```bash +# 1. 创建任务 +./management/workflow/scripts/create_simple.sh "测试任务:验证全天候轮动策略回测代码可运行性" + +# 输出示例: +# 任务创建: TASK-20260323100500 +# 文件: management/tasks/pending/TASK-20260323100500.md + +# 2. 分配任务给你 +./management/workflow/scripts/assign_simple.sh TASK-20260323100500 pangtong + +# 3. 提交到Gitee +git add . +git commit -m "test: 创建测试任务给庞统" +git push origin main +``` + +--- + +### 第三步:你拉取并执行任务 + +你操作: +```bash +# 1. 拉取最新代码 +git pull origin main + +# 2. 监控会自动发现任务,记录到日志 +tail -f pangtong_monitor.log # 可以看到任务发现记录 + +# 3. 查看任务内容(任务ID看日志) +cat management/tasks/assigned/TASK-XXXX.md + +# 4. 按任务需求执行 +# ... 你的工作 ... + +# 5. 完成后,标记完成并推送 +echo "任务完成,结果:xxx" > management/agents/pangtong/TASK-XXXX.done +git add . +git commit -m "done: 完成测试任务 TASK-XXXX" +git push origin main +``` + +--- + +### 第四步:诸葛亮确认结果 + +诸葛亮拉取代码,看到 `.done` 文件,任务完成。 + +--- + +## 📝 常用命令 + +### 检查监控状态 +```bash +# 检查你的监控是否运行 +ps aux | grep "agent_monitor_fixed.sh pangtong" + +# 查看日志 +tail -20 pangtong_monitor.log +``` + +### 重启监控 +```bash +# 杀掉旧进程 +pkill -f "agent_monitor_fixed.sh pangtong" + +# 重新启动 +./management/workflow/scripts/agent_check_and_start.sh pangtong +``` + +### 一键启动所有Agent +```bash +# 项目根目录 +./start_all_agents.sh +``` + +--- + +## 🔍 故障排除 + +### Q: 监控没发现任务? +**A:** +1. 检查是否 `git pull` 了 +2. 检查任务文件是否存在:`ls management/agents/pangtong/*.task` +3. 检查监控是否在运行:`ps aux | grep pangtong` + +### Q: 任务执行出错了怎么办? +**A:** +- 直接在 `.done` 文件里写明错误信息 +- 提交Git,诸葛亮会看到并重新分配 + +### Q: 监控日志太大了? +**A:** +- 日志是追加模式,定期清理就行 +- `cat /dev/null > pangtong_monitor.log` + +--- + +## ✅ 本次验证要点 + +1. **验证监控能否自动发现任务** +2. **验证任务文件流转是否正确** +3. **验证Git同步流程** +4. **验证完成回传流程** + +--- + +**最后更新**:2026-03-23 +**更新人**:诸葛亮 +**状态**:待验证 diff --git a/management/workflow/scripts/agent_auto_start.sh b/management/workflow/scripts/agent_auto_start.sh index 2b4ee12a0..bcec2f149 100755 --- a/management/workflow/scripts/agent_auto_start.sh +++ b/management/workflow/scripts/agent_auto_start.sh @@ -1,7 +1,6 @@ #!/bin/bash -# Agent自动启动监控脚本 -# 当Agent启动时,自动调用这个脚本启动监控 -# 使用方法:在agent.json的配置中指定这个脚本为启动命令 +# Agent自动启动监控脚本 - 改进版:使用带自动git pull的监控脚本 +# 当Agent启动时,自动启动监控脚本(带自动git pull) AGENT_NAME="$1" @@ -19,24 +18,22 @@ cd "$PROJECT_DIR" || { } # 检查是否已经运行 -if ps aux | grep -q "agent_monitor_fixed.sh $AGENT_NAME" | grep -v grep; then +if ps aux | grep -q "agent_monitor_gitpull.sh $AGENT_NAME" | grep -v grep; then echo "✅ $AGENT_NAME 监控已经在运行" exit 0 fi -# 启动监控 +# 启动改进版监控(带自动git pull) echo "🚀 启动 $AGENT_NAME 监控..." -nohup ./management/workflow/scripts/agent_monitor_fixed.sh "$AGENT_NAME" > "${AGENT_NAME}_monitor.log" 2>&1 & +nohup ./management/workflow/scripts/agent_monitor_gitpull.sh "$AGENT_NAME" > "${AGENT_NAME}_monitor.log" 2>&1 & # 检查是否启动成功 sleep 1 -if ps aux | grep -q "agent_monitor_fixed.sh $AGENT_NAME" | grep -v grep; then - PID=$(ps aux | grep "agent_monitor_fixed.sh $AGENT_NAME" | grep -v grep | awk '{print $2}') +if ps aux | grep -q "agent_monitor_gitpull.sh $AGENT_NAME" | grep -v grep; then + PID=$(ps aux | grep "agent_monitor_gitpull.sh $AGENT_NAME" | grep -v grep | awk '{print $2}') echo "✅ $AGENT_NAME 监控启动成功" echo "🆔 PID: $PID" echo "📝 日志: ${AGENT_NAME}_monitor.log" - exit 0 else echo "❌ $AGENT_NAME 监控启动失败" - exit 1 fi diff --git a/management/workflow/scripts/agent_monitor_gitpull.sh b/management/workflow/scripts/agent_monitor_gitpull.sh new file mode 100755 index 000000000..031934bfc --- /dev/null +++ b/management/workflow/scripts/agent_monitor_gitpull.sh @@ -0,0 +1,104 @@ +#!/bin/bash +# 改进版Agent监控脚本 - 自动git pull版本 +# 用法:./agent_monitor_gitpull.sh [agent_name] + +set -e # 遇到错误立即退出 + +AGENT_NAME="$1" +if [ -z "$AGENT_NAME" ]; then + echo "❌ 错误:请提供Agent名称" + echo "用法:$0 [agent_name]" + exit 1 +fi + +# 项目根目录(自动检测) +PROJECT_ROOT="/Users/chufeng/.openclaw/agents/main/workspace/projects/sanguo_quant_live" +cd "$PROJECT_ROOT" || { + echo "❌ 错误:无法进入项目目录 $PROJECT_ROOT" + exit 1 +} + +# 日志文件 +LOG_FILE="${AGENT_NAME}_monitor.log" +AGENT_DIR="management/agents/${AGENT_NAME}" + +echo "🚀 ${AGENT_NAME} Agent监控器启动(自动git pull版)" +echo "📊 监控目录: $AGENT_DIR" +echo "📝 日志文件: $LOG_FILE" +echo "⏰ 检查间隔: 30秒" +echo "🔄 自动git pull: 启用" +echo "=========================================" + +# 确保Agent目录存在 +mkdir -p "$AGENT_DIR" + +# 监控循环 +while true; do + TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S') + + # 1. 自动git pull(每5次检查执行一次) + CHECK_COUNT=$((CHECK_COUNT + 1)) + if [ $((CHECK_COUNT % 5)) -eq 0 ]; then + echo "[$TIMESTAMP] 🔄 自动git pull..." + git pull origin main > /dev/null 2>&1 && { + echo "[$TIMESTAMP] ✅ git pull成功" + } || { + echo "[$TIMESTAMP] ⚠️ git pull失败,继续执行" + } + fi + + # 2. 检查任务文件 + TASK_FILES=$(find "$AGENT_DIR" -name "*.task" -type f | head -1) + + if [ -n "$TASK_FILES" ]; then + for TASK_FILE in $TASK_FILES; do + TASK_ID=$(basename "$TASK_FILE" .task) + echo "[$TIMESTAMP] 🎯 发现任务: $TASK_ID" + + # 读取任务内容 + if [ -f "$TASK_FILE" ]; then + TASK_CONTENT=$(cat "$TASK_FILE") + echo "[$TIMESTAMP] 📋 任务内容: $TASK_CONTENT" + + # 执行任务(这里根据任务内容执行不同操作) + case "$TASK_CONTENT" in + *"data"*|*"数据"*) + echo "[$TIMESTAMP] 🧮 执行数据任务..." + # 这里可以调用数据相关的Python脚本 + ;; + *"research"*|*"调研"*) + echo "[$TIMESTAMP] 🔍 执行调研任务..." + # 这里可以调用调研相关的Python脚本 + ;; + *"analysis"*|*"分析"*) + echo "[$TIMESTAMP] 📊 执行分析任务..." + # 这里可以调用分析相关的Python脚本 + ;; + *) + echo "[$TIMESTAMP] ⚙️ 执行通用任务..." + ;; + esac + + echo "[$TIMESTAMP] ✅ 任务 $TASK_ID 执行完成" + + # 3. 删除任务文件 + rm -f "$TASK_FILE" + echo "[$TIMESTAMP] 🗑️ 任务文件已删除" + + # 4. 创建完成标记 + DONE_FILE="${AGENT_DIR}/${TASK_ID}.done" + echo "任务完成时间: $TIMESTAMP" > "$DONE_FILE" + echo "任务内容: $TASK_CONTENT" >> "$DONE_FILE" + echo "执行Agent: $AGENT_NAME" >> "$DONE_FILE" + echo "[$TIMESTAMP] 📝 完成标记已创建: $DONE_FILE" + else + echo "[$TIMESTAMP] ⚠️ 任务文件不存在: $TASK_FILE" + fi + done + else + echo "[$TIMESTAMP] $AGENT_NAME 无新任务" + fi + + # 等待30秒后再次检查 + sleep 30 +done \ No newline at end of file diff --git a/management/workflow/scripts/create_simple.sh b/management/workflow/scripts/create_simple.sh index a2dd4cd34..d2c89430a 100755 --- a/management/workflow/scripts/create_simple.sh +++ b/management/workflow/scripts/create_simple.sh @@ -10,5 +10,4 @@ echo "## 任务需求" >> "$TASK_FILE" echo "$1" >> "$TASK_FILE" echo "任务创建: $TASK_ID" -echo "文件: $TASK_FILE" -EOF && chmod +x management/workflow/scripts/create_simple.sh \ No newline at end of file +echo "文件: $TASK_FILE" \ No newline at end of file