文集文档索引

easy-pocket


  • 文集信息
  • 目录大纲
  • 最新文档
  • 知识宇宙

文集详情

文集导读

Easy-Pocket : 从零掌握 PocketFlow(⚠️ Alpha内测版) [!CAUTION] ⚠️ Alpha内测版本警告:此为早期内部构建版本,尚不完整且可能存在错误,欢迎大家提Issue反馈问题或建议。 PocketFlow 官方仓库 · 内容导航 · 如何学习 100 行代码,零依赖,构建 LLM 应用的一切。 PocketFlow 是一个仅 100 行 Python 代码的极简 LLM 应用框架。它用 Node(节点)和 Flow(流程)两个核心抽象,让你可以构建聊天机器人、RAG、智能体、工作流等所有主流 LLM 应用。 Easy-Pocket 是 PocketFlow 的交互式中文教程,通过可视化演示和实战案例,带你从零理解框架原理、掌握应用开发。 PocketFlow 是什么? PocketFlow 是一个纯编排框架(Orchestration Framework)—— 它只负责调度节点、管理流程、传递数据,不包含任何 LLM 调用、Embedding 计算或向量存储的实现。

preface
███████╗ █████╗ ███████╗██╗ ██╗ ██████╗ ██████╗ ██████╗██╗ ██╗███████╗████████╗ ██╔════╝██╔══██╗██╔════╝╚██╗ ██╔╝ ██╔══██╗██╔═══██╗██╔════╝██║ ██╔╝██╔════╝╚══██╔══╝ █████╗ ███████║███████╗ ╚████╔╝ ██████╔╝██║ ██║██║ █████╔╝ █████╗ ██║ ██╔══╝ ██╔══██║╚════██║ ╚██╔╝ ██╔═══╝ ██║ ██║██║ ██╔═██╗ ██╔══╝ ██║ ███████╗██║ ██║███████╗ ██║ ██║ ╚██████╔╝╚██████╗██║ ██╗███████╗ ██║ ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝╚═╝ ╚═╝╚══════╝ ╚═╝

Easy-Pocket : 从零掌握 PocketFlow(⚠️ Alpha内测版)

[!CAUTION]
⚠️ Alpha内测版本警告:此为早期内部构建版本,尚不完整且可能存在错误,欢迎大家提Issue反馈问题或建议。

PocketFlow 官方仓库 · 内容导航 · 如何学习

Stars Forks License

100 行代码,零依赖,构建 LLM 应用的一切。

PocketFlow 是一个仅 100 行 Python 代码的极简 LLM 应用框架。它用 Node(节点)和 Flow(流程)两个核心抽象,让你可以构建聊天机器人、RAG、智能体、工作流等所有主流 LLM 应用。

Easy-Pocket 是 PocketFlow 的交互式中文教程,通过可视化演示和实战案例,带你从零理解框架原理、掌握应用开发。

PocketFlow 是什么?

PocketFlow 是一个纯编排框架(Orchestration Framework)—— 它只负责调度节点、管理流程、传递数据,不包含任何 LLM 调用、Embedding 计算或向量存储的实现。

基于 PocketFlow 构建的应用架构

PocketFlow 负责 你来决定
LLM 节点何时被调用、按什么顺序 用哪家 API(OpenAI / Claude / 本地模型)
Embedding 批量处理的并行调度 用哪个模型和向量数据库
Memory shared 字典的读写传递 怎么持久化(文件 / Redis / 数据库)
工具调用 智能体 循环的执行与分支 调用哪些外部 API 和工具

一句话定位:PocketFlow = 图的运行时。你把具体实现填进 Node 的 exec() 方法,PocketFlow 负责把它们串成流程。

形式化视角:PocketFlow 即有限状态自动机(FSA)

如果你学过编译原理或形式语言,会发现 PocketFlow 的执行模型就是一台有限状态自动机(Finite State Automaton, FSA):

FSA 形式定义 PocketFlow 对应
状态集 Q Node 集合
字母表 Σ Action 字符串集("continue""retry""done" …)
转移函数 δ(q, a) node - "action" >> next_node
初始状态 q₀ Flow(start=node)
终止 post() 返回的 action 无后继节点 → 流程结束

不同 LLM 应用模式,对应不同的自动机拓扑:聊天机器人是带自环的单状态机,智能体 是有分支+环的自动机,结构化输出是带回退边的自动机。详见原理篇 §2.4

⚖️ 与其他编排框架的对比

其他框架给你预制组件(智能体类、RAG 管道、Memory 模块),PocketFlow 给你图论原语(Node + Flow),你用这两块积木自己搭建一切。

详细对比表
框架 核心思路 代码量 依赖 厂商锁定
PocketFlow 最小有向图运行时:Node + Flow 100 行 0
Agno 声明式智能体,内置 Memory / Knowledge 数千行
AutoGen Actor 模型,智能体间异步消息传递 数万行 低-中
CrewAI 角色扮演团队,Manager 分配 Task 数万行
LangGraph 有状态状态机 + 持久化检查点 数万行 多(LangChain 生态)
OpenAI Agents SDK 轻量智能体 + Handoff + Guardrails 数千行 中(OpenAI 优先)
PydanticAI 类型安全的函数调用 + Pydantic 验证 数千行 很低
SmolAgents LLM 生成 Python 代码而非 JSON tool call ~1000 行 很低

️ 内容导航

本教程分为三大板块,覆盖原理、实战与知识参考:

原理篇:PocketFlow 核心解析

章节 关键内容
引言:为什么需要 LLM 框架 核心痛点与框架对比
快速上手 环境搭建、安装、第一个 Flow
核心抽象:Node 与 Flow 三阶段模型、图执行引擎、操作符重载、FSA 形式化视角
通信机制与设计模式 Shared Store + Params + 六大设计模式
深入源码 BaseNode、Node、Flow、BatchNode、BatchFlow、AsyncNode
工具函数与开发范式 工具函数分类、Agentic Coding、名词速查表
案例篇:从入门到进阶(12 个案例)
# 案例 模式 难度
1 聊天机器人 链式 + 循环 入门
2 写作工作流 链式 入门
3 RAG 检索增强 链式 + BatchNode 入门
4 搜索智能体 循环 + 条件分支 中级
5 多智能体协作 AsyncNode + 消息队列 中级
6 Map-Reduce 批处理 BatchNode 入门
7 并行处理 (8x 加速) AsyncParallelBatchNode 中级
8 结构化输出 循环 + 重试 + 校验 中级
9 思维链推理 循环 + 自检 进阶
10 MCP 工具集成 智能体 + 工具 进阶
11 智能体技能 链式 + 条件路由 中级
12 智能体编程 完整项目模板 进阶
附录:软件工程知识参考(来自 Easy-Vibe)

来自 Datawhale Easy-Vibe 项目,涵盖九大领域基础知识。学习过程中遇到不熟悉的概念时可随时查阅。

领域 关键主题
计算机基础 CPU、操作系统、数据编码、网络、数据结构与算法
开发工具 IDE、命令行、Git、环境变量、包管理器、调试
浏览器与前端 JavaScript/TypeScript、前端框架、渲染管线、状态管理
服务器与后端 HTTP 协议、Web 框架、API 设计、认证授权、并发模式
数据 数据库基础、数据模型、数据分析、A/B 测试
架构与系统设计 单体到微服务、分布式系统、高可用设计
基础设施与运维 Linux、Docker、CI/CD、DNS/HTTPS、云平台
人工智能 AI 发展史、Transformer、LLM、Prompt 工程、RAG、AI Agent
工程素养 代码质量、测试策略、设计模式、安全意识、开源协作

如何学习

根据你的背景选择学习路径:

  • 零基础:原理篇全篇 → 案例篇(聊天机器人 → 写作工作流 → RAG)
  • 想做智能体:原理篇 → 案例篇(搜索智能体 → 多智能体 → 智能体技能 → MCP → 智能体编程)
  • 关注性能:原理篇(BatchNode / AsyncNode)→ 案例篇(Map-Reduce → 并行处理)
  • 输出质量:原理篇(循环/重试)→ 案例篇(结构化输出 → 思维链推理)

示例代码

每篇教程都附带完整可运行的 Python 示例,无需 API 密钥,开箱即用。

⚡ 快速开始
# 1. 确认 Python 版本(需要 3.9+) python --version # 2. 创建虚拟环境 python -m venv .venv # Windows: .venv\Scripts\activate # macOS / Linux: source .venv/bin/activate # 3. 安装依赖 pip install pocketflow

示例文件夹

教程 示例目录 内容
原理入门 docs/zh-cn/pocketflow-intro/examples/ 10 个脚本:Node 生命周期、Flow 图执行、条件分支、批处理、异步并发等
应用案例 docs/zh-cn/pocketflow-cases/examples/ 12 个案例:ChatBot、写作工作流、RAG、智能体、多智能体、Map-Reduce、结构化输出、MCP、智能体技能 等

所有示例使用模拟 LLM 实现,聚焦框架核心概念。如需接入真实 API,参见各目录下的 README 说明。

️ 本地预览文档

npm install npm run dev # 打开 http://localhost:5173/easy-pocket/zh-cn/
项目结构
easy-pocket/ ├── docs/ │ ├── .vitepress/ # VitePress 配置 + 自定义主题 │ │ └── theme/ │ │ ├── Layout.vue # 自定义布局(打字机效果) │ │ ├── custom.css # 全局样式 │ │ └── components/ # Vue 组件(门户页、打字机等) │ ├── public/ # 静态资源 │ └── zh-cn/ │ ├── index.md # 门户首页 │ ├── pocketflow-intro/ # 原理入门教程(6 页) │ │ ├── index.md # 引言:为什么需要 LLM 框架 │ │ ├── quickstart.md # 快速上手 │ │ ├── core-abstractions.md # 核心抽象:Node 与 Flow │ │ ├── communication-and-patterns.md # 通信机制与设计模式 │ │ ├── source-code.md # 深入源码 │ │ ├── tools-and-dev.md # 工具函数与开发范式 │ │ └── examples/ # 10 个配套示例脚本 │ ├── pocketflow-cases/ # 应用案例教程(7 页) │ │ ├── index.md # 案例地图与学习路径 │ │ ├── beginner.md # 入门:聊天机器人 / 写作 / RAG │ │ ├── agents.md # 智能体:搜索 / 多智能体 │ │ ├── batch-and-parallel.md # 批处理与并行 │ │ ├── output-quality.md # 输出质量:结构化 / 思维链 │ │ ├── advanced-agents.md # 高级智能体:MCP / 技能 │ │ ├── agentic-coding.md # 智能体编程 │ │ └── examples/ # 12 个配套案例脚本 + 项目模板 │ └── appendix/ # 附录(索引页,链接至 Easy-Vibe) │ └── index.md ├── package.json └── README.md

贡献者

姓名 职责
@赵志民 主编

欢迎更多贡献者加入,提 Pull Request 即可参与

参与贡献

  • 发现问题或有改进建议?欢迎 提 Issue
  • 想参与内容贡献?欢迎 提 Pull Request
  • 内容贡献请遵循现有的写作风格和文件组织方式

交流群

欢迎加入 Easy-Pocket 交流群,与其他开发者一起探讨学习:

交流群二维码

关注我们

扫描下方二维码关注公众号:Datawhale

致谢

  • PocketFlow — 100 行极简 LLM 框架
  • Easy-Vibe — 附录知识参考来源 & 门户页设计参考

LICENSE

本作品采用 CC BY-NC-SA 4.0 许可协议。

⭐ 如果这个项目对你有帮助,请给我们一个 Star ❤️

目录大纲

    最新文档

    知识宇宙

    正在加载知识图谱...


    转发