Instructions to use FACET-Terminal/FACET-Terminal-Qwen3.5-9B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use FACET-Terminal/FACET-Terminal-Qwen3.5-9B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="FACET-Terminal/FACET-Terminal-Qwen3.5-9B") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("FACET-Terminal/FACET-Terminal-Qwen3.5-9B") model = AutoModelForMultimodalLM.from_pretrained("FACET-Terminal/FACET-Terminal-Qwen3.5-9B", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.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(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use FACET-Terminal/FACET-Terminal-Qwen3.5-9B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "FACET-Terminal/FACET-Terminal-Qwen3.5-9B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "FACET-Terminal/FACET-Terminal-Qwen3.5-9B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/FACET-Terminal/FACET-Terminal-Qwen3.5-9B
- SGLang
How to use FACET-Terminal/FACET-Terminal-Qwen3.5-9B 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 "FACET-Terminal/FACET-Terminal-Qwen3.5-9B" \ --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": "FACET-Terminal/FACET-Terminal-Qwen3.5-9B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'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 "FACET-Terminal/FACET-Terminal-Qwen3.5-9B" \ --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": "FACET-Terminal/FACET-Terminal-Qwen3.5-9B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use FACET-Terminal/FACET-Terminal-Qwen3.5-9B with Docker Model Runner:
docker model run hf.co/FACET-Terminal/FACET-Terminal-Qwen3.5-9B
FACET-Terminal-Qwen3.5-9B
A Qwen3.5-9B model fine-tuned for terminal-agent reasoning and executable task completion
For inference and deployment, follow the official Qwen3.5-9B model card and use the model ID
FACET-Terminal/FACET-Terminal-Qwen3.5-9B.
FACET-Terminal-Qwen3.5-9B
FACET-Terminal-Qwen3.5-9B is fine-tuned from Qwen/Qwen3.5-9B using successful, execution-grounded terminal-agent trajectories produced by FACET.
FACET stands for Fine-grained Agentic Construction of Executable Tasks. It is a terminal-task synthesis framework built around two principles: preserving source intent and maintaining a shared executable state. Starting from relevant Agent Skills, FACET reconstructs realistic scenarios while retaining capability requirements, dependencies, input/output constraints, tool constraints, and procedural knowledge throughout the generation process.
FACET follows an environment-first workflow. It constructs and validates the task environment before producing the final instruction, reference solution, and verifier. As a result, every task component is generated against the same initial environment and target execution state. When execution fails, FACET uses the failed trajectory to identify and repair the affected component instead of regenerating the entire task.
The pipeline starts from 71,341 source skills, constructs 7,852 scenario-skill seeds, and produces 6,078 tasks that pass execution validation. From successful agent rollouts, 1.2K complete trajectories are selected for supervised fine-tuning. These trajectories contain the full interaction process required to solve executable terminal tasks, including reasoning, command-line tool use, environment inspection, iterative correction, and task completion.
Training on these verified trajectories is intended to improve the model's ability to operate as a command-line agent across coding, software-engineering, tool-use, long-horizon reasoning, and other workflows whose outcomes can be checked through actual execution.
Evaluation Results
All models in the FACET comparison use the Terminus-2 agent. Base and fine-tuned models are evaluated with the same inference configuration. Terminal-Bench 2.1 scores are averaged over three independent attempts per task.
FACET-Terminal-Qwen3.5-9B achieves 35.58 on Terminal-Bench 2.1, improving over the Qwen3.5-9B base model score of 27.34 by 8.24 points. This is the largest absolute improvement among the evaluated FACET model sizes.
Performance may vary with the agent scaffold, system prompt, tool interface, inference engine, context length, sampling configuration, and task environment. Generated commands should be inspected before execution and run in an isolated environment.
License
This model is released under the Apache 2.0 license, following its base model.
Citation
If you use this model or the FACET framework, please cite:
@misc{shi2026facet,
title = {{FACET}: Preserving Source Intent and Executable State in Terminal Task Synthesis},
author = {Kou Shi and Zun Wang and Qisheng Su and Shiting Huang and Ziao Zhang and Zhen Fang and Qingnan Ren and Jin Liu and Yu Zeng and Yiming Zhao and Lin Chen and Zehui Chen and Feng Zhao},
year = {2026},
note = {Preprint},
url = {https://github.com/StoKou/FACET-Terminal}
}
- Downloads last month
- 12