smolagents + Ertas

    使用 smolagents 建構 code-action 代理——這是 Hugging Face 約 1,000 行程式碼的代理框架,LLM 以撰寫 Python 程式碼作為其主要動作模式,並對微調及本地模型提供一流支援。

    Overview

    smolagents 是 Hugging Face 的極簡代理框架,圍繞「code-action」典範設計:代理不再從固定的工具清單中透過 JSON 函式呼叫進行選擇,而是直接撰寫並執行 Python 程式碼作為其動作格式。這種模式受到研究啟發,研究顯示 code-action 代理在複雜任務上通常勝過 JSON tool-call 代理;同時它也帶來實際好處——代理可以自然地組合、迭代與推理程式碼,而不必受制於預先定義的工具 schema。

    此框架最具特色之處在於其輕量足跡——核心實作僅約 1,000 行程式碼。這使得 smolagents 對於想要清楚理解代理框架運作、深度客製化,或在不繼承框架對工作流程、記憶體或編排成見的前提下整合到既有系統的團隊來說,異常容易上手。Hugging Face 的 `ml-intern`(於 2026 年 4 月發佈)即建構於 smolagents 之上,並展示了此框架的能力——在一次 10 小時的 H100 自我改進執行中,將 1.7B 模型的推理分數提升 200%。

    How Ertas Integrates

    Ertas 訓練的模型透過此框架靈活的 LLM provider 系統與 smolagents 協同運作。在 Ertas Studio 微調模型並部署至 OpenAI 相容端點(Ollama、vLLM 或 Ertas Cloud)後,你可以透過 LiteLLM 或 OpenAI provider 類別設定 smolagents 呼叫你的端點。code-action 典範與微調模型搭配特別出色:包含 Python 程式碼軌跡(任務描述、嘗試的程式碼、執行輸出與更正)的訓練資料能產生更可靠地撰寫代理程式碼的模型。

    對於建構自我改進代理系統的團隊來說,smolagents + Ertas 的組合特別強大。你可以在正式上線環境執行 smolagents 代理,記錄其成功與失敗的 code-action 軌跡,再以這些軌跡於 Ertas Studio 微調一個較小的模型,使其以更低推論成本執行相同任務。這種模式——上線使用大模型、訓練於其軌跡上的小模型——是團隊以具成本效益的方式擴展代理部署的營運主軸。

    Getting Started

    1. 1

      於 Ertas Studio 微調你的 code-action 模型

      以包含 Python 程式碼軌跡的資料進行訓練:任務描述、嘗試的程式碼、執行結果。Ertas Studio 原生支援此格式。

    2. 2

      部署至 OpenAI 相容端點

      匯出為 GGUF 並透過 Ollama、vLLM 或 Ertas Cloud 提供服務。smolagents 可呼叫任何提供標準 chat completion API 的端點。

    3. 3

      安裝 smolagents 並設定模型

      從 Hugging Face 安裝 smolagents,並設定指向你的推論端點的 LiteLLMModel 或 OpenAIServerModel。

    4. 4

      定義工具並建立 CodeAgent

      加入代理可使用的 Python 工具(HTTP 請求、資料庫查詢、檔案操作)。建立透過撰寫可執行 Python 程式碼來使用這些工具的 CodeAgent。

    5. 5

      執行、記錄並持續改進

      在正式上線環境執行代理運行、記錄 code-action 軌跡,並將其回饋到 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 訓練的模型建構 code-action 代理。代理以撰寫 Python 程式碼作為動作格式,自然地以函式呼叫的方式呼用工具。

    Benefits

    • code-action 代理在複雜多步任務上勝過 JSON tool-call 代理
    • 約 1,000 行的核心實作——足夠精簡,可完整理解並客製化
    • Hugging Face 官方代理框架,擁有強大的社群支援
    • 與 Ertas 微調搭配:以 code-action 軌跡訓練可獲得更高可靠度
    • 自我改進迴圈:記錄上線軌跡,並以此微調更小的模型
    • 可與任何 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.