feat: 完善极简任务分发工作流,创建端到端验证任务给庞统
This commit is contained in:
@@ -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
@@ -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
|
||||
@@ -11,4 +11,3 @@ echo "$1" >> "$TASK_FILE"
|
||||
|
||||
echo "任务创建: $TASK_ID"
|
||||
echo "文件: $TASK_FILE"
|
||||
EOF && chmod +x management/workflow/scripts/create_simple.sh
|
||||
Reference in New Issue
Block a user