精选·Coding Agent与AI编程

Claude Code 的架构是怎样的?它的 agent loop 是怎么工作的?

91学AI·2026/7/13·8 阅读

考察点

这道题出自 2026 年 AI 应用/Agent 岗位面经(javabetter 的 AI 编程专题直接问「请讲一下你在 AI 编程中的使用经验,比如 Claude Code」),一面二面都高频。面试官不是想听你夸工具好用,而是想确认你理解这类 CLI coding agent 的底层机制:loop 怎么转、工具怎么设计、上下文怎么管。追问通常往「context 爆了怎么办」「和 IDE 插件有什么区别」「死循环怎么防」走。

参考答案

Agent loop:一个 while 循环

Claude Code 的核心不是什么黑科技,就是一个经典的 agent loop:把当前对话状态(系统提示、工具定义、历史消息)发给模型,模型要么返回最终回复,要么返回一个或多个工具调用请求;runtime 执行这些工具,把结果作为 tool result 消息回灌给模型,然后进入下一轮。循环的退出条件是模型不再请求工具、直接给出面向用户的回复。

这个循环里最关键是「决策权在模型手里」。传统 IDE 插件是你问一句它答一句,流程由人驱动;Claude Code 是你给一个目标,它自己决定先读哪个文件、再搜什么关键词、然后改哪几行、最后跑测试验证。一个「修复登录接口 500 错误」的任务可能跑十几轮:Grep 找路由 → Read 看 handler → Bash 复现 → Edit 改代码 → Bash 跑测试,全部是模型自主编排的。

工具集:少而通用

Claude Code 的工具设计值得单独讲,因为它代表了一种哲学:不给模型几十个专用 API,而是给一组小而通用的原语——Read、Write、Edit、Bash、Grep、Glob 这类。文件系统和 shell 本身就是程序员最强大的工具,模型用这几个原语组合起来几乎能干所有事。专用 API 会过时、会覆盖不到场景,通用原语把组合空间留给了模型的推理能力。

有两个细节值得在面试里说。一是 Edit 工具要求先 Read 才能改,这是用工具约束防止模型盲改没看过的文件。二是工具结果有截断和分页策略,比如 Read 默认只读前两千行,防止一次把整个大文件灌进上下文。

上下文与记忆

长任务最大的敌人是上下文窗口。Claude Code 有几层机制应对:CLAUDE.md 作为项目级记忆,每次会话自动加载,团队可以把构建命令、代码规范、架构约定写进去,等于持久化的 system prompt;会话过长时触发 compaction,把早期对话压缩成摘要继续跑;还有子 agent 机制,把「搜一遍代码库找所有用法」这种会产生大量中间结果的活派给独立上下文的子 agent,主会话只拿回结论,避免污染主线上下文。

权限与安全边界

agent 能跑 Bash 就意味着能删库,所以权限设计是架构的一部分。Claude Code 有分级权限模式:只读操作自动放行,写文件、执行命令要用户确认,也可以配置允许清单;plan mode 下模型只能调研和出方案不能动手改;hooks 机制允许团队在工具调用前后挂自定义脚本做审计或拦截。面试时主动讲这一层,说明你不是只会用,还想过它怎么安全地进生产环境。

可能的追问

  • Agent 陷入死循环怎么办?——工程上加硬上限:最大轮次、最大 token 预算、超时中断;产品上权限确认本身就是人肉熔断,连续失败时用户能介入。
  • Session 太长挤爆 context 怎么办?——三层手段:压缩(compaction)、卸载(中间结果写文件只留路径)、隔离(子 agent 独立上下文),核心思想是上下文是稀缺资源,不是垃圾桶。
  • 和 Copilot 这类 IDE 插件的本质区别?——Copilot 是补全范式,人是主体;Claude Code 是 agent 范式,模型是主体,有工具、有循环、能跨多步自主完成任务。

评论 (0)

暂无评论,快来抢沙发吧!

91学AI

© 2026 91学AI · 按岗位学 AI 与大数据. All rights reserved.