A new study compares two ways language models call tools: native JSON-style tool calls and programmatic tool calling, where tools are exposed as typed Python stubs that a model invokes through code. The evaluation covers 14 models on BFCL v4 under real-world task conditions.

The question matters because code-capable models can naturally chain calls, branch, and parallelize work when tools are presented as code. JSON calls are more rigid and easier to validate, but they can make complex workflows awkward.

The paper is an evaluation rather than a product release. Its broader point is that tool interfaces shape agent capability; better models alone may not unlock reliable automation if the tool-calling format forces unnecessary friction.