Text Generation
Transformers
Safetensors
qwen3
agents
terminal
code
software-engineering
conversational
text-generation-inference
Instructions to use open-thoughts/OpenThinker-Agent-v1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use open-thoughts/OpenThinker-Agent-v1 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="open-thoughts/OpenThinker-Agent-v1") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("open-thoughts/OpenThinker-Agent-v1") model = AutoModelForCausalLM.from_pretrained("open-thoughts/OpenThinker-Agent-v1") 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]:])) - Inference
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use open-thoughts/OpenThinker-Agent-v1 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "open-thoughts/OpenThinker-Agent-v1" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "open-thoughts/OpenThinker-Agent-v1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/open-thoughts/OpenThinker-Agent-v1
- SGLang
How to use open-thoughts/OpenThinker-Agent-v1 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 "open-thoughts/OpenThinker-Agent-v1" \ --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": "open-thoughts/OpenThinker-Agent-v1", "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 "open-thoughts/OpenThinker-Agent-v1" \ --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": "open-thoughts/OpenThinker-Agent-v1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use open-thoughts/OpenThinker-Agent-v1 with Docker Model Runner:
docker model run hf.co/open-thoughts/OpenThinker-Agent-v1
| base_model: | |
| - Qwen/Qwen3-8B | |
| datasets: | |
| - OpenThoughts-Agent-v1-SFT | |
| - OpenThoughts-Agent-v1-RL | |
| library_name: transformers | |
| license: apache-2.0 | |
| pipeline_tag: text-generation | |
| tags: | |
| - agents | |
| - terminal | |
| - code | |
| - software-engineering | |
| model-index: | |
| - name: OpenThinker-Agent-v1 | |
| results: [] | |
| <p align="center"> | |
| <img src="https://huggingface.co/datasets/open-thoughts/OpenThoughts1-Agent-SFT/resolve/main/ota-logo.png" width="50%"> | |
| </p> | |
| <p align="center"> | |
| <a href="https://huggingface.co/papers/2606.24855" style="margin-right: 24px;">Paper</a> | | |
| <a href="https://www.openthoughts.ai/blog/agent" style="margin-right: 24px; margin-left: 24px;">Project</a> | | |
| <a href="https://huggingface.co/datasets/open-thoughts/OpenThoughts-Agent-v1-SFT" style="margin-right: 24px; margin-left: 24px;">SFT dataset</a> | | |
| <a href="https://huggingface.co/datasets/open-thoughts/OpenThoughts-Agent-v1-RL" style="margin-right: 24px; margin-left: 24px;">RL dataset</a> | | |
| <a href="https://huggingface.co/open-thoughts/OpenThinker-Agent-v1-SFT" style="margin-right: 24px; margin-left: 24px;">SFT model</a> | | |
| <a href="https://huggingface.co/open-thoughts/OpenThinker-Agent-v1" style="margin-left: 24px;">RL model</a> | |
| </p> | |
| # OpenThinker-Agent-v1 | |
| **OpenThoughts-Agent** is an open-source effort to curate the best datasets for training agents. Our first release includes [datasets](https://huggingface.co/collections/open-thoughts/openthinker-agent), [models](https://huggingface.co/collections/open-thoughts/openthinker-agent) and our [research codebase](https://github.com/open-thoughts/OpenThoughts-Agent). For more details, please see our paper: [OpenThoughts-Agent: Data Recipes for Agentic Models](https://huggingface.co/papers/2606.24855). | |
| [OpenThinker-Agent-v1](https://huggingface.co/open-thoughts/OpenThinker-Agent-v1) is a model trained for agentic tasks such as **Terminal-Bench 2.0** and **SWE-Bench**. | |
| The [OpenThinker-Agent-v1](https://huggingface.co/open-thoughts/OpenThinker-Agent-v1) model is post-trained from [Qwen/Qwen3-8B](https://huggingface.co/Qwen/Qwen3-8B). | |
| It is SFT-ed on the [OpenThoughts-Agent-v1-SFT](https://huggingface.co/datasets/open-thoughts/OpenThoughts-Agent-v1-SFT) dataset, then RL-ed on the [OpenThoughts-Agent-v1-RL](https://huggingface.co/datasets/open-thoughts/OpenThoughts-Agent-v1-RL) dataset. | |
| This model is the final model after both SFT and RL. For the model after the SFT stage only, see [OpenThinker-Agent-v1-SFT](https://huggingface.co/open-thoughts/OpenThinker-Agent-v1-SFT). | |
| - **Paper:** https://huggingface.co/papers/2606.24855 | |
| - **Homepage:** https://www.openthoughts.ai/blog/agent | |
| - **Repository:** https://github.com/open-thoughts/OpenThoughts-Agent | |
| # OpenThinker-Agent-v1 Model Performance | |
| Our [OpenThinker-Agent-v1](https://huggingface.co/datasets/open-thoughts/OpenThoughts-Agent-v1-RL) model is the state-of-the-art model at its scale on agent benchmarks. | |
| | Model | Harness | Terminal-Bench 2.0 | SWE-Bench Verified | OpenThoughts-TB-Dev | | |
| | ----------------------------------------------------------------------------------------------- | ------- | ------------------ | --------- | ------------------- | | |
| | [Qwen3-8B](https://huggingface.co/Qwen/Qwen3-8B) | Terminus-2 | 0.0 | 0.7 | 5.7 | | |
| | **[OpenThinker-Agent-v1](https://huggingface.co/open-thoughts/OpenThinker-Agent-v1)** | Terminus-2 | 4.9 | 15.7 | 17.3 | | |
| | [Qwen3-32B](https://huggingface.co/Qwen/Qwen3-32B) | Terminus-2 | 1.9 | 5.7 | 10.2 | | |
| | [Qwen/Qwen3-Coder-30B-A3B-Instruct](https://huggingface.co/Qwen/Qwen3-Coder-30B-A3B-Instruct) | OpenHands | 10.1 | 49.2 | 24.5 | | |
| # Data | |
| We built [OpenThinker-Agent-v1](https://huggingface.co/open-thoughts/OpenThinker-Agent-v1) in two stages: **supervised fine-tuning**, followed by **reinforcement learning**. | |
| Each stage required its own data pipeline β RL tasks (instructions, environments, and verifiers) and SFT traces from strong teacher agents completing tasks. | |
| [OpenThoughts-Agent-v1-SFT](https://huggingface.co/datasets/open-thoughts/OpenThoughts-Agent-v1-SFT) is an SFT trace dataset containing approximately **15,200 traces** drawn from two different data sources we curate: | |
| - **nl2bash**: Simple synthetically generated tasks where the agent has to format shell commands effectively | |
| - **InferredBugs**: A set of bugs in C# and Java collected by Microsoft that we turned into tasks | |
| [OpenThoughts-Agent-v1-RL](https://huggingface.co/datasets/open-thoughts/OpenThoughts-Agent-v1-RL) is an RL dataset containing ~720 tasks drawn from the **nl2bash verified** dataset. | |
| To stabilize training, we built a three-stage filtration pipeline that prunes tasks before they ever hit the learner: | |
| 1. Bad verifiers filter: drop tasks with flaky or excessively slow verifiers. | |
| 2. Environment stability: remove tasks whose containers take too long to build or tear down. | |
| Optional difficulty filter: discard tasks that even a strong model (GPT-5 Codex) cannot solve in a single pass. | |
| # Links | |
| - π [OpenThoughts-Agent Paper](https://huggingface.co/papers/2606.24855) | |
| - π [OpenThoughts-Agent project page](https://www.openthoughts.ai/blog/agent) | |
| - π» [OpenThoughts-Agent GitHub repository](https://github.com/open-thoughts/OpenThoughts-Agent) | |
| - π§ [OpenThoughts-Agent-v1-SFT dataset](https://huggingface.co/datasets/open-thoughts/OpenThoughts-Agent-v1-SFT) | |
| - π§ [OpenThoughts-Agent-v1-RL dataset](https://huggingface.co/datasets/open-thoughts/OpenThoughts-Agent-v1-RL) | |
| - π§ [OpenThoughts-TB-dev dataset](https://huggingface.co/datasets/open-thoughts/OpenThoughts-TB-dev) | |
| - π€ [OpenThinker-Agent-v1 model](https://huggingface.co/open-thoughts/OpenThinker-Agent-v1) | |
| - π€ [OpenThinker-Agent-v1-SFT model](https://huggingface.co/open-thoughts/OpenThinker-Agent-v1-SFT) | |
| # Citation | |
| ``` | |
| @misc{openthoughts-agent, | |
| author = {Team, OpenThoughts-Agent}, | |
| month = Dec, | |
| title = {{OpenThoughts-Agent}}, | |
| howpublished = {https://www.open-thoughts.ai/blog/agent}, | |
| year = {2025} | |
| } | |
| ``` |