PocketFlow
仅用100行代码打造的极简LLM应用框架,通过节点+流的模型快速构建Agent工作流
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
仅用100行代码打造的极简LLM应用框架,通过节点+流的模型快速构建Agent工作流
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

图1:PocketFlow 官方标题图 — 标志着一个仅用100行代码构建的极简 LLM 框架
你是一个独立开发者,想要在自己的产品里快速加上 AI 能力。面对 LangChain 的几百个导入、Hayhouse 的复杂配置,你可能只是想做一个简单的"用户输入→LLM处理→返回结果"流程,却要啃下整个框架的学习曲线。PocketFlow 就是在这种背景下诞生的——它把 LLM 应用开发的核心逻辑,压缩到了一张 A4 纸的代码量里。
PocketFlow 的核心理念来自其作者 Zachary Huang(哥伦比亚大学校友)。他在博客中分享了一个观察:当前主流的 AI 框架越来越重,但对于只是想构建 Agent 工作流的开发者来说,大量高级特性其实并不需要。他希望有一个"零门槛、零依赖、零锁定"的框架,让任何会写 Python 的人都能在几分钟内跑起来。2024 年中,这个项目在 GitHub 发布后迅速传播,如今已获得超过 10,000 颗星,被翻译成了 9 种语言。
如果用生活中的例子来类比,PocketFlow 像一条流水线。你把任务拆成一个个"工站"(Node),每个工站负责一小步操作,工站之间用传送带连接,任务从起点流到终点。这就是 PocketFlow 的核心抽象:Node(节点) 和 Flow(流)。
图2:PocketFlow 的核心架构 — BaseNode 是所有节点的基类,Node 提供同步执行能力,Flow 负责多节点编排
一个 Node 有三个生命周期方法:
Flow 则负责把多个 Node 串联起来。它从起始节点开始,每执行完一个节点就根据返回值(action)查找下一个节点,直到流程结束。这套模型既支持简单的线性链式处理,也支持复杂的条件分支和循环。
PocketFlow 最具创新的一点,是它提出了 Agentic Coding(代理式编程) 的概念——不是人用代码控制 AI,而是让 AI Agent(比如 Cursor AI)来构建和修改 PocketFlow 的 Node 与 Flow。
这听起来有点绕,举个例子就清楚了:假设你想做一个翻译工作流,传统的做法是:
用 Agentic Coding,你只需要写一句 prompt:"创建一个翻译工作流,包含读取、翻译、保存三个节点",把这段话发给 Cursor AI,Cursor 就能帮你生成完整的 PocketFlow 代码。Zachary Huang 在 Substack 文章中称这能带来 10 倍生产力提升,核心逻辑是:LLM 对代码结构的理解比人类更擅长做重复性的配置工作。
别被"100行"欺骗了——PocketFlow 的扩展能力相当全面。项目内置了多种节点和流类型,足以覆盖大多数 LLM 应用场景:
| 类型 | 说明 |
|---|---|
| Node / Flow | 基础同步节点和线性流 |
| BatchNode / BatchFlow | 批量处理,循环迭代 |
| AsyncNode / AsyncFlow | 异步节点,支持 await |
| AsyncBatchNode | 异步+批量的组合 |
| AsyncParallelBatchNode | 真正的并行执行(asyncio.gather) |
这意味着你可以用它构建:简单的 CLI 聊天机器人(用 self-loop 的 Flow)、批量文档处理管道(BatchFlow)、并发 API 调用(AsyncParallelBatchNode)。cookbook 目录里有 20+ 完整示例,覆盖了主流场景——从 RAG 到 Agent 记忆管理,从多 Agent 协作(A2A)到带 Guardrail 的聊天过滤。
作为纯 Python 包,安装只需要一行:
pip install pocketflow
没有 Dockerfile,没有 Docker Compose,不需要 GPU,甚至不需要懂容器。项目也没有外部依赖(asyncio 和 warnings 是标准库自带),连 copy 和 time 都是 Python 内置的。这带来了极佳的跨平台兼容性——Windows、macOS、Linux 均可直接运行。
不过,需要明确的是 PocketFlow 本身是纯 CLI 框架,不提供任何 Web UI 或 API 服务。如果你需要对外暴露接口,需要自己包装一层 FastAPI 或 Flask。从这个角度看,它的定位更像是"开发工具包"而非"开箱即用的产品"。
代码质量方面,核心代码虽然极简,但结构清晰——所有类都遵循单一职责原则,命名直接(如 prep、exec、post),没有任何魔法操作。cookbook 目录提供了完整测试(tests/),每个示例都附带 requirements.txt。作者还提供了详尽的多语言文档(9 种语言),文档站点托管在 GitHub Pages,包含设计模式指南和 API 参考。
没有框架是完美的,PocketFlow 也有它的局限性:
LLM 调用需要自己实现。框架只负责流程编排,不包含任何 LLM 客户端。cookbook 示例里用的是 call_llm 辅助函数,但你需要自己接入 OpenAI、Claude 或任何你喜欢的 API。项目依赖你对 LLM API 有一定了解。
无内置重试与错误处理。虽然 Node 有 max_retries 和 wait 参数,但这是基础的重试机制,没有熔断、降级、监控等生产级功能。如果你的 Agent 需要7×24小时运行,需要自己补充这些能力。
生态还在成长。对比 LangChain(已有完整的向量存储、工具调用、记忆管理生态),PocketFlow 的生态系统相对单薄。不过考虑到项目才刚起步,这个差距在快速缩小。
PocketFlow 的走红反映了一个趋势:LLM 应用开发框架正在从"全能型"向"极简型"分化。早期大家倾向于把所有能力(向量检索、工具调用、多模态、记忆)塞进一个框架,后来发现对于很多场景,开发者只需要一个干净的流程编排工具就够了。
类似的趋势也出现在其他项目中——LlamaIndex 也在精简 API,LangChain 从 0.2 版本开始做大幅重构。PocketFlow 代表了这条路线的一个极致:把框架做到最小,把灵活性留给开发者。这对于有一定 Python 基础的 AI 开发者来说,是非常吸引人的价值主张。
总结:PocketFlow 是一个"代码量极简、能力不简单"的 LLM 应用框架,适合想要快速搭建 Agent 工作流、对框架复杂度敏感的开发者。它的设计哲学清晰(节点+流)、上手门槛极低(一行 pip)、扩展空间充足(异步/批量/多 Agent)。如果你厌倦了复杂框架的认知负担,PocketFlow 值得一试。