ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

面试官问「为什么手搓 Agent,不用 LangChain」,你说「框架太重了」——他把笔帽扣上了

面试官问「为什么手搓 Agent,不用 LangChain」,你说「框架太重了」——他把笔帽扣上了 ️ 面试现场 · 还原面试官翻到简历最后一行你写了「自研 Agent 调度 harness」。这东西为什么不用 LangChain我框架太重了。面试官把笔帽扣上那你知不知道LangChain 1.0 已经加了 middleware这一问不是在考你知不知道 middleware。他是在分辨一件事你是踩过坑所以不用还是没跟上所以不用。这两者隔着一整个身位。「框架太重了」这句话本身没错谁都说得出来。但重是现象不是理由。他接着要听的是三件事重在哪、代价是多少、你怎么权衡。说得出这三件事这道题才算答完。️ 第一个坑你只说了「重」没说重在哪先把「重」这个字具体化。同一个需求——把一句话翻译成意大利语——两段代码放在一起看。直接用 SDKfrom openai importOpenAIclient OpenAI()resp client.chat.completions.create( modelgpt-5, messages[ {role: system, content: 你是一名资深翻译}, {role: user, content: 把这句话翻译成意大利语hello!}, ],)print(resp.choices[0].message.content)经过框架from langchain_openai import ChatOpenAIfrom langchain_core.prompts import ChatPromptTemplatefrom langchain_core.output_parsers import StrOutputParserprompt ChatPromptTemplate.from_messages([ (system, 你是一名资深翻译), (user, 把这句话翻译成意大利语{text}),])chain prompt | ChatOpenAI(modelgpt-5) | StrOutputParser()print(chain.invoke({text: hello!}))两边做的事一样。区别在于右边多出了三个抽象——Prompt 模板负责把 prompt 塞给模型、输出解析器负责处理模型吐出来的东西、Chain用|覆盖了 Python 的位运算符。多出来的抽象层不产生价值只产生距离。直接用 SDK 1 跳到达真实请求 你的业务代码 → HTTP 请求经过框架 5 层才落到同一次 HTTP 你的业务代码 → Chain → LLMChain → BaseLLM → HTTP 请求越往下越窄每一层都在你想要的东西外面又包了一层同样一次 HTTP 请求左边 1 跳右边 5 层。层数本身不是罪罪在收到错误时它们把现场盖住了。真正要命的是出事的那一刻。返回格式不对、工具参数串了你去翻日志——前面全是框架自己的转发记录想找回最初那句 prompt 到底长什么样得往回翻好几屏。这不是我在抱怨是写 Claude 的那家公司说的Anthropic 在 2024 年 12 月的工程博客《Building Effective Agents》里写过这件事原文大意是框架虽然让你起步更快但它们常常制造出额外的抽象层而这些层会遮蔽底层的 prompt 和 response让调试变得更困难所以建议开发者从直接调用 LLM API 起步如果确实要用框架务必搞清楚它底下在做什么。⚠️认知冲击需要说明一个前提那篇文章举的反面例子是 Rivet、Vellum 这类 GUI 编排工具并没有点名 LangChain。但它描述的机制——抽象层遮蔽 prompt——对所有高层封装都成立这也是这条引用真正值钱的地方。面试话术 · 可直接用「框架太重了」是个现象不是理由。要说重在哪一个最简单的文本生成调用栈要穿过 Chain、LLMChain、BaseLLM 好几层才落到 HTTP 请求上真出问题时那几层把最初的 prompt 盖住了翻日志得翻好几屏才能找回现场。能说出「重在哪、代价是多少」这道题才算答完。️ 第二个坑把「版本动荡」讲成了纯粹的抱怨这条事实是硬的而且很好用。阶段官方推荐的写法你的代码要承受什么早期Chain / LLMChain 那一套—中期LCELpromptmodelLangChain / LangGraph 1.0create_react_agent被弃用改用langchain.agents.create_agentAgent 入口函数改名 迁移create_react_agent在 LangGraph v1 里被正式标记为弃用官方给的理由是要用 LangChain 新的create_agent——它跑在 LangGraph 之上并且带来了 middleware 体系。你的业务逻辑一个字都没改框架一升级代码就得跟着改。这份升级成本框架不承担你承担。但如果你只讲这一层面试官会补一句「可 1.0 这次升级不是白升的middleware 就是这么来的。」所以真正要说的是后半句。把抱怨升级成判断版本动荡的代价从来不是改几行代码而是你被迫承接了一份你完全无法控制的变更成本——什么时候变、变成什么样、迁移要多久都不由你决定。新手答法抱怨「LangChain 版本老变代码老是得改。」这是抱怨。抱怨谁都会面试官听完只会觉得你不喜欢麻烦。面试官想听的判断「它会变而且升级同时给了什么、拿走了什么我得先算清楚再接。」这是判断。说明你跟到了 1.0也说明你会算账。️ 第三个坑「黑盒我插不进去」——这句话在 2026 年不成立了这是最容易被当场反杀的一句也是本文最想先给你打的一针疫苗。「框架把模型调用、工具分发封在黑盒里我插不进去」——这句在 2024 年成立在 2026 年会被打回来。因为 LangChain 1.0 的核心动作就是回应「抽象太重、开发者想要更多控制」这件事。它给出的答案就是 middleware内置 middleware它替你解决的问题Human-in-the-loop工具执行前暂停让人审批、编辑或拒绝这次调用Summarization对话接近上下文上限时压缩历史、保留近文防令牌溢出PII redaction内容送进模型前按模式匹配脱敏邮箱、电话等敏感信息自定义 middleware把 hook 挂到 agent loop 的各个步骤上所以「插不进去」这句话现在不成立了。硬讲只会暴露你没跟上。正确做法是把论点往上抬一层。这一层就是分水岭middleware 给你的是框架开好的那几个口子不是干预权。我真正要的是两样它给不了的东西。第一任意一步的干预权。不是它预设好的那三五个 hook 点而是我在它跑偏的下一步能直接把它拧回来。模型这一步在想什么、调了哪个工具、返回值合不合理全都得摊在明面上——而不是埋在框架的转发日志里。框架定义的 hook 是「你可以在这些位置插手」我需要的是「我可以在任意位置插手」。这两句话差得很远。第二对我自己 prompt 前缀的完全控制权。这一条最容易被忽略但它直接关系到账单。框架为了兼容各种场景会夹带一堆冗余的封装提示词。这些多余的文字会破坏前缀对齐让服务端的 prompt caching 频繁失效——缓存一失效成本就是几倍地涨。这不是代码洁癖是真金白银。一个真实的迁移案例OctomindOctomind 是一个用 AI Agent 自动生成和修复 Playwright 端到端测试的团队。他们在生产环境里用 LangChain 用了一年多2024 年把它移除了。他们写下来的原因很具体而且不是「跑不动」高层抽象让代码越来越难理解、越来越难维护。他们想改系统底层的某些行为但 LangChain 刻意抽象掉了太多细节改不动。你想深入底层的那个地方恰好是它不想让你碰的地方。插一句请注意这个案例的准确归因他们不是被工具能力卡住的是被抽象层本身的刚性卡住的。本节的立论这道题真正的立论不是「框架是黑盒」而是——框架不给确定性的答案。middleware 是可选能力但成本结构、调度秩序不在它的默认路径上。️ 最后一道保险上生产要控的三件事把手搓的价值落到工程上其实就三件事。面试时把这三条按顺序报出来比背十个框架名有用得多。1可观测每步的输入 / 工具调用 / 返回值 / token 全摊开能插桩、能拦截2成本分层压缩 前缀对齐让 prompt caching 不被打断3调度只读并发 / 写操作串行 / 超时中断秩序和速度都要这三件事都有一个共同点它们的效果直接体现在账单和线上故障率上而不是体现在代码好不好看上。① 可观测模型每一步的输入、工具调用、返回值、token 消耗都要摆在你面前。能插桩、能拦截、能在跑偏的下一步把它拉回来。框架里的 middleware 只覆盖它预设的那些 hook 点覆盖不到我的位置。② 成本也就是上下文工程像 Claude Code 这类成熟的 Agent压缩是分层的折叠——在工具输出的那一刻就把冗长的对话历史折叠掉裁剪——按时间维度把过期的那一段切掉摘要——还不够时再按需生成摘要每一层都在省 token而且不破坏缓存结构。三层叠起来才是「省」和「不省」的差别。③ 调度模型还在推理的时候思考过程和工具状态就得流式推给前端查资料、读文件这类只读工具可以全量并发写代码、跑命令这类写操作必须严格排队、串行哪个工具超时了、抛异常了还要能通过中断信号及时把它中止掉。速度、秩序、安全三样都要。这套调度框架的默认路径里几乎没有现成的。 那框架是不是就完全没用了别急着站队。被这么追问的时候站队是最差的回答。框架在验证原型的时候是有价值的——快速搭个 demo 把流程跑通它确实省时间。这一点没必要否认否认了反而显得你没有工程判断。但你要分清楚跑 demo 是验证想法上生产是承担责任。这两件事用的不是同一套工具。顺便把一个必然会被问到的反手也答了面试官如果说「那你手搓的这套 harness谁来维护维护成本怎么算」不要嘴硬说没有成本。正确的答法是承认然后指出差别在哪面试话术 · 反手防御认。这份成本是我承担的。但关键在于这份成本我看得见、能优化框架里那份成本我看不见还得替它承担。同样是花钱一个是自己记账一个是别人替你记账还不给你看。 手搓 Agent 现在难不难真不难Codex、Claude Code 这些 Agent 已经把路铺好了GitHub 上有一大堆开源项目可以直接照着学。按你可能需要的方向挑五个。你想学的方向项目它的看点最短的那根骨架Mini-SWE-agent普林斯顿和斯坦福团队做的约一百行 Python在 SWE-bench Verified 上跑过约 74%。它连工具调用接口都没有所有动作都走 bash——你想看 Agent 最原始、最简的那根脊椎看它白盒化的工程范式OpenAI Agents SDK价值在轻量封装agent runner、guardrail、handoff 三个核心能力拆得清清楚楚是干净、标准的白盒工程范式上下文工程怎么打Aider它首创的 repo map 能用很小的代价把整个代码仓库压成一张结构地图让模型先看懂项目全貌多文件编辑支持 diff、udiff、整文件三种模式切换。教科书级别协议怎么落地GooseBlock 开源的 Rust Agent亮点是深度集成了标准化的 MCP 协议。想搞清 MCP 在 Agent 里怎么落地或者想看系统级高并发 Agent 架构读它类型安全怎么写Pydantic AIPydantic 团队出品把 FastAPI 那套丝滑的类型安全体验搬进了 Agent依赖注入、类型化工具、结构化输出全都有。想写不容易踩坑的生产级 Agent它的设计值得抄至于 LangChain 的十四万星——那是事实。但面试官不考星标数考的是你能不能说出代价。顺带说一句这五个项目的星标数我就不列了。星标每天在变而它恰好不证明你想证明的东西。你真正该读的是它们的控制流一次模型调用之后状态存在哪、工具怎么分发、错误怎么收拾。 附选型决策树 如果你只想要一段能直接说出口的话下面是压缩到三十秒的版本可以直接背三十秒版 · 直接背这段因为我们线上要控三件事可观测、成本、调度——这三件事框架给不了确定性的答案。第一Agent 跑偏的时候我要能插桩、能拦截。框架开放的是它定义好的那几个 middleware hook 点不是我在任意一步干预的权限。第二框架自带的冗余封装提示词会破坏前缀对齐让 prompt caching 频繁失效这部分成本是真金白银。第三只读工具并发、写操作串行、超时中断这套调度框架的默认路径里没有。框架我会用来验证原型跑通流程很快。但真要上生产我会自己写 harness因为这笔账得我自己来还。 跳出这道题记住一句话框架负责让 Agent 跑起来手搓负责让 Agent 不出事。回到开头那一问。如果现在再有人把笔帽扣上问我那句「你知不知道 LangChain 1.0 已经加了 middleware」——我会答知道。而且正因为我看过它加了什么我才更清楚它没给什么。这道题考的是你对代价的理解重在哪、谁来承担、你怎么权衡。你站在框架这边还是手搓这边一点也不重要。重要的是你能不能说清楚——每一层抽象、每一次版本升级、每一个 hook 点背后的那笔账到底是什么。这才是面试官真正想听的东西。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
返回列表