Claude Code 面试题

5.9k 词

公开资料里更常见的是两类:一类是“AI 编程工具 / Agent 编程工具”的开放性面试题,另一类是围绕 Claude Code 官方能力、Agent Loop、权限、安全、MCP、Skills、Subagent 等机制的技术拆解。
(cnblogs.com) Anthropic 官方则把 Claude Code 定义为能读取代码库、跨文件修改、运行测试、提交代码的 agentic coding system。(Anthropic)

1. 你用过 Claude Code 吗?和 Cursor、网页 Claude、Copilot 有什么区别?

答题方向:

Claude Code 不是简单的代码补全工具,而是项目级 coding agent。Copilot 偏向 IDE 内补全,网页 Claude 偏向问答和代码片段生成,Cursor 更像 AI IDE,而 Claude Code 的核心特点是进入真实代码库,理解上下文,跨文件修改,运行命令,跑测试,再根据反馈迭代。Anthropic 官方也强调,Claude Code 和普通 completion tool 的区别在于:它会读取完整代码库、规划多文件改动、执行、运行测试并迭代失败结果。(Anthropic)

可以这样说:

我理解 Claude Code 的定位不是“帮我写一段代码”,而是“把一个开发任务交给 agent 去执行”。它的价值在于代码库级上下文、多文件修改、工具调用、测试反馈和安全权限控制。


2. Claude Code 的底层架构你怎么理解?

核心公式:

1
Claude Code = LLM + Agent Loop + Tool System + Context Management + Permission Control

答题方向:

Claude Code 的核心不是模型本身,而是把 LLM 包装成一个可执行系统。它通常包含:

1
2
3
4
5
6
7
8
用户目标
→ 上下文收集
→ 任务规划
→ 工具调用
→ 观察结果
→ 修改方案
→ 执行验证
→ 继续迭代

社区拆解中也经常把 Claude Code 总结成 LLM + Tool System + Task Graph + Agent Loop 这种结构。(腾讯云)

面试中可以说:

Claude Code 的本质是一个工程化 Agent Runtime。LLM 负责推理和决策,Tool System 负责真实执行,Context System 负责给模型提供项目上下文,Permission System 负责限制高风险操作。


3. 什么是 Agent Loop?Claude Code 为什么需要 Agent Loop?

标准回答:

Agent Loop 是 AI Agent 的主循环,基本形式是:

1
Think → Act → Observe → Reflect → Continue

在代码场景中就是:

1
2
3
4
5
6
7
8
分析需求
→ 读取文件
→ 生成修改方案
→ 调用编辑工具
→ 运行测试
→ 读取报错
→ 再次修改
→ 直到任务完成

Claude Code 的“agentic”含义就是系统不只是回答一次 prompt,而是朝着目标自主执行一系列动作。Anthropic 对 agentic system 的解释是:系统会读取代码库、规划行动、使用真实开发工具执行、评估结果并调整方法。(Anthropic)


4. Claude Code 的 Tool System 有什么作用?

答题方向:

LLM 本身不能真正改文件、跑命令、查 git、执行测试。它必须通过工具系统来操作外部世界。

典型工具包括:

1
2
3
4
5
6
7
8
Read File
Write / Edit File
Search / Grep
Bash
Git
Test Runner
MCP Tool
Web / Issue Tracker / CI Tool

Claude Code 可以通过 MCP 接入外部系统,例如 issue tracker、Sentry、数据库、Figma、Slack、Gmail 等,让 Claude 不再依赖用户手动复制信息,而是直接读取和操作外部工具。(Claude API Docs)

面试可以这样说:

Tool System 是 Agent 从“语言模型”变成“工程执行器”的关键。LLM 负责决定调用什么工具,工具负责执行真实动作,Observation 再反馈给模型进入下一轮决策。


5. Claude Code 如何做权限控制?为什么权限控制很重要?

高频,大厂很爱问。

Claude Code 默认采用较谨慎的权限模型。官方文档说明,Claude Code 支持细粒度权限规则,可以控制 agent 能访问什么、能执行什么;读文件通常不需要审批,但 bash 命令和文件修改需要审批。(Claude)

权限模式包括:

1
2
3
4
5
6
default:标准模式,敏感操作前询问
acceptEdits:自动接受部分文件编辑
plan:只分析不修改
auto:自动判断安全操作
dontAsk:除预批准外自动拒绝
bypassPermissions:跳过大部分权限提示,仅适合隔离环境

官方也明确提示,bypassPermissions 只能在容器或虚拟机这类隔离环境里使用。(Claude)

面试回答重点:

AI coding agent 最大风险不是写错代码,而是它能执行真实命令。所以权限系统要做到最小权限、敏感命令确认、危险路径限制、生产环境隔离、日志审计和人工 review。


6. Claude Code 如何防止误删文件、误操作生产环境?

答题方向:

要从三层讲:

1
2
3
4
5
6
7
8
第一层:权限层
危险命令需要确认,敏感工具默认拒绝或 ask。

第二层:环境层
在 sandbox、container、VM、staging 环境运行,不给生产权限。

第三层:流程层
所有改动走 git diff、测试、CI、code review,不允许 agent 直接操作生产。

Claude Code 官方安全文档提到,它默认是严格只读权限;需要编辑文件、运行测试、执行命令时会请求显式权限,用户负责 review 提议的代码和命令。(Claude)


7. Prompt Injection 在 Claude Code 场景下为什么更危险?

答题方向:

普通聊天里的 prompt injection 可能只是让模型回答错误;但 coding agent 接了文件系统、shell、数据库、MCP 后,prompt injection 可能诱导 agent 执行危险操作。

官方安全文档提到 Claude Code 会通过权限系统、上下文感知分析、输入清洗和命令 blocklist 来缓解 prompt injection,例如默认阻止一些从网络拉取任意内容的高风险命令。(Claude)

可以这样答:

Agent 接入工具越多,prompt injection 的攻击面越大。防护不能只靠模型“听话”,还要靠工具权限、沙箱、命令白名单、敏感数据隔离和人工审批。


8. CLAUDE.md 是什么?为什么大项目里很重要?

答题方向:

CLAUDE.md 可以理解为项目级长期上下文和工程规范文件。它可以写:

1
2
3
4
5
6
7
8
项目架构说明
编码规范
测试命令
禁止修改的目录
常见坑
PR 规范
部署流程
面试项目讲解逻辑

官方最佳实践文档说明,~/.claude/CLAUDE.md 可以作用于所有 session,项目根目录的 ./CLAUDE.md 可以提交到 git 中给团队共享,CLAUDE.local.md 可作为个人项目笔记并加入 .gitignore。(Claude)

面试回答:

CLAUDE.md 的价值是把隐性团队规范显式化,让 agent 每次进入项目时都能获得稳定上下文,减少随机发挥和风格漂移。


9. Claude Code 的 Skills 是什么?和普通 Prompt 有什么区别?

答题方向:

Skills 是把重复使用的流程、检查清单、操作规范沉淀成可复用能力。官方文档说明,Skills 可以通过 SKILL.md 定义,Claude 会在相关场景调用;当你反复复制同一套指令、checklist 或多步骤流程时,就适合做成 skill。(Claude API Docs)

例如:

1
2
3
4
5
6
code-review skill
security-audit skill
api-generator skill
bug-diagnosis skill
release-check skill
interview-summary skill

JavaGuide 的 AI 编程面试文章也提到 Skills 可以理解为把“能力”做成可复用、可调用、可组合的模块,并举了 code-review、security-audit 等例子。(cnblogs.com)


10. Subagent 是什么?什么时候需要多 Agent?

答题方向:

Subagent 是针对特定任务的专门 agent,比如:

1
2
3
4
5
6
Planner Agent:拆任务
Coder Agent:写代码
Reviewer Agent:审查代码
Tester Agent:补测试
Security Agent:查安全风险
Doc Agent:写文档

Claude Code 官方文档说明,可以创建自定义 subagent,并配置 prompt、工具限制、权限模式、hooks 和 skills;subagent 可以用于代码审查、复杂研究、多步骤操作等。(Claude API Docs)

面试可以这样答:

单 Agent 容易上下文混杂,多 Agent 的价值是职责隔离。复杂工程任务可以拆成 planner、coder、reviewer、tester,让每个 agent 只关注一个目标,降低上下文污染和错误传播。


11. MCP 是什么?Claude Code 为什么需要 MCP?

答题方向:

MCP,全称 Model Context Protocol,可以理解为 AI 工具接入外部系统的协议。Claude Code 通过 MCP 接入数据库、监控平台、issue 系统、设计工具、Slack 等。

官方文档举例:Claude Code 可以通过 MCP 根据 JIRA issue 实现功能、查看 Sentry/Statsig 数据、查询 PostgreSQL、根据 Figma 更新邮件模板,甚至自动创建 Gmail 草稿。(Claude API Docs)

面试回答:

MCP 解决的是“模型如何安全、标准化地连接外部工具”的问题。没有 MCP,用户需要复制粘贴上下文;有了 MCP,agent 可以直接读取和操作真实系统。


12. Claude Code 怎么接入 CI/CD 或 GitHub Actions?

答题方向:

Claude Code 可以接入 GitHub Actions,用于 issue 响应、PR 创建、代码修改、CI 修复等。官方文档说明 Claude GitHub app 需要 repository 的 Contents、Issues、Pull requests 的读写权限。(Claude API Docs)

企业环境下也可以通过 Amazon Bedrock 或 Google Vertex AI 使用 Claude Code GitHub Actions,以便控制数据驻留和计费。(Claude API Docs)

面试回答:

在企业里不能让 agent 直接无约束提交代码。更合理的方式是让它基于 issue 创建 PR,跑 CI,附带测试结果和变更说明,最后由人 review 后 merge。


二、场景题:大厂更喜欢这样问

题 1:你让 Claude Code 修改一个支付模块,它给出一个看似正确的方案,你怎么保证不会出事故?

回答框架:

1
2
3
4
5
6
7
8
1. 先进入 plan mode,只允许分析,不允许修改。
2. 要求它输出影响范围:接口、数据库、日志、幂等、事务、回滚。
3. 只允许在 feature branch 修改。
4. 查看 git diff。
5. 补单元测试、集成测试、边界测试。
6. 跑 CI。
7. 人工 review 关键逻辑。
8. 灰度发布,保留 rollback。

题 2:Claude Code 生成的代码能不能直接上线?

标准回答:

不能。Claude Code 可以提升开发效率,但不能替代工程质量控制。AI 生成代码必须经过:

1
2
3
4
5
6
7
8
人工 Review
测试验证
静态扫描
安全检查
性能评估
CI/CD
灰度发布
线上监控

JavaGuide 的面试文章也强调,AI 生成代码之后必须人工 Review,关键逻辑必要时自己重写,核心路径必须做压测和边界测试。(cnblogs.com)


题 3:AI Coding Agent 会不会淘汰初级程序员?

建议回答:

不会简单淘汰,但会改变初级程序员的能力要求。以前初级程序员的价值是“按需求写代码”,以后更重要的是:

1
2
3
4
5
6
7
理解需求
拆解任务
设计模块边界
验证 AI 输出
写测试
定位问题
维护工程规范

可以说:

AI 会降低写代码的门槛,但会提高工程判断的门槛。不会用 AI 的初级程序员会被替代,会用 AI 但不懂工程的人也不稳定,真正有竞争力的是能驾驭 agent 的工程师。


题 4:如果 Claude Code 卡在一个 bug 上反复修改,怎么办?

回答方向:

1
2
3
4
5
6
7
1. 停止让它盲目继续。
2. 要求它总结当前假设、已尝试方案、失败原因。
3. 缩小复现 case。
4. 单独跑最小测试。
5. 查看最近 diff,回滚无效修改。
6. 让它换策略:从日志、调用链、数据输入、依赖版本分别排查。
7. 必要时人工接管核心判断。

题 5:如何评价 Claude Code 对团队研发流程的影响?

回答方向:

可以从三点讲:

1
2
3
4
5
6
7
8
效率提升:
读代码、修 bug、补测试、写文档、迁移代码更快。

角色变化:
工程师从手写代码转向架构设计、任务拆解、review 和 orchestration。

风险增加:
权限误用、上下文污染、错误提交、prompt injection、过度依赖。

Anthropic 官方产品页也提到,工程师会更关注架构、产品思考和持续编排多个 agent,而不是只写每一行代码。(Anthropic)


三、进阶八股:如果面试官往底层挖

1. Claude Code 和 ReAct 有什么关系?

Claude Code 的主循环可以类比 ReAct:

1
Reasoning → Action → Observation

但工程上多了:

1
2
3
4
5
6
7
8
权限系统
上下文压缩
工具 schema
错误恢复
任务状态
文件系统记忆
CI 验证
人工审批

2. 为什么不能把所有上下文都塞进 Prompt?

因为会导致:

1
2
3
4
5
token 成本高
噪声变多
注意力分散
旧信息误导模型
上下文污染

更好的方式是:

1
2
3
4
5
长期规则放 CLAUDE.md
流程能力放 Skills
任务状态放 progress / TODO
代码上下文按需检索
历史会话定期 compact

3. Claude Code 的核心风险有哪些?

可以按这个顺序答:

1
2
3
4
5
6
7
1. 幻觉:生成不存在的 API 或错误逻辑。
2. 权限风险:执行危险命令。
3. 上下文污染:被旧代码或错误文档误导。
4. Prompt Injection:外部文件诱导 agent 忽略规则。
5. 供应链风险:引入恶意依赖。
6. 数据泄露:读取或上传敏感文件。
7. 过度自动化:人类失去 review 能力。

官方安全文档也明确说,Claude Code 只拥有用户授予的权限,用户需要负责审查代码和命令安全。(Claude)