LangChain
校招考察频度:★ 高频(重点常考·大厂分水岭) 复习主线:LangChain 提供大模型应用开发的通用组件与抽象层。校招面试核心聚焦点:统一模型抽象(ChatOpenAI / ChatAnthropic)、消息类型体系(System / Human / AI / ToolMessage)、
create_agent最小工具循环机制、Tool 装饰器与 JSON Schema 生成、Memory 对话记忆管理与 LangSmith 链路追踪。
LangChain 是三层生态的组件层:提供模型抽象、工具体系、消息结构,以及 create_agent 最小 harness。
分类考频地图
| 专题 | 核心页面 | 校招考频星级 | 重点考查要点 |
|---|---|---|---|
| 核心抽象与 Agent 循环 | 核心抽象与 Agent 循环 | ★ 高频 | create_agent 工具调用状态机、循环终止判定(无 tool_calls 即结束)、ChatModels 统一接口、BaseMessage 消息继承树 |
| 工具定义与集成 | 工具定义与集成 | ★ 高频 | @tool 装饰器用法、args_schema 参数校验(Pydantic BaseModel)、Docstring 对模型工具选择准确率的关键影响 |
| 记忆与历史状态 | 记忆与对话历史 | ★ 高频 | Checkpointer 会话内记忆 vs Store 跨会话长期用户画像记忆、Trim / Filter 消息窗口修剪防 Token 超限 |
| RAG 集成与周边 | RAG 集成与生态 | ☆ 中频 | Retriever 转化为 Agent 可调用的 Tool(动态决定是否检索)、LangSmith 追踪调试(Run Tree)与 LangServe 部署 |
校招面试核心问答
create_agent底层是如何决定何时停止工具循环的?
当模型返回的AIMessage中包含tool_calls时,Agent 执行器会拦截调用对应工具并将ToolMessage追加进消息列表,继续循环投喂给模型;当模型生成的AIMessage中tool_calls为空且含有普通文本时,表示模型已推理出最终结论,循环结束并向外部返回文本。- 为什么写 Tool 时 Docstring(函数文档注释)比代码实现本身还重要?
因为在将 Tool 注册给模型时,框架会将函数名、参数类型以及 Docstring 提取为 JSON Schema。大模型完全依赖 Docstring 来理解该工具的使用场景、参数含义和边界限制。文档写得含糊不清会导致模型误调用或拒调。