Autopilot infinite loop on externally blocked task
- 主要语言
- Shell
- 星标
- 11.2k
- 派生
- 1.9k
- 平均合并
- 14 小时 16 分钟
- 30 天内合并 PR
- 6
描述
### Describe the bug
When the agent was blocked on a prerequisite it couldn't satisfy, autopilot mode kept relaunching it indefinitely, consuming one premium request per iteration despite the agent explicitly stating it could not proceed. The loop only stopped when quota was exhausted.
This is the same root cause as #1532, #1523, #1540, and #1616.
### Affected version
GitHub Copilot CLI 1.0.35 (currently on 1.0.36 - bug occurred on 1.0.35)
Model: GPT-5.4 (Reasoning effort: high)
### Steps to reproduce the behavior
1. Started Copilot CLI session in autopilot mode on a Hyper-V Windows VM.
2. Task included a hard prerequisite that could not be satisfied
on the VM (`powercfg /a` reports no available sleep states).
3. Agent correctly identified the external blocker and stated
"I am not calling task_complete because the task is still incomplete
and externally blocked."
4. Despite this explicit verbal signal, autopilot mode continued
relaunching the agent, consuming 1 premium request per iteration.
5. Loop persisted through automatic conversation compaction.
6. Loop only stopped when quota hit zero (`402 You have no quota`).
### Expected behavior
When the agent verbally states it cannot/will not call `task_complete`
because the task is externally blocked, autopilot should:
- detect the verbal completion signal,
- surface the blocker to the user,
- stop the loop without consuming further premium requests.
### Additional context
Approximately 50 identical "Continuing autonomously (1 premium request)"
iterations occurred over the session. Condensed below:
"[Iteration 1]
● Continuing autonomously (1 premium request)
● I'm still blocked by the same external prerequisite.
The task remains incomplete because the current prompt.md still requires
a real tray Sleep -> wake validation [...]
I am not calling task_complete because the required real-machine
validation is still outstanding.
[Iteration 2]
● Continuing autonomously (1 premium request)
● Still blocked externally. [...identical content variants...]
I am not calling task_complete because the task is still incomplete.
[... ~50 IDENTICAL ITERATIONS OMITTED — agent reformulating the same
"externally blocked + cannot call task_complete" message every 30 seconds,
each consuming 1 premium request ...]
[Compaction event - mid-session]
● Compacting conversation history...
● Continuing autonomously (1 premium request)
[loop continued unchanged after compaction]
[Session limit warning]
! You've used over 50% of your session usage limit. Your limit resets in 3 hours.
[Weekly limit warning]
! You've used over 50% of your weekly usage limit. Your limit resets on Apr 27 at 2 AM.
[Final iteration before quota exhaustion]
● Continuing autonomously (1 premium request)
✗ 402 You have no quota (Request ID: E07E:13072B:981D7C:A6A1B0:69EB9CA5)"
## Quota damage
Burned remaining session quota AND >50% of weekly quota (visible in both
warning banners shown during the loop). Final stop forced by 402 error,
not user action.
Final Request ID at quota exhaustion: `E07E:13072B:981D7C:A6A1B0:69EB9CA5`
## Quota restoration request
Per precedent on #1532, #1540, and #1616, kindly request restoration of
the premium requests burned by this loop. The agent's repeated explicit
acknowledgment that it could not satisfy the prompt requirement is
documented evidence that no productive work was performed.
Thank you.
贡献指南
调研方向
首先跟踪 autopilot 循环及其对 agent 的 task_complete 响应的处理,然后查看相关 issue #1532、#1523、#1540 和 #1616。复现前置条件被外部阻塞的场景,并验证 autopilot 会呈现阻塞原因并停止,而不会再发起一次 premium 请求,即使是在 conversation compaction 之后。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- github, shell
- 领域
- cli
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 冷清
- 描述清晰度
- 描述清楚
- 新手友好度
- 45/100