promptulate
用几行代码操控任何大模型,AI Agent 开发框架的 Pythonic 实践
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
用几行代码操控任何大模型,AI Agent 开发框架的 Pythonic 实践
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:你是一个产品经理,想要快速验证一个想法——让 AI 自动帮你查询 arXiv 论文、总结摘要并整理成报告。传统的做法是先学 LangChain,再用各种适配器拼接,最后写一堆胶水代码。等你跑通流程,一上午已经过去了。
Promptulate 解决的就是这个问题。它由独立开发者 Zeeland(Cogit Lab)打造,核心理念是:用最少的代码,做最多的事。一个 pne.chat() 函数,封装了所有你需要的大模型调用能力。
社区中有一个形象的比喻:Promptulate 是给 LangChain 做减法的产品——保留了精华,去掉了冗余,让开发者不再需要为框架本身操心。

图1:Promptulate 框架 banner(来源:官方 GitHub 仓库)
Promptulate 的诞生,源自作者 Zeeland 在实际项目中使用 LangChain 时的挫败感。LangChain 功能强大,但学习曲线陡峭、版本迭代频繁、文档与代码经常不同步,每次升级都可能带来 Breaking Change。更重要的是,很多日常任务其实根本不需要 LangChain 的全部能力——几行代码就能搞定的事,为什么要引入整个框架?
Zeeland 从 2023 年开始开发 Promptulate,目标很明确:做一款足够用但不过度的大模型应用框架。他广泛参考了 LangChain、AutoGen、Semantic Kernel 等框架的设计思路,提炼共性、统一接口,最终形成了 Promptulate 的核心设计哲学。
项目采用 Apache-2.0 开源协议,代码仓库目前已积累 511 颗 GitHub Stars,吸引了来自全球的开发者在 Issues 中讨论使用心得。值得注意的是,作者 Zeeland 还创建了多个相关项目,包括 AI 代码助手 gcop、多模态机器人框架 Athena、以及一个模型对比 playground,形成了以 Promptulate 为核心的开发者工具生态。
从目录结构来看,Promptulate 采用了清晰的分层架构:
promptulate/
├── agents/ # Agent 核心模块
│ ├── base.py # Agent 基类
│ ├── tool_agent/ # 工具型 Agent(ToolAgent)
│ ├── web_agent/ # 网页交互 Agent(WebAgent)
│ └── planner/ # 规划型 Agent(Planner)
├── llms/ # 大模型接口层
│ ├── base.py # LLM 基类
│ ├── factory.py # 模型工厂
│ └── _litellm.py # LiteLLM 集成(核心)
├── tools/ # 内置工具集(14+ 工具)
│ ├── arxiv/ # 论文搜索
│ ├── duckduckgo/ # 搜索
│ ├── wikipedia/ # 百科
│ ├── python_repl/ # Python 执行
│ └── human_feedback/ # 人工介入
├── memory/ # 对话记忆
│ ├── buffer.py # 缓冲式记忆
│ └── file.py # 持久化记忆
├── hook/ # 生命周期钩子
└── client/ # 命令行客户端
这个架构的设计亮点在于:每个模块都是可插拔的。你可以只用一个 pne.chat() 快速调用模型,也可以深入到 Agent 层面构建复杂的 ReAct 循环,还可以注册自定义的 Hook 在推理过程中插入日志、监控或干预逻辑。

图2:Promptulate 架构图(来源:官方文档)
Promptulate 最大的卖点是这个极简的 pne.chat() 接口。只需三行代码,你就可以调用几乎所有主流大模型:
import promptulate as pne
resp = pne.chat(
model="gpt-4",
messages=[{"role": "user", "content": "解释量子纠缠"}]
)
print(resp)
模型名称遵循 provider/model_name 的格式,比如 ollama/llama2、claude/claude-3-opus、gemini/gemini-pro,与 LiteLLM 保持一致。这意味着:换模型只需要改一个字符串。
Promptulate 提供了多种专业 Agent:
多个 Agent 可以协同工作,形成类似 AutoGen 的多 Agent 协作模式。example 目录中包含了丰富的工作示例,涵盖 ToT(思维树)、Gradio/Streamlit 聊天机器人、arXiv 工具调用、数学应用构建等场景。
Promptulate 与 Pydantic 无缝集成,支持通过 output_schema 参数指定输出格式:
from pydantic import BaseModel
import promptulate as pne
class Recipe(BaseModel):
name: str
ingredients: list[str]
steps: list[str]
recipe: Recipe = pne.chat(
"给我一个番茄炒蛋的食谱",
output_schema=Recipe
)
Promptulate 提供了细粒度的生命周期管理,覆盖 Agent、Tool、LLM 三个层面的完整执行链路。你可以在任意阶段插入自定义逻辑——比如记录 token 消耗、实时监控推理过程、或在特定条件下中断执行。
内置 BufferMemory 和 FileMemory,支持在多轮对话中维护上下文。FileMemory 还支持持久化存储,让 Agent 在重启后仍能保留历史对话。
通过 pne 或 pne-chat 命令行工具,开发者可以直接在终端调试 Prompt,无需启动完整应用:
pne-chat --model gpt-4 --prompt "你好"
| 维度 | 分析 |
|---|---|
| 编程语言 | Python(>=3.8.1),使用 Poetry 管理依赖 |
| 核心依赖 | LiteLLM(统一大模型调用)、Pydantic(数据验证)、Click(CLI)、broadcast-service(事件广播)、cushy-storage(存储抽象) |
| AI 框架 | 基于 LiteLLM 的统一模型抽象层,非 LangChain 分支 |
| 代码质量 | 使用 Ruff 做 lint,pytest 完整测试,pre-commit 规范化 |
| 测试覆盖 | 集成测试单独分组,包含 langchain、arxiv、duckduckgo 等真实 API 依赖测试 |
| 文档 | 使用 VitePress 构建,英文 + 中文双语文档 |
AI 框架判断:Promptulate 基于 LiteLLM(非 LangChain),LiteLLM 本身是一个统一的大模型调用封装库,支持 100+ 模型。Promptulate 在 LiteLLM 基础上构建了自己的 Agent、Tool、Memory 和 Hook 系统。
pne.chat() 几分钟就能跑通。Promptulate 的出现代表了 AI 应用开发框架的一个趋势:从大而全走向小而美。随着大模型 API 越来越标准化,开发者真正需要的不是另一个功能堆砌的框架,而是一套简洁、一致、可靠的抽象层。Promptulate 正是这种思路的践行者。
同时,项目的中文文档和活跃的 Telegram 社区(中文开发者群体)也为国内用户降低了使用门槛。相比 LangChain 的英文文档和复杂的概念体系,Promptulate 用更少的概念覆盖了 80% 的日常需求。
pip install -U pne
然后在 Python 中:
import promptulate as pne
resp = pne.chat("1+1等于几?", model="gpt-4o")
print(resp)