你是否曾对着一个繁复的AI框架,无奈地想:"真有必要搞得这么复杂吗?"在与臃肿框架斗争一年后,Zachary Huang博士决定大刀阔斧地革新,剔除所有花里胡哨的部分。于是Pocket Flow诞生了——一个仅有100行代码的超轻量级大语言模型框架!本文帮你彻底打通Pocket Flow+.cursorrules.file的最前沿用法。Zachary Huang博士用100行代码证明:真正的技术突破源于本质洞察,而非堆砌抽象。
https://github.com/The-Pocket/PocketFlow
过去一年,许多开发者一直在使用LangChain这类热门框架构建AI应用。这种体验简直令人抓狂:
这不禁让人思考:我们真的需要这么多层复杂的封装吗?如果把所有冗余的部分都去掉会怎样?真正简洁实用的方案到底是什么?
PocketFlow的创建者Zachary Huang是一位即将从哥伦比亚大学计算机博士毕业的研究者,曾在Microsoft Gray Systems Lab和Databricks实习,凭借杰出研究赢得谷歌奖学金,即将加入微软研究院担任研究员继续大语言模型智能体的开发工作。Zachary在实际开发大语言模型应用的过程中,深切体会到现有框架的种种问题。这些框架虽然功能丰富,但过度复杂的设计给开发者带来了沉重负担。于是,Zachary决定回归本质,探寻更加简洁有效的解决方案。
经过一年从零开始打磨大语言应用的经验,Zachary得出了一个关键洞见:所有复杂性的背后,大语言系统本质上不过是一个简单的有向图!基于这一发现,PocketFlow应运而生——一个零臃肿、零依赖、零供应商锁定的框架,全部代码仅有100行!
comparison
PocketFlow最核心的就是三个极简构建块。可以想象成一个井井有条的厨房:
def__init__(self):
self.params,self.successors={},{}
defadd_successor(self,node,action="default"): self.successors[action]=node;return node
defprep(self,shared): pass
defexec(self,prep_res): pass
defpost(self,shared,prep_res,exec_res): pass
defrun(self,shared): p=self.prep(shared);e=self.exec(p);returnself.post(shared,p,e)
class Flow(BaseNode):
def__init__(self,start): super().__init__();self.start=start
defget_next_node(self,curr,action):
return nxt=curr.successors.get(action or"default")
deforch(self,shared,params=None):
curr,p=copy.copy(self.start),(params or {**self.params})
while curr: curr.set_params(p);c=curr.run(shared);curr=copy.copy(self.get_next_node(curr,c))
defrun(self,shared): pr=self.prep(shared);self.orch(shared);returnself.post(shared,pr,None)
load_data_node = LoadDataNode()
summarize_node = SummarizeNode()
load_data_node >> summarize_node
flow = Flow(start=load_data)
shared = {"file_name": "data.txt"}
flow.run(shared)
在这个高效厨房系统中:
1. 每个工位 (节点) 只做三件简单的事:
2. 菜谱 (流程) 根据情况智能引导 (orch) :
PocketFlow还支持批处理 (Batch) 、异步执行 (Asynchronous) 和并行处理 (Parallel) 。就这么简单!没有华丽辞藻,没有复杂架构——只有能组合成强大系统的简单积木!
abstraction
与其他框架不同,PocketFlow刻意避开特定供应商API的绑定。为什么?
开发时需要OpenAI API封装?让ChatGPT给你写一个!通常只需10行代码。这比预设的僵化封装灵活多了!
def call_llm(prompt):
from openai import OpenAI
client = OpenAI(api_key="YOUR_API_KEY_HERE")
r = client.chat.completions.create(
model="gpt-4o", messages=[{"role": "user", "content": prompt}]
)
return r.choices[0].message.content
# Example usage
call_llm("Hello World!")
有了这些精简又强大的构建块,开发者可以轻松搭建复杂的智能体 (Agent) 、检索增强生成系统 (RAG) 和大语言工作流 (Workflow) ,完全掌控每个环节。来看个例子!
我们用PocketFlow来构建一个网络搜索智能体,类似Perplexity AI这样能搜索网络并回答问题的工具。
这是智能体行为的简单流程图:
flow
# Create instances of each node
decide = DecideAction()
search = SearchWeb()
answer = AnswerQuestion()
# Connect the nodes
# If DecideAction returns "search", go to SearchWeb
decide - "search" >> search
# If DecideAction returns "answer", go to AnswerQuestion
decide - "answer" >> answer
# After SearchWeb completes and returns "decide", go back to DecideAction
search - "decide" >> decide
# Create and return the flow, starting with the DecideAction node
return Flow(start=decide)
每个节点干啥?超简单:
1. DecideAction — "搜索还是回答?"
2. SearchWeb — "找点新信息!"
3. AnswerQuestion — "信息够了,回答问题!"
这个流程图灵活透明又易扩展!想换搜索引擎、使用不同的大语言模型或添加新决策点?分分钟搞定,不会动摇核心逻辑!
假设用户问:"谁赢了2023年超级碗?"来看看流程怎么走:
1. DecideAction处理:
2. SearchWeb处理:
3. DecideAction再次处理:
4. AnswerQuestion处理:
就是这么简单高效!整个智能体实现只需几百行代码,建立在100行框架基础上。可组合的节点和简单的流程图就能创建智能、高效的AI系统。没有黑科技,没有框架冗余,只有清晰的逻辑和完全的掌控权!想自己试试?查看完整示例代码:https://github.com/The-Pocket/PocketFlow/tree/main/cookbook/pocketflow-agent
PocketFlow远不止于搜索智能体。开发者可以搭建各种应用:多智能体系统 (multi agents) 、工作流自动化 (workflow) 、检索增强生成系统 (RAG) 、映射归约处理 (map-reduce) 、流式数据处理 (streaming) 、监督控制系统 (supervisor) 、聊天记忆管理 (chat memory) 、模型上下文协议 (model context protocol) 等等。
每个实现都遵循相同模式:从基本原则出发,简洁而强大。不必啃几十万行代码,PocketFlow让你从基础开始构建自己的理解。查看完整教程和示例:https://github.com/The-Pocket/PocketFlow/tree/main/cookbook
design
PocketFlow的真正魅力远超其极简设计。最具革命性的是它开启了智能体编码 (https://zacharyhuang.substack.com/p/agentic-coding-the-most-fun-way-to) 的大门——一种全新的编程方式,让AI助手帮你构建和改进AI应用!
智能体编码说白了就是与AI一起写代码的实践。打个比方,就像盖房子——开发者是有远见和专业知识的建筑师,而AI则是负责具体施工的建筑队:
这种协作能让生产力提升10倍!开发者少写重复代码,多做创造性思考!
agentic
传统框架的困境:代码膨胀,文档匮乏 以前的框架思路完全走偏了——它们在代码中硬编码各种特定应用的封装:
PocketFlow革命:文档即第二代码库! Pocket Flow的解决方案颠覆了传统思维。与其将功能固化在代码中,不如让它灵活存在于文档中:
AI辅助开发的未来:文档直接指导AI (.cursorrules)
这些文档不仅仅是给人类看的参考资料,更是AI助手的"指导手册"。通过将文档转化为AI助手的规则文件,如.cursorrules (https://github.com/The-Pocket/PocketFlow/blob/main/.cursorrules),Cursor等智能工具能够快速掌握PocketFlow的设计理念,在对话中灵活应用其设计模式。开发者只需专注于系统架构设计,学习少量基础构建块,就能让AI助手针对特定需求生成完美契合的解决方案,而不必被繁琐的框架限制所困扰。
更令人振奋的是:随着Pocket Flow代码的广泛传播,它们最终会进入未来大语言模型的训练数据。到那时,甚至不需要明确的文档,AI助手将自然而然地掌握这些原则,让大语言应用开发真正畅通无阻!
cursor
PocketFlow颠覆了"更复杂才更强大"的传统思维,用100行代码证明:真正的技术突破源于本质洞察,而非堆砌抽象。通过将大语言应用简化为基础有向图,它不仅让开发者摆脱了框架束缚,更为人机协作的智能体编码时代奠定了基础。
简洁并不意味着能力有限,恰恰相反,它赋予了开发者最大的自由和掌控力。正如伟大设计常常遵循的原则:"不是无法再添加,而是无法再简化时,才达到完美。"
别忘记给项目点亮Star,以感谢Zachary Huang博士为AI进步所做出的卓越贡献!
立即体验PocketFlow,感受100行代码如何取代成千上万行!
GitHub仓库:https://github.com/the-pocket/PocketFlow
文档: https://the-pocket.github.io/PocketFlow
TypeScript版本: https://github.com/The-Pocket/PocketFlow-Typescript
文章来自于“AI修猫Prompt”,作者“AI修猫Prompt”。
【免费】cursor-auto-free是一个能够让你无限免费使用cursor的项目。该项目通过cloudflare进行托管实现,请参考教程进行配置。
视频教程:https://www.bilibili.com/video/BV1WTKge6E7u/
项目地址:https://github.com/chengazhen/cursor-auto-free?tab=readme-ov-file
【开源免费】Browser-use 是一个用户AI代理直接可以控制浏览器的工具。它能够让AI 自动执行浏览器中的各种任务,如比较价格、添加购物车、回复各种社交媒体等。
项目地址:https://github.com/browser-use/browser-use
【开源免费】n8n是一个可以自定义工作流的AI项目,它提供了200个工作节点来帮助用户实现工作流的编排。
项目地址:https://github.com/n8n-io/n8n
在线使用:https://n8n.io/(付费)
【开源免费】DB-GPT是一个AI原生数据应用开发框架,它提供开发多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Multi-Agents框架协作、AWEL(智能体工作流编排)等多种技术能力,让围绕数据库构建大模型应用更简单、更方便。
项目地址:https://github.com/eosphoros-ai/DB-GPT?tab=readme-ov-file
【开源免费】VectorVein是一个不需要任何编程基础,任何人都能用的AI工作流编辑工具。你可以将复杂的工作分解成多个步骤,并通过VectorVein固定并让AI依次完成。VectorVein是字节coze的平替产品。
项目地址:https://github.com/AndersonBY/vector-vein?tab=readme-ov-file
在线使用:https://vectorvein.ai/(付费)
【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。
项目地址:https://github.com/Significant-Gravitas/AutoGPT
【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。
项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md
【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。
项目地址:https://github.com/microsoft/graphrag
【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。
项目地址:https://github.com/langgenius/dify
【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。
项目地址:https://github.com/infiniflow/ragflow/tree/main
【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目
项目地址:https://github.com/phidatahq/phidata
【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。
项目地址:https://github.com/TaskingAI/TaskingAI
【开源免费】MindSearch是一个模仿人类思考方式的AI搜索引擎框架,其性能可与 Perplexity和ChatGPT-Web相媲美。
项目地址:https://github.com/InternLM/MindSearch
在线使用:https://mindsearch.openxlab.org.cn/
【开源免费】Morphic是一个由AI驱动的搜索引擎。该项目开源免费,搜索结果包含文本,图片,视频等各种AI搜索所需要的必备功能。相对于其他开源AI搜索项目,测试搜索结果最好。
项目地址:https://github.com/miurla/morphic/tree/main
在线使用:https://www.morphic.sh/
【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。
项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md
在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0