面试官问你:“说说 Agent 是如何工作的?”如果你回答“就是一个 while 循环,调模型、调工具、再调模型”,那恭喜你,这道送分题你又没把握住,呜呜呜。
为什么?
因为 Agent 的工作流程,远不止“调模型、调工具”这么简单。

哈喽大家好,我是二哥呀。今天用 3 分钟,带你走一遍 Agent 处理请求的完整流程。
面试官问这道题主要考察两个层面:第一,Agent 处理请求的全流程你能不能说清楚;第二,循环之间那些隐藏的工作你知不知道。
好,接下来给你满分回答,照着背就完事了。用一个真实场景来带你过一遍。
你跟 Claude Code 说:“线上用户反馈下单接口报 500,错误是今天上午开始出现的,昨晚上线了一版用户模块的重构代码,你帮我排查一下原因,找到 bug 修复掉,然后跑一遍测试确认没问题。”
第一步,组装上下文。你的消息到达后,Agent 不是直接扔给模型,而是先组装一个完整的输入:系统提示词、工具定义列表、CLAUDE.md 里的项目规范、对话历史,最后才是你的消息。这些拼在一起,才是模型真正看到的东西。
第二步,调用模型。模型拿到上下文开始推理,返回结果。这里有个关键信号——stop_reason。如果是 tool_use,说明模型要调工具,循环继续;如果是 end_turn,任务完成,循环结束。第一次,模型会返回 tool_use:调 Bash 工具,跑 grep 搜错误日志。
第三步,执行工具。Agent 拿到 tool_calls,先检查权限,通过后执行 grep,拿到结果:NullPointerException,UserService 第 42 行。
第四步,注入结果。日志包装成 tool_result 消息,追加到对话历史。模型下一轮就能看到这条真实数据。
然后循环继续。模型看到日志,调 Read 读源码;发现第 42 行没做空指针检查,调 Edit 加上判空;改完调 Bash 跑 mvn test,测试通过。模型返回 end_turn,输出修复总结,循环结束。
四轮调用、四次工具执行。在这个过程中 Agent 还会默默干点其他的活,比如:对话太长就进行摘要压缩,工具报错就注入错误信息让模型自己调整。
面试官如果继续追问:“不同 Agent 的工作流程一样吗?”
告诉他——核心逻辑都一样。不管是 Claude Code 这种终端 Agent、还是 Codex 这种桌面Agent、再或者是 LangGraph 这种框架,都是一样的,用 while 循环进行ReAct。差异在 Harness 层:权限管理、上下文压缩、错误恢复,这才是各个 Agent 的护城河。
最后送大家一句口诀,Agent 的工作流程是这样的,组装上下文,调模型看信号;tool_use 就继续,end_turn 就收工。
这道题你学废了吗?想解锁更多 Agent 面试题的源码级拆解,点赞关注,我是二哥,下期见!
回复