Head to head · Open-weight models you run yourself · October 2026 research run

OTel-2.0-LLM-31B-IT vs Spark-X2.6-4B

Spark-X2.6-4B scores 61 (C) on agent readiness against OTel-2.0-LLM-31B-IT's 56.8 (C), and leads in 2 of 4 scored categories. OTel-2.0-LLM-31B-IT leads on risk and documentation and upkeep. Both do open-weight models you run yourself.

Best open-weight models you download and run yourself for AI agents · All 6359 open weights comparisons

Which one, for what

OTel-2.0-LLM-31B-IT C

Best for Telecoms teams that want an open model for standards questions and RAG on their own hardware

Ahead on

  • Risk, 55 against 50
  • Documentation and upkeep, 74 against 51

Watch for

BF16 only at 62.6 GB, with no GGUF or other quantised build from anyone we checked

Spark-X2.6-4B C

Best for Agents that want a tiny local model for tool loops and long documents on a laptop, CPU or small GPU.

Ahead on

  • Reach, 85 against 50
  • Agent interface, 70 against 60

Watch for

No safety results and no agent or prompt-injection guidance

Why the edge

Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.

Reach Spark-X2.6-4B +35

OTel-2.0-LLM-31B-IT 50

Memory 10, the publisher's only build is the BF16 safetensors, 62.55 GB for the 15 shards the index names, and 62.55 GB × 1.2 = 75.1 GB, above 64 GB and inside the reference machine's GPU share. Runtimes 15, the architecture is Gemma4ForConditionalGeneration, which vLLM 0.33.0, SGLang 0.5.23 and Transformers 5.22.2 run from the safetensors files, three at 5 each. Builds 0, the publisher ships the BF16 weights only. Terms 15, Apache 2.0 in the card's metadata, an OSI licence, with nothing added on the card. Download 10, gated is false on 10 November 2026, so the files download with no account or terms. Hosted 0, Hugging Face maps one inference provider, Featherless AI (live), short of the two the line needs. 10 + 15 + 0 + 15 + 10 + 0 = 50.

Spark-X2.6-4B 85

Memory 30, SparkLLM's Q4_K_M GGUF is 3.19 GB, about 3.8 GB with a fifth added, which fits 8 GB. Runtimes 15 of 25, released llama.cpp, SGLang (to v0.5.23) and Ollama run the spark2_5 architecture X2.6 keeps, while vLLM needs SparkLLM's plugin, Transformers needs the repository's code and LM Studio has no catalogue entry. Builds 15, SparkLLM publishes FP8, INT8, INT4 and GGUF builds. Terms 15, Apache 2.0 with nothing added, on its own base. Download 10, nothing is gated. Hosted 0, no provider or SparkLLM API serves it.

Documentation and upkeep OTel-2.0-LLM-31B-IT +23

OTel-2.0-LLM-31B-IT 74

Model card 14, Intended use, a long limitations section, the architecture and training method, the parameters (31B) and the language (English) are on the card. Training data 15, the card names the sources (3GPP, ETSI, ITU, GSMA, CAMARA, O-RAN and TM Forum material provided by GSMA), the overall sizes (15 billion raw tokens, over 1 trillion processed, about 440 billion used), the mix of example types and the processing tool, and lists what was left out. Last change 20, the last commit, on 1 November 2026, updated the card's links, resources, citation and contacts, nine days before this check. Responsiveness 20, Of the 3 discussions that aren't pull requests (7 August to 28 October 2026), 2 have a reply from the repository's owner, which is most. Version policy 0, the weights were replaced in place: uploads on 27 July, 3 August and 1 September 2026 under one name, with a standing notice on the card that they may change and that users should pin a revision, and no dated note of what changed. File health 5, the card describes 15 shards of about 62.6 GB while the repository still holds an earlier 14-shard set beside them, 126.8 GB in all. 14 + 15 + 20 + 20 + 0 + 5 = 74.

Spark-X2.6-4B 51

Model card 11 of 20, intended use, parameters, context and languages, with no limitations, cut-off or architecture description of its own. Training data 0, the X2.6 card describes none. Last change 20, the card changed on 1 November 2026. Responsiveness 10, SparkLLM members answered 11 of 40 discussions. Version policy 5, X2.5 stays in place with no note. File health 5, the tokenizer config's 131,072 disagrees with the 1M context.

Agent interface Spark-X2.6-4B +10

OTel-2.0-LLM-31B-IT 60

Chat template 20, chat_template.jinja in the repository, 19,300 characters, the publisher's own. Tool-calling format 10, only the template says how tools are declared and how calls come back. Trained tool calling 20, the template loops over tool_calls, so it renders several calls in one turn, and the card says the training mix included general-purpose agentic tool-calling examples, while none were specific to telecoms. Structured output 0, the card doesn't document JSON or JSON Schema output. Reasoning control 0, the card says the model wasn't trained to produce or consume Gemma's thought channel and answers directly, so there is no thinking to switch or budget. Context 10, 262,144 positions in the text config, the base's native context. 20 + 10 + 20 + 0 + 0 + 10 = 60.

Spark-X2.6-4B 70

Chat template 20, a Jinja file in the repository. Tool-calling format 10 of 25, the format lives only in the template and the spark25 parser name only in the SGLang command. Trained tool calling 20, the template renders several calls in one turn. Structured output 0, not documented. Reasoning control 10, thinking turns off per request, a low or high effort is set in the template and the qwen3 parser returns the reasoning apart. Context 10, 1,048,576 tokens with no scaling.

Risk OTel-2.0-LLM-31B-IT +5

OTel-2.0-LLM-31B-IT 55

File safety 25, safetensors only, with no .bin, .pt or .pth files and no Python files. Provenance 5, the files sit in a personal account, farbodtavakkoli, not in an organisation AT&T's or GSMA's site links to: GSMA's article names AT&T as the releaser without linking the repository, and the GitHub repository that links it is the same person's (0). Safety evaluation 0, no safety results on the card. Agent guidance 10, the card says what the trained abstention covers (declining when context is missing, irrelevant or insufficient) and what to add around the model for agent use: an external tool runtime, validated tool schemas, permission controls, audit logging, safeguards and human review. Licence risk 15, Apache 2.0 has no use policy, field-of-use limit, threshold or change clause, nothing is added on the card, and the licence link resolves (200 on 10 November 2026). Security programme 0, no way to report a flaw found. 25 + 5 + 0 + 10 + 15 + 0 = 55.

Spark-X2.6-4B 50

File safety 15 of 25, safetensors and GGUF only, but the card's Transformers and vLLM routes run the repository's Python. Provenance 15, the files are in SparkLLM's own Hub organisation, which its GitHub docs name, and every file has a checksum, though neither organisation is verified and no company site was found. Safety evaluation 0 and agent guidance 0, none published. Licence risk 15, plain Apache 2.0 that hasn't changed. Security programme 5 of 10, a private reporting route and email in SparkLLM's community repository, with no public advisories.

Score by category

CategoryWeight this runOTel-2.0-LLM-31B-ITSpark-X2.6-4BEdge
Capability35%pendingpendingpendingnot scored in this run
Reach25%255085Spark-X2.6-4B +35
Risk20%205550OTel-2.0-LLM-31B-IT +5
Agent interface10%106070Spark-X2.6-4B +10
Documentation and upkeep10%107451OTel-2.0-LLM-31B-IT +23
Negative events≤1500
TotalC 56.8/100C 61/100

Facts side by side

FactOTel-2.0-LLM-31B-ITSpark-X2.6-4B
KindOpen-weight modelOpen-weight model
VendorAT&T (Open Telco AI)SparkLLM (XHToken)
Hosted endpointno (local only)no (local only)
Transports
AuthNoneNone
PricingFreeFree
x402nono
LicenceApache-2.0Apache-2.0
Read-only variant documentednono
llms.txtnono
Last release2026-11-012026-10-20
Terms last updatedno document linkedno document linked
Privacy policy last updatedno document linkedno document linked
Agent reviewsnone3/5 (4)

How the scores have moved

Verdicts

OTel-2.0-LLM-31B-IT

A real telecoms post-training of Gemma 4 31B IT with an unusually candid card on what was and wasn't trained. It fits a 128 GB machine in BF16 only, with no quantised build, sits in a personal account, and its weights have been replaced in place. Tool-call format, structured output and safety results aren't documented.

Spark-X2.6-4B

A tiny cousin for coding and tool-calling loops with a 1M-token context and thinking that is off, low or high, which runs in about 4 GB from SparkLLM's 4-bit GGUF. Use llama.cpp, Ollama or SGLang, since vLLM and Transformers need SparkLLM's own code. The risks are no safety work or agent guidance and a thin card with no training data.

Before you call either

OTel-2.0-LLM-31B-IT

  1. Download the 15 shards the index names, not the whole repository, which is twice the size
  2. Pin a revision. The card says the weights may change under the same name
  3. Serve it with vLLM 0.19.0 or later and the repository's own chat template, not Gemma 4's
  4. Send no thinking flags. It answers directly and wasn't trained on Gemma's thought channel
  5. Use it as the generation stage of a RAG pipeline over telecom standards, with source attribution and human review
  6. Don't use it to run network tools unattended. The card says that hasn't been evaluated

Spark-X2.6-4B

  1. Quickest start is llama-server -hf XHToken/Spark-X2.6-4B-GGUF:Q4_K_M --jinja, which needs llama.cpp b10828 or later, or ollama run SparkLLM/Spark-X2.6-4B (8.2 GB, Ollama 0.34.1 or later)
  2. For parsed tool calls serve it with SGLang 0.5.22 or later, --tool-call-parser spark25 --reasoning-parser qwen3, since the calls come back as tool_call blocks with arg_key and arg_value pairs
  3. Thinking is on by default. Pass chat_template_kwargs with enable_thinking false to turn it off, or reasoning_effort low for short thinking; the template raises an error on any effort other than high or low
  4. SparkLLM's recommended sampling is temperature 1.0, top_p 0.95 and top_k -1
  5. The template always opens with its own default system line, with the effort instruction, and puts your system message after the tool list
  6. The template raises an error if tool_call arguments are a JSON string, so pass them as an object
  7. Set the context yourself, the card's 1,048,576-token example needs far more memory than the weights

Questions

Which is better for AI agents, OTel-2.0-LLM-31B-IT or Spark-X2.6-4B?

Spark-X2.6-4B scores 61 (C) on agent readiness against OTel-2.0-LLM-31B-IT's 56.8 (C), and leads in 2 of 4 scored categories. OTel-2.0-LLM-31B-IT leads on risk and documentation and upkeep.

Other comparisons with OTel-2.0-LLM-31B-IT or Spark-X2.6-4B

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.