100行代码速通Agent开发

695 阅读4分钟

大家好,我卡颂,专注于AI助力程序员转型阅读我的更多思考

自从23年初GPT爆火后,每年都会涌现一些爆火的AI概念。

今年最火的概念无疑是Agent

伴随而来的,是各家都在争夺Agent的解释权

这些繁杂的信息无疑加深了开发者对Agent的理解成本。

实际上,Agent的概念非常简单。本文会用一个100行代码的Agent框架讲解Agent的开发原理

什么是 PocketFlow?

PocketFlow是一款仅有100行代码的Agent框架,作者是Zachary Huang

他的概念非常简单 —— 所有AI应用的核心流程,本质来说是不同复杂度的(graph,一种数据结构),由最基本的数据结构Node组合而成。

AI总结邮件内容这个场景举例:

只让AI总结邮件内容,那么核心流程就是一个Node

如果AI总结邮件后再生成回复草稿,就是两个Node组成的Flow

如果要重复总结多份邮件,就是多个Node重复执行,这些Node组成Batch

如果要同时总结多份邮件,就是多个Node同时执行,这些Node组成Parallel

再考虑一些流程设计,比如:

  • 循环:Node A 与 B 的输出分别作为对方的输入

  • 分支:Node根据条件与不同Node连接

当有了这些基础的结构与流程后,就能组合更复杂的图。

比如循环分支可以组合成Agent

下图是一个总结邮件内容并生成回复Agent,他会分析邮件内容、确定是否需要人工审核、草拟回复并不断迭代优化。

一些常用的AI工具也能组合生成,比如下图是RAG的结构:

有了RAG,再结合循环就能组合成AI聊天应用中的聊天消息记忆模块

到这里你应该能理解为什么PocketFlow代码只有100行 —— 他只实现了构成AI应用所需的基本数据结构。

要开发任何AI应用,只需要:

  1. 了解该应用可以设计为什么结构的图(graph)

  2. PocketFlow描述图结构

  3. 实现图结构、辅助方法、图的状态管理

听起来是不是有种库太简单,以至于需要开发者自己写很多代码的感觉?

在AI时代,这恰恰不是问题。

Agentic Coding

由于PocketFlow代码量极少(100行),这意味着你能将他的源代码、设计理念、使用方法、案例合并为一条提示词给到大模型。

通过这条提示词,现代大模型(比如Claude-sonnet-3.7Gemini2...)可以轻松掌握PocketFlow使用方法的最佳实践。

作者还为上述最佳实践设计了一套称为Agentic CodingAI辅助开发模式

这套开发模式是人类设计AI实现的协作模式 —— 人类负责理解需求、定义高层架构和评估结果,AI负责实现细节和优化。

假设我要基于PocketFlow开发一个mini CursorAgentic Coding的流程如下:

  1. 我去调研mini Cursor需要实现哪些功能

  2. 与AI协作确定这些功能对应什么图结构

对于Cursor应该是Agent结构。

  1. 与AI协作确定工具的类型定义

mini Cursor需要如下工具:

  • codebase_search:语义搜索工具

  • read_file:读取文件内容(或大纲)

  • run_terminal_cmd:代表用户在终端执行命令

  • list_dir:快速列出目录内容

  • 等等

  1. AI使用PocketFlow实现我在步骤2确定的图结构

  2. AI实现我在步骤3确定的工具

  3. 评估、优化效果

就我个人体验,基于Agentic Coding,开发mini Cursor我只用了1天时间,结构如下:

核心代码就是定义不同Node,比如核心Agent各种工具Node

再将各个Node连接形成图。

总结

所有AI应用的核心流程,本质来说是不同复杂度的(graph,一种数据结构),由最基本的数据结构Node组合而成。

PocketFlow提供了最基本的数据结构以及一套人类设计 + AI实现的协作开发模式Agentic Coding(本质是一段可以作为cursor rule的提示词)

你可以在cursor(或其他AI IDE)帮助下,快速开发各种AI应用。