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. 1

      在 Ertas Studio 中微调你的代码动作模型

      在包含 Python 代码轨迹的数据上训练:任务描述、代码尝试、执行结果。Ertas Studio 原生支持此格式。

    2. 2

      部署到兼容 OpenAI 的端点

      导出为 GGUF 格式并通过 Ollama、vLLM 或 Ertas Cloud 提供服务。smolagents 可调用任何暴露标准聊天补全 API 的端点。

    3. 3

      安装 smolagents 并配置模型

      从 Hugging Face 安装 smolagents 并配置一个指向你的推理端点的 LiteLLMModel 或 OpenAIServerModel。

    4. 4

      定义工具并创建 CodeAgent

      添加智能体可以使用的 Python 工具(HTTP 请求、数据库查询、文件操作)。创建一个使用这些工具的 CodeAgent,通过编写可执行的 Python 代码来调用工具。

    5. 5

      运行、记录并持续改进

      在生产环境中执行智能体运行,记录代码动作轨迹,并将其反馈到 Ertas Studio 进行增量微调,将生产行为蒸馏成更小、更快的模型。

    python
    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")
    使用 smolagents 和 Ertas 训练的模型构建一个代码动作智能体。智能体将 Python 代码作为其动作格式编写,自然地以函数调用方式调用工具。

    Benefits

    • 代码动作智能体在复杂的多步骤任务上优于 JSON 工具调用智能体
    • 约 1,000 行的核心实现——足够小,可以完全理解和自定义
    • Hugging Face 的官方智能体框架,拥有强大的社区支持
    • 与 Ertas 微调搭配:在代码动作轨迹上训练以获得更高的可靠性
    • 自我改进循环:记录生产轨迹,在其上微调更小的模型
    • 适用于任何 LiteLLM 或兼容 OpenAI 的端点,包括本地 Ertas 模型

    Related Resources

    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.