Skip to content

常见面试题

LangChain / LangGraph 相关面试题整理,涵盖基础概念、架构设计、实战场景和原理理解。

基础概念

1. LangChain 是什么?解决了什么问题?

LangChain 是一个构建 LLM 应用的开发框架,主要解决:

  • 模型抽象:统一接口对接不同 LLM(OpenAI、Claude、本地模型等)
  • 链式编排:将多个步骤(检索→增强→生成)组合成工作流
  • 工具调用:让 LLM 能够调用外部 API 和工具
  • 状态管理:维护对话上下文和 Agent 状态

2. LangChain 和 LangGraph 的关系?

LangChain 是框架层,提供模型、工具、Agent 循环的抽象和集成。LangGraph 是运行时层,专注于有状态 Agent 的持久化、流式、人机协同等底层编排能力。

类比:LangChain 像 Spring Boot(开发框架),LangGraph 像 Kubernetes(编排运行时)。

3. 什么是 Agent?和 Chain 有什么区别?

ChainAgent
执行路径固定、线性动态、循环
决策能力LLM 自主决策
工具使用需要预定义自动选择
适用场景确定流程需要推理的复杂任务

4. 什么是 RAG?解决了什么问题?

RAG(Retrieval-Augmented Generation)通过检索外部知识增强 LLM 输出,解决:

  • 知识截止:LLM 训练数据有截止日期
  • 幻觉:通过提供参考文档减少编造
  • 私有知识:让 LLM 能访问企业文档

5. 什么是 Tool Calling?和 Function Calling 的区别?

Tool Calling 是让 LLM 输出结构化工具调用指令,由应用执行后返回结果。实际上现在业界已将两者混用,OpenAI 的 Function Calling 已更名为 Tool Calling。

LangGraph 原理

6. StateGraph 的执行流程?

  1. 编译:检查图拓扑(是否有不可达/循环节点)
  2. 调用:传入初始 State
  3. 遍历:从 START 开始,按边执行节点
  4. 合并:节点返回值通过 Reducer 合并到 State
  5. 条件路由:根据条件边函数决定下一步
  6. 结束:到达 END 返回最终 State

7. Reducer 的作用是什么?什么时候需要?

Reducer 定义多个节点写入同一 State 字段时的合并策略:

  • 无 Reducer:后写入覆盖先写入
  • operator.add:列表追加
  • add_messages:智能合并消息(去重、更新)

需要 Reducer 的场景:多个节点向同一个列表追加数据(如消息历史、搜索结果)。

8. Interrupt 如何实现人机协同?

Interrupt 在执行过程中暂停图,等待人工决策后恢复。实现方式:

  1. 编译时指定 interrupt_before/interrupt_after
  2. 节点内调用 interrupt() 函数
  3. 通过 graph.get_state() 获取暂停状态
  4. 通过 graph.update_state()Command(resume=...) 恢复

9. Checkpoint 的存储后端有哪些?

后端适用场景特点
InMemorySaver开发调试进程重启丢失
SqliteSaver单机测试文件持久化
PostgresSaver生产环境高可用、连接池
自定义特殊需求实现 BaseCheckpointSaver

10. Streaming 的几种模式区别?

  • values:每步完整 State
  • updates:每步 State 增量
  • messages:逐 Token(聊天 UI)
  • events:完整事件流
  • custom:自定义事件
  • debug:调试事件

实战场景

11. 设计一个多 Agent 客服系统

用户 → 分类 Agent → 订单 Agent(查订单)
                  → 售后 Agent(处理退款)
                  → 技术 Agent(解决问题)
        监督 Agent(协调、升级)

核心设计:

  • 每个 Agent 独立子图
  • 监督者用条件边路由
  • 关键操作(退款)加 Interrupt
  • Checkpoint 持久化对话

12. RAG 系统的优化策略

  • 分块策略:按语义段落分块,重叠窗口
  • Embedding 选择:BGE/M3E 中文效果好
  • 检索增强:HyDE(先假设回答再检索)
  • 重排序:Cross-encoder 精排
  • 多路召回:向量 + BM25 关键词
  • Query 改写:LLM 改写用户问题

13. Agent 的幻觉如何降低?

  • RAG 提供参考文档
  • 工具调用用结构化输出
  • 人工审批关键操作
  • 多次验证(self-consistency)
  • 输出约束(JSON Schema / Pydantic)

架构设计

14. 生产中 Agent 架构需要考虑什么?

  • 持久化:Checkpoint 存储选型
  • 容错:重试、降级、超时
  • 安全:工具权限、输入校验、速率限制
  • 监控:Tracing、日志、告警
  • 可扩展性:水平多实例
  • 成本:Token 消耗控制

15. 如何选择 Functional API 和 Graph API?

Functional API:流程较线性、想用标准 Python 写法 Graph API:复杂分支并行、需要可视化、精细控制

参考

本站为非官方中文学习站点,不代表 LangChain 官方。部分内容参考官方文档并重新整理为中文学习笔记。