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())

该代码段展示了:

  1. 创建 ChatCompletionsClient(示例中为 OpenRouter)。
  2. 实例化一个带有默认工具(网络搜索 + 本地代码执行)的 Agent
  3. 运行一个自动处理工具生命周期、日志记录和文件输出的会话。

扩展 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
  • 入门指南、核心概念、示例和工具创建教程都托管在同一网站上。
  • 开发工作流使用 uvruffpytest;仓库采用 MIT 许可证。

总结

Stirrup 是一个真实的、生产就绪的 Python 框架,用于构建需要灵活工具使用、上下文管理和易于更换 LLM 提供者的 LLM 驱动型智能体。它在保持轻量化的同时提供合理的默认设置,可作为自定义智能体项目的整洁起点。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目