1. AI 编程 Agent 为什么更容易"看起来卡住"
普通 AI 对话工具通常是这样的链路:
text
输入问题 -> 模型生成回答 -> 返回文本
而 AI 编程 Agent 的链路更长。一次看似简单的"帮我修复这个 bug",背后可能包含:
text
读取项目文件
分析目录结构
搜索相关代码
理解错误日志
调用模型
生成修改方案
写入文件
执行测试命令
读取测试结果
继续修改
再次验证
输出总结
所以用户看到终端里长时间没有输出时,不一定是 Agent 挂了。它可能正在:
- 扫描项目文件;
- 等待模型响应;
- 执行本地命令;
- 下载依赖;
- 跑测试;
- 读取大文件;
- 等待某个接口返回;
- 处理工具调用结果;
- 把修改应用到工作区。
这也是 Claude Code、Codex、Cursor Agent、GitHub Copilot Coding Agent 等工具和普通聊天工具最大的区别:它们是"会动手"的 Agent,而不是只返回文字的问答机器人。
2. 先判断卡在哪个阶段
排查 AI 编程 Agent,第一步不是重装工具,而是判断卡顿发生在哪个阶段。
可以用下面这张表快速分类:
| 卡顿阶段 | 常见表现 | 优先排查方向 |
|---|---|---|
| 启动阶段 | CLI 打开慢、登录失败、模型列表加载失败 | 账号、版本、终端环境、DNS/TLS |
| 项目读取阶段 | 进入项目后长时间分析、没有进入任务 | 项目体积、忽略目录、文件数量 |
| 模型响应阶段 | 提交任务后很久没有首字输出 | 模型队列、上下文长度、请求延迟 |
| 工具调用阶段 | Agent 执行命令后一直等待 | 本地命令、依赖下载、权限、路径 |
| 文件修改阶段 | 生成了方案,但写入或 patch 很慢 | 文件冲突、权限、工作区状态 |
| 测试验证阶段 | 改完后卡在 test、build、lint | 测试本身耗时、依赖环境、外部接口 |
| 结果回传阶段 | 执行完了但没有总结或中途断开 | 长连接稳定性、终端输出、请求超时 |
很多人会把所有问题都归结为"Claude Code 卡了"或"Codex 卡了",但真正有效的排查方式,是先定位它卡在启动、读取、生成、执行、写入还是验证阶段。
3. 先用一个空目录做最小化测试
不要一上来就在大型项目里排查。
建议先创建一个干净目录:
bash
mkdir agent-test
cd agent-test
创建一个简单文件:
bash
echo "function add(a, b) { return a + b }" > index.js
然后让 Claude Code 或 Codex 执行一个非常小的任务:
text
请阅读 index.js,并补充一个 subtract 函数。
观察它是否能完成:
- 读取文件;
- 理解任务;
- 生成修改;
- 写入文件;
- 输出说明。
如果空目录里很快,而真实项目里很慢,说明工具本身大概率可用,问题更可能在项目体积、上下文、依赖、测试脚本或工作区状态。
如果空目录里也很慢,再继续排查账号、CLI 版本、终端环境和网络链路。
4. 检查账号、模型权限和 CLI 版本
Claude Code、Codex 这类工具通常会依赖账号、模型权限、客户端版本和本地配置。
基础检查项包括:
- 当前登录账号是否正确;
- 模型权限是否可用;
- 是否存在额度或频率限制;
- CLI 或客户端版本是否过旧;
- 当前终端是否能正常访问配置目录;
- 环境变量是否被错误覆盖;
- 本地系统时间是否正常;
- 是否在公司设备、远程服务器、容器或 CI 环境中运行。
可以先做三件事:
text
1. 退出并重新登录账号
2. 升级到较新的 CLI 或客户端版本
3. 在空目录里跑一个最小任务
如果最小任务恢复正常,就不要继续在账号和工具安装层面反复折腾。
如果仍然异常,再进入下一层排查。
5. 大项目会显著拖慢 Agent 的上下文处理
AI 编程 Agent 的强项是理解上下文,但上下文不是越多越好。
一个典型项目可能包含:
- 源代码;
- 测试文件;
- 文档;
- 构建产物;
- 依赖目录;
- 日志;
- 临时文件;
- 二进制文件;
- 图片、视频、压缩包;
- 数据库文件;
- 生成的报告。
其中很多文件对当前任务没有帮助,却会增加搜索、索引和上下文筛选成本。
建议优先排除这些目录和文件类型:
text
node_modules/
dist/
build/
coverage/
.next/
.turbo/
.gradle/
target/
logs/
tmp/
*.zip
*.mp4
*.apk
*.sqlite
*.log
更重要的是,不要一开始就给 Agent 一个过大的任务。
不推荐:
text
帮我重构整个项目,并修复所有潜在问题。
更推荐:
text
只阅读 src/api/user.ts 和 src/services/auth.ts,
解释登录流程,并指出可能导致 token 失效的代码路径。
任务边界越清晰,Agent 越稳定。
6. 工具调用卡住,不一定是模型卡住
AI 编程 Agent 经常会调用本地工具。
比如:
rg搜索代码;git status查看工作区;npm test运行测试;pnpm install安装依赖;docker build构建镜像;python script.py执行脚本;curl请求接口;- 读取配置文件;
- 写入 patch。
如果某个命令本身很慢,Agent 看起来也会卡住。
例如 Agent 卡在:
bash
npm install
或者:
bash
docker build .
这时问题可能不是 Claude Code 或 Codex,而是依赖下载、构建脚本、本地环境、测试命令或外部接口太慢。
排查方法很简单:把 Agent 正在执行的命令复制出来,自己在终端里单独跑一次。
如果单独运行也慢,就说明瓶颈在命令本身。
如果单独运行很快,Agent 里很慢,再看工具权限、工作目录、环境变量和上下文交互。
7. 终端环境也会影响 AI Agent
Claude Code、Codex 通常运行在终端里,终端环境本身也会影响体验。
需要注意:
- PowerShell、bash、zsh、fish 的初始化脚本是否过慢;
- PATH 是否正确;
- Node、Python、Git、Docker 是否能正常运行;
- 当前目录是否有权限;
- 是否有安全软件拦截命令执行;
- 是否在网络盘、同步盘或权限受限目录;
- 是否存在超大的终端输出;
- 是否有命令等待用户交互输入。
一个很常见的问题是:Agent 执行了一个命令,但这个命令在等待用户确认。
比如:
text
Do you want to continue? [Y/n]
如果 Agent 没有正确处理这个交互,就会表现为"卡住"。
因此,对可能需要交互的命令,尽量改成非交互模式,或者提前在终端里确认命令行为。
8. 网络层重点看 DNS、TLS、HTTP 超时和长连接
当账号、项目、本地命令都排除后,就要看网络层。
AI 编程 Agent 的网络请求大致会经过:
text
DNS 解析 -> TCP 连接 -> TLS 握手 -> API 请求 -> 模型响应 -> 流式返回 -> 工具结果回传
常见网络层现象:
| 网络环节 | 异常表现 | 排查重点 |
|---|---|---|
| DNS 解析慢 | 首次请求慢、模型列表加载慢 | 域名解析耗时、解析稳定性 |
| TLS 握手异常 | 连接阶段超时或证书错误 | 系统时间、证书链、安全软件 |
| API 延迟高 | 提交任务后很久没有首字输出 | 请求体大小、模型响应、链路延迟 |
| 读取超时 | 已经连接,但等待结果过久 | 上下文长度、超时参数、任务复杂度 |
| 流式中断 | 输出到一半停止 | 长连接稳定性、丢包、抖动 |
| 多工具都慢 | GitHub、npm、Docker、AI 工具都慢 | 本地网络、DNS、出口稳定性 |
可以用一些简单命令做交叉测试。
测试仓库访问:
bash
git ls-remote <代码仓库地址>
测试依赖查询:
bash
npm view react version
测试基础 HTTP 响应:
bash
curl -I <需要测试的站点地址>
测试容器基础镜像:
bash
docker pull hello-world
如果这些命令也明显慢,就不要只盯着 AI Agent。问题可能在开发者网络链路、DNS、出口稳定性或本地环境配置上。
需要辅助排查 DNS、IP、延迟、WebRTC、端口和访问链路时,可以使用 稳如狗网络工具箱,先把基础网络状态看清楚,再继续定位 Claude Code、Codex 或其他开发工具的问题。
9. AI Agent 对长连接和稳定输出更敏感
普通命令行工具可能只需要请求一次接口,成功或失败都很明确。
AI 编程 Agent 不同,它可能需要长时间保持任务状态:
- 读取项目;
- 与模型多轮交互;
- 调用工具;
- 等待工具结果;
- 把结果重新交给模型;
- 继续修改代码;
- 再运行测试;
- 最后输出总结。
这个过程对长连接、终端输出和请求稳定性要求更高。
所以你可能会遇到:
text
前面能输出,后面突然没动静
已经执行命令,但结果没有返回给 Agent
模型生成到一半断了
工具调用完成,但 Agent 没有继续下一步
这类问题可以从两个方向排查:
- 工具是否真的执行完;
- 执行结果是否稳定返回给 Agent。
不要只看"有没有输出",还要看命令是否仍在运行、是否卡在交互输入、是否写入了过大的日志。
10. 把大任务拆成 Agent 能稳定执行的小任务
很多 AI Agent 卡顿,不是因为工具不行,而是任务描述太大。
例如:
text
帮我把这个项目整体优化一下。
这种任务对 Agent 来说范围太模糊。
更好的写法是:
text
请只查看 src/routes/user.ts 和 src/services/userService.ts,
找出登录接口返回 401 的可能原因。
先不要修改代码,只输出分析结论。
然后第二步再说:
text
根据上面的分析,只修改 src/services/userService.ts,
不要调整接口结构,不要改动无关文件。
第三步再说:
text
请运行相关测试,如果失败,只根据报错修复当前文件。
这种拆法有几个好处:
- Agent 不容易读太多无关文件;
- 工具调用次数更可控;
- 每一步失败都容易定位;
- 文件修改范围更清晰;
- 审查代码更轻松;
- 任务可以中断后继续。
AI Agent 越强,越需要工程化任务拆解。
11. 推荐排查流程
可以把 Claude Code / Codex 卡顿问题整理成这个流程:
text
第一步:在空目录里执行一个最小任务
第二步:确认账号、模型权限、额度和 CLI 版本
第三步:判断卡在启动、读取项目、模型响应、工具调用还是测试验证
第四步:如果只有大项目慢,排除依赖目录、构建产物、日志和大文件
第五步:把大任务拆成阅读、分析、修改、测试、总结几个小步骤
第六步:把 Agent 执行的本地命令单独运行一次
第七步:检查终端权限、PATH、环境变量和命令是否等待交互
第八步:测试 GitHub、npm、Docker、OpenAI API 等开发资源是否也慢
第九步:检查 DNS、TLS、HTTP 超时、长连接和网络抖动
第十步:最后再考虑重装工具或重置配置
这个顺序的原则是:先排除最容易验证的问题,再处理更复杂的网络和环境问题。
不要一开始就重装工具、删配置、换电脑。
这类操作成本高,而且经常解决不了真正的问题。
12. 常见误区
误区一:终端里没输出,就说明 Agent 死掉了
不一定。
它可能正在执行本地命令、等待测试结束、读取大文件,或者卡在某个需要交互输入的命令上。
误区二:模型回复慢,就一定是模型服务问题
不一定。
上下文过长、项目过大、网络抖动、本地命令慢、工具结果过大,都可能让模型阶段看起来很慢。
误区三:AI Agent 应该一次性解决整个项目
不现实。
一次任务范围越大,越容易慢、乱、失败。
更稳定的方式是:先分析,再修改;先小范围,再扩大范围;先跑局部测试,再跑全量测试。
误区四:所有问题都归因于网络
网络链路排查适合定位 DNS、TLS、连接超时、长连接不稳定等问题。
但它不能解决账号权限、项目结构混乱、测试脚本本身很慢、依赖冲突、提示词不清楚等问题。
13. 最后总结
Claude Code / Codex 使用卡顿,并不是一个单点问题。
它可能来自:
- 账号和模型权限;
- CLI 或客户端版本;
- 终端环境;
- PATH 和环境变量;
- 项目文件太多;
- 上下文过长;
- 工具调用等待;
- 本地命令执行慢;
- 测试和构建脚本耗时;
- DNS 和 TLS 异常;
- HTTP 请求超时;
- 长连接抖动;
- GitHub、npm、Docker、OpenAI API 等开发资源访问不稳定。
比较稳妥的排查方式,是先用空目录验证基础能力,再判断卡在哪个阶段;如果是项目问题,就缩小上下文;如果是命令问题,就单独运行命令;如果多个开发工具都慢,再去排查 DNS、TLS、连接稳定性和网络出口。
对开发者来说,AI 编程 Agent 的效率不只取决于模型能力,也取决于项目结构、任务拆解、本地环境和网络链路是否稳定。把这些基础层做好,Claude Code、Codex 这类工具才能真正变成可靠的开发助手。
参考资料
- 稳如狗帮助中心和技术博客:https://www.wenrugou.net/help.html