Skip to content

开发框架 · 技术问答

用法:每题先口述 60–90 秒,再对照要点。加分句选 1 句。ReAct / 死循环细节看 Agent 面试题


应用框架 · 技术问答

必会

重点 LangChain 六大核心组件的职责和关系?

答题要点

  • Models:LLM(补全)/ Chat Model(对话、工具调用)。
  • Prompts:把用户输入收成模型吃得下的模板。
  • Memory:在无状态调用上接对话历史。
  • Indexes / Retrievers:外部文档结构化,RAG 底座。
  • Chains:组件按预定顺序串(如 prompt | llm)。
  • Agents:由模型决定调哪些工具,观察后再迭代。

加分句:Chain 是写死的流水线,Agent 是循环里自己选工具。


Q2. LangChain 的 Memory 怎么实现?

答题要点

  • Buffer:全文塞回去,短对话可以。
  • BufferWindow:只留最近 K 轮,防 Token 爆。
  • 摘要记忆:用 LLM 压历史再传。
  • 向量记忆:历史进向量库,按当前问题检索(记忆版 RAG)。

加分句:短用窗口,长用摘要或检索,不要默认全文 Buffer。


重点 从零手写一个 Agent 框架,底层要解决哪几层?

答题要点

  • 大脑适配:抹平各家 API 和 prompt 格式。
  • 工具注册:函数 docstring + 类型 → JSON Schema;模型要调时解析参数、执行、把结果当 Tool Message 塞回。
  • 上下文:滑动窗口 / 摘要 / 向量长期记忆。
  • 编排:Pipeline 或带重试的 Loop/DAG;Trace 记下每次拼接、Token、工具耗时,方便查幻觉和死循环。

加分句:Agent 和单次调用的差别在编排循环,不在「多包一层 SDK」。


Q4. ReAct 的运行逻辑和状态机是怎样的?会死循环吗?

答题要点

  • Thought → Action → Action Input → Observation,再 Thought,直到 Final Answer。
  • Observation 要把真实返回或报错原样带回,模型才换策略。
  • 死循环:反复同一工具、不给 Final Answer。工程上最大步数,或连续相同 Action 惩罚/打断。

加分句:细的打断策略看 Agent 题 Q15;这里先说清状态机。


Q5. LCEL 解决了早期 Chain 的哪些痛点?

答题要点

  • | 声明式编排,流向直观,少嵌套胶水。
  • 组件统一成 Runnable:invoke / stream / batch 及异步一套接口,流式和批处理不用改内部。
  • 字典会变成 RunnableParallel,I/O 并行,总耗时约等于最慢那路,而不是相加。

加分句:能说出「并行取 max、接口统一」比背 prompt | llm | parser 更有用。


进阶

重点 LangChain、LlamaIndex、Qwen-Agent 怎么选?

答题要点

LangChainLlamaIndexQwen-Agent
定位编排 / Agent索引与检索轻量 Agent
擅长多步工具、LCEL切分、持久化索引files 直传、内置代码解释与 WebUI
  • 海量 PDF 精准问答:可先 LlamaIndex。
  • 检索完还要写报告、发邮件:LlamaIndex 管数据,LangChain 管链和工具;检索 Node 转成 LangChain Document。
  • 换向量库改数据层;加审批改编排层。

加分句:你项目检索是自建 LanceDB+BM25,不是「只会 FAISS 教程」;框架题答分层即可。


都有哪些主流的 AI Agent 框架?

口述:先说定位,再说什么时候用。LangChain / Qwen-Agent / LlamaIndex / AutoGen 四家够开场;有环、要状态再补 LangGraph。

  1. LangChain — 全能编排,LCEL 管道 + 工具生态。线性 RAG、对话、单 Agent 调工具。复杂循环别靠 Chain 嵌套。
  2. Qwen-Agent — 轻量,绑通义,工具调用和代码解释器是长项,也接 MCP。国内模型、要本机跑工具时顺。
  3. LlamaIndex数据 / RAG 专家,切分、索引、检索强。严格说不是 Agent 框架;检索完还要多步工具,检索交给它、编排交给 LangChain。
  4. AutoGen — 多智能体互相说话:几个角色对话把任务聊完。适合研究式多角色,不适合当通用 RAG 底座。

有状态、要重试分支:LangGraph(图,不是又一条链)。口条:编排用 LangChain,检索用 LlamaIndex,千问工具用 Qwen-Agent,多角色对聊用 AutoGen。


LCEL 管道语法是什么?

口述:LCEL(LangChain Expression Language)是 1.x 的核心写法。用 | 把组件接成管道,左边输出自动当右边输入。Prompt、Model、Memory、Retriever 都做成标准积木 Runnable,同一套 invoke / stream

数据流:用户输入 → PromptTemplate → ChatModel → OutputParser → 结构化输出

python
from langchain_core.prompts import PromptTemplate
from langchain_community.llms import Tongyi

llm = Tongyi(model_name="qwen-turbo", dashscope_api_key=api_key)
prompt = PromptTemplate(
    input_variables=["product"],
    template="What is a good name for a company that makes {product}?",
)

chain = prompt | llm
result = chain.invoke({"product": "colorful socks"})

invoke 的 dict key 必须和 input_variables 同名。要结构化再在后面 | parser。有环别用 | 硬套,上图。口条:| 拼积木,invoke 一次跑完整条链。


从业务场景怎么选 Agent 框架?

口述:先问业务要什么,再点名框架。能组合就组合,别绑死一家。

  1. LangChain — 通用 AI 应用,要灵活控流程,或要切换多种模型。
  2. LlamaIndex — 主做 RAG / 企业知识库,手里一堆 PDF、Word、Excel。
  3. Qwen-Agent — 主用 Qwen,要数据分析(Code Interpreter)或超长文档(官方长窗口口径到 1M)。
  4. AutoGen — 一个人干不完,要多角色吵、协作才出结果。

检索完还要写报告、发邮件:LlamaIndex 管数据,LangChain 管链。有环、审批补 LangGraph。口条:通用编排 LangChain,知识库 LlamaIndex,千问数分/长文 Qwen-Agent,团队对聊 AutoGen。 1M 是官方口径,别报成自己压测。



了解

为什么用 LangGraph 而不是传统 Chain?

答题要点

  • Chain 基本是 A→B→C;循环(写代码失败回到写)和分支很难。
  • LangGraph:有环图、全局 State、可 checkpointer 暂停(等人审批)再恢复。
  • 自研 OpenManus 类:Planner / Human Review / Executor / Reviewer 当节点,高风险进人工节点。

加分句:需要 Loop、HITL、可恢复状态再上图;线性流水线用 Chain/Workflow 即可。



OpenManus 四级继承是什么?

答题要点

  • BaseAgent:LLM、Memory。
  • ReActAgent:推理 + 行动循环。
  • ToolCallAgent:解析工具调用。
  • 业务 Agent(如 Manus):注入浏览器等工具。
  • 开闭:新做「库管 Agent」继承 ToolCall 层,只换 Tool 集合,不重写循环。