Abstract
On-device personal assistants must select tools from catalogs that compete with conversation history and observations for limited inference resources. A possible design assigns tool selection to a compact decision model and reserves a language model for argument generation and response synthesis. The longer-term objective is reliable selection over extended context in a single prefill decision stage. This report evaluates an initial component of that design: first-step selection on 250 cases derived from Berkeley Function Calling Leaderboard V1. Seven decision systems are compared on 200 tool-required and 50 no-call cases. Bespoke Nimble 9B and frozen Qwen3.5-4B with SemIf each achieve 248/250 (99.2%) under the combined selection metric; Laya achieves 240/250 (96.0%). Recorded timings are reported as exploratory measurements because serving paths and numerical precision differ. These results establish a short-context baseline. Long-context selection, on-device latency, argument correctness, and complete assistant tasks remain unevaluated.
Keywords: tool selection; decision models; function calling; on-device assistants; BFCL
Efficient tool selection for on-device assistants
A personal assistant operating on a local computer may need to condition its next action on the user request, conversation history, previous tool results, and an available tool catalog. As this decision context grows, encoding cost and memory requirements become relevant constraints. A research objective is therefore to identify compact models that retain tool-selection accuracy under long contexts and can produce a decision without autoregressively generating a complete tool call.
The proposed architecture assigns action selection to a decision model, argument generation and response synthesis to a chat model, and execution and permission enforcement to a harness. Selection is repeated after each tool observation, with fallback to the chat model when the decision policy abstains. The present experiment evaluates only the initial selection step.
Decision context
Request, history,
observations, tool catalog
Decision model
Score available actions;
select a tool or abstain
Chat model + harness
Arguments, execution,
response synthesis
1.1 Decision interface and prefill
Here, Jev-style describes a decision interface over a finite set of supplied actions. For input context x and action set A, the system selects the highest-scoring action. The evaluated systems return action scores or probabilities rather than a generated answer sequence. This terminology describes the interface; the underlying architectures and scoring implementations differ.
Single-prefill tool selection is the deployment target: encode the decision context and obtain a bounded action readout without decoding a multi-token tool call. The current comparison does not establish that every backend performs one shared physical forward pass across all candidates. For example, candidate-conditioned encoders and direct answer-logit readouts use different computation paths [7][10].
Removing autoregressive answer generation addresses one source of inference cost. The model must still process its input context, and the chat model may require some of the same evidence to construct arguments. Any overall latency benefit must therefore be measured across the complete assistant workflow.
1.2 Scope and related work
This study evaluates existing open decision systems and scoring methods. Related BFCL dispatch evaluations and decision-model comparisons have been released by Blobfish, OD1, and LangWatch [11][12][13]. The contribution here is a documented BFCL V1 conversion, a frozen evaluation subset, and an inspectable comparison of seven systems on identical cases. No new model architecture is introduced.
Dataset construction and evaluation protocol
2.1 Source data and selection
The evaluation derives from the BFCL V1 data in the Gorilla repository [1], pinned to tag v1.0 and commit 9df5c346ee0556c8a7cb09fd7206a39aadd904c2. From a 2,000-case converted corpus, 250 examples were selected using category quotas, deterministic hash ranking, and normalized-request deduplication. Eligibility required an unambiguous next action and a usable reference label. Parallel-call cases were excluded because they do not define a unique first action.
The selected set contains 120 multiple_function, 30 executable_multiple_function, 35 simple, 15 executable_simple, and 50 relevance examples. The relevance category was filtered through a reviewed 55-case allowlist before selection. The exact seed, review decisions, retained source references, and selection manifest are included in the dataset release [2].
2.2 Decision inputs and systems
Each case supplies a user request, one to four function options, and three non-tool actions: no_tool, clarify, and cannot_answer. Function descriptions are capped at 120 characters. Full argument schemas and reference answers are retained in the release for inspection but are excluded from the decision input. The semantic inputs are shared; prompt serialization and tokenization are backend-specific. Laya’s rendered inputs span 104–271 tokens.
The evaluated systems are Laya typed-decisions [3], Kev-0.8B [4], Bespoke Nimble 9B [5], Qwen3.5-4B with SemIf [6][7], Rizzo Flow 4B Q8_0 [8], Von 1.3 with decision chains disabled [9], and NanoJev unified-games-v1 [10]. SemIf scores answer-option logits from frozen Qwen weights; it is a readout method, not an additional trained checkpoint. No model is fine-tuned in this experiment. All seven systems returned predictions for all 250 cases, without recorded evaluation errors or retries.
2.3 Selection metric
For a tool-required case, a prediction is correct only if the selected function matches the reference. For a no-call case, any of the three non-tool actions is accepted. This aggregation follows BFCL’s distinction between function calls and no-call responses; its labels do not separately supervise clarification and inability. The aggregate metric is:
Results are also reported separately for the 200 tool-required cases, the 150 multiple-tool cases, and both 50-case controls. These scores evaluate the selected action. Argument values, execution outcomes, and final responses are outside the protocol.
Evaluation identity. This is a derived routing benchmark with a defined selection metric. Its scores are not directly comparable to official BFCL function-calling leaderboard scores.
Results on the frozen evaluation set
On the combined 250-case metric, Bespoke Nimble 9B and Qwen3.5-4B with SemIf each obtain 248 correct selections (99.2%). Laya obtains 240 (96.0%). On the 200 tool-required cases, the corresponding counts are 200, 198, and 197. The no-call subset accounts for the difference between these views.
Figure 1 reports the aggregate and subset results. As deterministic controls on the same 250 cases, always selecting the first offered function obtains 106/250 (42.4%), while always selecting a non-tool action obtains 50/250 (20.0%). These controls are provided in the selection manifest [2].
Selection accuracy by evaluation subset
The same 250 cases are evaluated across seven decision systems.
All cases, n = 250. Exact function on tool-required cases; any non-tool action on no-call cases. These are routing decisions, not generated function calls or completed tasks.
| System | Selection | Tool required | No call | Median | Precision |
|---|---|---|---|---|---|
| Laya typed-decisions | 96.0%240/250 | 197/200 | 43/50 | 17.0 ms | FP16 |
| Kev-0.8B | 96.4%241/250 | 192/200 | 49/50 | 73.8 ms | FP32 |
| Bespoke Nimble 9B | 99.2%248/250 | 200/200 | 48/50 | 60.3 ms | BF16 |
| Qwen3.5-4B + SemIf | 99.2%248/250 | 198/200 | 50/50 | 56.0 ms | BF16 |
| Rizzo Flow 4B Q8_0 | 95.6%239/250 | 189/200 | 50/50 | 38.3 ms | Q8_0 |
| Von 1.3 (chains off) | 91.2%228/250 | 179/200 | 49/50 | 13.0 ms | Not recorded in saved run metadata |
| NanoJev unified-games-v1 | 35.2%88/250 | 38/200 | 50/50 | 27.4 ms | BF16 |
Function selection
Laya selects the reference function in 197/200 tool-required cases, including 147/150 multiple-tool cases. This observation concerns the supplied short descriptions.
Frozen-model readout
Qwen3.5-4B with SemIf obtains 198/200 tool-required selections and 50/50 no-call selections. Direct-logit scoring provides a relevant baseline for specialized checkpoints.
Domain specialization
NanoJev obtains 38/200 tool-required selections and 50/50 no-call selections. Its evaluated checkpoint targets games; the frequent abstention is an out-of-domain observation.
The leading tool-required scores differ by only a few cases. These point estimates do not establish statistical equivalence or a general model ranking. The subset analysis is particularly relevant because the 50 positive one-tool controls do not require distinguishing among multiple candidate functions.
Exploratory decision latency
The hardware identifier is not disclosed, limiting reproducibility of the latency measurements. Each plotted value is computed from the saved per-case wall-time measurements, with one recorded decision per case and no uniform warm-up or repeated-trial protocol. The measurements include first recorded calls. They use different precision settings and serving paths, including HTTP services and in-process scorers.
Figure 2 pairs selection accuracy with latency over the same selected subset. Median latency reduces the influence of isolated first-call overhead; the mean remains available to expose that sensitivity. These observations characterize the tested configurations. They do not isolate architecture effects or quantify an on-device speedup.
Observed decision latency and selection accuracy
Heterogeneous runtimes · one recorded decision per case
No evaluator warm-up or repeated-run timing protocol. HTTP and in-process adapters, precisions and serving paths differ. First recorded calls remain in the aggregates. These values do not establish Mac latency or an architecture-only speed advantage.
For a future assistant evaluation, the relevant measurement is time to a correctly completed task, including selection, argument generation, tool execution, fallback, retries, and response synthesis. A reduction in selection latency is useful only if it survives this complete workflow.
Context → selection → arguments → execution → response
Report task success together with end-to-end wall time.Per-case inspection
The released report contains all 250 requests and 1,750 predictions, including offered actions, selected actions, recorded score distributions, and wall times. The interface below supports comparison on identical cases and filtering by a selected system’s errors. Calibration on this evaluation distribution has not been established; the recorded probabilities should not be interpreted as empirical correctness guarantees.
What is the wind speed and temperature in location given by coordinates 46.603354,1.8883340 on December 13, 2019?
Read all options shown to the model
- no_tool
- answer the user now: the request needs no tool or is already answered
- clarify
- ask the user which one or what exactly: the request is ambiguous
- cannot_answer
- decline: no tool here can send email, messages, payments or do this
- weather.get_by_city_date
- Retrieves the historical weather data based on city and date.
- weather.get_forecast_by_coordinates
- Get the weather forecast for a specific geographical coordinates.
- weather.get_by_coordinates_date
- Retrieves the historical weather data based on coordinates and date.
weather.get_forecast_by_coordinates
Recorded wall time · 23.3 ms
Saved option probabilities. They are not a calibrated guarantee of correctness.
The displayed records contain public benchmark cases and model predictions. No private assistant conversations are included.
Scope of the evidence
Context length and catalog size
The cases contain one to four concise function descriptions, with Laya inputs of 104–271 tokens. The experiment does not measure retention of relevant evidence across long histories, performance with large catalogs, or memory scaling. Long-context single-prefill selection remains a deployment objective.
Single-step evaluation
Only the initial decision is scored. The evaluation does not include tool observations, stopping after task completion, recovery from tool errors, permission escalation, or argument generation.
Sampling and label semantics
The 250 cases form a selected subset with fixed quotas and reviewed exclusions. No-call labels merge three non-tool actions, and some positive requests could be answered directly outside the BFCL labeling convention. The scores therefore depend on this protocol.
Training overlap and domain mismatch
BFCL is public, and exposure during model training has not been excluded. The systems also differ in training data and intended domains. NanoJev’s game-oriented checkpoint is evaluated outside its documented training workload.
Timing and confidence
Precision, kernels, request boundaries, and candidate-scoring implementations differ. No repeated-run latency confidence intervals or probability calibration are reported. The results do not determine an assistant fallback threshold.
Toward long-context on-device tool selection
This experiment establishes a reproducible conversion and an inspectable short-context selection baseline for seven existing decision systems. Several configurations achieve high selection accuracy under the defined BFCL-derived protocol. The results support further evaluation of a separate tool-selection stage in a local assistant; they do not establish the effectiveness of the complete architecture.
The next study should test whether selection accuracy is retained as the decision context and catalog increase, and whether avoiding autoregressive tool-call decoding produces a measurable benefit on constrained devices. The following extensions follow directly from the present limitations.
Dataset, predictions, and conversion code
The release preserves source references and exact checkpoint identifiers, allowing the reported aggregates to be independently inspected.
Datasets, models, and related work
References [1–2] identify the data used in this experiment; [3–10] identify every evaluated checkpoint and the SemIf scoring method. Model links below point to the evaluated revisions. The full report records additional runtime and weight provenance.
- Patil, S. G., Mao, H., Yan, F., Ji, C. C.-J., Suresh, V., Stoica, I., and Gonzalez, J. E. (2025). The Berkeley Function Calling Leaderboard (BFCL): From Tool Use to Agentic Evaluation of Large Language Models.ICML, Proceedings of Machine Learning Research 267:48371–48392. Data used here: BFCL V1, tag v1.0, commit 9df5c346ee0556c8a7cb09fd7206a39aadd904c2. Original V1 release description.
- Yuvraj, P. (2026). BFCL V1 Jev Routing Pilot.250-case derived test set, source provenance, conversion code, and recorded predictions. Release fa299523f41ec165bb7557a85951734efae14b82.
- Convai Innovations. Laya typed-decisions.Model checkpoint 1a793eb568e6718f15941d08f85432581df534e3. The run used the matching typed-decisions weights from the pinned Laya bundle; weight identity is recorded in the report.
- Palmer, J. Kev-0.8B.Model checkpoint 9a45d25eb2ab761841196625383fa1dff0e56c1e. Qwen3.5-0.8B-Base backbone; evaluated through the native decision server.
- Bespoke Labs. Bespoke-Nimble-9B.Adapter revision bd792f44ec8e265be861bfcdf4e05967ffe0e858 with pinned Qwen3.5-9B base weights; native candidate scorer, BF16.
- Qwen Team. (2026). Qwen3.5: Towards Native Multimodal Agents. Qwen3.5-4B checkpoint.Frozen checkpoint 851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a, evaluated in BF16 using the SemIf readout [7].
- TheoLeeCJ. SemIf / SemIf-OpenJev.Direct option-logit scoring method. This reference identifies the scoring implementation; the evaluated model weights are Qwen3.5-4B [6].
- Rizzo AI Academy. Rizzo Flow.Revision 55633c8cbd2b826bd3eefdeb05310450996649df; Q8_0 GGUF weights, based on Spark-X2.5-4B.
- Panisa, V. H. Von.Revision 43bbca0fb17f424539416ee8eb3de33cfc3dacf3; Von 1.3 with decision chains disabled. Numerical precision was not recorded in the saved run metadata.
- C-Tianyu / TianyuCodings. NanoJev.Revision 047b927b30882a1138fc504821b82ac145a4b81a; unified-games-v1 checkpoint with a Qwen3-0.6B backbone, evaluated in BF16.
- Blobfish AI. Typed Decision Bench: BFCL Tool Dispatch.Related conversion of BFCL tool dispatch to a typed-decision task. This dataset is not used in the present experiment.
- mvbalaji. OD1-Base.Related open decision-model work and BFCL-derived evaluation. OD1 is not evaluated in this study.
- LangWatch. Jev vs open models up to 28B, benchmarked.Related decision-system comparison; its measurements are not combined with the results reported here.
Source model cards and project documentation accessed September 28, 2026. “Jev-style” denotes the decision interface in this report; TypeSafe’s Jev model is not evaluated.