smolagents 文档

smolagents

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

smolagents

什么是 smolagents?

smolagents 是一个开源的 Python 库,旨在让用户能够仅用几行代码就极其轻松地构建和运行 Agent。

smolagents 的主要特性包括

简洁性:Agent 的逻辑代码量在千行左右。我们力求将抽象保持在原始代码之上的最简形式!

🧑‍💻 对代码 Agent 的一流支持CodeAgent 以代码形式编写其动作(而非“使用 Agent 编写代码”)来调用工具或执行计算,从而实现自然的组合性(函数嵌套、循环、条件判断)。为确保安全性,我们支持通过 E2B 或 Docker 在沙盒环境中执行

📡 支持常见的工具调用 Agent:除了 CodeAgent,ToolCallingAgent 还支持常规的基于 JSON/文本的工具调用,适用于偏好该范式的场景。

🤗 与 Hub 集成:以 Gradio Spaces 的形式,无缝地在 Hub 上共享和加载 Agent 和工具。

🌐 模型无关:轻松集成任何大型语言模型(LLM),无论它托管在 Hub 上并通过推理服务提供商提供服务,还是通过 OpenAI、Anthropic 等 API 访问,或通过 LiteLLM 集成许多其他模型,抑或是使用 Transformers 或 Ollama 在本地运行。使用您偏好的 LLM 来驱动 Agent 既直接又灵活。

👁️ 模态无关:除了文本,Agent 还可以处理视觉、视频和音频输入,拓宽了可能应用的范围。请查看此教程了解视觉处理。

🛠️ 工具无关:您可以使用来自任何 MCP 服务器的工具,来自 LangChain 的工具,甚至可以把 Hub Space 作为工具使用。

💻 命令行工具:附带命令行实用程序(smolagent、webagent),可快速运行 Agent,无需编写样板代码。

快速入门

只需几分钟即可开始使用 smolagents!本指南将向您展示如何创建并运行您的第一个 Agent。

安装

使用 pip 安装 smolagents

pip install smolagents[toolkit]  # Includes default tools like web search

创建您的第一个 Agent

这是一个创建和运行 Agent 的最小示例

from smolagents import CodeAgent, InferenceClientModel

# Initialize a model (using Hugging Face Inference API)
model = InferenceClientModel()  # Uses a default model

# Create an agent with no tools
agent = CodeAgent(tools=[], model=model)

# Run the agent with a task
result = agent.run("Calculate the sum of numbers from 1 to 10")
print(result)

就是这样!您的 Agent 将使用 Python 代码来解决任务并返回结果。

添加工具

让我们通过添加一些工具来使我们的 Agent 更有能力

from smolagents import CodeAgent, InferenceClientModel, DuckDuckGoSearchTool

model = InferenceClientModel()
agent = CodeAgent(
    tools=[DuckDuckGoSearchTool()],
    model=model,
)

# Now the agent can search the web!
result = agent.run("What is the current weather in Paris?")
print(result)

使用不同的模型

您可以在您的 Agent 中使用各种模型

# Using a specific model from Hugging Face
model = InferenceClientModel(model_id="meta-llama/Llama-2-70b-chat-hf")

# Using OpenAI/Anthropic (requires smolagents[litellm])
from smolagents import LiteLLMModel
model = LiteLLMModel(model_id="gpt-4")

# Using local models (requires smolagents[transformers])
from smolagents import TransformersModel
model = TransformersModel(model_id="meta-llama/Llama-2-7b-chat-hf")

后续步骤

< > 在 GitHub 上更新