Agent 项目使用了什么框架?
未标记
考查重点:框架分工与选择依据。报实际框架版本与模型/工具/状态分工,用一请求标它提供与自己补的部分,再解释选择
本题目录
参考答案
核心回答
下面以企业研搜助手为参考示例:它把公开网络信息、内部业务数据和私有文档结合起来,回答研究问题,并按需生成 Markdown 或 PDF。后端使用 Python,Agent 主要由 DeepAgents 组织,同时复用 LangChain 和 LangGraph 的基础能力。
DeepAgents:通过create_deep_agent组装主 Agent、三个自定义业务专家和工具。主 Agent 理解任务、选择专家、汇总结果并生成文件;专家分别查询网络、数据库和内部知识库。LangChain:统一模型接入和工具接口,把搜索、SQL、知识库等业务函数交给 Agent 调用。LangGraph:作为底层运行时承接图状态、流式执行和检查点。项目通过thread_id关联会话,当前检查点使用进程内的InMemorySaver。FastAPI:承接任务提交、上传下载和取消接口,后台异步执行 Agent,通过WebSocket推送进度和结果。
数据侧,Tavily 提供公开搜索,MySQL 保存结构化业务数据,RAGFlow 提供内部文档问答。选择这套组合,是因为任务需要按信息来源动态委派并交付报告;业务工具、会话目录和前端事件由项目代码接入,通用工具循环与专家委派复用框架。
展开说明
1. 说清各层实际用了什么
这个实现直接调用的是 create_deep_agent,注册模型、主提示词、文件工具、专家配置和检查点;底层图执行由框架组合提供。因此可以说“用 DeepAgents 构建,底层依赖 LangChain 和 LangGraph”,再分别说明各层实际承担的职责。
LangChain 的模型初始化接口创建项目统一使用的模型对象;工具装饰器把业务函数的名称、参数和说明暴露给 Agent。模型决定发起什么调用,实际访问网络、执行 SQL 或请求 RAGFlow 的仍是 Python 工具代码。模型通过 OpenAI 兼容接口接入,具体模型名由环境配置决定。
LangGraph 承接执行状态和消息流。项目传入 thread_id,把同一会话关联到检查点,并使用 astream 消费执行过程。这里配置的是 InMemorySaver,可支持进程运行期间的会话状态,但没有因此获得跨重启的持久恢复能力。
2. 用一个请求串起框架和业务代码
例如用户要求:“读取上传材料,结合内部药品销售数据和知识库说明,生成一份 PDF 报告。”参考实现的处理链路是:
FastAPI接收任务,创建后台协程并返回会话标识。执行入口为该会话准备工作目录,将上传文件复制到工作目录,并向 Agent 提供文件列表。- 主 Agent 先通过文件工具读取材料,再按需要通过框架的
task工具委派业务专家。数据库专家掌握列出表、查看样例和执行SQL的工具;知识库专家先查询可用RAGFlow助手,再向匹配的助手提问。只有需要公开信息时才调用网络专家。 - 专家结果回到主 Agent。主 Agent 组织报告内容,调用
Markdown生成工具,再转换为PDF。附件读取和最终文件交付由主 Agent 自己的工具完成。 - 应用消费流式执行结果,把工具调用、专家调用和最终回答转成前端事件;产物保存在对应会话目录,通过文件接口提供查看和下载。
这里,框架负责组织模型与工具的交互及委派;业务代码负责具体数据访问、目录处理、接口和事件推送。两者连接起来,才形成从用户请求到可下载报告的完整流程。
3. 为什么这样选,还有什么需要自己补
研搜任务所需的信息来源和补查顺序可能随返回结果变化,主 Agent 加专家工具的组织方式比较贴合这种需求。DeepAgents 提供已有的执行与委派方式,可以减少自行维护通用循环的工作;LangChain 的模型和工具接口便于接入业务函数,LangGraph 提供相应运行能力。
这并不意味着每个业务步骤都应交给模型决定。确定的文件转换、路径解析和事件封装,仍适合用普通代码实现。数据权限、查询约束、外部调用超时和业务幂等,也需要在应用或工具层落实。比如能调用 SQL 工具,只说明已经打通查询能力,不能据此认为已经具备完整的只读权限控制。
如果任务变成固定的“校验输入、查询数据、生成报告”,可以考虑普通函数或显式工作流;如果需要精确控制分支、暂停和恢复,也可以直接用 LangGraph 编排。替代方案应比较同一条业务链路需要补齐的工具循环、状态、错误处理和事件接口,不能只比较入口代码有多少行。
常见追问
你在项目里具体负责什么?
可以接着说明自己承担的模块及输入输出。例如,如果负责业务工具接入,就讲如何把查询需求转成工具参数、访问数据、处理异常并返回结构化结果;如果负责执行与前端联调,就讲会话如何关联后台任务、进度事件和最终文件。再选一个实际遇到的问题展开,职责就会比“用了某个框架”更清楚。
已有 LangGraph,为什么还用 DeepAgents?
LangGraph 可以更直接地描述状态、节点和分支;DeepAgents 在其上提供适合较长任务的 Agent 组织方式。这个参考项目主要复用高层主从委派,再接入业务工具,减少手写执行循环。如果高层控制方式与业务不匹配,可以下沉到显式图或自定义节点,按模块调整。
使用框架是否就支持任务恢复和取消?
要看实际接法。参考代码能取消后台 asyncio.Task,但第三方同步阻塞调用可能要等返回后才结束;检查点又采用内存实现,进程重启后状态不会保留。若需要持久恢复,还要配置相应存储,并处理恢复时可能重复执行的外部操作。
对应教程
- 深度研搜:项目总览与工程初始化:先看用户任务、三个信息来源专家和技术分工,建立完整项目用途,再进入具体框架接口。
- DeepAgents 基础与核心概念:理解 DeepAgents、LangChain 与 LangGraph 的层次,以及规划、工具和专家委派适合解决什么任务。
- 深度研搜配套源码:主智能体与异步执行:查看
create_deep_agent的实际注册项,以及会话目录、thread_id和astream如何连接执行过程。 - 深度研搜配套源码:FastAPI 接口层:查看 HTTP 任务提交、后台协程、取消接口与 WebSocket 事件的职责,理解框架之外的应用闭环。
参考资料
- 国内:JavaGuide:AI 应用架构设计:采用业务编排、模型接入与工具执行的分工,说明正文中应用自建接口和框架基础机制的边界。
- 国内:Datawhale:第六章 框架开发实践:依据模型、工具、状态与图编排的层次,说明正文中项目复用框架的范围和控制粒度。
- 国内:WeThinkIn:企业级 Agent 平台与产品落地高频考点:参考框架选型中工具生态、长任务、部署和维护能力的判断条件,把框架名称与项目需求联系起来。
- 国外:LangChain:Deep Agents overview:依据 DeepAgents 与 LangChain、LangGraph 的关系及工具、子 Agent 组合方式,说明正文中的框架分层;实际启用能力以项目配置为准。
- 国外:LangChain:Graph API overview:依据状态、节点与重新执行机制,说明正文中图运行时的职责及恢复后业务操作仍需幂等的原因。
相关面经
20 篇字节跳动
后端 Agent用什么框架做的(答没上框架,纯 Python)
阳光保险
AI 应用开发工程师你做的agent有用到框架吗?
水滴公司
AI全栈工程师中兴通讯
AI 算法工程师Agent 框架有哪些?
上海联蔚数科
AI 工程实习生(Agent 方向)你用过哪些agent开发框架
展开剩余 15 篇面经
汇川技术
全栈开发运维Agent你主要负责什么工作?使用的什么框架?
百度
Go 后端开发工程师这个 Agent 系统是用什么框架做的?
字节跳动
后端开发工程师Agent 是基于开源框架实现的吗?
中兴
软件开发工程师是基于LangGraph开发的吗?
小红书、百度
Agent 开发框架是用什么?是哪个语言?
京东
后端开发工程师agent的用了什么框架
小红书
Agent 开发在Agent开发过程中,使用了哪些技术框架?整体代码架构是如何设计的?
千寻智能
平台开发工程师Agent 平台是基于什么搭建的?
滴滴
测试开发agent框架有没有用过
字节跳动
Agent 开发你agent项目框架的时候有什么考虑?除了langchain你还了解或者调研过别的框架吗?
深势科技
后端开发工程师(AI / Agent 方向)Agent 项目用的什么框架?了解哪些主流框架?
字节跳动
Agent你用过哪些 Agent 框架?选型是如何选的?
腾讯音乐
后端开发用的什么ai框架开发?一共设计了几个agent?用了几种大模型?
哆咔互娱
Agent 开发工程师讲讲你现在做项目用的agent框架是什么和为什么用它?
字节跳动
Agent 开发工程师智能体框架







