# PocketFlow
**Repository Path**: nanjing-cai/pocket-flow
## Basic Information
- **Project Name**: PocketFlow
- **Description**: 你是否曾盯着复杂的AI框架,心想:“它真的需要这么复杂吗?” 在与臃肿的框架斗争了一年之后,我决定剔除所有不必要的部分。最终的成果就是Pocket Flow ,一个仅有100行代码的极简LLM框架。
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 12
- **Created**: 2026-07-29
- **Last Updated**: 2026-07-29
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
《手搓AI Agent》配套代码
本仓库是《手搓AI Agent:100行代码构建全部AI模式》一书的配套代码库。
书中所有示例均基于 PocketFlow —— 一个仅有100行代码的极简LLM框架。无依赖、无黑箱、无厂商锁定,让你真正理解每一行代码在做什么。
---
## 为什么只需100行?
当前主流LLM框架动辄数十万行代码,充斥着大量应用封装和厂商绑定。大部分开发者其实只需要框架的**核心抽象**,而不是那些臃肿的包装。
PocketFlow用100行代码证明:你根本不需要那些复杂框架。
| | **核心抽象** | **应用封装** | **厂商绑定** | **代码行数** | **安装体积** |
|----------------|:-----------------------------: |:-----------------------------------------------------------:|:------------------------------------------------------------:|:---------------:|:----------------------------:|
| LangChain | Agent, Chain | 大量
(如 QA、摘要等) | 大量
(如 OpenAI、Pinecone 等) | 405K | +166MB |
| CrewAI | Agent, Chain | 大量
(如 FileReadTool、SerperDevTool) | 大量
(如 OpenAI、Anthropic、Pinecone 等) | 18K | +173MB |
| SmolAgent | Agent | 部分
(如 CodeAgent、VisitWebTool) | 部分
(如 DuckDuckGo、Hugging Face 等) | 8K | +198MB |
| LangGraph | Agent, Graph | 部分
(如语义搜索) | 部分
(如 PostgresStore、SqliteSaver 等) | 37K | +51MB |
| AutoGen | Agent | 部分
(如 Tool Agent、Chat Agent) | 大量 [可选]
(如 OpenAI、Pinecone 等) | 7K
(仅核心) | +26MB
(仅核心) |
| **PocketFlow** | **Graph** | **无** | **无** | **100** | **+56KB** |
---
## 核心抽象:图(Graph)
PocketFlow的100行代码捕获了LLM框架的核心抽象——**图(Graph)**。
所有AI设计模式,无论是Agent、工作流、RAG还是多Agent协作,本质上都是图的不同表达。
从这个抽象出发,可以轻松实现所有主流AI设计模式:
### 三个核心概念
- **节点(Node)** —— 执行单元,遵循三步模式:`prep`(准备)→ `exec`(执行)→ `post`(后处理)
- **流程(Flow)** —— 节点的编排方式,支持四种操作:串联、分支、循环、嵌套
- **共享存储(Shared Store)** —— 一个简单的Python字典,作为节点间的通信桥梁
掌握这三个概念,你就掌握了构建任何AI应用的能力。
---
## 配套示例
以下示例由浅入深,覆盖所有核心AI设计模式。
| 难度 | 示例 | 说明 |
|:----:|:-----|:-----|
| ☆☆☆ 基础入门 | [Hello World](./pocketflow-hello-world/) | 最简单的PocketFlow示例,了解Node和Flow基本概念 |
| | [节点基础](./pocketflow-node/) | 文本摘要 + 重试机制,理解Node的prep/exec/post |
| | [聊天机器人](./pocketflow-chat/) | 带对话历史的聊天bot,展示自循环模式 |
| | [结构化输出](./pocketflow-structured-output/) | 从简历中提取结构化数据,YAML解析 + 校验 |
| | [工作流](./pocketflow-workflow/) | 写作流水线:大纲 → 撰写 → 润色 |
| | [流程控制](./pocketflow-flow/) | 交互式文本变换,展示分支路由 |
| | [节点通信](./pocketflow-communication/) | 通过Shared Store在节点间传递数据 |
| | [Agent](./pocketflow-agent/) | 研究Agent:搜索网页并回答问题 |
| | [RAG](./pocketflow-rag/) | 检索增强生成的完整流程 |
| | [批处理](./pocketflow-batch/) | 将Markdown批量翻译成多种语言 |
| | [LLM流式输出](./pocketflow-llm-streaming/) | 实时LLM流式响应 + 用户中断 |
| | [聊天护栏](./pocketflow-chat-guardrail/) | 旅行顾问聊天bot,只处理旅行相关问题 |
| | [多数投票](./pocketflow-majority-vote/) | 多次尝试 + 共识投票提升准确率 |
| | [Map-Reduce](./pocketflow-map-reduce/) | 简历批量评估的Map-Reduce模式 |
| | [命令行HITL](./pocketflow-cli-hitl/) | 命令行笑话生成器,人机协同反馈循环 |
| ★☆☆ 进阶实践 | [多Agent通信](./pocketflow-multi-agent/) | Taboo猜词游戏,两个Agent异步通信 |
| | [监督者](./pocketflow-supervisor/) | Agent输出不可靠?加一个监督流程 |
| | [并行批处理](./pocketflow-parallel-batch/) | 异步并行执行,3倍加速 |
| | [并行批处理Flow](./pocketflow-parallel-batch-flow/) | 并行图像处理,8倍加速 |
| | [思维链](./pocketflow-thinking/) | Chain-of-Thought逐步推理解决复杂问题 |
| | [对话记忆](./pocketflow-chat-memory/) | 短期 + 长期记忆的聊天bot |
| | [MCP协议](./pocketflow-mcp/) | 通过Model Context Protocol调用工具 |
| | [追踪可视化](./pocketflow-tracing/) | Langfuse集成,追踪Flow执行过程 |
| | [评判者模式](./pocketflow-judge/) | LLM作为评判者的评估-优化循环 |
| | [辩论模式](./pocketflow-debate/) | 对抗推理:正方、反方与裁判 |
| | [智能RAG](./pocketflow-agentic-rag/) | Agent驱动的检索增强生成 |
| | [自愈Mermaid](./pocketflow-self-healing-mermaid/) | 生成Mermaid图表,自动检测错误并修复 |
| | [心跳监控](./pocketflow-heartbeat/) | 嵌套Flow实现ClawBot式持续监控 |
| | [Text2SQL](./pocketflow-text2sql/) | 自然语言转SQL查询 + 自动纠错 |
| | [代码生成器](./pocketflow-code-generator/) | 生成测试用例、实现代码、迭代改进 |
| | [Agent技能](./pocketflow-agent-skills/) | 可复用的Markdown技能路由 |
| | [A2A协议](./pocketflow-a2a/) | Agent-to-Agent通信协议集成 |
| | [异步基础](./pocketflow-async-basic/) | AsyncNode异步API调用 |
| | [批处理节点](./pocketflow-batch-node/) | CSV大文件分块处理 |
| | [批处理Flow](./pocketflow-batch-flow/) | 多参数组合的图像滤镜处理 |
| | [嵌套批处理](./pocketflow-nested-batch/) | 学校→班级→学生的层级批处理 |
| ★★☆ 实战应用 | [线索生成](./pocketflow-lead-generation/) | 销售线索:抓取 → 富化 → 评分 → 个性化邮件 |
| | [AI周报](./pocketflow-newsletter/) | AI新闻策展:搜索 → 筛选 → 摘要 → 排版 |
| | [发票处理](./pocketflow-invoice/) | PDF视觉提取发票数据 + 数学验证 |
| | [播客生成](./pocketflow-notebook-lm/) | 文档变双主持人AI播客 |
| | [深度研究](./pocketflow-deep-research/) | 递归Map-Reduce研究,迭代完善 |
| | [FastAPI后台任务](./pocketflow-fastapi-background/) | FastAPI + SSE实时进度推送 |
| | [FastAPI人机协同](./pocketflow-fastapi-hitl/) | FastAPI实现审批工作流 |
| | [FastAPI WebSocket](./pocketflow-fastapi-websocket/) | WebSocket实时聊天 + LLM流式响应 |
| | [Gradio人机协同](./pocketflow-gradio-hitl/) | Gradio界面的多节点决策流程 |
| | [Streamlit状态机](./pocketflow-streamlit-fsm/) | Streamlit + 有限状态机的图像生成 |
| | [语音聊天](./pocketflow-voice-chat/) | VAD + STT + LLM + TTS语音对话 |
| | [网页爬虫](./pocketflow-tool-crawler/) | 受控域名内的网页爬取与分析 |
| | [数据库工具](./pocketflow-tool-database/) | SQLite安全参数化查询 |
| | [Embeddings工具](./pocketflow-tool-embeddings/) | OpenAI文本嵌入向量生成 |
| | [PDF视觉工具](./pocketflow-tool-pdf-vision/) | 多PDF批量视觉提取 |
| | [搜索工具](./pocketflow-tool-search/) | SerpAPI网页搜索 + LLM分析 |
| | [Google日历](./pocketflow-google-calendar/) | Google Calendar API事件管理 |
| | [Flow可视化](./pocketflow-visualization/) | D3.js交互式Flow图可视化 |
| ★★★ 高级项目 | [编程Agent](./pocketflow-coding-agent/) | 生产级编程Agent:6个工具 + 记忆 + Patch子流程 |
---
## 快速开始
### 方式一:pip安装
```bash
pip install pocketflow
```
### 方式二:直接复制源码
PocketFlow仅有100行代码,你完全可以将 `pocketflow/__init__.py` 直接复制到你的项目中。没有任何外部依赖。
### 运行示例
```bash
# 进入任意示例目录
cd pocketflow-judge
# 安装该示例的依赖
pip install -r requirements.txt
# 运行
python main.py
```
---
## 关于本书
《手搓AI Agent:100行代码构建全部AI模式》 的核心观点是:
> 你不需要复杂的框架来构建强大的AI应用。你只需要理解一个核心抽象——**图**。
本书从这个抽象出发,带你从零开始,用100行代码构建出Agent、工作流、RAG、多Agent协作等所有主流AI设计模式。每个模式都配有完整的代码示例和详细的原理讲解,让你真正做到**知其然,更知其所以然**。
**本书适合谁:** 无论你是(1)想理解AI Agent底层原理的开发者,(2)对主流LLM框架感到困惑、想回归本质的工程师,(3)希望快速上手构建AI应用的技术人员,还是(4)对"少即是多"的设计哲学感兴趣的读者,这本书都能帮你用最少的代码,建立最扎实的理解。
### 章节概览
| 章节 | 主题 | 核心内容 |
|:----:|:----:|:---------|
| | **第一部分:别学框架了,学图就够了** | |
| 第1章 | 忘掉LangChain的40万行代码 | 为什么LLM框架的核心是图?100行如何替代40万行 |
| 第2章 | 图——唯一的抽象 | Node、Flow、Shared Store;聊天机器人、重试、结构化输出、批处理、异步并行 |
| 第3章 | Workflow、Agent、更多模式 | 工作流、Agent、护栏、思维链、自愈、评判者/投票/辩论 |
| | **第二部分:你花钱用的AI产品,不过是简单工作流** | |
| 第4章 | RAG不过是5个节点串一行 | 何时需要RAG、Embedding、Agentic RAG、数据质量才是关键 |
| 第5章 | 深度研究不过是搜索API的for循环 | 三节点一循环、Map-Reduce、搜索API比模型重要 |
| 第6章 | NotebookLM、Text2SQL、线索生成 | 拆分Prompt、自愈循环、大多数AI产品只有4个节点 |
| | **第三部分:为什么大多数AI Agent都很烂** | |
| 第7章 | Prompt工程:领域知识才是Prompt | 2023年的trick已过时;Few-shot、Rubric、测试驱动Prompt |
| 第8章 | 模型是大宗商品,工具才是护城河 | 三级工具、Action Space、环境设计比模型选择重要 |
| 第9章 | 上下文工程:别再饿死你的Agent | 上下文窗口就是RAM、记忆层级、历史压缩 |
| 第10章 | Cursor、Claude Code、Codex——从零造 | 3个核心工具、编辑难题、两阶段编辑、验证与安全 |
| 第11章 | 多Agent:人人想要,无人需要 | 更多Agent≠更好结果、仅两种拆分理由、Agent即工具 |
| | **第四部分:学够了,发布吧** | |
| 第12章 | Agentic Coding:英语就是编程语言 | 瀑布流才是正解、设计文档是资产、AI的5个常见错误 |
| 第13章 | 从笔记本到生产环境 | 三种部署方式、80%的"AI失败"是工具坏了、安全的致命三角 |
---
---
**用100行代码,理解所有AI设计模式。**
*Less is More.*