NeoHorse README

The project's README from github.com/TokenRhythm/NeoHorse. As one markdown file: README.md.

NeoHorse

Towards Recursive Self-Improvement via Agentic Post-Training with Routing Harness.

GitHub Hugging Face ModelScope Company Twitter / X License: Apache-2.0
NeoHorse-Jev · NeoHorse-1

NeoHorse is TokenRhythm's family of open-weight models for agent workflows. NeoHorse-1 provides 4B and 9B language models for tool use, coding, and instruction following. NeoHorse-Jev builds on NeoHorse-1-4B to make structured decisions through prefill-only inference.

News

Introduction

NeoHorse-Jev

GitHub Hugging Face ModelScope
Deployment

NeoHorse-Jev-4B turns application state into decisions and probabilities. Built on NeoHorse-1-4B, it uses prefill-only inference to select an action with Choice, check a condition with Noul, or assign a rating with Score. Applications define the questions and possible answers, then use the results to route requests, select tools, or control a workflow.

In our evaluation, it scores 77.70 across six text benchmark groups, the highest among the four open-weight decision models with complete results in the comparison. Across Nimble, VitaminC, and MASSIVE, it reaches 83.26% mean accuracy, 11.50 percentage points above NeoHorse-1-4B. See the full comparison and evaluation protocols.

Text Decision Benchmarks

Model JevBench Kev OpenJev text Nimble VitaminC MASSIVE AVG
Open-Jev-9B 77.13 77.87 65.39 80.50 68.28 84.86 75.67
Kev-4B 73.71 81.47 54.75 73.40 76.46 85.71 74.25
Laya English 55.82 61.30 40.07 45.04 78.63 68.57 58.24
Laya Typed Decisions -- -- -- 48.94 78.30 65.43 --
NeoHorse-1-4B -- -- -- 69.15 63.27 82.86 --
NeoHorse-Jev-4B 75.73 81.92 58.74 87.23 77.13 85.43 77.70

Scores are on a 0–100 scale; higher is better. Bold scores mark the best result and underlined scores the second-best among the listed entries. AVG is the equal-weight mean of the six benchmark groups. -- indicates unavailable results; only models with all six groups are ranked by AVG.

NeoHorse-Jev decision demos

Tetris, Snake, robot manipulation, Mahjong, four-player bomb arena, and autonomous driving — left to right, top to bottom.

NeoHorse-1

GitHub Hugging Face ModelScope
Technical Report

NeoHorse-1 is a family of causal language models and an initial prototype on the path toward recursive self-improvement (RSI). The 4B and 9B checkpoints are post-trained from Qwen3.5 for text-based agent harnesses, tool use, coding, and instruction following.

The routing harness assigns tasks to a heterogeneous model pool, records tool interactions and outcomes, estimates capability demand, and feeds capability-level feedback into the next training mixture. Updated models can return to the harness, forming a prototype evaluation–selection–update loop; extending this loop across successive iterations is the next step toward RSI.

NeoHorse-1-4B evaluation results

NeoHorse-1-9B evaluation results

Highlights

Model Downloads

Checkpoint Parameters Hugging Face ModelScope Base model
NeoHorse-Jev-4B ~4B NeoHorse-Jev-4B NeoHorse-Jev-4B NeoHorse-1-4B
NeoHorse-1-4B ~4B NeoHorse-1-4B NeoHorse-1-4B Qwen3.5-4B
NeoHorse-1-9B ~9B NeoHorse-1-9B NeoHorse-1-9B Qwen3.5-9B

NeoHorse-1 checkpoints use a text input/text output interface. NeoHorse-Jev returns structured decisions and probabilities; download its complete model bundle and use the matching runtime or backend adapter. Each model card contains evaluation results and deployment instructions for that model.

Model Details

The specifications below cover NeoHorse-1-4B and NeoHorse-1-9B. Details for the decision model are in the NeoHorse-Jev documentation.

PropertyNeoHorse-1-4BNeoHorse-1-9B
Model familyNeoHorse Agent-Native Causal Language ModelNeoHorse Agent-Native Causal Language Model
ParametersApproximately 4BApproximately 9B
Post-trainingRouting-guided agentic post-trainingRouting-guided agentic post-training
InterfaceText input and text outputText input and text output
Context length262,144 natively; base capability extensible up to 1,010,000 tokens262,144 natively; base capability extensible up to 1,010,000 tokens
Weight format / precisionSafetensors / BF16Safetensors / BF16

Evaluation

The tables report NeoHorse-1 results under the ten-benchmark protocol from the technical report. Results are grouped by capability. Higher is better; Δ is NeoHorse minus the same-size Qwen baseline. Bold marks the best result in each benchmark row; ties share the same formatting. For structured decision benchmarks, see the NeoHorse-Jev evaluation.

4B track

The 4B comparison includes five representative open-weight baselines. Underline marks the second-best result in each benchmark row.

BenchmarkQwen3.5-4BGemma-4-E4B-itNanbeige-4.2-3BAgents-A1-4BSpark-X2.5-4BNeoHorse-1-4BΔ vs Qwen3.5-4B
🤖 Agentic
QwenClawBench38.4722.9840.6643.1643.5244.68+6.21
WorkBuddy Bench24.6211.6521.0333.3726.4734.41+9.79
PinchBench71.1947.6066.7875.0762.3777.33+6.14
VitaBench21.505.0031.5039.2537.0032.00+10.50
BFCL v461.0247.1867.2846.6063.7161.79+0.77
tau2-Bench84.2943.6085.0881.0077.7288.46+4.17
💻 Coding
HumanEval87.2084.7698.7892.6892.0796.95+9.75
LiveCodeBench v653.7152.0072.50*56.5754.8659.43+5.72
📚 Instruction Following
IFBench60.3340.0055.0063.3373.3365.33+5.00
IFEval87.0674.6884.4783.5591.1388.35+1.29
📊 Overall
Ten-benchmark average58.9442.9562.3161.4662.2264.87+5.93

9B track

The 9B comparison includes five representative open-weight baselines from the technical report. Underline marks the second-best result in each benchmark row.

Benchmark Granite-4.2-8B Qwen3.5-9B Ornith-1.5-9B Gemma-4-12B-it Muse-Glimmer-30B NeoHorse-1-9B Δ vs Qwen3.5-9B
🤖 Agentic
QwenClawBench37.0144.0447.2743.5346.1148.73+4.69
WorkBuddy Bench35.0739.6029.2929.6545.8540.15+0.55
PinchBench56.9374.5568.2258.8971.3582.25+7.70
VitaBench23.0031.2526.7536.5048.5042.25+11.00
BFCL v452.0664.8865.0362.0653.7467.43+2.55
tau2-Bench62.2888.0483.6859.3776.6490.82+2.78
💻 Coding
HumanEval96.3492.6893.90100.0098.1798.17+5.49
LiveCodeBench v672.0065.1447.4373.1465.7165.14+0.00
📚 Instruction Following
IFBench78.0066.3340.0077.6778.6766.33+0.00
IFEval92.9889.4671.3594.2793.9089.09-0.37
📊 Overall
Ten-benchmark average60.5765.6057.2963.5167.8669.04+3.44

* Nanbeige-4.2-3B LiveCodeBench v6 result is reported from its official blog post or technical report.

Reported protocol: SGLang v0.5.17 · temperature=1.0 · top_p=0.95 · top_k=20 · min_p=0.0 · presence_penalty=1.5 · repetition_penalty=1.0 · thinking mode enabled with enable_thinking=true and force_nonempty_content=true. QwenClawBench, WorkBuddy Bench, and tau2-Bench use three runs; PinchBench and VitaBench use one run; the remaining benchmarks follow their official protocols. VitaBench uses the DeepSeek-V4-Flash simulator and judge.

Deployment

For NeoHorse-Jev-4B, follow its deployment guide for vLLM, SGLang, or the native Python runtime, including Choice, Noul, and Score examples.

The examples below serve NeoHorse-1-4B or NeoHorse-1-9B downloaded to local disk. Set MODEL_PATH to the directory containing config.json, tokenizer files, and weights. The request model value is the served alias (neohorse-1-4B or neohorse-1-9B), not the filesystem path.

SGLang

pip install "sglang==0.5.17"
MODEL_PATH="/path/to/NeoHorse-1-4B"  # or /path/to/NeoHorse-1-9B
python3 -m sglang.launch_server \
  --model-path "$MODEL_PATH" \
  --served-model-name neohorse-1-4B \
  --host 0.0.0.0 --port 30000 \
  --context-length 262144 \
  --reasoning-parser qwen3 \
  --tool-call-parser qwen3_coder

vLLM

pip install -U vllm
MODEL_PATH="/path/to/NeoHorse-1-4B"  # or /path/to/NeoHorse-1-9B
vllm serve "$MODEL_PATH" \
  --served-model-name neohorse-1-4B \
  --host 0.0.0.0 --port 8000 \
  --max-model-len 262144 \
  --reasoning-parser qwen3 \
  --enable-auto-tool-choice \
  --tool-call-parser qwen3_coder

The 262,144-token setting is a configured limit; actual capacity depends on GPU memory and serving settings. Reduce it if needed.

The examples below target vLLM at http://127.0.0.1:8000. For SGLang, use http://127.0.0.1:30000. For the 9B checkpoint, use --model neohorse-1-9B and launch the server with --served-model-name neohorse-1-9B.

Send a Request

Install the client dependency:

pip install requests

Run the provided chat example from the repository root:

python examples/chat.py \
  --url http://127.0.0.1:8000 \
  --model neohorse-1-4B

This example sends a predefined prompt to the deployed model and prints the generated response.

Alternatively, send an OpenAI-compatible request directly:

curl http://127.0.0.1:8000/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{"model":"neohorse-1-4B","messages":[{"role":"user","content":"Write a Python function that returns the first n Fibonacci numbers."}],"max_tokens":512}'

Tool Calling

Run the provided tool-calling example from the repository root:

python examples/tool_call.py \
  --url http://127.0.0.1:8000 \
  --model neohorse-1-4B

This example sends a predefined weather query and prints the tool call generated by the model.

License

NeoHorse-1 is released under the Apache License 2.0. The upstream models are Qwen3.5-4B and Qwen3.5-9B.

NeoHorse-Jev-4B is also released under Apache License 2.0. Its inference package includes components adapted from Kev; see the NeoHorse-Jev license and acknowledgments for attribution and bundled third-party notices.

Citation

@misc{neohorse2026,
  title        = {NeoHorse-1: Towards Recursive Self-Improvement via Agentic Post-Training with Routing Harness},
  author       = {NeoHorse Team},
  year         = {2026},
  howpublished = {arXiv preprint},
  eprint       = {2609.08183},
  archivePrefix = {arXiv},
  primaryClass = {cs.CL},
  url          = {https://arxiv.org/abs/2609.08183}
}

NeoHorse (TokenRhythm/NeoHorse)

Searching Database…

这是什么?NeoHorse 是 TokenRhythm 面向智能体工作流打造的开源权重语言模型系列:4B 和 9B 的 NeoHorse-1 检查点负责工具使用、编码和指令遵循,另有一个名为 NeoHorse-Jev 的配套决策模型。
NeoHorse 是单一模型,还是一系列不同检查点?它是一个系列:NeoHorse-1 基于 Qwen3.5 后训练而来,有 4B 和 9B 两种规格;NeoHorse-Jev-4B 则是构建在 NeoHorse-1-4B 之上的独立决策模型,用于结构化路由决策。
怎么部署和调用这些模型?从 Hugging Face 或 ModelScope 下载检查点,把 MODELPATH 指向包含 config.json、tokenizer 文件和权重的文件夹,然后用 vLLM 或 SGLang 以其别名(例如 neohorse-1-4B)启动服务;NeoHorse-Jev 也可以通过其原生 Python 运行时运行。
它需要哪些推理后端?这些模型通过 vLLM 或 SGLang(兼容 OpenAI 的端点)提供服务,NeoHorse-Jev 也可以通过其原生 Python 运行时运行;运行它们需要 GPU 显存。
完整的 1M token 上下文开箱即用吗?不是。模型原生支持 262,144 个 token,最多可扩展到 1,010,000,但实际可用的上下文取决于你的 GPU 显存和服务配置,可能需要调低。
NeoHorse-Jev 是什么?NeoHorse-Jev-4B 是构建在 NeoHorse-1-4B 之上的决策模型,使用仅预填充(prefill-only)推理来选择动作(Choice)、检查条件(Noul)或给出评分(Score),让应用能够路由请求或选择工具。
路由框架实际做什么?它把任务分配给一组模型,记录工具交互及其结果,估算能力需求,并把反馈注入下一轮训练配比,形成一个以递归自我改进为目标的“评估—选择—更新”循环。
为什么要同时发布 4B 和 9B 两种规格?4B 检查点面向更轻量的本地部署,而 9B 检查点在同样以文本为先的服务接口上提供更高的能力。
有哪些量化版或对 Apple 友好的版本?除完整的 BF16 Safetensors 权重外,还发布了 GGUF 版本(BF16 以及 8-bit、5-bit、4-bit 量化)和面向 Apple Silicon 的 MLX 版本。
Size
25.3 MB
Stars
1.7K
Updated
CommitSep 26
Age
1mo
Commits · 90 Days