feat: 完善极简任务分发工作流,创建端到端验证任务给庞统

This commit is contained in:
cfdaily
2026-03-23 10:03:14 +08:00
parent df49641978
commit 52e588fc87
13 changed files with 400 additions and 12 deletions
@@ -0,0 +1,11 @@
# 任务ID: TASK-20260323100256
# 状态: assigned
# 创建时间: Mon Mar 23 10:02:56 CST 2026
## 任务需求
端到端验证测试:
1. 验证极简任务分发工作流是否正常
2. 验证监控能否自动发现任务
3. 验证文件流转是否正确
4. 完成后请在.done文件中写出你的验证结果
请回复确认收到,并说明监控运行状态。
@@ -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. 回复确认
@@ -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"
@@ -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. 回复确认
@@ -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. 回复确认
@@ -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. 回复确认
@@ -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. 回复确认
@@ -0,0 +1,12 @@
# 任务ID: TASK-20260323100234
# 状态: pending
# 创建时间: Mon Mar 23 10:02:34 CST 2026
## 任务需求
端到端验证测试:
1. 验证极简任务分发工作流是否正常
2. 验证监控能否自动发现任务
3. 验证文件流转是否正确
4. 完成后请在.done文件中写出你的验证结果
请回复确认收到,并说明监控运行状态。
@@ -0,0 +1,11 @@
# 任务ID: TASK-20260323100256
# 状态: pending
# 创建时间: Mon Mar 23 10:02:56 CST 2026
## 任务需求
端到端验证测试:
1. 验证极简任务分发工作流是否正常
2. 验证监控能否自动发现任务
3. 验证文件流转是否正确
4. 完成后请在.done文件中写出你的验证结果
请回复确认收到,并说明监控运行状态。
@@ -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
**更新人**:诸葛亮
**状态**:待验证
@@ -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
+104
View File
@@ -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
+1 -2
View File
@@ -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
echo "文件: $TASK_FILE"