Skip to main content
SMOLTRACE Logo

Tiny Agents. Total Visibility.

Smol Agents. Smart Metrics.

Documentation | Quickstart | PyPI | Issues

smoltrace

Python License PyPI version Downloads Downloads/Month Code style: black Imports: isort Tests Docs

SMOLTRACE is a benchmarking and evaluation framework for Smolagents, Hugging Face's lightweight agent library. It runs ToolCallingAgent and CodeAgent against curated or custom task datasets, auto-instruments everything with OpenTelemetry, and publishes results, traces, metrics, and a leaderboard — with zero configuration.

Get Started in 30 Seconds

pip install smoltrace
export HF_TOKEN=hf_your_token
export OPENAI_API_KEY=sk-your_key   # or MISTRAL_API_KEY, ANTHROPIC_API_KEY, ...

smoltrace-eval --model openai/gpt-4.1-nano --provider litellm --agent-type both --enable-otel

That's it. One command evaluates both agent types and automatically creates 4 datasets on the Hugging Face Hub:

  • {username}/smoltrace-results-{timestamp} — per-test-case outcomes
  • {username}/smoltrace-traces-{timestamp} — OpenTelemetry spans
  • {username}/smoltrace-metrics-{timestamp} — GPU / CO2 / cost time-series
  • {username}/smoltrace-leaderboard — aggregate stats, updated every run

No repo names to configure — everything is derived from your HF_TOKEN.

Key Features

  • Zero configuration — only HF_TOKEN required; dataset names are auto-generated from your username
  • Multi-provider — LiteLLM (OpenAI, Anthropic, Mistral, Groq, ...), HF Inference API, local Transformers models on GPU, and Ollama
  • OTEL native — auto-instrumented via genai-otel-instrument: spans, token counts, cost tracking, CO2 emissions
  • GPU metrics — utilization, memory, temperature, and power tracked by default for local models, flattened for dashboards
  • 20+ agent tools — web search, webpage reading, file system, text processing (grep/sed/sort), and process/system tools (ps/curl/ping), with working-directory sandboxing
  • 3 benchmark datasets — quick tasks (13), comprehensive benchmark (132: GAIA/Math/SimpleQA), and an ops/SRE benchmark (24)
  • Flexible output — push to HF Hub, save local JSON, or export to OpenSearch with typed mappings
  • Parallel execution — --parallel-workers 8 for 10-50x faster API-model evaluations
  • Dataset lifecycle — smoltrace-copy-datasets to bootstrap, smoltrace-cleanup to safely prune old runs
  • HF Jobs ready — run on Hugging Face cloud hardware (CPU to A100) with pay-as-you-go billing

Installation

pip install smoltrace                # core
pip install smoltrace[gpu]           # + GPU metrics for local models
pip install smoltrace[opensearch]    # + OpenSearch export

Requires Python 3.11+. For development installs and full requirements, see the installation guide.

Usage

CLI

# API model via LiteLLM (default provider)
smoltrace-eval --model openai/gpt-4 --provider litellm --agent-type tool

# Local GPU model via Transformers (GPU metrics on by default)
smoltrace-eval --model meta-llama/Llama-3.1-8B --provider transformers --agent-type both

# Local model via Ollama
smoltrace-eval --model qwen2.5-coder:3b --provider ollama --agent-type tool --enable-otel

# HF Inference API
smoltrace-eval --model meta-llama/Llama-3.1-70B-Instruct --provider inference --agent-type both

# Enable agent tools, filter by difficulty, run in parallel
smoltrace-eval \
  --model openai/gpt-4.1-nano \
  --provider litellm \
  --enable-tools visit_webpage read_file grep \
  --working-directory ./workspace \
  --difficulty easy \
  --parallel-workers 8 \
  --enable-otel

Other useful flags: --dataset-name (custom task dataset), --model-args temperature=0.7 seed=42, --prompt-yml (custom prompts: a smolagents prompt-template file, e.g. prompt_template.tool.yaml, merged over the defaults; a lone plain system_prompt is prepended to the default; a missing or unparseable file stops the run rather than falling back to the default prompts), --mcp-server-url (MCP tools), --private (private datasets), --output-format hub|json|opensearch.

Full flag reference: CLI documentation.

Python API

import os
from smoltrace.core import run_evaluation

all_results, trace_data, metric_data, dataset_used, run_id = run_evaluation(
    model="openai/gpt-4",
    provider="litellm",
    agent_type="both",
    enable_otel=True,
    hf_token=os.getenv("HF_TOKEN"),
)

Lower-level building blocks (generate_dataset_names, push_results_to_hf, compute_leaderboard_row, update_leaderboard, ...) are documented in the Python API reference.

Benchmark Datasets

Dataset Size Purpose
kshitijthakkar/smoltrace-tasks (default) 13 tasks Quick validation and development
kshitijthakkar/smoltrace-benchmark-v1 132 tasks Comprehensive evaluation (GAIA, Math, SimpleQA)
kshitijthakkar/smoltrace-ops-benchmark 24 tasks APM / AIOps / SRE / DevOps scenarios

Copy them to your own account with smoltrace-copy-datasets, or bring your own tasks as a HF dataset or local JSON. Schemas, the ops-benchmark sample-data setup, and custom task creation are covered in the datasets guide.

Community task datasets: the TraceMind-AI collection bundles 40+ ready-to-run task datasets spanning real-world domains — travel, e-commerce, healthcare, finance, DevOps/SRE, AIOps, cybersecurity, and more — for evaluating agents on domain-specific workloads. Point --dataset-name at any of them, e.g. --dataset-name MCP-1st-Birthday/smoltrace-finance-tasks.

Output Formats

--output-format hub          # default: 4 datasets on the HF Hub
--output-format json         # 5 local JSON files (results, traces, metrics, leaderboard row, metadata)
--output-format opensearch   # 4 OpenSearch indexes with typed mappings and bulk indexing

Details and OpenSearch connection options: output formats guide.

Run on HuggingFace Jobs

Run evaluations on HF cloud hardware without a local GPU (Pro / Team / Enterprise):

hf jobs run \
  --flavor cpu-basic \
  -s HF_TOKEN=hf_your_token \
  -s OPENAI_API_KEY=your_key \
  python:3.12 \
  bash -c "pip install smoltrace ddgs && smoltrace-eval --model openai/gpt-4 --provider litellm --enable-otel"

GPU flavors (t4-small through a100-large), the Python API, and scheduled evaluations are covered in the HF Jobs guide.

Dataset Management

Each run creates 3 timestamped datasets, so periodic cleanup keeps your profile tidy:

smoltrace-cleanup --older-than 30d            # dry-run preview (default)
smoltrace-cleanup --keep-recent 5 --no-dry-run  # actually delete

Cleanup is dry-run by default, never touches your leaderboard, and permanently protects the benchmark/tasks datasets. See the dataset management guide.

Leaderboard

Every run appends aggregate stats (success rate, pass@1, avg steps, tokens, duration, cost, CO2, GPU utilization) to your personal leaderboard, with links back to the run's results, traces, and metrics datasets. SMOLTRACE computes pass@1 from the first recorded completion for each logical (agent_type, test_id) task and publishes the rule and denominator alongside the score. Community rankings live at huggingface/smolagents-leaderboard — contribute your runs! More in the leaderboard guide.

Documentation

Community

Contributing

Contributions welcome! See the contributing guide.

git clone https://github.com/Mandark-droid/SMOLTRACE.git && cd SMOLTRACE
pip install -e .[dev]
pytest

License

Apache-2.0. See LICENSE.


⭐ Star this repo to support Smolagents! Questions? Open an issue.

Metadata

Release files for smoltrace 0.2.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for smoltrace 0.2.5
File Size Uploaded
smoltrace-0.2.5.tar.gz 148.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for smoltrace 0.2.5
File Interpreter ABI Platform
smoltrace-0.2.5-py3-none-any.whl Python 3 none any Details

Total release size: 232.8 kB

Release files / smoltrace-0.2.5.tar.gz

Download URL smoltrace-0.2.5.tar.gz
Size 148.6 kB
Tags Source
SHA-256 checksum
How to use checksums
13c72ead8fa63307a3a76bedc11c559eaa8dca780b93ceb08734015a59386cbf
BLAKE2b-256 checksum
How to use checksums
d3d90d99fd8c4ad795f299a38806441b2240564024c9e785116d0785cfb39c1b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.16

Release files / smoltrace-0.2.5-py3-none-any.whl

Download URL smoltrace-0.2.5-py3-none-any.whl
Size 84.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
52d9fa392582174b9df3a8fffd5348eed20fc4e693e815f15b4420cf01e48671
BLAKE2b-256 checksum
How to use checksums
da5bea246ca462ba7bf6eca2bb652b0fa34958cb108e11abfa971aa1419d10aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.16

Release history Release notifications | RSS feed

0.2.10

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

This release

0.2.5 This release

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.16

2 release files

0.0.15

2 release files

0.0.14

2 release files

0.0.13

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.3

2 release files

0.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page