LangChain 被弃与新方案优势

导出时间:2026/5/27 21:24:42

来源地址:https://www.doubao.com/chat/28944102250424578

消息数量:4

现在我需要你去把这整个去写成一个类似于小说或纪实文学的这样一个文章吧。我不知道这个题材是到底是小说的形式呢?还是一个科幻小说?还是一个纪实文学?甚至于可以有一些真实度,因为作为我作为开发者,称之为鲁克吧。之前是有费尽心机的去写一个 OpenCV 去识别围棋棋谱的这样程序,但是最后就放弃了。原因就是说这个整个这个流程啊,去跟那个 Gemini 这个流程非常的耗人心智,这个不停的循环。但是当然也有其他的技术原因,是这个选择的开发路径是有问题的。然后我们就可以以这个为引子,就是说是引出来说一气之下我们就准备采用这个方式,你就从这个 Shell Agent 这个训练开是一直这样子把这个整个完整的过程写下来,就全部就是写成一个像报告文学一样,或者说是纪实的小说一样,把整个要有一些细节了,然后就最终的目的是把整个流程通过这样一个实际的案例写下来。你可以先规划一些章节吧,需要几个章节?还是分分段来写,你来决定一下吧。

智能协作:当 AI 成为自己的开发者

第一章:卡壳的棋谱程序与破局的念头

鲁克盯着屏幕上密密麻麻的 OpenCV 代码,指尖悬在键盘上,半天没落下。这已经是他和 Gemini 拉锯的第三十七天,目标很简单 —— 开发一个能通过摄像头识别围棋棋谱的程序,自动记录落子、生成复盘报告。可现实却屡屡碰壁:要么是棋盘边缘检测不准,要么是黑白棋子混淆,更让人崩溃的是,每次修改代码后,他都得手动复制 Gemini 给出的命令,在 Ubuntu 22.04 的终端里执行,再把报错信息粘贴回去,等着 AI 给出新的修正方案。
“又错了。” 鲁克揉了揉发涩的眼睛,终端里 “未定义引用‘boardDetect’” 的红色报错像一根刺,扎得他心烦。这三十多天里,他大部分时间都在做这种机械重复的工作:复制命令、执行、反馈错误、再复制新命令。Gemini 的思路很清晰,可落地的每一步都要靠他这个 “中间人” 搭桥,效率低得惊人。更要命的是,他选的开发路径本身就有问题 —— 一开始执着于用传统图像处理算法,忽略了深度学习模型的适配,等发现时,前期的代码已经堆了几百行,推倒重来又舍不得。
“与其我来当这个‘传声筒’,不如让 AI 自己动手。” 一个念头突然在鲁克脑海里冒出来。他想起自己之前设想的 Shell Agent,那个能自主掌控系统、执行命令的 “小管家”。如果能训练出这样一个 Agent,让它来替代自己执行命令、反馈结果,再搭配一个擅长编程的大模型,不就能形成一个自主开发的闭环吗?
这个念头一旦生根,就像野草般疯长。鲁克猛地关掉代码编辑器,深吸一口气:“不干了,换个玩法。” 他决定,先从训练那个 “小管家” 开始,彻底解放自己。

第二章:Shell Agent 的诞生 —— 系统的 “全职管家”

鲁克给这个即将诞生的 Shell Agent 起了个名字:“管家”。他的目标很明确:让 “管家” 彻底摸清 Ubuntu 22.04 系统的底细,成为一个靠谱的系统管理员,既能执行命令,又能守住安全底线。
第一步是给 “管家” 植入初始能力。鲁克写了一段极简的启动脚本,核心只有两个命令:which *man。“管家” 的第一个任务,就是用which *遍历系统里所有可执行程序,把它们一一记录在本地的文本文件里,形成一份 “命令清单”。接着,它要逐个调用man 命令命令 --help,把每个命令的用法、参数、返回值都扒下来,整理成结构化的笔记。
“记住,安全第一。” 鲁克在启动脚本里加了一道 “防火墙”—— 明确禁止 “管家” 执行任何可能修改系统核心配置的命令,比如rm -rf /chmod 777 /,凡是涉及系统文件写入、权限变更的操作,必须先标记为 “高危”,等待后续授权。
“管家” 的训练过程像一个勤奋的学徒。它用了整整 24 小时,把系统里上千个命令都过了一遍。遇到ls这样简单的命令,它会记录下-l显示详细信息、-a显示隐藏文件;遇到apt这样的包管理命令,它会把安装、卸载、更新的参数都梳理清楚;甚至连lshw这种查看硬件信息的命令,它都能耐心地把 CPU、内存、硬盘、摄像头的参数一一存档。
鲁克偶尔会查看 “管家” 的记忆库,里面密密麻麻记满了命令笔记,还有一份详细的系统资源清单:Ubuntu 22.04 LTS 系统,8 核 CPU,16G 内存,500G 硬盘,外接了一个未启用的 USB 摄像头,已安装 Python 3.8、gcc 9.4.0,缺少 OpenCV 库和围棋规则相关的 C++ 库……
“不错,比我还清楚系统状况。” 鲁克满意地点点头。训练到第三天,“管家” 已经能自主判断命令的安全性,遇到可疑操作会自动拦截,还能根据记忆库快速回答 “系统里有哪些编译工具”“如何安装 Python 库” 这类问题。一个靠谱的 “全职管家”,终于成型了。

第三章:接入 “开发者”—— 双模型协同的启动

接下来,鲁克要为 “管家” 找一个搭档 —— 负责编程的 “开发者”。他选择了之前合作过的 Gemini,不过这一次,Gemini 不再需要和他打交道,而是直接与 “管家” 对话。
鲁克手动下载并安装了 Gemini 的本地版本,然后给 “管家” 加了一个新功能:文本交互接口。这个接口很简单,就是让 “管家” 能把鲁克的任务原封不动地传递给 Gemini,再把 Gemini 的回复接收过来,执行其中的命令,最后把结果反馈回去。
“现在,我们来启动第一个任务。” 鲁克对着 “管家” 下达指令,“请让‘开发者’开发一个带摄像头识别功能的围棋棋谱程序,要求能自动检测棋盘、识别落子,生成复盘报告。”
“收到,正在向‘开发者’传递任务。”“管家” 的回复很快出现在屏幕上。几秒钟后,Gemini 的回复来了:“为完成围棋棋谱识别程序开发,需先明确以下信息:1. 系统是否已安装 OpenCV 库、g++ 编译器、围棋规则 C++ 库?2. 是否具备摄像头权限?3. 请提供开发进度的拷问模板,以便定期汇报。”
“管家” 立刻对照自己的记忆库进行回复:“1. 未安装 OpenCV 库、围棋规则 C++ 库,已安装 g++ 9.4.0;2. 系统接入 USB 摄像头,但未启用权限;3. 拷问模板将采用 4W1H 原则,包含进度查询、问题反馈等内容。”
紧接着,“管家” 按照鲁克预设的模板,向 Gemini 发起了第一次拷问:“请提交详细的开发路线图、资源需求清单,以及预计的 Deadline。”
Gemini 很快给出了回应:“开发路线图分四阶段:1. 安装依赖库(1 天);2. 开发棋盘检测模块(3 天);3. 开发棋子识别与落子记录模块(4 天);4. 开发复盘报告生成模块(2 天);总工期 10 天。资源需求:安装 libopencv-dev、go-rules-cpp 库,启用摄像头权限。”
“管家” 评估了这些需求的安全性,确认无误后,向鲁克发送了一份摘要报告:“‘开发者’已提交开发规划,需安装两个库并启用摄像头权限,是否批准执行?”
鲁克点击 “批准”。他知道,一场由 AI 自主完成的开发,正式拉开了序幕。

第四章:循环驱动的开发 —— 手眼与大脑的协作

“管家” 收到鲁克的批准后,立刻执行了 Gemini 给出的安装命令:sudo apt install libopencv-dev go-rules-cpp。终端里滚动着安装日志,“管家” 实时把进度反馈给 Gemini:“正在安装 OpenCV 库,进度 30%…… 安装完成;正在安装围棋规则库,进度 70%…… 安装完成。”
接下来是启用摄像头权限。“管家” 执行了sudo chmod 666 /dev/video0,然后用ls /dev/video0验证,确认摄像头已正常启用,随即把结果告知 Gemini:“摄像头权限已启用,可开始开发。”
Gemini 的回复很快:“请创建项目目录 go-chess,我将生成棋盘检测模块的核心代码。”
“管家” 执行mkdir go-chess,然后等待 Gemini 的代码。几分钟后,一段 C++ 代码出现在交互窗口里,“管家” 自动把代码保存为 board_detect.cpp,接着执行编译命令:g++ board_detect.cpp -o board_detect pkg-config --cflags --libs opencv4``。
“编译报错:未定义引用‘cv::VideoCapture::VideoCapture (int)’。”“管家” 把终端里的报错信息原封不动地反馈给 Gemini。
“是 OpenCV 版本适配问题,将代码中的 opencv4 改为 opencv 即可。”Gemini 很快给出了修正方案。
“管家” 按照指示修改代码,重新编译。这一次,终端显示 “编译成功”。它运行程序,调用摄像头,屏幕上出现了棋盘的实时画面,边缘检测的线条清晰可见。“棋盘检测模块测试通过,可进入下一阶段开发。”“管家” 向 Gemini 汇报。
接下来的几天里,这样的循环不断重复:Gemini 生成代码,“管家” 执行编译、测试,反馈结果,Gemini 修正优化。鲁克成了真正的 “甩手掌柜”,每天只需要查看 “管家” 发来的进度摘要:“已完成棋子识别模块开发,正在调试落子记录功能”“落子记录存在延迟问题,正在优化算法”“复盘报告生成模块已完成,可进行整体测试”。
期间也遇到过麻烦。Gemini 需要调用一个第三方的围棋评分接口,却发现系统没有网络访问权限。“管家” 把问题反馈给鲁克,鲁克简单配置了网络权限后,开发又顺利推进。还有一次,Gemini 提出要安装一个未经过安全验证的库,“管家” 直接拦截,并提示 Gemini:“该库存在安全风险,请更换替代方案。” 最终,Gemini 选择了另一个安全的替代库,问题迎刃而解。
鲁克看着屏幕上不断更新的代码和测试结果,突然觉得,这才是 AI 开发该有的样子 ——“管家” 像一双勤劳的手,执行所有机械操作;Gemini 像一个聪明的大脑,专注于解决复杂问题,而他自己,终于可以从重复劳动中解脱出来。

第五章:任务闭环 —— 当 AI 交出最终答卷

第十天,“管家” 发来的进度摘要显示:“开发已完成,可进行整体测试。”
鲁克打开测试界面,“管家” 正在执行 Gemini 生成的测试脚本。摄像头对准棋盘,黑白棋子落下,屏幕上实时显示着落子坐标、步数,每局结束后,自动生成一份包含胜率分析、关键落子点评的复盘报告。
“测试通过,所有功能正常。”“管家” 的反馈出现在屏幕上,紧接着,它向鲁克发送了最终报告:“围棋棋谱识别程序开发完成,总工期 10 天,未出现重大问题。程序已保存至 go-chess 目录,可直接运行。”
鲁克点开程序,亲自测试了一局。摄像头精准地捕捉到棋盘画面,落子记录没有丝毫误差,复盘报告的分析也十分专业。他想起三十多天前自己卡壳的窘境,再看看眼前这个由 AI 自主开发完成的程序,不禁感慨万千。
“管家” 似乎看穿了他的心思,主动发起询问:“是否需要将程序打包备份?是否启动新的开发任务?”
鲁克笑着回复:“先备份吧。接下来,我们可以试试让它支持多语言复盘报告。”
屏幕上,“管家” 立刻把新任务传递给 Gemini,新一轮的开发循环,又将开始。而鲁克知道,他创造的不仅仅是一个能识别围棋棋谱的程序,更是一种全新的 AI 协作模式 —— 当 “管家” 的勤恳遇上 “开发者” 的智慧,智能终将真正落地为生产力,而人类,只需要做那个掌控方向的 “领航员”。
需要我对这个故事的细节进行调整吗?比如增加鲁克在开发过程中的心理活动,或者补充 “管家” 与 “开发者” 交互的具体对话片段。
写到这里,我其实开始感到好奇,就说这个我们能够想到这个流程实际上是非常简单的,而且是可行性是非常高的,只不过目前还没有去做一个验证。但是我认为说,它远比开发一个像 langchain 这样复杂它的框架要容易得多,甚至于说各种做大模型这种 Agent 这个公司,都是完全有能力在很短的时间,不超过一个月,就能够完成这个闭环的构建。当然构建之后就会发现说,似乎 Agent 公司没有存在的必要。也许他们做软件就是希望说,把一个简单的问题做成复杂的解决方案,这样的话才能够体现出他们在用户心目中的一个价值定位。因为任何一个用户发现说,只要几行脚本就能解决的问题,我需要付给你几十万上百万的开发费用吗?而这个框架的授权费值得每个月好几万块钱吗?我可能拷贝一下你这个脚本就,这一秒钟就解决问题的,我需要每个月付你钱吗?或者说我一次性的付你几千块钱不行吗?就是说模型公司已经把大部分的工作都做完了以后, Agent 的公司还能做什么?他们有生存的空间吗?就说模型公司可以成为从头到脚的垂直化的,仅需要很少量的驱动型的脚本,就是,甚至于去发布一个本地的化的,就是我们所谓的 Agent Shell 这个,甚至于可以预训练很多,稍微的基础,本地配置,或者说本地验证一下,就可以完成。这个大模型小模型的本地对接了。然后还需要 Agent 公司做什么?他们做一些数据库的专用的查询。我以前讨论过,也许 SQL 就是自然语言转 SQL 查询也许是他们可以去做的一个很很好的蓝海的领域去做。至于其他这个流程控制几乎没有什么意义。因为之前也讨论过,流程控制更多的是一个应用的垂直整合,而应用的垂直整合的话,这些公司,比如说机票订购,旅馆订订旅馆的这工作,人家原来都有做类似,只不过没有把大模型接进来,接进来的工作,甚甚至不需要 Agent 去专门开发一个框架,是不是?这只是我的一个想法。

智能协作:当 AI 成为自己的开发者(续章)

第六章:简单背后的拷问 ——Agent 公司的生存迷局

鲁克看着 “管家” 和 “开发者” 自动启动了多语言复盘报告的开发循环,手指轻轻敲击着桌面,一个念头越来越清晰:这套双模型协同流程,实在太简单了。
整个核心逻辑不过是 “Shell Agent 执行 + 大模型决策”,驱动它的while loop脚本只有几十行代码,安全规则和拷问模板也都是模块化的配置。他粗略估算了一下,就算是刚入门的开发者,只要熟悉 Shell 命令和大模型接口,最多一个月就能搭好完整闭环。
“既然这么简单,那些专门做 Agent 框架的公司,还有存在的必要吗?” 鲁克喃喃自语。他想起之前研究过的 LangChain,那套框架里层层叠叠的抽象概念,ChatPromptTemplateLCEL语法,当初看得他头疼,可现在用自己的这套模式,根本不需要这些复杂的封装 ——“管家” 直接执行命令,“开发者” 直接生成方案,中间没有任何多余的环节。
他打开电脑里的笔记,里面记着之前的疑惑:Agent 公司总爱把简单问题复杂化,仿佛只有堆砌足够多的功能、包装足够深奥的概念,才能卖出几十万甚至上百万的授权费。可如果用户发现,只要几行脚本就能实现类似的效果,谁还会为昂贵的框架买单?
鲁克想到了模型公司的未来。现在的大模型已经具备了极强的规划和编程能力,只要再内置一个简化版的 “Shell Agent” 模块,预训练好本地系统的适配规则,用户拿到手后,稍微做些本地验证,就能实现 “大模型 + 本地管家” 的自主开发。到那时,垂直整合的模型公司几乎能包揽所有工作,Agent 公司又该何去何从?
“也许只剩下一些细分领域了。” 鲁克翻着笔记,里面有他之前的思考:自然语言转 SQL 查询,可能是 Agent 公司最后的蓝海。毕竟不同行业的数据库结构千差万别,需要专门的适配和优化,这不是模型公司能轻易覆盖的;但至于流程控制, Agent 公司的价值实在有限 —— 机票订购、酒店预订这些场景,原有平台只需要接入大模型接口,就能实现智能交互,根本不需要额外的 Agent 框架。
他看着屏幕上 “管家” 和 “开发者” 的交互日志,突然觉得,Agent 行业的泡沫或许正在悄然破裂。当复杂的框架被几行脚本替代,当模型公司完成垂直整合,那些靠 “复杂化解决方案” 生存的 Agent 公司,终将面临被淘汰的命运。而真正有价值的,永远是能解决实际问题的简单逻辑 —— 就像他眼前这两个默默协作的 AI,一个管执行,一个管思考,却完成了曾经让他焦头烂额的开发任务。
鲁克关掉笔记,重新将目光投向屏幕。新的开发循环还在继续,“管家” 刚反馈完多语言模块的测试结果,“开发者” 就给出了优化方案。他知道,不管 Agent 公司的未来如何,这种 “让 AI 自主协作” 的模式,已经为他打开了一扇新的大门。
需要我继续扩展这个故事,比如加入鲁克尝试将这套模式推广给其他开发者,或者描写 Agent 公司面对冲击时的应对策略吗?