A 35B agentic reasoning model from Bad Theory Labs, fine-tuned from
Ornith-1.0-35B on an execution-gated reasoning corpus.
Built for
tool use, software engineering and long-horizon agent work
.
Benchmarks
Benchmark
BTL-4
Base Ornith-1.0-35B
Harness
BFCL v4 (AST)
73.5%
69.2%
official
ast_checker
, all 1240 cases
LiveCodeBench v6
66.1%
—
official, 442 problems, 2024-08 → 2025-05
SWE-bench Verified
78.4%
—
official harness
BFCL and LiveCodeBench were run in-house
with the official scorers, full
splits, no subsetting. The BFCL number is a paired comparison: identical
harness, identical decoding, only the weights differ.
LiveCodeBench by difficulty
pass@1
easy
99.1%
medium
86.7%
hard
60.5%
The set is 45% hard problems, which is what pulls the aggregate down.
Usage
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "badtheorylabs/BTL-4"
tok = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, dtype="bfloat16",
device_map="auto")
messages = [{"role": "user", "content": "Refactor this function to be pure."}]
inputs = tok.apply_chat_template(messages, add_generation_prompt=True,
return_tensors="pt").to(model.device)
out = model.generate(inputs, max_new_tokens=2048)
print(tok.decode(out[0][inputs.shape[-1]:], skip_special_tokens=True))
Ornith's published settings, used for every number above:
temperature
1.0
top_p
0.95
context
262144 native
Give it room to think.
LiveCodeBench improved 60.9% → 66.1% purely by
raising the output budget from 16K to 32K. At 16K, 23.5% of problems were
truncated mid-solution and scored zero. Hard problems reason longer; cutting
them off costs real points.
What it is good at
Tool calling
— 73.5% BFCL v4 AST, +4.3 points over base
Competitive programming
— 99.1% easy / 86.7% medium on LiveCodeBench v6
Long context
— 262K native, and it uses it
What it is not
Not a chat model. It reasons before answering and is verbose by default.
Reasoning accumulates across agent turns.
The chat template strips prior
reasoning from older turns, but this only works if your harness separates it
into
reasoning_content
. With vLLM, that means
--reasoning-parser qwen3
.
Without it, thinking lands in
content
, accumulates every turn, and long
agent runs degrade.
Token-hungry on hard problems. Budget accordingly.
Training
Fine-tuned from Ornith-1.0-35B on an execution-gated reasoning corpus:
candidate trajectories were kept only where the resulting code actually ran and
passed its tests, so the reasoning that survived is reasoning that led
somewhere.
Citation
@misc{btl4-2026,
title = {BTL-4: An Execution-Gated Agentic Reasoning Model},
author = {Bad Theory Labs},
year = {2026},
url = {https://huggingface.co/badtheorylabs/BTL-4}
}
BTL-4 huggingface.co is an AI model on huggingface.co that provides BTL-4's model effect (), which can be used instantly with this badtheorylabs BTL-4 model. huggingface.co supports a free trial of the BTL-4 model, and also provides paid use of the BTL-4. Support call BTL-4 model through api, including Node.js, Python, http.
BTL-4 huggingface.co is an online trial and call api platform, which integrates BTL-4's modeling effects, including api services, and provides a free online trial of BTL-4, you can try BTL-4 online for free by clicking the link below.
badtheorylabs BTL-4 online free url in huggingface.co:
BTL-4 is an open source model from GitHub that offers a free installation service, and any user can find BTL-4 on GitHub to install. At the same time, huggingface.co provides the effect of BTL-4 install, users can directly use BTL-4 installed effect in huggingface.co for debugging and trial. It also supports api for free installation.