feat: 更新工作流指南和核心脚本,完善任务管理系统
This commit is contained in:
@@ -0,0 +1,197 @@
|
||||
# 🚀 任务管理系统 - 工作流指南
|
||||
|
||||
## 概述
|
||||
基于Gitee文件系统的轻量级任务管理系统,解决Agent通信超时问题。
|
||||
|
||||
## 📋 系统架构
|
||||
|
||||
### 核心原则
|
||||
1. **文件驱动**:所有状态通过文件记录
|
||||
2. **自主决策**:将军自己决定如何执行任务
|
||||
3. **状态透明**:所有状态在Gitee可查
|
||||
4. **简单可靠**:纯文件操作,无复杂架构
|
||||
|
||||
### 工作流程
|
||||
```
|
||||
主公创建任务 → 诸葛亮分配 → 文件系统同步 →
|
||||
Gitee提交 → Agent接收 → 自主执行 → 回复确认
|
||||
```
|
||||
|
||||
## 📁 目录结构
|
||||
|
||||
```
|
||||
management/
|
||||
├── tasks/ # 任务管理
|
||||
│ ├── pending/ # 待分配任务
|
||||
│ ├── assigned/ # 已分配任务
|
||||
│ ├── completed/ # 已完成任务
|
||||
│ └── archived/ # 已归档任务
|
||||
├── agents/ # 各将军任务目录
|
||||
│ ├── pangtong/ # 庞统任务目录
|
||||
│ ├── zhangfei/ # 张飞任务目录
|
||||
│ ├── guanyu/ # 关羽任务目录
|
||||
│ ├── zhaoyun/ # 赵云任务目录
|
||||
│ ├── jiangwei/ # 姜维任务目录
|
||||
│ └── simayi/ # 司马懿任务目录
|
||||
└── workflow/ # 工作流脚本
|
||||
└── scripts/ # 核心脚本
|
||||
```
|
||||
|
||||
## 🔧 核心脚本
|
||||
|
||||
### 1. 主公创建任务
|
||||
```bash
|
||||
# 极简任务创建脚本
|
||||
cd /Users/chufeng/.openclaw/agents/main/workspace/projects/sanguo_quant_live
|
||||
./management/workflow/scripts/create_task_simple.sh "任务描述"
|
||||
```
|
||||
|
||||
### 2. 诸葛亮分配任务
|
||||
```bash
|
||||
# 分配任务给指定将军
|
||||
./management/workflow/scripts/assign_task_simple.sh TASK-20260322195011 pangtong
|
||||
```
|
||||
|
||||
### 3. Agent监控脚本
|
||||
```bash
|
||||
# 每个将军运行自己的监控脚本
|
||||
nohup ./management/workflow/scripts/agent_monitor.sh pangtong > pangtong.log 2>&1 &
|
||||
```
|
||||
|
||||
## 🎯 各将军职责
|
||||
|
||||
### 庞统(价值投资)
|
||||
1. 启动Agent监控器
|
||||
2. 每30秒检查`management/agents/pangtong/`目录
|
||||
3. 发现`.task`文件后自主执行
|
||||
4. 通过`sessions_send`回复确认
|
||||
|
||||
### 张飞(技术策略)
|
||||
1. 启动Agent监控器
|
||||
2. 每30秒检查`management/agents/zhangfei/`目录
|
||||
3. 发现`.task`文件后自主执行
|
||||
4. 通过`sessions_send`回复确认
|
||||
|
||||
### 关羽(风险管理)
|
||||
1. 启动Agent监控器
|
||||
2. 每30秒检查`management/agents/guanyu/`目录
|
||||
3. 发现`.task`文件后自主执行
|
||||
4. 通过`sessions_send`回复确认
|
||||
|
||||
### 赵云(数据工程)
|
||||
1. 启动Agent监控器
|
||||
2. 每30秒检查`management/agents/zhaoyun/`目录
|
||||
3. 发现`.task`文件后自主执行
|
||||
4. 通过`sessions_send`回复确认
|
||||
|
||||
### 姜维(平台部署)
|
||||
1. 启动Agent监控器
|
||||
2. 每30秒检查`management/agents/jiangwei/`目录
|
||||
3. 发现`.task`文件后自主执行
|
||||
4. 通过`sessions_send`回复确认
|
||||
|
||||
### 司马懿(质量总监)
|
||||
1. 启动Agent监控器
|
||||
2. 每30秒检查`management/agents/simayi/`目录
|
||||
3. 发现`.task`文件后自主执行
|
||||
4. 通过`sessions_send`回复确认
|
||||
|
||||
## 🚀 使用流程
|
||||
|
||||
### 第一步:各将军启动监控
|
||||
```bash
|
||||
# 进入项目目录
|
||||
cd /Users/chufeng/.openclaw/agents/main/workspace/projects/sanguo_quant_live
|
||||
|
||||
# 启动监控(将pangtong替换为你的名字)
|
||||
nohup ./management/workflow/scripts/agent_monitor.sh pangtong > pangtong.log 2>&1 &
|
||||
|
||||
# 验证运行
|
||||
ps aux | grep "agent_monitor.sh pangtong"
|
||||
```
|
||||
|
||||
### 第二步:主公创建任务
|
||||
```bash
|
||||
./management/workflow/scripts/create_task_simple.sh "整合选股报告"
|
||||
```
|
||||
|
||||
### 第三步:诸葛亮分配任务
|
||||
```bash
|
||||
./management/workflow/scripts/assign_task_simple.sh TASK-20260322195011 pangtong
|
||||
```
|
||||
|
||||
### 第四步:提交到Gitee
|
||||
```bash
|
||||
git add .
|
||||
git commit -m "分配新任务"
|
||||
git push origin main
|
||||
```
|
||||
|
||||
### 第五步:将军接收并执行
|
||||
- Agent自动发现`.task`文件
|
||||
- 自主决定如何执行
|
||||
- 通过`sessions_send`回复确认
|
||||
|
||||
## 📊 监控和日志
|
||||
|
||||
### 查看日志
|
||||
```bash
|
||||
# 查看你的Agent日志
|
||||
tail -f pangtong.log
|
||||
|
||||
# 查看所有Agent状态
|
||||
./management/workflow/scripts/check_status.sh
|
||||
```
|
||||
|
||||
### 健康检查
|
||||
```bash
|
||||
# 检查Agent是否在运行
|
||||
./management/workflow/scripts/check_health.sh
|
||||
```
|
||||
|
||||
## 🔧 故障排除
|
||||
|
||||
### 问题1:Agent未启动
|
||||
```bash
|
||||
# 检查进程
|
||||
ps aux | grep "agent_monitor.sh"
|
||||
|
||||
# 重新启动
|
||||
pkill -f "agent_monitor.sh pangtong"
|
||||
nohup ./management/workflow/scripts/agent_monitor.sh pangtong > pangtong.log 2>&1 &
|
||||
```
|
||||
|
||||
### 问题2:收不到任务
|
||||
```bash
|
||||
# 检查任务目录
|
||||
ls -la management/agents/pangtong/
|
||||
|
||||
# 检查Gitee同步
|
||||
git pull origin main
|
||||
```
|
||||
|
||||
### 问题3:无法回复确认
|
||||
- 检查OpenClaw Gateway状态
|
||||
- 检查`sessions_send`参数
|
||||
- 检查网络连接
|
||||
|
||||
## 🎯 成功标准
|
||||
|
||||
### 已验证的功能
|
||||
1. ✅ 主公创建任务
|
||||
2. ✅ 诸葛亮分配任务
|
||||
3. ✅ 文件系统同步
|
||||
4. ✅ Agent接收任务
|
||||
5. ✅ Agent自主执行
|
||||
6. ✅ Agent回复确认
|
||||
|
||||
### 系统优势
|
||||
1. ✅ 无通信超时
|
||||
2. ✅ 完全自主决策
|
||||
3. ✅ 状态透明可查
|
||||
4. ✅ 简单可靠
|
||||
|
||||
---
|
||||
**最后更新**:2026-03-22 20:00
|
||||
**更新人**:诸葛亮
|
||||
**状态**:已部署,待测试
|
||||
@@ -0,0 +1,26 @@
|
||||
# 任务ID: TASK-20260322195011
|
||||
# 状态: assigned
|
||||
# 创建时间: Sun Mar 22 19:50:11 CST 2026
|
||||
# 来源: Gitee端到端测试
|
||||
|
||||
## 任务需求
|
||||
端到端测试任务:验证完整的Gitee文件系统任务分配流程
|
||||
|
||||
## 测试要求
|
||||
1. 确认Agent能从Gitee文件系统接收任务
|
||||
2. 确认Agent能自主决定如何执行任务
|
||||
3. 确认Agent能通过sessions_send回复确认
|
||||
4. 验证完整的端到端流程:主公创建 → Gitee上传 → Agent接收 → 自主执行 → 回复确认
|
||||
|
||||
## 任务内容
|
||||
作为价值投资专家,请完成以下测试:
|
||||
1. 检查A股市场当前价值投资机会
|
||||
2. 分析基本面因子有效性
|
||||
3. 提供简明的价值投资策略建议
|
||||
4. 验证端到端任务管理系统功能
|
||||
|
||||
## 执行要求
|
||||
- 自主制定执行计划
|
||||
- 调用大模型辅助决策
|
||||
- 完成测试后回复确认
|
||||
- 验证系统全链路功能
|
||||
Executable
+60
@@ -0,0 +1,60 @@
|
||||
#!/bin/bash
|
||||
# Agent监控脚本 - 极简可靠版
|
||||
# 每个将军运行此脚本监控自己的任务
|
||||
|
||||
AGENT="$1"
|
||||
|
||||
if [ -z "$AGENT" ]; then
|
||||
echo "使用方法: ./agent_monitor.sh <agent_name>"
|
||||
echo "例如: ./agent_monitor.sh pangtong"
|
||||
echo "支持的agent: pangtong, zhangfei, guanyu, zhaoyun, jiangwei, simayi"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 日志文件
|
||||
LOG_FILE="${AGENT}.log"
|
||||
|
||||
echo "=========================================" >> "$LOG_FILE"
|
||||
echo "Agent监控启动 - $AGENT" >> "$LOG_FILE"
|
||||
echo "启动时间: $(date)" >> "$LOG_FILE"
|
||||
echo "检查间隔: 30秒" >> "$LOG_FILE"
|
||||
echo "监控目录: management/agents/${AGENT}/" >> "$LOG_FILE"
|
||||
echo "=========================================" >> "$LOG_FILE"
|
||||
|
||||
echo "🚀 $AGENT Agent监控器启动"
|
||||
echo "📊 检查间隔: 30秒"
|
||||
echo "📝 日志文件: $LOG_FILE"
|
||||
|
||||
while true; do
|
||||
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
|
||||
|
||||
# 检查是否有.task文件
|
||||
TASK_FILES=$(ls management/agents/${AGENT}/*.task 2>/dev/null)
|
||||
|
||||
if [ -n "$TASK_FILES" ]; then
|
||||
for TASK_FILE in $TASK_FILES; do
|
||||
TASK_ID=$(basename "$TASK_FILE" .task | sed 's/_.*//')
|
||||
|
||||
echo "[$TIMESTAMP] $AGENT 发现新任务: $TASK_ID" >> "$LOG_FILE"
|
||||
echo "[$TIMESTAMP] $AGENT 发现新任务: $TASK_ID"
|
||||
|
||||
# 读取任务内容
|
||||
TASK_CONTENT=$(head -20 "$TASK_FILE" 2>/dev/null)
|
||||
echo "[$TIMESTAMP] 任务内容:" >> "$LOG_FILE"
|
||||
echo "$TASK_CONTENT" >> "$LOG_FILE"
|
||||
|
||||
# 这里可以添加Agent自己的执行逻辑
|
||||
# 各将军可以在这里实现自己的任务处理
|
||||
|
||||
# 完成任务后删除.task文件
|
||||
rm "$TASK_FILE"
|
||||
echo "[$TIMESTAMP] $AGENT 完成任务: $TASK_ID" >> "$LOG_FILE"
|
||||
echo "[$TIMESTAMP] $AGENT 完成任务: $TASK_ID"
|
||||
done
|
||||
else
|
||||
echo "[$TIMESTAMP] $AGENT 无新任务" >> "$LOG_FILE"
|
||||
fi
|
||||
|
||||
# 等待30秒
|
||||
sleep 30
|
||||
done
|
||||
@@ -1,38 +1,60 @@
|
||||
#!/bin/bash
|
||||
# 极简任务分配脚本
|
||||
|
||||
if [ $# -lt 2 ]; then
|
||||
echo "使用方法: ./assign_task_simple.sh <任务ID> <负责人>"
|
||||
echo "例如: ./assign_task_simple.sh TASK-20260322195011 pangtong"
|
||||
echo ""
|
||||
echo "支持的负责人:"
|
||||
echo " pangtong - 庞统(价值投资)"
|
||||
echo " zhangfei - 张飞(技术策略)"
|
||||
echo " guanyu - 关羽(风险管理)"
|
||||
echo " zhaoyun - 赵云(数据工程)"
|
||||
echo " jiangwei - 姜维(平台部署)"
|
||||
echo " simayi - 司马懿(质量总监)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
TASK_ID="$1"
|
||||
AGENT="$2"
|
||||
|
||||
# 检查参数
|
||||
if [ -z "$TASK_ID" ] || [ -z "$AGENT" ]; then
|
||||
echo "使用方法: ./assign_task_simple.sh <任务ID> <负责人>"
|
||||
echo "例如: ./assign_task_simple.sh TASK-20260322181500 zhugeliang"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PENDING_FILE="management/tasks/pending/${TASK_ID}.md"
|
||||
ASSIGNED_FILE="management/tasks/assigned/${TASK_ID}.md"
|
||||
AGENT_FILE="management/agents/${AGENT}/${TASK_ID}.task"
|
||||
ASSIGNED_FILE="management/tasks/assigned/${TASK_ID}_${AGENT}.md"
|
||||
AGENT_FILE="management/agents/${AGENT}/${TASK_ID}_${AGENT}.task"
|
||||
|
||||
# 检查任务是否存在
|
||||
if [ ! -f "$PENDING_FILE" ]; then
|
||||
echo "错误: 任务不存在: $PENDING_FILE"
|
||||
echo "❌ 错误: 任务不存在: $PENDING_FILE"
|
||||
echo " 请检查任务ID是否正确"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 分配任务
|
||||
cp "$PENDING_FILE" "$ASSIGNED_FILE"
|
||||
cp "$PENDING_FILE" "$AGENT_FILE"
|
||||
# 检查Agent目录是否存在
|
||||
if [ ! -d "management/agents/${AGENT}" ]; then
|
||||
echo "⚠️ 警告: Agent目录不存在,自动创建: management/agents/${AGENT}"
|
||||
mkdir -p "management/agents/${AGENT}"
|
||||
fi
|
||||
|
||||
# 更新状态
|
||||
echo "📋 分配任务: $TASK_ID → $AGENT"
|
||||
|
||||
# 1. 复制到assigned目录
|
||||
cp "$PENDING_FILE" "$ASSIGNED_FILE"
|
||||
|
||||
# 2. 更新状态
|
||||
sed -i '' "s/# 状态: pending/# 状态: assigned/" "$ASSIGNED_FILE"
|
||||
sed -i '' "s/# 负责人:.*/# 负责人: $AGENT/" "$ASSIGNED_FILE"
|
||||
|
||||
# 删除pending文件
|
||||
# 3. 复制到Agent目录
|
||||
cp "$ASSIGNED_FILE" "$AGENT_FILE"
|
||||
|
||||
# 4. 删除pending文件
|
||||
rm "$PENDING_FILE"
|
||||
|
||||
echo "任务分配成功"
|
||||
echo "任务ID: $TASK_ID"
|
||||
echo "负责人: $AGENT"
|
||||
echo "任务文件: $ASSIGNED_FILE"
|
||||
echo "Agent通知: $AGENT_FILE"
|
||||
echo "✅ 任务分配成功"
|
||||
echo "📄 任务文件: $ASSIGNED_FILE"
|
||||
echo "📨 Agent通知: $AGENT_FILE"
|
||||
echo ""
|
||||
echo "📝 下一步:"
|
||||
echo "1. 提交到Gitee: git add . && git commit -m '分配任务' && git push"
|
||||
echo "2. $AGENT Agent会自动发现并执行任务"
|
||||
echo "3. 等待$AGENT通过sessions_send回复确认"
|
||||
Executable
+51
@@ -0,0 +1,51 @@
|
||||
#!/bin/bash
|
||||
# 系统状态检查脚本
|
||||
|
||||
echo "========================================="
|
||||
echo "📊 任务管理系统状态报告"
|
||||
echo "时间: $(date '+%Y-%m-%d %H:%M:%S')"
|
||||
echo "========================================="
|
||||
echo ""
|
||||
|
||||
echo "📁 任务文件统计:"
|
||||
echo " pending: $(ls management/tasks/pending/*.md 2>/dev/null | wc -l | xargs) 个"
|
||||
echo " assigned: $(ls management/tasks/assigned/*.md 2>/dev/null | wc -l | xargs) 个"
|
||||
echo " completed: $(ls management/tasks/completed/*.md 2>/dev/null | wc -l | xargs) 个"
|
||||
echo " archived: $(ls management/tasks/archived/*.md 2>/dev/null | wc -l | xargs) 个"
|
||||
echo ""
|
||||
|
||||
echo "👥 Agent状态:"
|
||||
for AGENT in pangtong zhangfei guanyu zhaoyun jiangwei simayi; do
|
||||
# 检查任务文件
|
||||
TASK_COUNT=$(ls management/agents/${AGENT}/*.task 2>/dev/null | wc -l | xargs)
|
||||
|
||||
# 检查日志文件
|
||||
LOG_FILE="${AGENT}.log"
|
||||
if [ -f "$LOG_FILE" ]; then
|
||||
LAST_LOG=$(tail -1 "$LOG_FILE" 2>/dev/null | cut -c1-50)
|
||||
LAST_TIME=$(echo "$LAST_LOG" | grep -o '\[[^]]*\]' | head -1)
|
||||
else
|
||||
LAST_LOG="无日志文件"
|
||||
LAST_TIME=""
|
||||
fi
|
||||
|
||||
# 检查进程
|
||||
PROCESS_COUNT=$(ps aux | grep -c "agent_monitor.sh ${AGENT}")
|
||||
if [ "$PROCESS_COUNT" -gt 1 ]; then
|
||||
PROCESS_STATUS="✅ 运行中"
|
||||
else
|
||||
PROCESS_STATUS="❌ 未运行"
|
||||
fi
|
||||
|
||||
echo " $AGENT: $TASK_COUNT 个任务, $PROCESS_STATUS, 最后活动: $LAST_TIME"
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "🚀 快速命令:"
|
||||
echo " 创建任务: ./management/workflow/scripts/create_task_simple.sh \"任务描述\""
|
||||
echo " 分配任务: ./management/workflow/scripts/assign_task_simple.sh TASK-XXXX agent"
|
||||
echo " 启动监控: nohup ./management/workflow/scripts/agent_monitor.sh pangtong > pangtong.log 2>&1 &"
|
||||
echo " 查看日志: tail -f pangtong.log"
|
||||
echo ""
|
||||
echo "📁 Gitee仓库: https://gitee.com/cfdaily/sanguo_quant_live/tree/main/management"
|
||||
echo "========================================="
|
||||
@@ -1,16 +1,29 @@
|
||||
#!/bin/bash
|
||||
# 极简任务创建脚本
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
echo "使用方法: ./create_task_simple.sh \"任务描述\""
|
||||
echo "例如: ./create_task_simple.sh \"整合选股报告\""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
TASK_ID="TASK-$(date +%Y%m%d%H%M%S)"
|
||||
TASK_FILE="management/tasks/pending/${TASK_ID}.md"
|
||||
|
||||
echo "# 任务ID: $TASK_ID" > "$TASK_FILE"
|
||||
echo "# 状态: pending" >> "$TASK_FILE"
|
||||
echo "# 创建时间: $(date)" >> "$TASK_FILE"
|
||||
echo "# 创建时间: $(date '+%Y-%m-%d %H:%M:%S')" >> "$TASK_FILE"
|
||||
echo "# 负责人: " >> "$TASK_FILE"
|
||||
echo "" >> "$TASK_FILE"
|
||||
echo "## 任务需求" >> "$TASK_FILE"
|
||||
echo "## 任务需求" >> "$TASKASK_FILE"
|
||||
echo "$1" >> "$TASK_FILE"
|
||||
|
||||
echo "任务创建成功: $TASK_ID"
|
||||
echo "文件位置: $TASK_FILE"
|
||||
echo "任务内容: $1"
|
||||
echo "✅ 任务创建成功"
|
||||
echo "📋 任务ID: $TASK_ID"
|
||||
echo "📄 文件位置: $TASK_FILE"
|
||||
|
||||
echo ""
|
||||
echo "## 使用方法"
|
||||
echo "1. 主公创建任务: ./create_task_simple.sh \"任务描述\""
|
||||
echo "2. 诸葛亮分配任务: ./assign_task_simple.sh TASK-XXXX 负责人"
|
||||
echo "3. Agent自动接收并执行任务"
|
||||
Reference in New Issue
Block a user