面试题索引:232 道源码级考点
汇总 22 个架构章节的 220 道复盘题,以及两篇工程方法章的 12 道检查题。按主题查找,每道题都能回到完整答案和源码出处。
先决定怎么读
Section titled “先决定怎么读”这页有四种用法:
- 按章顺刷:从第 1 章读到第 22 章,每章 10 道,越靠后题越深。
- 按主题切片:用下方「主题速查」表,找同一类问题在不同章节的角度。
- 当面试题库:表里的章节链接会直接落到对应附录,展开即可看到完整题目、答案和追问。
- 当自查 checklist:写 agent 遇到设计抉择,去对应章看那 10 道题对得上吗。
Agent 基础设计
Section titled “Agent 基础设计”主题:harness 定义、agent loop、context、tool、verifier。读完这 50 道,等于把 agent 基础设计的术语和取舍全过了一遍。
| 章节 | 主题 | 链接 |
|---|---|---|
| §1 | Agent Harness 定义、概念边界、四家场景选型 | 01 · 总览 |
| §2 | Agent loop 五段(perceive / plan / act / observe / verify)、turn 数据结构、prompt 装配、context 压缩、出错恢复、工具 dispatch、verifier | 02 · Agent Loop |
| §3 | Context 系统:四家从 markdown 到 10 层装配的全光谱;prefix cache 怎么保 | 03 · Context 系统 |
| §4 | Tool 系统:协议、注册、并行、安全门控 | 04 · Tool 系统 |
| §5 | Verifier:硬 / 软 / 放任型三层 + 停机检测 | 05 · Verifier |
Coding Agent 工程
Section titled “Coding Agent 工程”主题:coding agent 的真实工程细节,包括 patch 算法、shell 调用、git 工作流、code review 自动化。读完知道 coding agent 比聊天 agent 多哪些坑。
| 章节 | 主题 | 链接 |
|---|---|---|
| §6 | 文件编辑 + patch 算法:apply_patch V4A 多版本 diff merge | 06 · 文件编辑 patch |
| §7 | Shell 执行:execpolicy / sandbox / approval mode | 07 · Shell 执行 |
| §8 | Git 工作流:worktree / branch / commit 自动化 | 08 · Git 工作流 |
| §9 | Code review:/security-review + LLM-as-reviewer 模式 | 09 · Code Review |
并发与运行时
Section titled “并发与运行时”主题:subagent、session 生命周期、权限、sandbox、多渠道入口。这 50 道是让 agent 跑得稳的工程基础。
| 章节 | 主题 | 链接 |
|---|---|---|
| §10 | Subagent:fork / inline 边界、context 隔离 | 10 · Subagent |
| §11 | Session 生命周期:start / resume / interrupt / persist | 11 · Session 生命周期 |
| §12 | 权限与审批:AskForApproval 4 档 + autoMode rule + INSTALL_POLICY 12 格 | 12 · 权限审批 |
| §13 | Sandbox 执行:macOS seatbelt / Linux bwrap+seccomp+landlock / Windows | 13 · Sandbox 执行 |
| §14 | 多渠道入口:CLI / TUI / IDE / web / cron | 14 · 多渠道入口 |
演化、安全与长期运行
Section titled “演化、安全与长期运行”主题:可观测性、记忆、技能、定时任务、自我改进、安全、todo list、execution state surfaces。这 80 道是让 agent 长期跑下去且不被人薅的核心。
| 章节 | 主题 | 链接 |
|---|---|---|
| §15 | 可观测性与成本:token / latency / tool.loop 检测 | 15 · 可观测性与成本 |
| §16 | 记忆系统:4 种 MemoryType、frozen snapshot、decay、prefix cache | 16 · 记忆 |
| §17 | 技能系统:8 crate / skillify / skill-scanner / 12 格 trust matrix | 17 · 技能 |
| §18 | Cron 与后台任务:tick + scheduler lock + isolated-agent | 18 · Cron 后台任务 |
| §19 | 自我改进:Phase1+2 / skillify / 被动索引 / turn 内显式写 | 19 · 自我改进 |
| §20 | 安全:sandbox / external-content / redact / cosign provenance | 20 · 安全 |
| §21 | Todo List:update_plan / TodoWrite / runtime progress / compaction recovery | 21 · Todo List |
| §22 | Execution State Surfaces:Plan / Todo / tool progress / task progress / terminal status / away summary 路由 | 22 · Execution State Surfaces |
两篇工程方法章
Section titled “两篇工程方法章”主题:Loop Engineering 与 Graph Engineering 两个方法章的考点。不问四系统对照,问的是可迁移的方法:预算怎么设、边上带什么、防护栏放哪。基于 mini-swe-agent / smolagents / crewAI / 开源 Codex 的一手源码。
| 章节 | 主题 | 链接 |
|---|---|---|
| §23 | 循环工程:五部件、三维预算、grace call、错误分类、断路器、轨迹落盘、验证器硬度 | 23 · Loop Engineering |
| §24 | 图工程:四类节点、边五要素、权限只收窄、拆分决策、冻结演化、失控防护 | 24 · Graph Engineering |
按问题类型横着查
Section titled “按问题类型横着查”下面只重排 22 个架构章节里的 220 道题;两篇工程方法章的 12 道题单独列在上一节。同一个工程问题会在不同章节从不同角度出现,横着读最快。
四家术语对齐、边界划清。常见在「这两个概念有什么区别」「为什么这么分」。
| 出处 | 典型问题 |
|---|---|
| §1 Q1 | Agent Harness vs Agent 模型 |
| §2 Q1 | Agent loop 的「turn」是物理还是逻辑单位 |
| §4 Q1 | Tool / Function / Skill 三个词的边界 |
| §10 Q1 | Subagent / fork / inline 的差异 |
| §17 Q1 | Skill / prompt 模板 / tool / agent 的边界 |
| §18 Q1 | Cron job / background task / long-running task 的区别 |
| §21 Q1 | Todo list 和 Plan Mode 的边界 |
| §22 Q1 | Execution State Surface 和 Todo List 的边界 |
为什么 A 不选 B,给具体场景说服。常见在「为什么 Codex 用 X 而 Hermes 用 Y」。
| 出处 | 典型问题 |
|---|---|
| §2 Q4 / §3 Q6 | 何时用 prefix cache,何时直接重算 |
| §11 Q3 | session 持久化要不要做版本号 |
| §13 Q5 | sandbox 为什么不直接禁所有网络 |
| §15 Q4 | observability 数据怎么不撑爆磁盘 |
| §16 Q5 | memory 用 token 限制还是 char 限制 |
| §18 Q3 | cron 失败 auto-disable 还是 retry |
| §19 Q3 | OpenClaw halfLifeDays=30 怎么算 |
| §20 Q3 | fail_open 还是 fail_closed |
| §21 Q6 | 轻量 TodoWrite 还是 file-backed Tasks |
| §22 Q6 | 多通道 progress 为什么要 per-platform 配置 |
具体 API、数据结构、源码出处。常见在「这段代码为什么这么写」「实际跑起来怎么处理 X」。
| 出处 | 典型问题 |
|---|---|
| §2 Q7 / §6 Q4 | apply_patch V4A 多版本 diff merge 算法 |
| §3 Q8 | Hermes 10 层 prompt assembly 怎么排序 |
| §4 Q6 | dispatchToolUseBlocks 并行 dispatch 实现 |
| §5 Q5 | Codex goals.rs 怎么判断收敛 |
| §12 Q4 | AskForApproval 4 档怎么映射到 UI |
| §16 Q8 | Hermes _file_lock fcntl/msvcrt 跨平台 |
| §17 Q6 | Hermes 12 格 INSTALL_POLICY 怎么算 |
| §20 Q1 | OpenClaw 随机 8 字节 ID 包裹原理 |
| §21 Q8 | todo replace vs merge API 取舍 |
| §22 Q3 | MCP progress 和 tool result 的协议边界 |
注入 / 投毒 / 密钥 / 供应链。常见在「这个攻击怎么防」「为什么这么设计」。
| 出处 | 典型问题 |
|---|---|
| §12 Q9 | 用户密码不进 prompt 怎么实现 |
| §13 Q7 | sandbox 逃逸的常见路径 |
| §17 Q7 | OpenClaw skill-scanner 3 严重级 |
| §19 Q5 | Hermes 拦截 invisible unicode 的理由 |
| §19 Q10 | 6 层安全防护栈对应威胁 |
| §20 Q1 | external-content 随机 ID 防伪造 |
| §20 Q2 | tirith exit code 是真相源 |
| §20 Q5 | Codex memory prompt 显式 treat as data |
| §20 Q10 | 5 层通用安全防御栈 |
| §21 Q9 | todo 完成前为什么要 verification nudge |
| §22 Q8 | progress surface 为什么还需要 no-progress detector |
写自己的 agent 时具体怎么做。常见在「production 至少要哪些」「最小可行的实现是什么」。
| 出处 | 典型问题 |
|---|---|
| §1 Q9 | 什么场景不该用「重 harness」 |
| §5 Q10 | verifier 设计的 5 条铁律 |
| §10 Q10 | 通用 subagent 设计 checklist |
| §15 Q10 | observability 通用框架 |
| §16 Q10 | 通用 memory 架构 5 层 |
| §17 Q10 | 通用 skill 系统 6 层 |
| §18 Q10 | 通用 cron 系统 7 层 |
| §19 Q10 | 通用自我改进防御 6 层 |
| §20 Q10 | 通用安全防御 5 层 |
| §21 Q10 | 通用 todo/progress surface 最小 5 层 |
| §22 Q10 | execution-state router 最小字段 |
读完 220 道,下一步是把洞见沉淀成可复用的工程能力。两条路:
- 照着复刻:选一个章节的复刻方案,按步骤落地最小可行版本。
- 沉淀成 skill:用本站配套的
~/.claude/skills/build-your-own-agent/skill,把 220 道题归纳的最佳实践直接调出。详见各章末尾的<BuildRecipe />块。