Agent面试题-记忆治理-上下文-多Agent协作与工程落地

完整面试题内容下载链接:https://pan.quark.cn/s/bb15fae7b82a

Agent / Coding Agent 面试八股文详细版:新人学习 + 面试背诵稿

适用场景:Agent、Coding Agent、AI Native 工程岗位面试。

目标:不是只给"标准答案",而是把每个答案背后的知识点讲清楚,让你可以一边背面试稿,一边反向学习 Agent 系统设计。

使用方式:先看下面的面试题清单,再看"猫猫项目是什么",然后按题号跳到对应章节。每个问题建议按"30 秒版 → 2 分钟版 → 追问防守"逐层准备。


面试题清单

详细机制都在后面。先对上题目,再跳到对应节。

  1. Agent 是什么?它和聊天机器人有什么区别?见第 1 节。
  2. Harness、Tool Call、MCP、A2A 分别是什么?MCP 和 A2A 怎么区分?见第 2 节。
  3. 记忆权威是什么?低权威记忆怎样才能变成架构决策?重复出现算不算?见第 3 节。
  4. 记忆冲突怎么合并?新指令能不能压过安全策略和已确认的 ADR?见第 4 节。
  5. Memory 和 RAG 有什么区别?向量能不能判断权威?见第 5 节。
  6. Session 和记忆怎么隔离?用户说「参考之前那个项目」怎么办?见第 6 节。
  7. 单只 Agent 的上下文怎么排?为什么高约束放开头、当前目标放末尾?见第 7 节。
  8. 多只 Agent 互相能看见什么?沉默很久的角色被叫起来,怎么恢复上下文?见第 8 节。
  9. 长任务只在结束时做摘要,过程中会不会失忆?压缩丢了细节怎么办?见第 9 节。
  10. 怎么保证目标不漂移?没有强状态机时,任务流转靠什么卡住?见第 10 节。
  11. 什么时候拉一只新的 Agent?为什么不一律用一个强模型做完?见第 11 节。
  12. 多 Agent 协作有哪些坑?两只 Agent 聊起来停不下来怎么办?见第 12 节。
  13. 子 Agent 产生幻觉怎么办?它说「测试通过了」能不能信?见第 13 节。
  14. 主子结构、Agent 团队、共享状态、A2A 是不是一层东西?见第 14 节。
  15. 为什么不直接调裸 API,而用 Claude Code 这类执行器?这算不算套壳?见第 15 节。
  16. 工具调用不准,尤其是较弱模型,怎么从 harness 侧修?见第 16 节。
  17. git worktree 和云端沙箱怎么隔离?一人一个常驻环境成本太高怎么办?见第 17 节。
  18. 对接飞书、GitHub 时,凭证为什么不能给模型看?见第 18 节。
  19. Agent 如何自进化?Skill 怎么写?怎样把 10 步收成 5 步?见第 19 节。
  20. Eval 和不同模型的 ROI 怎么评?思考档位要不要交给用户选?见第 20 节。
  21. 企业级、多租户、记忆不上云,分别要补什么?见第 21 节。
  22. 用这套系统做一次开发,存量项目怎么接入?怎么防止旧功能被改坏?见第 22 节。
  23. 换国产或较弱模型时,harness 要改什么?和 Claude Code、OpenClaw、开放运行时怎么区分?见第 23 节。
  24. 一个会话里从原神聊到崩铁,上下文怎么接?生成图片或视频很慢,怎么减少等待?见第 24 节。

0. 猫猫项目是什么

后文里的「猫」不是比喻,是这个项目里的叫法。一只猫 = 一个有角色、有权限、有边界的 Agent。 猫猫是你自己做的多 Agent 工作系统,用来回答面试里的「你的项目怎么落地」。

它不是一个聊天窗口,也不是把用户的话原样转给 Claude Code 或 Codex。底层可以接这些现成的编码执行器,上面自己做一层 harness:长任务怎么拆、谁来做、做到哪了、能不能做、做错了怎么停、经验怎么留下。

四块设计,面试时按这个顺序讲:

块 在猫猫里是什么 后文对应
多只猫协作 主猫拿着目标和验收标准,按需要拉需求猫、代码猫、执行猫、测试猫、复核猫。交接是任务包,不是群聊 第 8、11、12、13 节
记忆和上下文 这一轮看得见的内容、这次任务的计划、项目事实、已确认的决策、安全规则分开存,避免闲聊变成架构决定 第 3 到 9 节
工具和权限 每次调用先过权限、预算和风险;改代码在独立 worktree 里,密钥不进模型 第 16 到 18 节
记录、评测、技能 每次运行留下 trace;失败归类后写成 skill 或规则;固定任务集通过才灰度 第 19、20 节

角色就这几个,看到名字对上号即可:

  • 主猫:调度者。持有目标、预算和停止权,决定拉不拉新猫,验收后才把结论写进共享状态。
  • 需求猫:把一句需求收成目标、非目标、验收标准。
  • 代码猫:先在仓库里定位,再给方案,不负责直接改主分支。
  • 执行猫:在自己的 worktree 里改代码。
  • 测试猫:看影响面、补测试、解释失败是不是这次 diff 造成的。
  • 复核猫:只读。看 diff 和证据,不听另一只猫的自信表述。

共享状态是这些猫共用的任务账本:谁在改哪个文件、决定了什么、产物在哪、测试跑过没有。一只猫默认看不到另一只猫的完整对话。

后文反复用的例子,就是猫猫接了一个小需求:登录失败不要只显示「出错了」,按错误码展示具体文案。 需求猫先划定「不改后端错误码、不重构登录页」,代码猫定位 Login.tsx 和文案文件,执行猫在独立工作区改映射,测试猫跑回归,主猫核对运行时记下的测试结果,通过才算完成。

三十秒可以这样开场:

猫猫是我做的多 Agent 工作系统,解决长程研发任务里的上下文、记忆、协作和权限。一只猫是一个有角色的 Agent。主猫拿验收标准,子猫只拿任务包,产物要有工具证据才写入共享状态。底层可以接现成的编码执行器,我做的是上面的编排、记忆治理和评测。


0. 怎么用这份文档

这份文档不是普通的知识总结,而是按照真实面试问法组织的"八股文 + 学习路线"。你可以这样用:

  1. 先背 30 秒版:面试时先给结论,避免一上来散讲。
  2. 再理解知识点:知道什么是 memory、harness、A2A、MCP、sandbox、trace、eval、skills。
  3. 准备项目例子:所有答案都要能落回你的"猫猫项目":你怎么设计、怎么落地、遇到什么坑、怎么改。
  4. 准备证据:架构图、trace 截图、benchmark 表、PR/commit、失败案例、cost 变化、用户反馈。
  5. 不要硬装大佬:新人可以说"我的理解是......我在项目中这样实现过......如果企业级落地我会补这些"。这比把概念堆满更可信。

0. 答题时怎么讲

系统设计题可以按这条线讲,面试官容易跟上:

text 复制代码
结论:这个问题本质是什么。
分层:拆成哪几层。
机制:每一层怎么工作,有什么约束。
例子:用一个具体任务走一遍。
取舍:为什么不选更简单的做法。
边界:个人项目做到哪,企业级还要补什么。

新人最容易被追问穿的,不是名词,而是把名词说成了另一样东西:

  • Agent 不是一段更长的 prompt。它是模型加上工具、状态、权限和反馈循环。
  • 记忆不是向量库。向量只负责"找得像",不负责"能不能信"。
  • 多 Agent 不是几个模型互相聊天。没有角色、预算和停止条件,就会死循环。
  • 自进化不是权重自己更新。它是执行记录、失败分类、候选改动、评测、灰度。

下面多数例子用同一个任务串起来:把登录失败从"出错了"改成按错误码展示具体文案。这样记忆、交接、工作区和回归可以讲成一件事。


1. Agent 是什么

1.1 30 秒

Agent 不是一次问答。用户给出目标之后,系统会自己循环:理解目标、选工具、看结果、改计划,直到完成、失败,或者必须问人。模型负责决定下一步,工具负责碰到真实世界,状态负责记住做到哪了,权限负责拦住危险动作,执行记录负责事后复盘。

1.2 例子

用户说:"登录失败不要只显示出错了,按错误码给具体提示。"

聊天机器人会直接写一段前端代码,至于项目里错误码在哪、文案文件叫什么、测试怎么跑,它并不真的去做。

Agent 会自己做完这些事:先搜索 Login 和错误码枚举,读到 src/pages/Login.tsx 和 src/i18n/error.ts,发现后端错误码不该改,再改前端映射,跑相关测试,最后给出 diff。中途如果测试失败,它看的是命令输出,而不是再编一段"应该通过了"。

循环必须有步数、token 和时间上限。每一步高风险工具调用前要过权限。每一步要留下记录,否则后面无法排错,也无法做评测。

1.3 和普通聊天机器人的差别

维度 聊天机器人 Coding Agent
目标 把话说对 把任务做完
输错的后果 用户不采信 改坏仓库、泄露密钥、删错文件
核心难点 回答质量 可靠执行:读代码、改代码、跑测试、失败后恢复
怎么评估 人觉得像不像 测试是否通过、改动是否越界、花了多少钱、有没有弄坏旧功能

可以说:聊天机器人的问题是答得对不对;Coding Agent 的问题是做得稳不稳。所以我更关心循环外面的那层工程壳,而不是只换一个更强的模型。


2. 先把这几个词讲清楚

2.1 Harness

模型只会输出文字,或者输出"我想调用某个工具"。Harness 是把这个意图变成真实动作的外壳:提示词、工具注册、真正执行、权限审批、沙箱、上下文拼接和压缩、重试、执行记录、评测、模型路由。

例子:模型说"运行 rm -rf dist"。没有 harness,这句话只是文本;有 harness,系统要先判断这个命令在不在白名单、当前目录是不是任务工作区、要不要让人确认。模型决定想做什么,harness 决定能不能做、怎么做、失败了怎么回到模型。

2.2 Tool Call

模型给出工具名和参数,系统执行,再把结果塞回模型。不准的时候,先改工具,不要先换模型。

常见改法:

  • 两个工具都能"搜代码"时,模型会乱选。留下一个,写清什么时候用、什么时候不用。
  • 参数太自由,就把路径、命令类型收成枚举,必填项写死。
  • 失败只返回一段自然语言,模型无法改。改成错误码加下一步建议,例如"文件不存在,请先用搜索定位"。
  • 工具结果有几千行,要裁成关键片段再送回,否则下一轮上下文被日志撑满。

例子:弱模型面对一个大工具 do_anything(action, path, command),经常把搜索和读文件传混。拆成 grep 和 read_file 之后,选错的次数会明显下降。复杂规划仍交给强模型,分类和抽取可以留给较弱的模型。

工具调用准不准,是模型、参数约束、工具说明、上下文和错误反馈一起决定的。

2.3 MCP 和 A2A

MCP(Model Context Protocol)解决的是:一个 Agent 怎么按统一方式接上外部工具和资料。A2A(Agent2Agent)解决的是:两个彼此看不见内部的 Agent 怎么交接一项任务。

MCP 里记住三个角色、三种能力就够面试讲:

  • Host 是用户正在用的应用,例如 IDE。Client 是 Host 里负责连服务器的那一段。Server 对外提供能力。
  • Tools 是能执行的动作,例如查库、开 PR。
  • Resources 是能读的资料,例如表结构、文档。
  • Prompts 是可复用的提示模板。

接上 MCP 不等于安全。身份、权限、审计、超时、工具白名单、提示词注入防护,都要自己补。Server 返回的内容也可能是攻击文本,不能因为"来自工具"就当成可信指令。

A2A 里记住这几样:Agent Card 是能力名片;Task 是一项协作任务;Message 是来回的消息;Part 是消息里的文本、文件或图片;Artifact 是任务产物。它默认双方是不透明的,不共享你的内部记忆和权限系统。

内部几只猫协作,我更需要共享任务账本、细粒度权限和预算,所以早期用自己的结构化交接,而不是先上 A2A。以后要和外部 Agent 互通,再把内部任务映射成 Agent Card、Task 和 Artifact。这不是否定 A2A,而是内外两层。

RAG 是:模型不该靠背诵来猜的内容,先从外部资料检索,再带着检索结果回答。

Embedding 把文本变成向量,语义接近的片段距离更近。它能找"意思像"的内容,不能判断真假,不能判断谁更权威,也不能代替权限。

纠正: Hybrid Search 指两路召回一起用,一般是关键词或 BM25,加上向量。两路结果先融合,例如用倒数排名融合。Rerank 是融合之后、送进上下文之前的单独一步,用一个更贵的模型把前几十条再排一次。不要把 Rerank 说成 Hybrid 的定义本身。

Coding 场景尤其不能只靠向量。函数名、错误码、配置项必须精确命中。ERR_PASSWORD 和"密码错误"语义接近,但改代码时必须找到枚举本身。所以先用搜索和语法树保证精确召回,再用向量补"叫法不同但意思相同"的片段,最后按范围过滤,必要时再 Rerank。

2.5 Context、Memory、知识库、共享状态

概念 是什么 活多久 登录页例子
Context 这一次调用模型能看见的输入 一次调用 刚读到的 Login.tsx 片段
短期记忆 这次任务的计划和临时结论 一个任务 "后端错误码不动,只改前端文案"
长期记忆 跨会话还要记住的事 项目或更久 "这个仓库回答用中文,测试命令是 pnpm test"
知识库 外部事实来源 被人维护 接口文档、README
共享状态 多只猫一起干活的账本 一个任务 谁在改哪个文件,测试有没有跑

一句话:Context 是这次看得见的,Memory 是以后还要用的,知识库是外面的资料,共享状态是协作时的账。混在一起,就会把 A 项目的密钥讨论带进 B 项目。

2.6 上下文压缩

窗口装不下时,要压缩的是可恢复的状态,不是随便写一段聊天摘要。至少留下:目标、约束、已做决定、做过的动作、证据在哪、没解决的问题、风险、下一步。

摘要如果不能指回文件路径、行号、命令记录或 commit,它就只是二手事实。后面关键决策不能只信它。

2.7 Sandbox

沙箱让命令和改动发生在受控环境里。个人项目可以用 git worktree 加命令白名单。企业场景还要租户隔离、网络隔离、密钥注入、磁盘回收和审计。容器适合多数任务;需要更硬隔离时再用 microVM。不是每个用户永久占一台机器。

2.8 Trace、Eval、Benchmark

概念 作用
Trace 一次运行的全过程:模型输入输出、工具调用、错误、花费、耗时
Eval 用固定任务看这次改动有没有变好、有没有退步
Benchmark 更标准化、能横向比较的评测集,例如 SWE-bench 这一类

没有执行记录就没有评测,没有评测就不要说自己在进化。指标不能只看最后一句像不像答对,还要看步数、工具是否选对、测试、花费、人工介入、改动范围、旧任务是否被弄坏、有没有越权。

2.9 Skill

Skill 是把反复出现的做法收成一份可复用的能力说明。它不是另一段永远塞进提示词的文字。一份能用的 skill 要写清:什么时候触发、步骤、允许用哪些工具、怎样算做完、失败了怎么恢复、一个例子。

路由时只看它的短描述。命中之后再加载全文。否则 skill 越多,上下文越脏。


3. 记忆权威:低权威内容怎么才能变成决策

3.1 例子

三句话权威完全不同:

  • 聊天里说:"我感觉可以用 MongoDB。"这是低权威证据。
  • 仓库 README 写:"本项目统一 PostgreSQL。"这是项目事实。
  • ADR 写:"用户系统用 PostgreSQL,因为要事务。"这是架构决策。

Agent 如果看见向量距离近,就把第一句当成决策,后面写迁移方案,就走错了。

...

完整面试题内容下载链接:https://pan.quark.cn/s/bb15fae7b82a

相关推荐
泡干脆面就番茄1 小时前
HDFS读写流程与MapReduce原理深度解析(面试高频考点)
hdfs·面试·mapreduce
bksczm2 小时前
0基础面试3
面试·职场和发展
浮生望2 小时前
Agentic RAG(上):别让所有问题都走检索——查询路由与 Web 兜底
agent
老王爱玩车4 小时前
动态内存管理
c语言·开发语言·学习·面试
海绵宝宝转agent4 小时前
2026-10-9 leetcode100刷题+面经整理
笔记·算法·面试
敲代码的小小酥4 小时前
Agent 运行机制全景:从工具调用到沙箱隔离
ai·agent
鱼饼Y4 小时前
AI Agent 驾驭指南
agent·ai编程
BlackStar_L4 小时前
第五章 Coding Agent 与通用 Agent
大模型·llm·agent
Blockbuater_drug5 小时前
protein-design-mcp 裸机实战:41 个蛋白设计工具大合集Agent部署与实测
agent·mcp·proteinmpnn·rfdiffusion·esmfold·boltz-2