Skip to content

Ctrl+C 无法中断 Gemini CLI 正在执行的 Agent 任务

问题

在 Gemini CLI 中,当 Agent 正在运行(执行 Shell 命令、写文件、调用工具等)时,按 Ctrl+C 无效,任务仍然继续运行。这与大多数终端程序的中断行为不一致,让用户困惑。

解决方案

使用 ESC 键中断

ESC 键即可中断当前 Agent 任务,Gemini CLI 会在当前工具调用完成后停止执行并返回输入提示符。

这是 Gemini CLI 的设计行为:Ctrl+C 用于退出整个 CLI 会话,ESC 用于中断当前 Agent 任务(类似"取消当前操作"而非"退出程序")。

在 Plan Mode 下操作以减少误操作需求

如果你频繁需要中断是因为 Agent 做了你不期望的事,建议先用 Plan Mode(/plan) 让 Agent 输出执行计划,确认无误后再执行:

/plan

Plan Mode 下 Agent 会先展示计划步骤,你可以修改或取消,避免意外操作后再靠中断补救。

常见问题

Q: 按 ESC 后任务立刻停止吗?

A: 不是立刻停止。ESC 发出中断信号后,Gemini CLI 会等当前工具调用(如 Shell 命令)完成,然后才停止后续步骤。正在写的文件会完成本次写入。

Q: 为什么 Ctrl+C 不中断任务?

A: 这是设计行为。Gemini CLI 将 Ctrl+C 保留给退出整个会话,使用 ESC 作为任务中断键,与终端其他程序的习惯有所不同,官方 issue #973 中有记录。

Q: 中断后 Agent 还能继续未完成的任务吗?

A: 可以。中断后你可以重新描述需求,Agent 会从头开始;也可以用 /rewind 回退到中断前的状态重新规划。