跳到正文
INTERVIEW WORKBOOK · RAG & AGENT

先把“会回答”拆成找证据、用工具和验证结果

RAG 与 Agent 的难点不在于画一条漂亮链路,而在于每个中间结果都可能错。这套题把索引、授权检索、证据包、工具提案、执行账本和权威终态拆开,让“没找着、没用对、没权限、结果未知”都能被定位。

00 · HOW TO USE

先看整套知识的坐标,再逐题理解

这不是背答案清单。先用地图确认概念之间的依赖,再沿“白话直觉 → 核心结论 → 原理与取舍 → 常见误区”阅读每个知识点。

RAG 与 Agent 十题依赖地图:从知识与切分进入双编码检索、RRF 融合和重排,再到引用、分层评测、ReAct、MCP、幂等记忆与注入防护。
先验收证据是否找到、是否支持主张,再把工具提案送入确定性的权限、幂等与终态验证边界。 查看原图 ↗
01 · KEY CHAIN

先看关键链路,单个知识点才不会变成碎片

面试官追问的方向,往往就是这张图里的下一根箭头:输入怎样变化、状态存在哪里、哪一步最贵、失败怎样被验证。

RAG 与 Agent 关键链路:解析切块后分别建立向量索引和关键词索引;身份与访问控制约束混合召回、融合、重排和证据包;Agent 的工具提案经授权审批、幂等账本、唯一派发和结果对账后返回观察;日志可追踪但副作用不可盲目重放。
离线索引先分 Dense 与 Lexical 两支;在线证据和工具副作用使用不同安全语义,超时进入 unknown 对账而不是直接重试。 查看原图 ↗
QUESTION SET 10 / 10 按关键词或章节定位内容
01 · 知识准备01 / 04

检索质量,从文档怎样被切开就已经开始

Embedding 不是把文档“存进模型”,Chunk 也不是越长越完整。知识准备阶段要为后续召回、引用与更新保留结构。

Q0101 · 知识准备

RAG 和模型微调分别适合解决什么问题?#

RAGFine-tuning
BEGINNER FIRST

先用大白话把它讲明白

RAG(Retrieval-Augmented Generation,检索增强生成)在推理时取回外部证据,适合更新频繁、需要来源或按权限读取的知识;但“带权限”不是 RAG 自带能力,访问控制必须在候选进入模型上下文前由可信代码强制执行。

微调改变参数,更适合稳定的行为、术语、风格和任务策略。SFT(Supervised Fine-Tuning,监督微调)能教模型倾向某种 JSON 结构,却不能保证每次都合法;强合同还要靠 Schema 约束、受限解码和服务端验证。当前价格、库存和订单状态通常应查询权威工具,而非写进向量库或权重。

两者可组合:微调教模型如何用证据和何时拒答,RAG 提供版本化事实。长上下文也不是 RAG 的反义词;应按语料规模、更新频率、证据选择稳定性、权限和 token 预算实测。

30″ 开口回答

RAG 提供可更新、可引用的推理时证据,微调更适合稳定行为与模式;当前结构化状态优先查权威工具。权限、合法 JSON 和不幻觉都不能由 RAG 或 SFT 单独保证,分别需要访问控制、Schema/受限解码和分层评测。

展开原理与工程取舍FORMULA · TRADE-OFF · FOLLOW-UP

原理拆解

原始 RAG 同时研究 RAG-Sequence 与 RAG-Token:前者整段输出共享一个潜在文档,后者每个 token 可边缘化不同文档,因此一条简化求和式不能冒充所有 RAG 实现。

外部语料可以按内容快照、版本和 ACL(Access Control List,访问控制列表)更新、删除与审计;参数化事实较难逐条定位或及时撤回,但微调仍可能影响知识,不能说它“只学行为”。

RAG-Sequence:p(y|x)≈Σ_{z∈Top-K} pη(z|x)·∏_i pθ(y_i|x,z,y_<i)

工程取舍

RAG 增加解析、索引、检索、上下文与权限故障面;微调增加训练、回归与遗忘成本。直接长上下文省去检索器,却可能付出更高输入成本并受证据位置与权限组装影响。

常见误区

“RAG 能保证不幻觉、SFT 能保证合法 JSON”都错误。前者仍会漏召回、取错版本或忽略证据,后者只是概率模型;硬约束要落到系统边界。

面试官可能继续问

追问:价格、制度 PDF 和回答格式分别该进工具、RAG 还是微调?怎样比较 RAG 与长上下文?

Q0201 · 知识准备

Chunk 应该怎样切?为什么固定 500 Token 不是通用答案?#

ChunkingIndex
BEGINNER FIRST

先用大白话把它讲明白

Chunk 不必同时承担四种角色:索引单元可以短,召回后可扩展父段落,送入上下文时再去重,引用则要精确映射到原文 span。把它们都固定成 500 token,会把实现习惯误当任务规律。

太短会拆开定义、条件或表头;太长可能被截断、混入多个主题并稀释检索信号,但向量模型并不一定在字面上“把内容平均”。切分应尊重标题、段落、函数、表格、页面与阅读顺序,并保存文档字节/内容哈希、版本、章节路径、原文偏移和 ACL。

Overlap(重叠)可覆盖边界,却会制造近重复候选。用目标问题上的 Hit@k/Recall@k、证据覆盖、重复率、引用精度、延迟和最终答案做联合实验;PDF、表格和代码若解析结构先坏掉,Embedding 无法自动恢复。

30″ 开口回答

先分清索引、召回、上下文和引用单元,再按语义结构切并保存原文 span、版本与 ACL。短块可精准命中后扩父段;Overlap 只补边界,也会挤占 Top-k。参数应由目标问题的证据召回、重复率、引用和端到端效果决定。

展开原理与工程取舍FORMULA · TRADE-OFF · FOLLOW-UP

原理拆解

Parent-child 是一种工程模式:用子块检索、按父级扩展上下文;它不保证更好,父段过大仍会带入噪声。

固定 token 长度、结构感知解析和表格/代码专用切法属于待比较方案;索引版本必须同时绑定 parser、chunker、embedding 与权限配置,才能重现一次检索。

工程取舍

小 chunk 增加索引条目、融合和拼接成本;大 chunk 保留邻近语境,却可能截断、主题混杂并浪费上下文。更复杂的结构解析提高质量,也增加开发、回填和版本迁移成本。

常见误区

“Overlap 越大召回越好”错误。多个近重复块会占满候选并重复同一证据;是否去重、按文档限额或扩父段都要进入评测合同。

面试官可能继续问

追问:FAQ、代码函数、跨页表格各自怎样定义索引单元与引用单元?

02 · 检索与排序02 / 04

召回负责不漏,Rerank 负责把真正相关的排上来

Dense 与关键词不是互斥流派。用候选生成—融合—精排的分层结构,才能同时覆盖实体词、语义改写和复杂相关性。

Q0302 · 检索与排序

Embedding 检索是怎样工作的?Cosine 相似度有什么边界?#

EmbeddingVector Search
BEGINNER FIRST

先用大白话把它讲明白

Dense Retrieval(稠密检索)常用双编码器分别处理 query 与 passage。两侧可以是不同参数的 encoder,但输出必须处于可比较的向量空间;向量近只表示模型学到的相关性,不等于事实正确或权限允许。

Cosine Similarity(余弦相似度)看方向夹角。只有向量非零且做了 L2 归一化时,点积数值才等于 cosine;索引距离还要与训练和服务配置一致。编号、罕见实体、精确日期通常仍需 lexical(词法)检索和元数据过滤。

ANN(Approximate Nearest Neighbor,近似最近邻)用近似换搜索速度/计算,不天然节省内存:HNSW 会额外保存多层图边,压缩索引才可能省内存。模型或 pooling 变更通常改变向量空间,应双索引迁移或全量重嵌入,并用同一证据集验证兼容性。

30″ 开口回答

双编码器把 query 与 passage 映射到可比较空间,再用点积或 cosine 做 ANN Top-k;L2 归一化后两者等价。ANN 主要在延迟、Recall 和索引内存间取舍,并非天然省内存。精确实体、数字、ACL 与时效还需词法检索、过滤和重排。

展开原理与工程取舍FORMULA · TRADE-OFF · FOLLOW-UP

原理拆解

DPR 使用正 passage、batch 内负项与 BM25 hard negative 训练 query/passage encoder;Hard negative 太易没有学习信号,错误负项又可能惩罚真实相关文档。

HNSW 用分层邻接图加速高召回搜索,图连接本身有内存开销;维度、量化、M、efConstruction 与 efSearch 分别影响容量、构建、延迟和 Recall。

cos(q,d)=(q·d)/(||q||₂||d||₂);若 ||q||₂=||d||₂=1,则 cos(q,d)=q·d

工程取舍

高维可能增加表达空间,也线性增加向量存储与传输,效果并不保证更好;更强量化或更小搜索宽度省资源,却可能漏掉证据。迁移期双索引提高安全性,也会暂时翻倍存储和回填成本。

常见误区

“Cosine 0.8 必然相关”没有通用阈值;“ANN 比精确搜索更省内存”也不是通则。阈值和索引参数都要按目标数据、切片与证据召回校准。

面试官可能继续问

追问:DPR 的 hard negative 怎样采?HNSW 的 efSearch 提高时哪些指标变化?Embedding 换版怎样无停机迁移?

Q0402 · 检索与排序

为什么生产 RAG 常用 Hybrid Retrieval 和 Reranker?#

HybridRerank
BEGINNER FIRST

先用大白话把它讲明白

关键词/BM25 擅长 ID、术语和罕见词,Dense 擅长同义改写。两路原始分数通常不可直接相加;RRF(Reciprocal Rank Fusion,倒数排名融合)只使用各路排名,或在有标注集时校准加权分数。权限/租户过滤必须来自可信身份并在候选可见前执行,不能让 query rewrite 自己决定。

RRF 中 k_RRF 是平滑常数,不是“取 Top-k 的 k”;rank 应声明从 1 开始。第一阶段候选数、各路配额和 k_RRF 都是待调参数,没有“永远 60”或“永远 100 个候选”。

Reranker(重排器)可以是 cross-encoder、ColBERT late interaction(后期交互)或经过约束的 LLM/listwise 方法,并不由“是否生成式”定义。要冻结候选与配置,用 nDCG/MRR/Recall 等排序指标独立验证,再看端到端答案。

30″ 开口回答

Hybrid 让 lexical 保精确匹配、Dense 保语义召回,再用 RRF 或校准分数融合;Reranker 在较小候选集上做更深相关性判断。先保证不漏、再排准,但权限必须先于候选暴露,融合和重排也要脱离生成器波动单独验收。

展开原理与工程取舍FORMULA · TRADE-OFF · FOLLOW-UP

原理拆解

RRF 对文档 d 的各路 1-based rank 求倒数和;平滑常数 k_RRF 减弱个别系统极高排名的异常影响,它与候选截断深度是两件事。

ColBERT 独立编码 query/document token,并以每个 query token 对全部 document token 的最大相似度求和;文档表示可离线算,但 token 级索引、存储和检索仍有成本。

RRF(d)=Σ_{r∈rankers} 1/(k_RRF+rank_r(d));S_ColBERT(q,d)=Σ_i max_j q_i·d_j

工程取舍

候选越多,第一阶段召回上限通常越高,也增加重排计算和尾延迟;候选太少,重排无法找回已漏证据。Cross-encoder 交互强但逐对计算贵,late interaction 以更大 token 索引换在线效率。

常见误区

“Reranker 就是再问一次生成模型”错误;反过来,“生成模型绝不能做重排”也过于绝对。关键是固定输入输出合同、相关性 rubric、配置和独立回归。

面试官可能继续问

追问:RRF 的 k_RRF 与候选 Top-k 各控制什么?如何在不运行生成器时量出重排增益?

Q0502 · 检索与排序

Query Rewrite、Multi-Query 和 HyDE 各自解决什么?有什么风险?#

Query RewriteRecall
BEGINNER FIRST

先用大白话把它讲明白

Query Rewrite 把代词、历史上下文或内部说法改成独立检索表达;Multi-Query 从多个语义角度发起检索;Query Decomposition 则把多跳问题拆成子问题。三者都可能漂移,原 query 应作为一路保留并记录每个分支的独立增益。

HyDE(Hypothetical Document Embeddings,假想文档嵌入)的原论文让指令模型生成可能含幻觉的“假文档”,再由无监督对比 encoder 编码,去真实语料空间找邻居。论文把 dense bottleneck 解释为过滤虚构细节,但这只是该方法的设计与实验结论,不是事实安全保证。

租户、用户、地域和密级等 ACL 过滤必须由可信认证上下文产生;模型只能提出文本查询,不能增加权限。多路结果还要去重、限额与融合,精确订单号等查询通常先保留原字符串。

30″ 开口回答

Rewrite 补全检索表达,Multi-Query 扩展多个角度,Decomposition 拆多跳,HyDE 用可含错误的假想文档做 dense 检索探针。它们都可能漂移和放大成本,所以保留原 query、让 ACL 独立于模型,并按每个分支的增量 Recall、噪声和延迟验收。

展开原理与工程取舍FORMULA · TRADE-OFF · FOLLOW-UP

原理拆解

HyDE 原始实现用 InstructGPT 生成 hypothetical document,再用 Contriever/mContriever 编码;假文档不是证据,最终回答仍要落到真实、授权且版本化的来源。

融合前保存 rewrite lineage(原 query、改写、模型/Prompt 版本、过滤器与候选),用成对证据标注区分“补全成功”和“改写带偏”。

工程取舍

更多查询可能提升覆盖,也线性增加生成、检索、融合和尾延迟,并让无关候选进入重排。可按 query 类型路由:ID 查询禁用创造性扩写,多跳问题才启用拆解或预算更高的探索。

常见误区

“HyDE 先生成了答案,所以不需要知识库”错误。它生成的是可能虚构的检索表示;没有真实语料命中和 claim-support 校验,就没有可引用证据。

面试官可能继续问

追问:怎样用保留原 query 的 paired ablation 监测 rewrite drift?哪些字段绝不能让模型改写?

03 · 证据与评测03 / 04

回答听起来正确,不等于它被检索证据支持

RAG 的端到端分数要拆回组件。引用不是装饰,必须能定位到版本化证据,并区分“没找到”和“找到没用”。

Q0603 · 证据与评测

怎样让回答带可验证引用,并处理证据冲突?#

CitationGrounding
BEGINNER FIRST

先用大白话把它讲明白

给每个 evidence chunk 一个会话内 ID,同时保存不可变内容快照/哈希、文档版本、页码、原文 span、ACL 和抓取时间。模型只选择 ID,应用层映射链接;URL 会变,单独保存 URL 不能复现旧答案。

先把回答拆成可核验 claim,再判断每条 citation 是否真的蕴含/支持紧邻主张,以及所有需要证据的关键 claim 是否被覆盖。ALCE 把 citation quality 拆成 recall 与 precision;“出现 [1]”只通过格式检查,相关文档也未必支持具体复合句。

冲突解决规则必须由领域定义:法规可能看管辖区与生效期,产品文档可能看版本,医学还需证据等级。系统应展示冲突和规则;无法消歧时拒绝断言。ACL 要在检索前强制,重排/上下文/引用再做防御性复核,且不能泄露越权文档是否存在。

30″ 开口回答

引用链要绑定不可变快照、版本和原文 span;模型只引用证据 ID,应用层映射来源。生成后按 claim 验证支持关系和关键主张覆盖。冲突按业务定义的版本/权威规则处理,无法消歧就显式说明;ACL 在候选进入模型前强制。

展开原理与工程取舍FORMULA · TRADE-OFF · FOLLOW-UP

原理拆解

可操作口径是 citation correctness/precision:被评估引用是否支持所附 claim;citation completeness/recall:需要引用的 claim 中有多少获得支持。具体分母、复合 claim 拆法与权重要在 rubric 中固定。

RAGAS 原论文关注 context relevance、answer relevance 与 faithfulness;它不是 ALCE 引用精度/召回的同义来源。Faithfulness 只问回答能否由给定 context 推出,不保证 context 新鲜、权威或有权限。

citation precision=supported citations/evaluated citations;citation recall=supported claims/claims requiring citation

工程取舍

逐 claim 校验提高可审计性,也增加拆句、NLI/Judge、人工校准和快照存储成本。关键事实强制引用,闲聊不必堆来源;复合句过度拆分又会损害可读性。

常见误区

“列了来源就 grounded”错误。来源可能只相关、不支持该句,可能版本过期或越权;支持次要细节也不代表关键主张完整覆盖。

面试官可能继续问

追问:网页更新后怎样复现旧引用?一个引用只支持复合句一半时怎样评分?

Q0703 · 证据与评测

RAG 应该怎样评测,才能定位到底是哪一层坏了?#

EvaluationRAGAS
BEGINNER FIRST

先用大白话把它讲明白

检索层先区分 Hit@k 与 Recall@k:Hit@k 只问至少一个 gold 是否出现;多证据时 Recall@k 是取回 gold 的比例。MRR(Mean Reciprocal Rank,平均倒数排名)只看首个 relevant,multi-hop 还要评完整 evidence set coverage。

生成层要在“给定正确证据”的受控条件下测 faithfulness、任务正确性、完整性、引用 precision/recall 与拒答;端到端再测用户任务、风险、P95、成本。证据充分但没用对是生成/策略问题,证据没进上下文才是检索问题。

测试集必须同时有可回答与不可回答、单证据与多证据、当前与过期冲突,并冻结文档快照、parser/chunker、索引、retriever/reranker、Prompt/模型和 Judge 版本。自动 Judge 要用目标分布人审校准并保留逐样本结果。

30″ 开口回答

RAG 用分层成绩单:检索在有 gold evidence 的可回答题上报告 Hit@k、Recall@k、MRR 与多证据覆盖;无答案题另评误召回、拒答和误答。生成在固定正确证据下评任务正确、faithfulness 与引用,端到端再看成功、风险、延迟与成本。

展开原理与工程取舍FORMULA · TRADE-OFF · FOLLOW-UP

原理拆解

令 G_q 为 query q 的 gold evidence 集;对 |G_q|>0 的题,Recall@k(q)=|Top-k∩G_q|/|G_q|。只有每题一个 gold 时,它才与 Hit@k 的 0/1 结果一致;无答案题不能代入分母为 0 的式子。

RAGAS 提供无参考的 context relevance、answer relevance 与 faithfulness 自动评估思路;这些模型指标会随机和偏置,不能替代版本化 gold、代码检查与人工校准。

Hit@k=mean_{q:|G_q|>0} 𝟙[Top-k_q∩G_q≠∅];Recall@k=mean_{q:|G_q|>0} |Top-k_q∩G_q|/|G_q|

工程取舍

人工 evidence set 标注昂贵,但能定位组件;自动指标扩展快,却受 Judge、Prompt 和语言变化影响。可用小而严谨的冻结回归集守门,再用滚动挑战集覆盖新文档和新攻击。

常见误区

“Recall@k 就是命中过至少一个 gold 的查询比例”只在单 gold 口径下成立;“Faithfulness 高就是事实正确”也错误,模型可能忠实复述过期或错误证据。

面试官可能继续问

追问:多个等价 gold 文档怎样标注?怎样按 query 做 paired bootstrap,而不把 chunk 当独立样本?

04 · Agent 工程04 / 04

Agent 的价值来自闭环执行,风险也来自真实副作用

Agent 题不以“会规划”结束。工具 schema、协议、状态、重试、权限与最终验证决定它能否从 Demo 走向生产。

Q0804 · Agent 工程

ReAct Agent 的基本循环是什么?为什么不能无限循环?#

ReActPlanning
BEGINNER FIRST

先用大白话把它讲明白

原始 ReAct(Reasoning and Acting,推理与行动协同)交错生成 reasoning trace、Action 与 Observation:模型提出动作,环境返回新观察,再更新下一步。现代生产系统未必暴露或保存私有思维文本,但仍可保留“提案—执行—结构化结果—状态更新”的闭环。

循环可能重复相同动作、在错误 observation 上扩散或耗尽 token。系统需要最大步数、墙钟/成本预算、重复与无进展检测,以及四类终止:目标终态已验证、明确业务拒绝、转人工、预算/安全硬停。

评测不能只看最终一句“完成了”。Transcript/trajectory 检查调用与策略,outcome 从权威环境读取真实终态;多次 trial 还要区分至少一次成功的 pass@k 与连续可靠性的 pass^k。

30″ 开口回答

ReAct 的核心是 Action 与 Observation 反复闭环,原论文使用显式 reasoning trace,但现代系统不必暴露私有 CoT。生产上用硬预算和状态机终止,记录结构化提案、权限、调用、结果与终态;评测同时看 trajectory 和权威 outcome,而不是模型自报。

展开原理与工程取舍FORMULA · TRADE-OFF · FOLLOW-UP

原理拆解

工具结果应区分 success、transient/retryable、business rejection 与 unknown;自然语言“好像成功”不能驱动状态机。计划只是下一步假设,每一步都应有可验证完成条件。

Anthropic 的 Agent eval 指南区分 transcript/trajectory 与 outcome,并指出 pass@k 衡量 k 次中至少一次成功,pass^k 衡量 k 次全部成功;用户侧可靠性不能只报更容易上升的 pass@k。

pass@k=P(k 次中至少一次成功);pass^k=P(k 次全部成功)

工程取舍

更多步骤可能发现新证据和恢复,也增加延迟、费用与错误累积。Plan-and-Execute 减少局部迷路但计划会过期;ReAct 响应观察更快,却更容易短视循环,需按任务实测。

常见误区

“让模型多想几步一定更可靠”错误。没有新 observation 或确定性检查时,额外循环可能只是重复猜测;漂亮 trajectory 也不等于外部状态正确。

面试官可能继续问

追问:怎样检测无进展?何时看 pass@k,何时必须看 pass^k?终态由谁读取?

Q0904 · Agent 工程

工具调用协议要包含什么?MCP 解决了什么、没解决什么?#

ToolsMCP
BEGINNER FIRST

先用大白话把它讲明白

工具合同至少有稳定 name/description、inputSchema、结构化结果/错误、权限对象、副作用和执行语义。MCP 2025-11-25 是基于 JSON-RPC 的 Host—Client—Server 协议:Server 可暴露 tools/resources/prompts,Client 还可协商 roots、sampling、elicitation 等能力,不只是单向“模型调函数”。

MCP 中 Resource 是 application-controlled 的上下文,Tool 是 model-controlled 的可调用能力;这描述控制层,不代表模型拥有最终权限。inputSchema 是必需的,outputSchema 可选;readOnly/destructive/idempotent 等 ToolAnnotations 只是 hint,官方明确要求不能从不可信 Server 的注解直接做工具决策。

模型只产生调用提案。宿主/服务端仍要认证、对象级授权、业务校验、参数绑定审批、最小凭据和审计。重试安全不能只按“读/写”名字或注解猜:仅对明确可重试的瞬态失败按服务合同退避;副作用调用需幂等 key 绑定规范化参数,timeout/断线进入 unknown 并对账。

30″ 开口回答

MCP 标准化 Host—Client—Server 的能力协商与 tools/resources/prompts 交换,但不替代 Agent、授权或副作用安全。Schema 和 annotations 都只是合同输入;可信执行层要独立鉴权、校验和审批。重试依据真实执行语义,写操作用 key+fingerprint 与结果对账,不能把 readOnlyHint 当安全证明。

展开原理与工程取舍FORMULA · TRADE-OFF · FOLLOW-UP

原理拆解

MCP Tool 要求 name 与 inputSchema,可选 outputSchema;annotations 的 readOnlyHint、destructiveHint、idempotentHint、openWorldHint 全是提示,不保证行为真实。语义规则如“退款不超过可退金额”仍须服务端执行。

幂等键只有在同租户/操作域、同规范化参数下复用才安全;同 key 异参数应冲突。确认只确认绑定的具体动作,也不能替代当前身份、对象权限和业务策略。

工程取舍

工具太细会增加规划步数与中间失败,太粗会把多个权限和不可逆动作藏在一次调用里。标准协议降低适配成本,也扩大供应链与信任面,需要 Server allowlist、版本固定和隔离。

常见误区

“用了 MCP 就是 Agent/就安全”错误。MCP 是互操作协议;何时调用、能否执行、怎样重试与恢复仍由 Host、业务服务和策略系统决定。

面试官可能继续问

追问:Resource 与 Tool 谁控制?为什么 idempotentHint 不能直接允许自动重试?如何绑定审批参数?

Q1004 · Agent 工程

Agent 的记忆、可靠性与 Prompt Injection 应怎样一起设计?#

MemorySafety
BEGINNER FIRST

先用大白话把它讲明白

先分三类状态:workflow state 记录步骤和 operation ID;对话上下文服务当前 turn;长期记忆保存经选择的用户事实/偏好。长期写入要绑定主体/租户、来源、时间、权限、用途/同意、置信度、TTL、替代关系和删除能力,不能把每段聊天或网页自动永久化。

网页、邮件、文件和 RAG chunk 都是不可信数据,可能携带 indirect prompt injection(间接提示注入)或污染记忆。把“数据”和“指令”分层有帮助但不是充分防线;真正边界是最小凭据、工具 allowlist、参数/输出校验、隔离、确定性策略和对具体动作的审批。人工确认仍不能替代授权。

副作用调用的 timeout 代表结果 unknown,不代表失败。用稳定 operation ID/idempotency key 和参数 fingerprint 查询原收据或权威业务状态;单纯读到“最终已有一个订单”不一定能证明由哪次请求创建。无法消歧时等待、转人工或补偿,不能盲目重放。

30″ 开口回答

把工作流状态、当前对话和长期记忆分开;长期记忆带主体、来源、权限、TTL、同意和可删除性。外部内容始终按不可信数据处理,靠最小权限与确定性执行门限制注入影响。副作用超时进入 unknown,用 operation ID/收据对账,绝不把 checkpoint 或重试当 exactly-once。

展开原理与工程取舍FORMULA · TRADE-OFF · FOLLOW-UP

原理拆解

MemGPT 提出受操作系统分层内存启发的 virtual context management;它证明一种研究架构,不自动提供隐私、ACL、正确性或生产记忆治理。记忆写入本身也要防注入和错误固化。

OWASP LLM01:2025 同时列出直接与间接 Prompt Injection,并明确 RAG/微调不能完全消除风险。AWS 也指出 replay 与 retry 都可能重复副作用,at-most-once per retry 仍不等于整个工作流 exactly-once。

工程取舍

更多长期记忆可改善连续性,也放大隐私、过期、投毒与跨租户泄露风险;更强自动化降低人工成本,却扩大凭据和副作用半径。高风险动作应缩权限、提高审批与对账强度。

常见误区

“系统 Prompt 更强、有人点确认、再加 idempotency key,就能安全重试任何动作”错误。模型规则、确认和 key 分别不能替代授权、参数绑定与 unknown 结果对账。

面试官可能继续问

追问:第一次调用超时后如何确认原请求是否执行?哪些记忆允许自动写,哪些必须审批或禁止?