步骤4阶段1配置前确认报告

源文件:D:\Hermes\reports\步骤4阶段1配置前确认报告.md · 日期 2026-09-13 · 4KB

步骤4阶段1:配置前确认报告

时间: 2026-09-13 10:05
状态: ✅ 确认完成,等待用户确认配置


任务1:wrapper脚本行为确认 ✅

wrapper_alert_channel_health.py 代码

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sys
from pathlib import Path

sys.path.insert(0, str(Path(r"D:/Hermes/scripts").resolve()))
import alert_channel_health

if __name__ == "__main__":
    alert_count = alert_channel_health.run_monitoring()
    sys.exit(0 if alert_count == 0 else 1)

行为分析

项目 结果
是否有额外逻辑 NO — 仅导入并调用run_monitoring()
stdout输出内容 包含完整监控状态(任务列表、状态、告警数)
exit_code传递 正确 — alert_count=0→0, >0→1
TG推送来源 脚本内部send_tg()(带[OBSERVE]前缀)

典型stdout输出:

======================================================================
alert_channel_health.py 轮询监控
时间: 2026-09-13T10:01:17.181415
======================================================================

【jobs.json配置】
  路径: C:\Users\Admin\AppData\Local\hermes\cron\jobs.json
  任务数: 103
  注册任务: eval_pias_daily, ops_backup_daily, ...

【position_688306】(P0)
  状态: waiting
  连续失败: 0
  ℹ️ 不告警(waiting状态)

======================================================================
轮询完成: 发现0个告警
======================================================================

任务2:--deliver参数必要性判定 ✅

判定逻辑

条件 结果
wrapper stdout是否为空? NO — 包含完整状态
wrapper stdout是否包含告警内容? YES — "发现X个告警"
脚本是否已有TG推送? YES — send_tg()已实现

结论

┌──────────────────────────────────────────────────────────────────┐
│ 若配置 --deliver telegram:8673372605 → stdout会被发送两次:      │
│   1. 脚本内部send_tg()发送(带[OBSERVE]前缀)                    │
│   2. cron delivery发送stdout原始内容                             │
│                                                                  │
│ ⚠️ 重复通知风险:用户会收到两条相同告警                          │
└──────────────────────────────────────────────────────────────────┘

推荐配置

参数 推荐值 理由
--no-agent ✅ 纯脚本模式,无需LLM
--deliver ❌ 不配置 避免与send_tg()重复
--failure-deliver ✅ telegram:8673372605 仅失败时通过cron兜底

任务3:阶段1配置计划

项目 配置值
脚本路径 C:/Users/Admin/AppData/Local/hermes/scripts/wrapper_alert_channel_health.py
调度表达式 */15 * * * *
模式 --no-agent
交付 不配置(依赖脚本内部send_tg)
失败交付 --failure-deliver telegram:8673372605
名称 [OBSERVE] 通道健康监控

预计行为:
- 每15分钟执行一次
- 成功时无stdout输出(静默)
- 失败时输出状态+触发TG告警
- Hermes cron记录exit_code和last_status


任务4:配置后验证计划

验证项 预期结果
心跳文件写入 channel_health.json 每15分钟更新
TG通知 仅在发现告警时发送
重复通知 无(--deliver未配置)
日志记录 D:/Hermes/logs/alert_channel_health.log

回滚方案

# 禁用cron
hermes cron disable alert_channel_health_v1

# 恢复jobs.json
cp jobs.json.bak_20260913 jobs.json

# 删除wrapper脚本
rm "C:/Users/Admin/AppData/Local/hermes/scripts/wrapper_alert_channel_health.py"

请确认后再执行 hermes cron create 命令。