PocketFlow:100 行代码的极简 LLM Agent 框架
阅读时间: 大约 8 分钟
PocketFlow:100 行代码的极简 LLM Agent 框架

PocketFlow 是 The-Pocket 组织开源的极简 LLM 框架,MIT 协议,口号是”100-line minimalist LLM framework”。它的主张很激进:现在的 LLM 框架太臃肿了,而你真正需要的核心抽象只要 100 行。零依赖、零厂商锁定,甚至不用 pip install——直接把那 100 行源码拷走就行。本文基于其 GitHub 仓库一手资料,拆解它为什么敢说”只要 100 行”,以及这种极简的代价。
一、背景:框架越来越重,核心其实很薄
LangChain 起家这几年,LLM 框架越长越胖:集成成千上万个工具、加了无数 app 专用 wrapper,结果是几百 MB 的依赖、看不懂的抽象栈。PocketFlow 反其道而行——它认为 Agent/Workflow/RAG 这类应用的本质抽象只有一个:图(Graph)。把图这个抽象做对,其余模式都能从它长出来。
二、是什么:Node + Flow 的图抽象
PocketFlow 的核心只有两个概念:
- Node(节点):一个单步,例如”总结邮件”;
- Flow(流):把多个节点串成图,例如”总结邮件 → 草拟回复”。
从这两个原语出发,官方给出的抽象图覆盖了几乎所有常见模式:Batch(重复步骤)、Parallel(并发,官方 demo 称 3x–8x 加速)、Async(I/O 等待)、Looping(长时循环)、Branch(条件分支)、Shared(节点间共享状态)、Nesting(把一条子流封装成可复用步骤)。
它还提供了 TypeScript、Java、C++、Go、Rust、PHP 多个移植版本,并配了 40+ 个 cookbook 教程,从聊天、结构化输出、RAG、多 Agent、MCP、A2A、语音对话,一直到 Deep Research、生产级 Coding Agent。
三、那 100 行到底写了什么
值得翻开源码看一眼:PocketFlow 的核心其实只有两个类。Node 节点把一步拆成三个钩子——prep(准备输入)、exec(真正干活,通常是调一次 LLM 或工具)、post(处理输出并决定下一步路由到哪个节点);Flow 则是一张节点图,维护”当前节点执行完后跳到哪个节点”的映射。所谓 Batch、Parallel、Looping、Branch,本质都是在这张图上用不同方式连边:并行就是一个节点扇出多个分支再汇合,循环就是让 post 的路由指回上游节点,嵌套就是把一条子 Flow 当成一个 Node 塞进父图。
正因为抽象只有这一层,你读完那 100 行就能完全掌握它的行为——这也是它敢让”AI Agent 自己基于它写 Agent”的底气:模型不需要学习一套庞大框架的 API 心智负担,只要理解”节点 + 路由”即可。官方那句”让 Cursor 这类工具来写上层”,前提正是内核小到 AI 能一次读全。节点之间的信息传递则靠一个显式的共享 store:上游 post 写进去,下游 prep 读出来,没有隐式的全局状态魔法,这也是它把可预测性做到极致的一处细节。
四、关键数据:和主流框架的行数对比
README 里那张对比表是它最有传播力的素材(数字为官方自报):
| 框架 | 核心抽象 | 应用封装 | 厂商封装 | 代码行数 | 体积 |
|---|---|---|---|---|---|
| LangChain | Agent, Chain | 很多 | 很多 | 405K | +166MB |
| CrewAI | Agent, Chain | 很多 | 很多 | 18K | +173MB |
| SmolAgent | Agent | 一些 | 一些 | 8K | +198MB |
| LangGraph | Agent, Graph | 一些 | 一些 | 37K | +51MB |
| AutoGen | Agent | 一些 | 很多(可选) | 7K(仅核心) | +26MB(仅核心) |
| PocketFlow | Graph | 无 | 无 | 100 | +56KB |

五、评测方法批判:“100 行”是怎么算出来的
这张表很抓眼,但必须拆穿它的统计口径:
- 分子分母不对等:PocketFlow 的 100 行是”只有核心图抽象、零封装”的行数;而 LangChain 的 405K 行包含了几百个第三方集成、QA/摘要等 app wrapper、以及 OpenAI/Pinecone 等厂商适配。拿”裸核心”去比”全家桶”,本身就是选择性比较——AutoGen 那一行也特意标注了”core-only”,侧面说明这个口径的水分。
- 体积同理:56KB vs 166MB 比的是”核心包 vs 含全部集成的安装体积”,不是”完成同一个任务所需的代码量”。
- “10x 生产力”靠 Agentic Coding 背书:官方推崇”人设计、AI(Cursor 等)写代码”,让 Agent 去基于这 100 行框架搭应用。这省的是你的样板代码,但前提是你得会写设计文档、并接受 AI 生成代码的质量波动。
- 没有运行时性能或成功率 benchmark:它是个”库”,不提供任务级评测;所谓并行 3x/8x 只是 demo 里的示意。
六、优势与局限
优势: 一是核心抽象小到可以通读源码,没有黑盒,学习曲线极短;二是零依赖、零锁定,随便接哪个模型、哪个存储都不用受框架约束;三是 cookbook 覆盖场景全,配合 Agentic Coding 很适合快速搭原型;四是多语言移植,团队技术栈杂也能用同一套心智模型。
局限: 它刻意不提供生产常用的东西——没有重试、没有可观测性/链路追踪、没有内置鉴权与持久化、没有工具调用的现成封装。这意味着从 demo 到生产,那些 LangChain 替你做过的脏活,你都得自己补。对想快速上线、不想造轮子的团队,“极简”反而是负担。
七、谁该关注
- 觉得 LangChain 太重、想要可控内核的团队:把图抽象吃透,自己按需拼装;
- 教学与研究:100 行可读源码是讲清”Agent 到底怎么跑”的绝佳材料;
- 走 Agentic Coding 路线、让 AI 写胶水代码的开发者:薄框架 + AI 生成上层,正好发挥。
如果你要的是开箱即用、自带监控重试的企业级编排,LangGraph 这类带电池的框架更稳妥;PocketFlow 的定位是”给你一个干净的内核,剩下的自己来”。