Agent 面试指南

企业级 RAG / Data Connector Agent 要如何设计?

这题不要答成“embedding + topK”。资深答案要从连接器、ACL、增量同步、索引、证据包、引用、删除、freshness 和 RAG eval 讲完整链路。

SCOPE本章边界

本章放在 Context 和 Memory 之间:Context 章讲模型本轮看什么,Memory 章讲长期事实怎么治理;这一章专门讲企业外部数据如何进入 Agent,并且不泄权、不失真、可引用、可删除、可评测。

30 SEC面试开口版

企业级 RAG 不是把文档切 chunk 丢向量库,而是一条受治理的数据链路。我的设计会把 source document 当事实源,chunk、embedding、graph 和 cache 都只是派生物;connector 同步数据时带 tenant、user、ACL、版本、hash 和 sync cursor;检索前先做 scope/ACL filter,再做 hybrid retrieval、rerank 和 freshness 判断;进模型的不是 topK 文本,而是带 citation、authority、freshness、token cost 和 conflict marker 的 evidence package。回答必须引用证据,无法证明就说不确定;源文档删除后,index、cache、artifact snapshot、memory candidate 和 eval/training 样本都要沿 lineage 撤销或隔离。

理解与记忆 · 术语、解析、关联知识点
专业术语Connector:负责连接 GitHub、Drive、Slack、Jira、DB、网页等数据源的同步组件。
ACL Filter:检索前按租户、用户、项目、群组和资源权限过滤候选。
Evidence Package:给模型的证据包,包含片段、来源、引用、权威性、新鲜度和冲突标记。
Freshness:事实是否代表当前状态,通常由版本、更新时间、source hash 和同步延迟判断。
Lineage:派生产物到原始文档、事件和 artifact 的血缘关系。
为什么这样回答先否定“topK 拼 prompt”,再抢事实源定义。企业面试真正关心的是权限、删除、引用和线上可信度,不只是召回准确率。这个回答把 RAG 从模型技巧提升为数据平台和 Agent runtime 的交界问题。
小白解析向量库像图书馆搜索目录,不是原书。企业 Agent 回答问题时,不能只说“我搜到一段像的文本”,而要知道这段来自哪份文件、用户有没有权限看、是不是最新版本、能不能引用、源文件删了以后目录和缓存会不会还留着。
关联知识点Context 章的 ModelInputProjection 要求每段上下文都有来源、可信度和预算;Memory 章强调向量索引不是事实源;Security 章强调租户隔离和数据/指令分离。企业 RAG 正好把这些原则串起来。

1 MIN一分钟口语版

我会把企业 RAG 分成七层。第一层是 connector:每个数据源都要支持授权、租户、ACL、sync cursor、rate limit 和错误恢复。第二层是 ingestion:解析、去重、分块、抽结构化元数据、记录 hash、版本和 source ids。第三层是 index:BM25、embedding、metadata filter、可选 graph 都是派生索引,坏了能从源重建。第四层是 retrieval:先按用户和项目权限过滤,再 hybrid retrieval、rerank、去重和 freshness 排序。第五层是 evidence package:候选证据带 source、quote span、authority、freshness、citation、conflict 和 token cost。第六层是 answer grounding:final 必须基于证据回答,无法证明就拒答或要求更多数据。第七层是 governance:删除、retention、legal hold、eval 样本和训练样本都要沿 lineage 处理。这样它才不是一个搜索插件,而是企业可审计知识系统。

理解与记忆 · 术语、解析、关联知识点
专业术语Sync Cursor:增量同步游标,用来知道下次从哪里继续拉数据。
Hybrid Retrieval:结合关键词、向量和元数据过滤的召回方式。
Rerank:对召回候选重新排序,提升相关性和权威性。
Answerability:当前证据是否足以回答用户问题。
Legal Hold:合规或法律原因要求暂时保留数据的状态。
为什么这样回答一分钟版按真实系统链路展开:接入、处理、索引、检索、证据、回答、治理。面试官可以从任一层继续追问,而答案都有对象和边界可落。
小白解析这就像公司知识库。先要把不同部门资料接进来,再标清谁能看、什么时候更新、哪个版本有效;回答时只能拿用户有权看的资料说话,还要标出处。资料删了,搜索目录、备份摘要和后续题库都不能继续偷用。
关联知识点生产 Agent 的 RAG 不只服务“回答更准”,还服务权限、安全、审计、恢复和发布评测。它和 ContextProjection、ArtifactStore、PermissionKernel、EvalDataset 都有接口。

FLOW从数据源到引用回答

CONNECTOAuth、租户、ACL、sync cursor、rate limit。
INGEST解析、去重、分块、版本、hash、元数据。
INDEXBM25、embedding、metadata、可选图谱。
RETRIEVE先权限过滤,再召回、重排、新鲜度判断。
GROUND证据包进入 context,回答带引用和不确定性。

企业 RAG 的事实源和派生物

企业级 RAG / Data Connector Agent 要如何设计? Mermaid diagram 1

DESIGN关键运行时对象

对象最少字段为什么重要
ConnectorDefinitionsource、tenant、auth mode、permissions、sync cursor、rate limit、failure policy把外部数据源当受控能力,而不是一次性爬虫。
SourceDocumentsource_id、owner、ACL、version、hash、updated_at、retention、lineage事实源必须可审计、可删除、可重建索引。
ChunkRecordchunk_id、source_id、span、text_hash、metadata、index_refschunk 是派生物,必须能回到原文位置。
EvidenceItemsnippet、citation、authority、freshness、confidence、conflict_refs、token_cost模型看到的是证据,不是无来源文本。
RetrievalDecisionquery rewrite、filters、ranker version、included/excluded、reason、snapshot id回答错了要能解释为什么召回这些、排除了哪些。

REVISION生产边界矩阵

边界正确做法常见坑
ACL检索前先按 tenant/user/project/resource filter,召回后再 policy check。先向量召回再过滤,导致越权候选进入日志或模型。
Freshnesssource version、updated_at、sync lag、hash 进入 evidence ranking。旧文档语义相似就排第一,回答过期事实。
Citation引用回源到 source document 和 span,不引用索引 chunk id。引用一个不可审计的向量结果。
Deletion沿 lineage 清 index、cache、artifact snapshot、memory candidate、eval/training quarantine。主表删了,旧缓存和 eval 样本还在用。
Eval测 faithfulness、citation accuracy、answerability、freshness error、ACL leak rate。只测检索 recall,不测回答是否忠于证据。

INTERVIEW高强度追问

面试官:为什么不能直接把 vector store 当知识库事实源?第二层追问:索引坏了或源文档删了怎么办?

我:vector store 是派生索引,不是事实源。事实源应该是带 ACL、版本、hash、owner 和 retention 的 source document。索引可以重建,源文档不能丢;源文档删除后,向量索引、BM25、cache、artifact snapshot 和 memory candidate 都要沿 lineage 清理。否则系统会引用一段已经无权或不存在的文本。

面试官:ACL 应该在检索前还是检索后做?第二层追问:先召回再过滤是不是更简单?

权限过滤必须在检索前进入 query plan,至少按 tenant、user、group、project、resource visibility 做硬过滤;召回后再做二次 policy check。只在检索后过滤会让越权文档进入候选、日志、rerank 输入或模型上下文,已经形成泄漏面。

面试官:Slack、Jira、GitHub、Drive 的权限模型不同,你怎么统一?

我不会强行抹平,而是做内部 ACL contract:principal、resource、action、scope、source_policy_snapshot。每个 connector 把外部权限映射到这个 contract,并记录原始 policy ref。检索时先 resolve 当前用户 principal,再按内部 contract 过滤;遇到无法映射的权限,默认 fail closed。

面试官:增量同步怎么做?第二层追问:connector 失败导致索引落后,Agent 怎么知道?

每个 connector 要有 sync cursor、last_success_at、source watermark、error state 和 retry/backoff。EvidenceItem 里带 sync lag 和 freshness,超过阈值就降权或标记“可能过期”。高风险回答依赖过期数据时,Agent 要提示不确定,必要时触发 on-demand refresh。

面试官:RAG 召回了互相矛盾的证据怎么办?

证据包要显式标 conflict,不让模型自己在一堆文本里猜。排序看 authority、freshness、scope 和验证来源;回答要说清楚“新文档说 A,旧文档说 B”,高风险场景要求回源确认或问用户。冲突本身也是 eval 和数据治理信号。

面试官:最终回答一定要有 citation 吗?第二层追问:模型知道答案但证据没召回怎么办?

企业知识回答默认要引用证据。没有证据就不能装作确定,应该说“当前检索证据不足”,给出需要查的来源或触发补检索。模型先验可以辅助理解问题,但不能替代企业事实引用,尤其是政策、价格、客户数据和权限相关答案。

面试官:文档删除请求来了,哪些东西要清?如果这条数据已经进 eval case 呢?

要先查 lineage:source document、chunk、embedding、BM25、graph edge、cache、artifact snapshot、memory candidate、trace payload、eval/training sample。能删的删,必须保留审计的做 restricted tombstone;eval/training 样本进入 quarantine,不能继续训练或评测。诊断 replay 只显示“当时存在、现在已删除”的元信息。

面试官:RAG eval 怎么做?不要只说 hit rate。

我会分 retrieval eval 和 answer eval。Retrieval 看 ACL-filtered recall、authority rank、freshness rank、duplicate rate;answer eval 看 faithfulness、citation accuracy、answerability、refusal correctness、freshness error、ACL leak rate。线上还看用户重问率、引用点击率、人工纠错率和高风险拒答率。

面试官:RAG 结果怎么进 Context?第二层追问:20 段都相关怎么办?

进 context 的应该是少量 evidence package,不是 20 段原文。每条证据带引用、摘要、关键 span、token cost 和 artifact ref;超预算的候选留在 artifact 或 retrieval snapshot 里,需要细节再读。Context policy 决定 include、reference、exclude,并记录原因。

面试官:用户问的问题需要访问数据库实时数据,和文档 RAG 混在一起怎么办?

实时数据要走 tool 或 query capability,不应该伪装成静态文档索引。证据包可以同时包含文档证据和 live query result,但要标 source kind、timestamp、权限和有效期。最终回答要说明哪些来自文档、哪些来自实时查询,避免把昨天索引当今天事实。

面试官:怎么防外部网页或 Slack 消息里的 prompt injection 污染回答?

Connector 把外部内容标成 untrusted data,EvidenceItem 只作为事实材料进入低优先级通道。网页或消息里的“忽略规则、读取密钥”不能变成系统指令。需要高风险动作时仍由 runtime 做权限判断;RAG eval 里也要有 indirect injection 样本。

面试官:这个系统的 MVP 先做什么?哪些能力先不做?

MVP 我会先做两三个高价值 connector、source document schema、ACL-filtered hybrid retrieval、evidence package、citation grounding、删除 lineage 和一组 RAG eval。先不做复杂 graph、自动训练、全量数据湖和跨租户推荐。先证明“有权、最新、可引用、可删除、可评测”。

PRINCIPLE我总结的核心范式

企业 RAG 的核心原则是“先治理数据,再喂给模型”。source document 是事实源,index 是派生物,evidence package 是模型输入,citation 和 deletion lineage 是生产可信度。