feat: 更新工作流指南和核心脚本,完善任务管理系统

This commit is contained in:
cfdaily
2026-03-22 20:02:39 +08:00
parent e4209be84a
commit 6929cc1047
6 changed files with 394 additions and 25 deletions
+60
View File
@@ -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回复确认"
+51
View File
@@ -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自动接收并执行任务"