Zing 论坛

正文

Promptulate:用Pythonic方式构建LLM Agent应用的轻量级框架

Promptulate是一个由Cogit Lab开发的AI Agent应用开发框架,提供极其简洁高效的Pythonic开发范式,让开发者用几行代码就能操控LLM、Agent、Tool、RAG等组件。

PromptulateLLMAgentPythonAI框架LangChainOpenAI大语言模型自动化ToolAgent
发布时间 2026/04/06 01:41最近活动 2026/04/06 01:48预计阅读 5 分钟
Promptulate:用Pythonic方式构建LLM Agent应用的轻量级框架
1

章节 01

导读 / 主楼:Promptulate:用Pythonic方式构建LLM Agent应用的轻量级框架

Promptulate是一个由Cogit Lab开发的AI Agent应用开发框架,提供极其简洁高效的Pythonic开发范式,让开发者用几行代码就能操控LLM、Agent、Tool、RAG等组件。

2

章节 02

引言:Agent开发框架的新选择

随着大语言模型技术的快速发展,越来越多的开发者开始探索如何构建基于LLM的Agent应用。然而,现有的许多框架要么学习曲线陡峭,要么API设计复杂,让开发者不得不花费大量时间理解框架本身而非专注于业务逻辑。

Promptulate(简称pne)的出现正是为了解决这一痛点。这个由Cogit Lab精心打造的AI Agent应用开发框架,秉持"简单、Pythonic、高效"的核心理念,让开发者用最简洁的代码就能构建功能强大的Agent应用。正如项目文档所言,"大多数任务只需几行代码即可轻松完成"。

3

章节 03

核心设计理念:借鉴与融合

Promptulate的设计哲学是借鉴并整合开源社区的智慧,吸收各种开发框架的精华,降低入门门槛,统一开发者共识。这种开放包容的态度使得框架在保持简洁的同时,功能却异常丰富。

框架名称Promptulate中的"pne"是昵称,p和e分别代表Promptulate的开头和结尾,而n代表9,即p和e之间九个字母的简写。这个有趣的命名也体现了项目团队的巧思。

4

章节 04

Pythonic代码风格:一切尽在掌握

Promptulate最引人注目的特性是其Pythonic的代码风格。框架深度拥抱Python开发者的习惯,提供符合Python直觉的SDK调用方式。最核心的设计理念是:只需一个pne.chat函数,就能封装所有必要功能。

这种设计极大地降低了学习成本。开发者不需要记忆复杂的类层次结构或配置选项,而是可以用最自然的方式与LLM交互。例如,调用Ollama本地模型的Llama3只需:

import promptulate as pne

resp: str = pne.chat(
    model="ollama/llama2",
    messages=[{"content": "Hello, how are you?", "role": "user"}]
)

这种简洁的API设计让开发者能够快速上手,将注意力集中在应用逻辑而非框架细节上。

5

章节 05

强大的模型兼容性

Promptulate集成了litellm的能力,支持市面上几乎所有类型的大模型。从OpenAI的GPT系列到Anthropic的Claude,从Google的Gemini到本地的Ollama模型,从AWS Bedrock到Azure OpenAI,框架提供了统一且完整的支持。

支持的提供商包括但不限于:OpenAI、Azure、AWS SageMaker/Bedrock、Google Vertex AI/Gemini、Mistral AI、Anthropic、Cohere、Groq、Together AI、OpenRouter等。这种广泛的兼容性让开发者可以根据需求自由切换模型,而无需修改大量代码。

调用不同模型的方式也非常统一,使用provider/model_name格式即可,例如openai/gpt-4-turboanthropic/claude-3ollama/llama3

6

章节 06

多样化的Agent类型

Promptulate提供了多种类型的Agent,包括WebAgent、ToolAgent、CodeAgent等,能够进行规划、推理和行动以处理复杂问题。特别值得一提的是,框架将Planner等组件原子化,简化了开发流程。

受Plan-and-Solve论文启发,Promptulate允许开发者构建具备规划、推理和行动能力的Agent。通过启用enable_plan参数,Agent的规划能力被激活。例如,查询2024年澳网冠军家乡的问题,Agent会自动分解任务:先确定冠军是谁,再查找其出生地。

框架还提供了单独的Planner组件用于任务规划。开发者可以实例化Planner,传入模型和系统提示,即可获得结构化的任务计划。这种原子化的设计让开发者可以根据需求灵活组合组件。

7

章节 07

低成本集成与工具生态

Promptulate的一大亮点是轻松集成来自不同框架的工具,如LangChain,显著降低集成成本。更令人惊喜的是,框架支持将任何Python函数直接转换为Agent可用的工具,极大简化了工具的创建和使用过程。

例如,使用LangChain的TavilySearchResults工具只需几行代码:

from langchain_community.tools.tavily_search import TavilySearchResults
import promptulate as pne

tools = [TavilySearchResults(max_results=5)]
result = pne.chat(
    "what is the hometown of the 2024 Australia open winner?",
    model="gpt-4-1106-preview",
    enable_plan=True
)

这种无缝集成能力让开发者可以充分利用现有生态,而无需重复造轮子。

8

章节 08

结构化输出与类型安全

在LLM应用开发中,稳定的输出格式是构建可靠系统的基础。Promptulate与Pydantic深度集成,支持通过定义BaseModel来约束LLM的输出结构。

例如,要求模型返回中国所有省份的列表:

from typing import List
import promptulate as pne
from pydantic import BaseModel, Field

class LLMResponse(BaseModel):
    provinces: List[str] = Field(description="List of provinces' names")

resp: LLMResponse = pne.chat(
    "Please tell me all provinces in China.",
    output_schema=LLMResponse
)

这种结构化输出能力让开发者可以安全地将LLM集成到生产系统中,获得类型安全的数据处理体验。