用途:当一个智能体运行时、工具进程、网关、调度器或其他服务产生大量日志、单纯 grep 已无法解释系统行为时,用该技能解析日志并生成结构化异常报告,适合调试会话或定时摘要。
主要能力:解析标准日志行(时间戳、级别、可选组件、消息),归一化重复消息,并按组件与工具聚合错误。检测项包括:错误聚类(同一归一化错误在时间窗内重复 3 次以上,URL/IP/数字替换为占位符)、限流命中(HTTP 429、rate limit、too many requests、quota exceeded 等,尽量按 provider 分组)、超时模式(timeout、timed out、deadline exceeded、connection timeout,按工具名分组)、工具失败、会话崩溃(fatal、未处理异常、堆栈跟踪、segfault 等,多行堆栈合并为一条)、组件级错误与警告统计、按小时分桶的错误时间线。
使用方式:进入技能目录后运行 scan 子命令扫描日志,例如 cd agent-ops/log-analyzer 后执行 python scripts/analyze_logs.py scan --log-file agent.log --since 24h。可用 --output 写出 JSON,再用 report 子命令渲染 Markdown:python scripts/analyze_logs.py report --scan scan.json --output report.md。tail 子命令提供带标记的智能尾部输出(警告、错误、重复错误用不同符号标记)。--quiet 为 cron 模式,无异常时不输出并以 0 退出。另有 state_failures.py 从 Hermes profile 的会话数据库读取结构化 exit_code 信号统计各工具失败率,例如 python scripts/state_failures.py --days 30 --json。
限制与注意事项:日志轮转可能使 --since 窗口遗漏早期失败;多行堆栈依赖首行,被剥离后剩余帧会变成非结构化上下文;预期错误(重试、探测、健康检查)可能被计为误报;历史大日志建议先用 --since 24h 逐步扩大;仅时间无日期的日志依赖扫描日期;带逗号毫秒的 Python logging 行不被内置时间戳正则匹配,会落入兜底逻辑导致 --since 失效;错误时间线按小时分桶、跨天会合并同小时数据;崩溃检测基于子串匹配,INFO 行中提及的异常词也会计入。该技能不是日志查看器、日志转发器、SIEM、实时监控或根因判定工具,只用于突出模式以加速排查。