gpt-oss-20b · Hermes-Agent tool finetune · BF16

gpt-oss-20b · Hermes-Agent tool finetune · BF16

Reference checkpoint. Full BF16 weights, ready for vLLM, Transformers, or further quantization.

  • Format — Safetensors, BF16
  • Size on disk — ~41 GB
  • VRAM (inference) — ~42 GB
  • Recommended runtime — vLLM ≥ 0.6, Transformers ≥ 4.45

What this is

A tool-use finetune of OpenAI's gpt-oss-20b for Hermes-Agent, a local agent framework that needs models which call tools reliably, follow multi-turn instructions, and don't argue with system prompts.

The base model is the 21B-parameter (3.6B active) Mixture-of-Experts release from OpenAI. This finetune preserves the Harmony chat template and the reasoning-effort knob, and improves:

  • Function-calling adherence (correct JSON, no commentary mid-call)
  • Long agent loops (10+ turns of tool → observe → plan)
  • System-prompt fidelity (respects role boundaries and refusal/allow-list rules)

It is not affiliated with NousResearch's Hermes model series. "Hermes-Agent" here refers to the local agent framework only.

Quickstart

vLLM

pip install -U vllm
vllm serve fesalfayed/gpt-oss-20b-hermes_agent-tool-finetune_16bit \
  --max-model-len 8192 \
  --gpu-memory-utilization 0.92

OpenAI-compatible endpoint at http://127.0.0.1:8000/v1.

Transformers

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

tok = AutoTokenizer.from_pretrained("fesalfayed/gpt-oss-20b-hermes_agent-tool-finetune_16bit")
model = AutoModelForCausalLM.from_pretrained(
    "fesalfayed/gpt-oss-20b-hermes_agent-tool-finetune_16bit",
    torch_dtype=torch.bfloat16,
    device_map="auto",
)

msgs = [
    {"role": "system", "content": "You are a helpful agent. Reasoning: low"},
    {"role": "user", "content": "What is 17 * 23?"},
]
inputs = tok.apply_chat_template(msgs, return_tensors="pt", add_generation_prompt=True).to(model.device)
out = model.generate(inputs, max_new_tokens=256, do_sample=True, temperature=0.7, top_p=0.95)
print(tok.decode(out[0][inputs.shape[-1]:], skip_special_tokens=True))

Hermes-Agent integration

Add a profile in ~/.hermes/config.yaml:

profiles:
  gpt-oss-20b-tools:
    provider: openai
    base_url: http://127.0.0.1:1234/v1   # LM Studio / vLLM / mlx_lm.server
    model: fesalfayed/gpt-oss-20b-hermes_agent-tool-finetune_16bit
    temperature: 0.7
    top_p: 0.95
    min_p: 0.1                            # important for MoE stability
    max_tokens: 8192
    tool_choice: auto

Then hermes profile use gpt-oss-20b-tools and the agent loop will route tool calls through this model.

Sampling

Param Value Why
temperature 0.7 balanced; drop to 0.2 for strict tool calls
top_p 0.95 standard nucleus
min_p 0.1 required for MoE — prevents dead-expert tokens
repetition_penalty 1.0 the model handles repetition itself

Harmony reasoning effort: set the system message to Reasoning: low|medium|high. high is roughly 3-4x more output tokens but noticeably better on multi-step tool plans.

Training

  • Base: openai/gpt-oss-20b
  • Method: LoRA SFT (rank 64, alpha 16) merged back into BF16
  • Frame: Unsloth + TRL on a single H100 (80 GB)
  • Data: ~42k tool-use traces from Hermes-Agent sessions, filtered for successful tool calls and clean JSON. No synthetic distillation.
  • Length: 8192 tokens, packing on
  • Loss: assistant-only, mask user/system/tool

The _16bit repo holds the merged BF16 weights. The _4bit, _mlx, and _gguf repos are quantizations of that checkpoint.

Limitations

  • Math and code-generation are unchanged from the base — this finetune optimizes the agent loop, not raw reasoning.
  • The model can over-call tools when given vague instructions. Add a "if you can answer directly, do so" line to the system prompt.
  • English only. Other languages were not in the training mix.
  • Not safety-tuned beyond what gpt-oss-20b already provides.

Other formats

License

Apache-2.0, inherited from the base model. No additional restrictions.

Citation

@misc{fesalfayed_gptoss20b_hermesagent_2025,
  author = {Fayed, Fesal},
  title  = {gpt-oss-20b Hermes-Agent tool finetune (16bit)},
  year   = {2025},
  url    = {https://huggingface.co/fesalfayed/gpt-oss-20b-hermes_agent-tool-finetune_16bit},
}
Downloads last month
251
Safetensors
Model size
21B params
Tensor type
F16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for fesalfayed/gpt-oss-20b-hermes_agent-tool-finetune_16bit

Finetuned
(515)
this model

Collection including fesalfayed/gpt-oss-20b-hermes_agent-tool-finetune_16bit