Instructions to use fesalfayed/gpt-oss-20b-hermes_agent-tool-finetune_16bit with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use fesalfayed/gpt-oss-20b-hermes_agent-tool-finetune_16bit with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="fesalfayed/gpt-oss-20b-hermes_agent-tool-finetune_16bit") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = 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") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps
- vLLM
How to use fesalfayed/gpt-oss-20b-hermes_agent-tool-finetune_16bit with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "fesalfayed/gpt-oss-20b-hermes_agent-tool-finetune_16bit" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "fesalfayed/gpt-oss-20b-hermes_agent-tool-finetune_16bit", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/fesalfayed/gpt-oss-20b-hermes_agent-tool-finetune_16bit
- SGLang
How to use fesalfayed/gpt-oss-20b-hermes_agent-tool-finetune_16bit with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "fesalfayed/gpt-oss-20b-hermes_agent-tool-finetune_16bit" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "fesalfayed/gpt-oss-20b-hermes_agent-tool-finetune_16bit", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "fesalfayed/gpt-oss-20b-hermes_agent-tool-finetune_16bit" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "fesalfayed/gpt-oss-20b-hermes_agent-tool-finetune_16bit", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use fesalfayed/gpt-oss-20b-hermes_agent-tool-finetune_16bit with Docker Model Runner:
docker model run hf.co/fesalfayed/gpt-oss-20b-hermes_agent-tool-finetune_16bit
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-20balready provides.
Other formats
- BF16 reference — full precision, vLLM / Transformers
- MXFP4 4-bit — fits a 16 GB GPU
- MLX — Apple Silicon native
- GGUF — llama.cpp / Ollama / LM Studio
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
Model tree for fesalfayed/gpt-oss-20b-hermes_agent-tool-finetune_16bit
Base model
openai/gpt-oss-20b