[agentrx-optimizer] Daily Workflow Optimization - 2026-11-12
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 新手友好度
- 74/100
- Issue 类型
- 缺陷
- 描述清晰度
- 描述清楚
- 活跃度
- 活跃
- 技术栈
- github-actions, javascript
- 领域
- ci-cd, observability
调研方向
阅读.github/workflows/auditor.md中约第226–245行、“Collect health failures, cached logs and bounded audits”步骤里的嵌入式 JavaScript;重点关注发现结果的验证和检查点处理。Issue 给出了失败结果,以及对reason: "time_budget"预期的行为。使用gh aw compile或make recompile重新编译,然后检查此部分结果是否会推进或记录检查点,而不是抛出异常;接下来按计划运行的 Auditor 是指定的验证方式。
由索引模型根据 Issue 内容生成。
描述
Executive Summary
AgentRx analyzed the trailing ~24h of github/gh-aw scheduled-workflow runs (256 runs total; 52 unique failed) using the pre-downloaded log bundle plus one targeted audit call. The largest failure_boundary cluster (as opposed to generic conclusion/"Handle agent failure" aftermath noise) is a 100%-reproducible, self-inflicted crash in the Auditor workflow's failure-evidence collector: every one of the 9 observed scheduled runs in the window failed at the identical step, after the identical ~300s delay, with the identical error. Root cause was traced to the exact source line.
AgentRx Evidence
- Critical step:
Collect failure evidencejob →Collect health failures, cached logs and bounded auditsstep, in workflowAuditor(.github/workflows/auditor.lock.yml, source.github/workflows/auditor.md) - Failure category:
driver_exit— an unhandled script error from an overly strict result-validation guard, not an agent/LLM reasoning failure - Frequency / impact: cluster
failure-a7fc54d02b71f423, 9 of 9 observed scheduled "Auditor" runs between 2026-11-11T21:00Z and 2026-11-12T04:28Z failed at this exact step. 8/9 failed at 300-301s (hard time-budget ceiling); 1/9 failed earlier at 203s. This is afailure_boundarysignal (the point of failure), distinct from — and much higher-impact than — the genericconclusion/"Handle agent failure" aftermath cluster (22+9 runs, which are downstream symptoms of various upstream failures, not a distinct root cause). - Representative run IDs: §43155049221 (fully audited), §43099392497, §43103263034, §43112055596, §43120030767, §43129563405, §43134662425, §43141804956, §43148563539
Exact error (from the audit tool and raw step log of §43155049221):
##[error]Unhandled error: Error: Incomplete or invalid health discovery; checkpoint unchanged: {"partial":true,"reason":"time_budget","failure_listing_complete":false,"failure_pass_complete":false,"workflows_array":true}
AgentRx Artifacts
IR summary: Built trajectory.json directly from compact per-run metadata (run_summary.json/audit output, no raw log text) for 10 runs — the 9 Auditor cluster members plus 1 diversity run (Daily Model Inventory Checker, run §43123321594, a different failure_boundary cluster). The IR stage normally defaults to an LLM-based converter (copilot CLI) for unrecognized domains; that path errored with No authentication information found (no GH_TOKEN/COPILOT_GITHUB_TOKEN in this sandbox). The hand-built IR already matched AgentRx's canonical schema (trajectory_id/instruction/steps[].substeps[].{sub_index,role,content}), so it was seeded directly into trajectory_ir.json and the pipeline resumed from static.
Invariant/checker highlights: static and dynamic invariant generation both require the same LLM endpoint and failed identically (Static invariants JSON parse failed: Expecting value / empty LLM response). Re-ran check with --skip-static --skip-dynamic: it executed deterministically across all 10 trajectories but surfaced 0 violations, because there were no generated invariants to check against — this is an artifact of the missing LLM endpoint, not evidence that the runs were healthy.
Judge classification output: The judge stage (LLM-as-judge root-cause classification) attempted all 10 trajectories but errored after 3 retries per task with Empty response from LLM; only 1/10 tasks produced a (empty) record (num_judges: 0, failures: []). No automated root-cause category was produced.
Known limitations: This sandbox has no copilot CLI authentication, so every LLM-backed AgentRx stage (ir domain-conversion, static, dynamic, judge) is blocked — consistent with the task's documented fallback: continue with completed artifacts (ir, check with empty invariants) and ground the recommendation in direct evidence instead. That direct evidence came from the audit MCP tool's errors[] field plus a targeted grep of the downloaded step log (workflow-logs/5_Collect failure evidence.txt) and the matching source line in .github/workflows/auditor.md.
Classification
| violation | evidence | fix_type | rationale |
|---|---|---|---|
Collect failure evidence job throws a fatal, checkpoint-discarding error whenever gh aw health returns a legitimate partial:true, reason:"time_budget" result |
9/9 Auditor runs in window fail identically at ~300s with Incomplete or invalid health discovery; checkpoint unchanged: {"reason":"time_budget",...}; guard code at .github/workflows/auditor.md:234-239 only accepts reason === 'failure_listing_limit' as a recoverable partial state |
improving retry/backoff strategy | The checkpoint/retry mechanism exists precisely to make incremental progress across bounded time budgets, but its allow-list omits the one partial reason (time_budget) that gh aw health's own --timeout 300s flag is documented to produce, turning an expected degraded result into a 100%-reproducible hard failure instead of a checkpointed retry |
Generic conclusion/"Handle agent failure" aftermath (clusters failure-e121990520ae929c, failure-4760d85475e78892, 22+9 runs) |
signal_role: aftermath, spans many unrelated workflows/engines |
(excluded — symptom, not boundary) | Per guidance, aftermath signals describe downstream symptoms of the upstream failures already covered by other failure_boundary clusters; not a distinct, actionable root cause |
Recommended Optimization
- Change: In
.github/workflows/auditor.md(~lines 226-245, embedded JS in the "Collect health failures, cached logs and bounded audits" step), extend the discovery-validation guard to also acceptdiscovery.partial === true && discovery.reason === 'time_budget'as a valid partial state (alongside the existing'failure_listing_limit'), and persist a checkpoint/sampling-gap for whatever was collected before the time budget was hit, instead of throwing an unhandled error that leaves the checkpoint unchanged. - Why highest impact: This is the single largest
failure_boundarycluster in the window (9 runs, 100% of this workflow's observed scheduled invocations), it's fully reproducible and root-caused to one specific line, and it blocks the Auditor's own purpose (producing fleet health/audit data) — meaning it's actively degrading the same observability pipeline this AgentRx optimizer depends on. - Where to implement:
.github/workflows/auditor.mdlines ~226-245 → recompile to.github/workflows/auditor.lock.ymlviagh aw compile/make recompile.
Validation Plan
- After merging the fix and recompiling the lock file, watch the next several scheduled
Auditorruns. - Success: the
Collect failure evidencejob no longer fails withIncomplete or invalid health discoverywhengh aw healthreportsreason:"time_budget"; the step either completes successfully with a saved checkpoint, or at minimum advances/records the checkpoint instead of leaving it unchanged. - Expected metric change:
Auditorfailure rate for this step drops from 9/9 (100%) in a comparable ~7h window to 0, and step durations should stop clustering at exactly 300-301s paired with a hard error.
References
- §43155049221 — fully audited representative failure
- §43148563539 — most recent prior cluster member
- §43099392497 — earliest cluster member in window
Generated by ⚡ Daily AgentRx Trace Optimizer · claude · agent · ~159 AIC · ⌖ ~1 AIC · ⊞ 4.4K · ◷
- expires on Nov 18, 2026, 9:47 PM UTC-08:00
- 主要语言
- Go
- 星标
- 5.6k
- 派生
- 625
- 平均合并
- 5 小时 39 分钟
- 30 天内合并 PR
- 796
环境准备
在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。
- 提供 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
github/gh-aw 的其他 Issue
-
agent-research cookie
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
Protected session capture: `Parse agent logs for step summary` fails when the engine step never ran未关闭ai-inspected
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
awf community
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
automation cli-tools testing
难度 1/5 1-3 小时 新手友好度 68/100
维护者通常 1 天内回复
-
Pi on arc-dind: an aliased model reaches pi empty (`Model "aw-gateway/" not found`)可能已有人在做 @pelikhan 于 15 天前认领。 未关闭ai-inspected community
难度 2/5 1-3 小时 新手友好度 83/100
github/gh-aw#72530 · 1 个 reaction · 已指派 2 人 ·
维护者通常 1 天内回复
相似的 Issue
-
type:bug
难度 2/5 1-3 小时 新手友好度 72/100
nightgauge/nightgauge#3266 ·
维护者通常 1 天内回复
-
area: ai-models priority: normal
难度 2/5 1-3 小时 新手友好度 68/100
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 85/100
prime-radiant-inc/evener#6325 ·
维护者通常 1 天内回复
-
team:library-maintainers
难度 2/5 1-3 小时 新手友好度 82/100
padok-team/burrito#1208 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 62/100
bazel-contrib/rules_go#4784 · 1 条评论 ·
维护者通常 1 天内回复