Downloads · 30 days
6
5% of all-time downloads
narcolepticchicken/aco-specialists-tool-gater-v2
aco-specialists-tool-gater-v2 is a machine learning model from narcolepticchicken. Use it for the machine learning task on the model card, and read the license before you ship it in a product.
Tool-use gater for Agent Cost Optimizer — predicts whether a user query requires tool calls. Only ~6% of agent queries actually need tools; the model should gate the rest.
Downloads · 30 days
6
5% of all-time downloads
All-time downloads
112
Public
Parameters
150M
1.2 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors598 MB · 99%
From the Hugging Face model README
Tool-use gater for Agent Cost Optimizer — predicts whether a user query requires tool calls. Only ~6% of agent queries actually need tools; the model should gate the rest.
answerdotai/ModernBERT-base, 149.6M params)Evaluated on 1,695 held-out ToolACE instances (class dist: no_tool=1,592, call_tool=103; 5.6% positive).
| Metric | v2 (ModernBERT) | v1 (DistilBERT) | Delta |
|---|---|---|---|
| Accuracy | 91.7% | 98.2% | -6.5pp |
| F1 (macro) | 0.724 | 0.920 | -0.196 |
Per-class: neg P=0.977 R=0.934 F1=0.955 | pos P=0.393 R=0.660 F1=0.493
Assessment: v2 is significantly worse than v1. ModernBERT-base overfits on the 5.6% minority class despite focal loss and class weighting. The tool-gater-v2 should NOT be used; prefer v1 (DistilBERT).
The 5.6% positive rate (103 examples in test) is too few for a 149M-param model. ModernBERT's higher capacity + 2048-token context overfits on the majority class noise. DistilBERT's lower capacity and 512-token limit were actually beneficial as a regularizer.
lockon/ToolACE (11,300 agent conversations with tool calls detected by regex).
Preprocessed split available at narcolepticchicken/aco-traces (data/tool_gater/).
from transformers import AutoModelForSequenceClassification, AutoTokenizer
model = AutoModelForSequenceClassification.from_pretrained(
"narcolepticchicken/aco-specialists-tool-gater-v2")
tokenizer = AutoTokenizer.from_pretrained(
"narcolepticchicken/aco-specialists-tool-gater-v2")
inputs = tokenizer("Query: What is the capital of France?",
return_tensors="pt", truncation=True, max_length=2048)
outputs = model(**inputs)
# 0=no_tool, 1=call_tool
narcolepticchicken/aco-specialists-tool-gater) instead