A社的新年小课堂开课了。工程师 Thariq Shihipar ,提出了一个主要观点。
最强大的 Agent 工具,不是无数个定制的 API,而是 Bash 和文件系统。
基于Unix思想构建Agent的思路,会远超传统API工具。
要理解他的思路,首先要明确Agent定义,AI能力演进可以分为以下几个阶段。
最初的LLM,模型处理孤立的任务,一问一答。
后来,工作流Workflow出现了,也是目前的主流应用范式,比如RAG,系统基于人限定好的流程去按步骤执行。
最后到智能体Agents,不在遵循固定流程,可以自主构建上下文,规划路径。可以根据环境变化和任务进展,动态地规划和调整自己的行为。
从工作流到Agent,核心是自主性。
一个固定的RAG,无法处理检索空的情况,单Agent能意识到,可以尝试不同的关键词再次搜索,甚至去其他地方寻找信息。
这种自主性,也是传统API工具模式的瓶颈所在。如果Agent,遇到一个工具集里边没有,或者需要组合多个工具才能处理的问题时候,那就束手无策了。
Anthropic 的答案是,与其给无数单一功能的接口,不如直接给一个可以制造任何工具的环境——Bash。
被忽视的 Unix 哲学 - Bash
Anthropic 团队在内部构建各种 Agent 时,发现他们总是在重复造轮子,而 Claude Code 中那个看似简单的 Bash 工具,却能解决绝大多数问题。
一个关键的洞察是:人类开发者会如何解决问题?
假设一个开发者需要将一个视频文件转换成 GIF。
他不会去找一个专门的 videoToGif API。
他会在命令行里输入 ffmpeg -i input.mp4 output.gif。如果他需要在一个代码库里查找所有包含特定函数调用的文件,他会用 grep -r “functionName” .,而不是一个 codeSearch API。
Bash 和它背后的庞大命令行工具生态,是几十年来软件工程的最佳实践沉淀。
无数个小而美的命令行工具(grep, sed, awk, jq, curl)可以通过管道符(|)任意组合,形成强大的数据处理流。
比如一个邮件 Agent 需要计算用户本周在打车软件上的总花费。
API模式,调用 search_email(query=“Uber OR Lyft”),得到一百多封邮件。接下来怎么办?模型将所有邮件加载上下文里边,然后用很受吐槽的计算能力去解析累加?即耗token,又容易错。
Bash模式,Agent 可以生成一个脚本。首先,用一个 gmail_search 脚本将结果保存到文件 emails.txt。接着,用 grep "Price: " emails.txt 筛选出包含价格的行。然后,用 awk 或 sed 提取出数字。最后,用 paste 和 bc 将所有数字相加。
在这个过程中,Agent可以扮演一个经验丰富的 Linux 系统管理员,每一步都有明确的输出,每一步都可以被验证。它甚至可以将这个流程保存为一个可复用的 .sh 脚本,供未来使用。
还有一个更大的优势,API对模型来说是个黑盒。除非Prompt中详细描述,否则模型不知道每个工具的具体参数和用法。
工具越多,Prompt越臃肿,模型越困惑。 而命令行工具是可发现的,模型如果不知道ffmpeg 怎么用,它可以自己运行 ffmpeg --help 来阅读文档。
这种自主学习和探索的能力,是实现真正自主性的关键。
把Agent放到一个真实但受控的计算环境中,让它学会像人一样使用通用工具。这是一种更彻底的赋能。
上下文工程
如果说Bash是Agent的手,文件系统是Agent的大脑和工作台。
这也是 Claude Agent SDK 的第二个核心设计哲学:Context Engineering via File System。
很多人做 Agent,习惯把所有中间结果都扔回给模型。比如agent搜索了100封邮件,全给模型分析。
用文件系统的做法是:
搜索结果太长?存到search_results.txt;
需要记忆?写到 memory/ 目录;
需要分析?写个脚本去读那个文件,只把结论返回给对话框。
通过渐进式地获取信息,而不是一次性把所有东西都吞下去。Skills,就是这个思想的完美体现。一个Skill本质上就是一个包含特定指令和脚本的文件夹。
Agent Loop 的本质
抛开ReAct,或者各种名词,一个鲁棒的 Agent Loop 其实就三步:
收集上下文 -> 采取行动 -> 验证结果
很容易会忽略最后一步,或者做得不够好。
代码 Agent 之所以好做,是因为代码有天然的验证机制:编译器(Compiler)和 报错(Linter)。
代码写错了,跑不通,报错信息直接喂回给模型,模型自己就修好了。
但非代码场景呢?比如一个处理 Excel 表格的 Agent。
同样需要创造确定性的验证规则,比如写文件前,先检查文件是否被读取过?sql生成完,做语法校验。数据处理完,验证行数是否匹配。
Verification 是 Agent 走向 Production 的分水岭。
Claude Agent SDK 引入了Hooks极致,它允许开发者在 Agent 运行的特定事件点(如工具调用前后)注入确定性的逻辑。
比如,Agent 有时会幻觉出一个文件的内容,而不是先去读取它。开发者可以设置一个钩子,在 Agent 尝试写入文件前,检查它是否已经读取过该文件。如果没有,钩子可以拦截操作,并向 Agent 返回一条反馈信息:你必须先读取文件才能写入。
最后
Tariq 推崇的这套 Unix 哲学,推崇文件系统,推崇由代码生成来驱动业务逻辑。
Simple is not easy.
构建一个简单的 Agent 很容易,但构建一个简单且优雅的 Agent 架构很难。
回到计算机科学的基础设施中去,让Agent像一个真的程序员一样工作,这可能才是 Agent 的终极形态。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。