smolagents + Ertas
使用 smolagents 构建代码动作智能体——这是 Hugging Face 推出的约 1,000 行代码的智能体框架,LLM 将编写 Python 代码作为其主要动作模式,并对微调模型和本地模型提供一流支持。
Overview
smolagents 是 Hugging Face 的极简智能体框架,围绕“代码动作”范式设计:智能体不是通过 JSON 函数调用从固定工具列表中选择,而是编写并执行 Python 代码作为其动作格式。这种模式受到研究启发,研究表明代码动作智能体在复杂任务上通常优于 JSON 工具调用智能体,并且具有实际优势——智能体可以自然地组合、迭代和推理代码,而不是受限于预定义的工具模式。
该框架的显著特点是其小巧的体积——核心实现约为 1,000 行代码。这使得 smolagents 对于希望准确理解智能体框架在做什么、深度自定义或将其集成到现有系统中而不继承框架对工作 流、记忆或编排的固有看法的团队来说异常易于上手。Hugging Face 的 `ml-intern`(2026 年 4 月发布)是基于 smolagents 构建的,并展示了该框架的能力——在 10 小时的 H100 自我改进运行中,将一个 1.7B 模型的推理分数提高了 200%。
How Ertas Integrates
Ertas 训练的模型通过该框架灵活的 LLM 提供商系统与 smolagents 协同工作。在 Ertas Studio 中微调模型并部署到兼容 OpenAI 的端点(Ollama、vLLM 或 Ertas Cloud)后,你可以通过 LiteLLM 或 OpenAI 提供商类配置 smolagents 调用你的端点。代码动作范式与微调模型搭配尤为契合:包含 Python 代码轨迹(任务描述、代码尝试、执行输出和修正)的训练数据会产出能编写更可靠智能体代码的模型。
对于构建自我改进智能体系统的团队,smolagents + Ertas 组合尤为强大。你可以在生产环境中运行一个 smolagents 智能体,记录其成功和失败的代码动作轨迹,然后使用这些轨迹在 Ertas Studio 中微调一个更小的模型,在更低的推理成本下执行相同任务。这种模式——大模型在生产中运行,小模型在其轨迹上训练——是团队以经济高效的方式扩展智能体部署的运营基础。
Getting Started
- 1
在 Ertas Studio 中微调你的代码动作模型
在包含 Python 代码轨迹的数据上训练:任务描述、代码 尝试、执行结果。Ertas Studio 原生支持此格式。
- 2
部署到兼容 OpenAI 的端点
导出为 GGUF 格式并通过 Ollama、vLLM 或 Ertas Cloud 提供服务。smolagents 可调用任何暴露标准聊天补全 API 的端点。
- 3
安装 smolagents 并配置模型
从 Hugging Face 安装 smolagents 并配置一个指向你的推理端点的 LiteLLMModel 或 OpenAIServerModel。
- 4
定义工具并创建 CodeAgent
添加智能体可以使用的 Python 工具(HTTP 请求、数据库查询、文件操作)。创建一个使用这些工具的 CodeAgent,通过编写可执行的 Python 代码来调用工具。
- 5
运行、记录并持续改进
在生产环境中执行智能体运行,记录代码动作轨迹,并将其反馈到 Ertas Studio 进行增量微调,将生产行为蒸馏成更小、更快的模型。
from smolagents import CodeAgent, LiteLLMModel, tool
# Point smolagents at your Ertas-trained model served via Ollama
model = LiteLLMModel(
model_id="openai/ertas-coder-14b",
api_base="http://localhost:11434/v1",
api_key="not-needed",
)
@tool
def query_database(sql: str) -> str:
"""Execute a SQL query against the analytics database."""
return run_query(sql)
@tool
def generate_chart(data: list, chart_type: str) -> str:
"""Generate a chart from data. Returns the chart file path."""
return create_chart(data, chart_type)
# Create a code-action agent
agent = CodeAgent(
tools=[query_database, generate_chart],
model=model,
)
# The agent writes Python code to accomplish the task
result = agent.run("Show me Q3 revenue by product line as a bar chart")Benefits
- 代码动作智能体在复杂的多步骤任务上优于 JSON 工具调用智能体
- 约 1,000 行的核心实现——足够小,可以完全理解和自定义
- Hugging Face 的官方智能体框架,拥有强大的社区支持
- 与 Ertas 微调搭配:在代码动作轨迹上训练以获得更高的可靠性
- 自我改进循环:记录生产轨迹,在其上微调更小的模型
- 适用于任何 LiteLLM 或兼容 OpenAI 的端点,包括本地 Ertas 模型
Related Resources
Fine-Tuning
GGUF
Inference
LoRA
Getting Started with Ertas: Fine-Tune and Deploy Custom AI Models
Fine-Tune AI Models Without Writing Code
Running AI Models Locally: The Complete Guide to Local LLM Inference
CrewAI
Hugging Face
LangChain
Ollama
vLLM
Ertas for Data Extraction
Ertas for AI Automation Agencies
Ship AI that runs on your users' devices.
Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.