Skip to article
Pritish YuvrajResearch notes
Jev-style evaluationsResearch report 01 · September 28, 2026

Tool Selection with
Jev-Style Decision Models

A BFCL V1 pilot study toward efficient on-device personal assistants

7decision systems
250shared evaluation cases
1routing step per case

Experimental scopeFirst-step function selection.
Short inputs · exploratory timing.

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.

01 · Input

Decision context

Request, history,
observations, tool catalog

02 · Selection

Decision model

Score available actions;
select a tool or abstain

Evaluated component
03 · Completion

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.

â = arg maxa ∈ A sθ(a | x, A)

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].

Evaluation composition · n = 250
Multiple tools150 cases · a function is required
One tool50 cases · the function is required
No call50 cases · no function fits

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:

Selection accuracy = (correct function selections + correct non-tool selections) / 250

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].

Figure 01

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.

Complete results · all 250 cases
SystemSelectionTool requiredNo callMedianPrecision
Laya typed-decisions96.0%240/250197/20043/5017.0 msFP16
Kev-0.8B96.4%241/250192/20049/5073.8 msFP32
Bespoke Nimble 9B99.2%248/250200/20048/5060.3 msBF16
Qwen3.5-4B + SemIf99.2%248/250198/20050/5056.0 msBF16
Rizzo Flow 4B Q8_095.6%239/250189/20050/5038.3 msQ8_0
Von 1.3 (chains off)91.2%228/250179/20049/5013.0 msNot recorded in saved run metadata
NanoJev unified-games-v135.2%88/25038/20050/5027.4 msBF16
01

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.

02

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.

03

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.

Figure 02 · exploratory timing

Observed decision latency and selection accuracy

Heterogeneous runtimes · one recorded decision per case

Routing accuracy against recorded median wall latencyHigher and farther left is better on this selected subset. All latency measurements are exploratory. Choose a model below for exact values.0%25%50%75%100%0255075100SELECTION ACCURACY ↑RECORDED WALL LATENCY (MS) →Laya typed-decisions: 96.0%, 17.0 msLayaKev-0.8B: 96.4%, 73.8 msKevBespoke Nimble 9B: 99.2%, 60.3 msNimbleQwen3.5-4B + SemIf: 99.2%, 56.0 msQwen · SemIfRizzo Flow 4B Q8_0: 95.6%, 38.3 msRizzoVon 1.3 (chains off): 91.2%, 13.0 msVonNanoJev unified-games-v1: 35.2%, 27.4 msNanoJev
Laya typed-decisions96.0% selection accuracy17.0 ms median wall timeFP16

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.

Future system-level measurement

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.

Per-case predictions250 public cases · 1,750 predictions
250 matching cases
USER REQUEST 3 function options

What is the wind speed and temperature in location given by coordinates 46.603354,1.8883340 on December 13, 2019?

Referenceweather.get_by_coordinates_date
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.
LAYA’S DECISION Incorrect

weather.get_forecast_by_coordinates

Recorded wall time · 23.3 ms

weather.get_forecast_by_coordinates49.7%
weather.get_by_coordinates_date20.5%
no_tool10.3%
weather.get_by_city_date8.1%
clarify7.8%
cannot_answer3.7%

Saved option probabilities. They are not a calibrated guarantee of correctness.

On this same case

The displayed records contain public benchmark cases and model predictions. No private assistant conversations are included.

Scope of the evidence

01

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.

02

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.

03

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.

04

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.

05

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.

01 / Context scaling

Long histories and larger catalogs

Vary input length and tool count independently, including distractors and evidence at different positions. Report accuracy, latency, memory, and truncation behavior.

02 / Decision trajectories

Selection after observations

Evaluate continuation, abstention, recovery, and stopping on held-out assistant scenarios. Calibrate any fallback policy on separate development data.

03 / On-device evaluation

Controlled complete-task comparison

Keep the chat model, tools, and permission policy fixed. Compare chat-only routing with a decision-model stage on the same hardware and tasks.

Research artifacts

Dataset, predictions, and conversion code

The release preserves source references and exact checkpoint identifiers, allowing the reported aggregates to be independently inspected.

Dataset and artifacts

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.

  1. 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.
  2. Yuvraj, P. (2026). BFCL V1 Jev Routing Pilot.250-case derived test set, source provenance, conversion code, and recorded predictions. Release fa299523f41ec165bb7557a85951734efae14b82.
  3. 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.
  4. Palmer, J. Kev-0.8B.Model checkpoint 9a45d25eb2ab761841196625383fa1dff0e56c1e. Qwen3.5-0.8B-Base backbone; evaluated through the native decision server.
  5. Bespoke Labs. Bespoke-Nimble-9B.Adapter revision bd792f44ec8e265be861bfcdf4e05967ffe0e858 with pinned Qwen3.5-9B base weights; native candidate scorer, BF16.
  6. Qwen Team. (2026). Qwen3.5: Towards Native Multimodal Agents. Qwen3.5-4B checkpoint.Frozen checkpoint 851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a, evaluated in BF16 using the SemIf readout [7].
  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].
  8. Rizzo AI Academy. Rizzo Flow.Revision 55633c8cbd2b826bd3eefdeb05310450996649df; Q8_0 GGUF weights, based on Spark-X2.5-4B.
  9. Panisa, V. H. Von.Revision 43bbca0fb17f424539416ee8eb3de33cfc3dacf3; Von 1.3 with decision chains disabled. Numerical precision was not recorded in the saved run metadata.
  10. C-Tianyu / TianyuCodings. NanoJev.Revision 047b927b30882a1138fc504821b82ac145a4b81a; unified-games-v1 checkpoint with a Qwen3-0.6B backbone, evaluated in BF16.
  11. 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.
  12. mvbalaji. OD1-Base.Related open decision-model work and BFCL-derived evaluation. OD1 is not evaluated in this study.
  13. 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.