Instructions to use XYZAILab/XYZ-Aquila-pro with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use XYZAILab/XYZ-Aquila-pro with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="XYZAILab/XYZ-Aquila-pro") 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("XYZAILab/XYZ-Aquila-pro") model = AutoModelForMultimodalLM.from_pretrained("XYZAILab/XYZ-Aquila-pro", 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 XYZAILab/XYZ-Aquila-pro with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "XYZAILab/XYZ-Aquila-pro" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "XYZAILab/XYZ-Aquila-pro", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/XYZAILab/XYZ-Aquila-pro
- SGLang
How to use XYZAILab/XYZ-Aquila-pro 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 "XYZAILab/XYZ-Aquila-pro" \ --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": "XYZAILab/XYZ-Aquila-pro", "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 "XYZAILab/XYZ-Aquila-pro" \ --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": "XYZAILab/XYZ-Aquila-pro", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use XYZAILab/XYZ-Aquila-pro with Docker Model Runner:
docker model run hf.co/XYZAILab/XYZ-Aquila-pro
XYZ-Aquila-pro
An open-weight thinking model for Deep Search.
Introduction
XYZ-Aquila is a family of open-weight Deep Search agents developed by XYZ AI Lab. XYZ-Aquila-pro is post-trained from Qwen3.5-397B-A17B through a bounded-exploration AI4AI pipeline: humans define the target capability, development evidence, constraints, risk boundaries, and acceptance policy, while AI agents diagnose failures and propose scoped interventions across data, post-training, runtime, context management, tools, evaluation, and infrastructure.
The released checkpoint is a thinking model with Qwen-compatible reasoning and tool-call formats. It is optimized for agentic search, including long-horizon planning, English and Chinese web browsing, multi-source evidence aggregation, source verification, and recovery from failed environment interactions. The open-source AxisAgentic harness provides the concrete search / scrape / python tool implementations, fixed tool contract, replayable context management, and benchmark evaluation workflow; these capabilities are supplied by the surrounding harness rather than by the checkpoint alone.
New Release
- HuggingFace models: XYZ-Aquila-mini | XYZ-Aquila-pro
- ModelScope models: XYZ-Aquila-mini | XYZ-Aquila-pro
- Data: XYZ-Aquila-SFT
- Agent harness: AxisAgentic
Benchmark Results
The external benchmark suite was held out from routine AI4AI optimization. Following the technical report, evaluation uses a ReAct-style search harness with web search, webpage extraction, stateful Python execution, and a maximum 256K context. XYZ-Aquila-pro obtains the highest reported score in every column of the evaluated sub-400B open-weight comparison.
The figure provides a visual overview across six agentic search benchmarks. The tables below transpose the comparison: each row is a benchmark and each column is a model within the group.
Small-scale open-weight (<40B)
Open-weight systems with fewer than 40B parameters, including XYZ-Aquila-mini.
| Benchmark | XYZ-Aquila-mini | Agents-A1 | Nex-N2-mini | apodex-mini | MiroThinker 1.7 mini |
|---|---|---|---|---|---|
| BrowseComp | 78.8 | 75.5 | 74.1 | 71.5 | 67.9 |
| BrowseComp-ZH | 82.9 | -- | 79.6†| 80.6 | -- |
| DeepSearchQA | 89.5 | -- | 87.2†| 82.2 | -- |
| GAIA | 97.1 | 96.0 | -- | -- | 80.3 |
| LiveBrowseComp | 48.7 | 29.6†| 41.4†| 32.8†| 34.9†|
| HLE | 51.1 | 47.6 | 37.1†| 46.8 | 36.4 |
| WideSearch | 80.8 | -- | 62.0 | -- | 73.3†|
Large-scale open-weight (<400B)
Open-weight systems with fewer than 400B parameters, including XYZ-Aquila-pro.
| Benchmark | XYZ-Aquila-pro | Nex-N2-Pro | MiroThinker 1.7 | apodex-1.0 |
|---|---|---|---|---|
| BrowseComp | 84.8 | 83.7†| 74.0 | 75.5 |
| BrowseComp-ZH | 85.1 | 79.6†| 75.3 | 82.6 |
| DeepSearchQA | 92.5 | 92.3†| -- | 84.6 |
| LiveBrowseComp | 53.7 | 50.4†| 34.1†| -- |
| HLE | 53.3 | 50.0†| 42.9 | 49.0 |
| WideSearch | 81.2 | 75.6 | -- | -- |
XYZ-Aquila-pro vs. Larger-Scale and Closed-Source Models
XYZ-Aquila-pro compared with larger-scale open-weight and closed-source models.
| Benchmark | XYZ-Aquila-pro | apodex-h1 | DeepSeek-V4- Pro-Max |
Kimi-K2.6 | Claude Opus 4.7 |
GPT-5.5 xhigh |
|---|---|---|---|---|---|---|
| BrowseComp | 84.8 | 90.3 | 83.4 | 83.2 | 79.3 | 84.4 |
| BrowseComp-ZH | 85.1 | 84.1 | -- | -- | -- | -- |
| DeepSearchQA | 92.5 | 94.4 | -- | 92.5 | 89.1 | -- |
| LiveBrowseComp | 53.7 | -- | 38.3 | 31.7 | -- | -- |
| HLE | 53.3 | 60.8 | -- | 55.5 | 54.7 | 52.2 |
| WideSearch | 81.2 | -- | -- | 80.8 | -- | -- |
All values are percentages. HLE denotes Humanity's Last Exam. DeepSearchQA uses F1, WideSearch uses Item F1 Max@4, and the remaining benchmarks use accuracy. Rows with no reported result across an entire group are omitted; -- indicates an unreported result within an otherwise populated row. †marks results reproduced under the common evaluation setup; other baseline values come from public reports or benchmark submissions. See the technical report for full provenance and analysis.
Quickstart
Install SGLang
We recommend sglang>=0.5.14 for XYZ-Aquila-pro.
uv pip install 'git+https://github.com/sgl-project/sglang.git#subdirectory=python&egg=sglang[all]'
SGLang Deployment
The example below launches an OpenAI-compatible endpoint with Qwen reasoning and tool-call parsers. It uses tensor parallelism across eight GPUs; reduce the tensor parallel size and context length if the deployment does not have enough memory.
MODEL_PATH=XYZAILab/XYZ-Aquila-pro
SERVED_MODEL=XYZ-Aquila-pro
python -m sglang.launch_server \
--model-path "${MODEL_PATH}" \
--served-model-name "${SERVED_MODEL}" \
--port 8000 \
--tp-size 8 \
--mem-fraction-static 0.8 \
--context-length 262144 \
--reasoning-parser qwen3 \
--tool-call-parser qwen3_coder
Tool-Use Example
The following example sends a text-only research conversation with three tools to the SGLang OpenAI-compatible endpoint.
import requests
BASE_URL = "http://localhost:8000/v1"
MODEL_NAME = "XYZ-Aquila-pro"
SYSTEM_PROMPT = r"""You are a task-solving research agent with access to native structured tools.
Use the tools step-by-step to answer the user's question accurately and completely.
Today is: 2026-06-27
# Tool-Use Rules
- Use the function-calling interface to invoke tools. Do not write tool calls as plain text.
- Call at most ONE tool per assistant turn. The next message will contain that tool's result; use it to decide your next step.
- Only use tools declared in the provided tools schema.
- Use web_search to discover relevant sources, verify facts, or find promising URLs.
- Use scrape_and_extract_info to read a specific URL or extract focused facts from a page.
- Prefer focused searches and focused extraction requests. Avoid repeating the same query or URL unless the previous result was unusable.
- For source-grounded questions, do not rely only on search snippets when a page needs to be inspected.
# Answering
- When you have sufficient evidence, stop calling tools and provide the final answer wrapped in \boxed{}.
- Follow the user's requested output format exactly.
- Keep the boxed answer concise: a number, short phrase, or comma-separated list when appropriate.
- Do not output a final prose response without \boxed{}.
"""
USER_PROMPT = r"""In the mythological literature of a certain northern European region, the parental figure of a specified character was joined in a legal and social union with a ruler whose title was derived from a specific tribal designation. The name of that tribe was also adopted as the identifier for a historical Continental kingdom, whose final independent sovereign fell in armed conflict against a nomadic steppe confederation in the latter half of the 5th century. The character in question administered a prepared liquid to a male subject who had, in the narrative, taken possession of a hoard of precious metal and crafted objects. The hoard's origin was a confrontation between a male figure and a winged, venomous creature that had once been a male member of a specific lineage. The administration of the liquid led to the subject developing an altered perception of a prior commitment of matrimony. The later consequence, directly flowing from this event, was the coerced marriage of the subject's sister to the leader of the aforementioned nomadic confederation. Provide the name recorded for the character who prepared and administered the liquid.
Follow the request's format instructions strictly and wrap the final answer in \boxed{}."""
messages = [
{"role": "system", "content": SYSTEM_PROMPT},
{"role": "user", "content": USER_PROMPT},
]
tools = [
{
"type": "function",
"function": {
"name": "web_search",
"description": "Search the web using Google and return relevant results. Use this tool to find up-to-date information, verify facts, or discover URLs for further investigation.\n\nReturns structured search results including organic results, knowledge graph, and related questions.",
"parameters": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "The search query string.",
},
"num": {
"type": "integer",
"description": "Number of results to return (default: 10, max: 100).",
"default": 10,
},
"hl": {
"type": "string",
"description": "Language code for results, e.g., 'en', 'zh', (ISO 639-1, default: 'en').",
"default": "en",
},
"gl": {
"type": "string",
"description": "Country code for localised results, e.g., 'us', 'gb', (ISO 3166-1 alpha-2, default: 'us').",
"default": "us",
},
},
"required": ["query"],
},
},
},
{
"type": "function",
"function": {
"name": "scrape_and_extract_info",
"description": "Fetch and read the contents of a web page, PDF, or other online document. Returns the page content as clean text. When 'info_to_extract' is provided, uses an LLM to extract only the relevant information from the page.\n\nUse this tool to read web pages found via web_search, examine documents, or access any URL-addressable content.",
"parameters": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The URL to scrape (web page, PDF, code file, etc.).",
},
"info_to_extract": {
"type": "string",
"description": "What specific information to extract from the page. If provided, returns a focused extraction instead of the full page content. If omitted, returns the full page content.",
},
},
"required": ["url"],
},
},
},
{
"type": "function",
"function": {
"name": "run_python_code",
"description": "Execute a self-contained snippet of Python code in a fresh, isolated sandbox and return its output.\n\nEach call runs in a brand-new sandbox with no memory of previous calls: include every import and define every variable you need inside `code`, and `print(...)` anything you want to read back. Use it for calculations, symbolic math (sympy), numeric work (numpy/scipy), data processing, and verifying intermediate results.\n\nArgs:\n code: The complete Python source to execute.\n\nReturns:\n The captured execution result (stdout, returned values, and any error/traceback).",
"parameters": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Self-contained Python code to execute. Print any value you want returned.",
},
},
"required": ["code"],
},
},
},
]
payload = {
"model": MODEL_NAME,
"messages": messages,
"tools": tools,
"temperature": 1.0,
"top_p": 0.95,
"repetition_penalty": 1.05,
"max_tokens": 32768,
"chat_template_kwargs": {
"enable_thinking": True,
"preserve_thinking": True,
},
}
response = requests.post(f"{BASE_URL}/chat/completions", json=payload, timeout=1800)
response.raise_for_status()
result = response.json()
Recommended Sampling Config
temperature: 1.0
top_p: 0.95
repetition_penalty: 1.05
max_tokens: 32768
chat_template_kwargs:
enable_thinking: true
preserve_thinking: true
Citation
@techreport{xyz_aquila_2026,
title = {AI4AI at Scale: A Full-Pipeline System for Enhancing LLM Agentic Capabilities},
author = {{XYZ Agentic Team}},
institution = {XYZ AI Lab},
year = {2026},
url = {https://xyz-lab.ai/blogs/ai4ai-at-scale/assets/bounded-exploration-ai4ai-system-optimization.pdf}
}
- Downloads last month
- 785
Model tree for XYZAILab/XYZ-Aquila-pro
Base model
Qwen/Qwen3.5-397B-A17B