ArtificialAnalysis/Stirrup
The lightweight framework for building agents
Stirrup – 构建 AI 智能体的轻量级基础
定义 – Stirrup 是一个 Python 库,为您提供创建 LLM 驱动型智能体的极简且可扩展的脚手架。它刻意不干扰语言模型,让模型决定如何解决任务,同时提供一套模型可以调用的现成“工具”(代码执行、网络搜索、文件 I/O 等)。
核心理念
- 模型优先 – 与许多强制执行僵化的“计划-执行”循环的框架不同,Stirrup 为模型提供了一个灵活的工具箱,让模型选择最佳的操作序列。
- 最佳实践默认设置 – 默认工具集反映了作者在领先智能体(Claude Code, Codex)中观察到的功能,为您处理上下文摘要、临时目录和工具生命周期。
- 即插即用 – 您可以直接使用发布的
stirrup包,或者克隆仓库将其作为构建完全自定义智能体栈的模板。
核心功能 (如 README 中所述)
| 功能 | 提供内容 |
|---|---|
| 代码执行 | 在本地、Docker 中或 E2B 沙箱中运行任意代码。 |
| 在线搜索 / 网络浏览 | 搜索网络(通过 Brave API)并获取页面供模型阅读。 |
| MCP 客户端支持 | 连接到 MCP 服务器以重用外部工具/资源。 |
| 文档 I/O | 将文件导入智能体的上下文并写入输出文件。 |
| 技能系统 – 将特定领域的指令集打包为可重用的“技能”。 | |
灵活的工具接口 – 通过为带有 Pydantic 类型参数的简单 Tool 类编写子类来定义新工具。 |
|
| 人机回圈 (Human-in-the-loop) – 内置的用户输入工具允许模型向人类寻求澄清。 | |
| 上下文管理 – 当 Token 窗口接近限制时,自动对对话历史进行摘要。 | |
| 与提供者无关的 LLM 客户端 – 为 OpenAI 兼容的 API、LiteLLM 或您编写的任何自定义客户端预构建的客户端。 | |
| 多模态支持 – 通过将图像、视频和音频转换为模型可以消费的格式来处理它们。 |
快速入门示例 (摘自 README)
import asyncio
from stirrup import Agent
from stirrup.clients.chat_completions_client import ChatCompletionsClient
async def main():
client = ChatCompletionsClient(
base_url="https://openrouter.ai/api/v1",
model="anthropic/claude-opus-5",
max_tokens=8_192,
context_window_tokens=1_000_000,
)
agent = Agent(client=client, name="agent", max_turns=15)
async with agent.session(output_dir="./output/example") as session:
finish, history, meta = await session.run(
"What is the population of Australia over the last 3 years? "
"Search the web and create a simple matplotlib chart."
)
print(finish, history, meta)
if __name__ == "__main__":
asyncio.run(main())
该代码段展示了:
- 创建
ChatCompletionsClient(示例中为 OpenRouter)。 - 实例化一个带有默认工具(网络搜索 + 本地代码执行)的
Agent。 - 运行一个自动处理工具生命周期、日志记录和文件输出的会话。
扩展 Stirrup
- 添加预构建工具 – 例如,可以将
stirrup.tools中的CALCULATOR_TOOL与默认工具混合使用。 - 定义您自己的工具 – 为参数编写 Pydantic 模型,编写一个返回
ToolResult的函数,并将其封装在Tool对象中。 - 自定义提供者 – 如果您的工具需要设置/拆卸(例如持久化数据库连接),请实现
ToolProvider。 - 更换 LLM 后端 – 使用
LiteLLMClient用于 Anthropic、Google 等,或将ChatCompletionsClient指向任何 OpenAI 兼容的端点(Deepseek, Ollama 等)。
安装
# 核心包
pip install stirrup # 或: uv add stirrup
# 所有可选扩展 (Docker, E2B sandbox, browser, LiteLLM, MCP, etc.)
pip install 'tirrup[all]'
可以单独安装各个扩展 (stirrup[docker], stirrup[browser], …)。
您在什么时候会使用 Stirrup?
- 原型设计新智能体 – 从默认工具和单个 LLM 调用开始,然后进行迭代。
- 构建特定领域助手 – 无需重写执行循环即可添加自定义技能(例如金融计算器、医疗查询)。
- 工具使用模式研究 – 框架会记录工具调用并自动摘要上下文,便于研究模型如何与外部资源交互。
- 多提供者部署 – 通过更换客户端配置,在 Claude、Deepseek、Anthropic 等之间进行切换。
文档与社区
- 完整文档:https://stirrup.artificialanalysis.ai
- 入门指南、核心概念、示例和工具创建教程都托管在同一网站上。
- 开发工作流使用
uv、ruff和pytest;仓库采用 MIT 许可证。
总结
Stirrup 是一个真实的、生产就绪的 Python 框架,用于构建需要灵活工具使用、上下文管理和易于更换 LLM 提供者的 LLM 驱动型智能体。它在保持轻量化的同时提供合理的默认设置,可作为自定义智能体项目的整洁起点。
相关
- 项目
- 项目
- 项目
- 项目
- 项目