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
於 Ertas Studio 微調你的 code-action 模型
以包含 Python 程式碼軌跡的資料進行訓 練:任務描述、嘗試的程式碼、執行結果。Ertas Studio 原生支援此格式。
- 2
部署至 OpenAI 相容端點
匯出為 GGUF 並透過 Ollama、vLLM 或 Ertas Cloud 提供服務。smolagents 可呼叫任何提供標準 chat completion API 的端點。
- 3
安裝 smolagents 並設定模型
從 Hugging Face 安裝 smolagents,並設定指向你的推論端點的 LiteLLMModel 或 OpenAIServerModel。
- 4
定義工具並建立 CodeAgent
加入代理可使用的 Python 工具(HTTP 請求、資料庫查詢、檔案操作)。建立透過撰寫可執行 Python 程式碼來使用這些工具的 CodeAgent。
- 5
執行、記錄並持續改進
在正式上線環境執行代理運行、記錄 code-action 軌跡,並將其回饋到 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
- code-action 代理在複雜多步任務上勝過 JSON tool-call 代理
- 約 1,000 行的核心實作——足夠精簡,可完整理解並客製化
- Hugging Face 官方代理框架,擁有強大的社群支援
- 與 Ertas 微調搭配:以 code-action 軌跡訓練可獲得更高可靠度
- 自我改進迴圈:記錄上線軌跡,並以此微調更小的模型
- 可與任何 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.