高频实战题:用户反馈"回答错了",光看最终输出根本定位不了。面试官要的是你能否从错误结果反向追踪到具体环节——模型、知识、Skill、工具、Agent 节点,哪一环出了问题。
💡 答案要点
核心认知: 一次回答 = 模型决策 + 知识供给 + Skill 流程 + 工具执行 + 节点流转,任何一环都可能出错。反查的前提是每环节都留痕——只记"答了什么"没法复盘,要记"每一步看到了什么、调了什么、返回了什么"。
反查路径(从结果往回追):
错误回答
→ ① Agent 节点:执行轨迹回放,哪一步决策错了?走到了哪些节点?
→ ② 工具环节:调了哪个工具?参数是什么?返回什么?有没有失败/超时?
→ ③ Skill 环节:走了哪个 Skill 版本?Skill 的输入输出是什么?
→ ④ 知识环节:检索到了哪些 chunk?(doc_id、版本、来源)
有没有命中过期文档/错误切片?
→ ⑤ 模型环节:用的哪个模型版本?输入上下文(prompt/历史)是什么?落地要点(能反查的关键):
- trace_id 贯穿全链路:一次请求的所有环节共用同一个 trace_id;
- 资产版本快照:模型版本、知识库版本、Skill 版本都要随请求记录——"当时用的哪版知识"比"现在哪版"重要;
- 检索结果持久化:不能只记"检索了",要记"检索到什么"(chunk id + 内容摘要 + 来源),否则无法判断是不是知识喂错了;
- 工具调用留痕:参数、返回、耗时、错误码,全部落库;
- 决策理由记录:Agent 每个节点的决策依据(如"为什么选这个工具")记录在 trace 里。
LangFuse 记录什么(直接背):
模型及资产版本:model、prompt_version、knowledge_version、skill_version
成本:token 消耗(input/output)、费用
性能:延迟(TTFT、总耗时)
检索:query、召回 chunk 列表、rerank 结果
工具:tool_name、参数、返回、成功/失败
Agent:节点序列、状态流转、中断/恢复点复盘输出(回答里加分):
- 定位到环节后给出结论:如"知识环节出错——检索命中了旧版合同条款(doc_id=xxx, version=2.1),现网已是 3.0";
- 修复动作闭环:更新知识 → 加回归用例(防止同类问题再犯)→ 重跑评测。
面试话术:
"一次回答出错,我会按五层反查:Agent 节点回放看决策、工具环节看参数和返回、Skill 环节看版本和输入输出、知识环节看召回 chunk 的 doc_id 和版本、模型环节看模型版本和输入上下文。能反查的前提是全链路留痕——trace_id 贯穿,模型/知识/Skill 版本随请求快照,检索结果必须持久化(记检索到什么而不是只记检索了),工具调用全量落库。定位到环节后再做闭环:修数据、补回归用例、重跑评测。没有留痕就没有复盘,这是 Agent 可观测性和传统监控最大的区别。"