Agnes AI logo

Agnes AI website Open weights Apache 2.0

Agnes-3.0-Flash Preview

Model version clarification

This repository contains an earlier open-weight Preview checkpoint of Agnes 3.0 Flash. It is distinct from the newer production/API checkpoint listed on Artificial Analysis.

The Preview release has 33B parameters and a context window of 262,144 tokens. The production/API model uses a different checkpoint and configuration, with a 1M-token context window. Its benchmark results should not be attributed to the Preview weights released here.

This repository was initially published as Agnes-3.0-Flash without the Preview suffix. The model card now explicitly identifies this release as Agnes-3.0-Flash Preview to clarify the distinction between the open-weight release and the production/API model.

The specifications and Agnes benchmark results below refer to the Preview checkpoint.

Hello! 👋 Today we are introducing Agnes-3.0-Flash Preview, an open-weights multimodal preview model built for people who want flagship-class reasoning without flagship-class hardware. Highlights:

  • Competitive across core capabilities. Agnes-3.0-Flash Preview posts competitive results across reasoning, coding, and instruction-following evaluations.
  • Built for demanding work. A 262 144-token context window, adjustable reasoning effort, tool calling, and text, image and video understanding.

Benchmarks

Benchmark scope: The Agnes results in the chart and table below belong to the Agnes-3.0-Flash Preview open-weight checkpoint released in this repository. They are not results for the production/API Agnes 3.0 Flash model listed on Artificial Analysis.

Agnes-3.0-Flash Preview benchmark reference results

The label "Agnes-3.0-Flash" in the benchmark image refers to this Preview checkpoint.

Reference results across contemporary models are shown below. The figures were compiled from different sources, harnesses, and model snapshots and do not constitute a controlled head-to-head comparison.

Benchmark Agnes-3.0-Flash Preview Qwen3.6-35B-A3B
35B / 3B active
Kimi K2.5
1T / 32B active
Muse Glimmer
30B
Qwen3.5
27B
DeepSeek V4 Flash 0731
284B / 13B active
Qwen3.8
27B
Gemini 3.5 Flash
undisclosed
Qwen3.8 Flash Next
125B / 6B active
MiniMax M3
428B / 23B active
IFBench74.2064.443.777.075.675.879.576.381.382.9
SciCode38.0835.839.643.639.550.346.653.150.645.4
GPQA Diamond85.0584.178.983.585.890.890.592.292.392.9
AA-LCR68.3366.759.080.072.379.782.081.079.774.0
AA-Omniscience Accuracy23.0018.822.927.020.740.418.451.424.516.7

Higher is better for every row. Header parameter figures mix total and active counts, and harnesses and snapshot dates differ across sources, so treat cross-column comparisons as reference values rather than a controlled head-to-head evaluation.

Architecture

Agnes-3.0-Flash Preview is a hybrid-attention decoder: three of every four layers run a gated delta rule (recurrent, with per-layer state independent of sequence length), and the fourth runs standard global attention. Only 18 of the 72 layers therefore hold a KV cache that grows with context.

Context length 262 144 tokens
Decoder layers 72 = 54 delta-rule recurrent + 18 global attention, alternating 3 : 1
Hidden size 5120
Global attention 24 query heads / 4 KV heads (6 : 1 GQA), head dim 256; RMS-norm on q and k, sigmoid-gated output
Delta-rule layers 16 key heads / 48 value heads, head dim 128; causal conv (kernel 4) in front, gated RMS-norm; recurrent state in fp32
Feed-forward SwiGLU, intermediate size 17408; plus a parallel SwiGLU 2048 branch in every layer
Positions 3-axis rotary (text / height / width), interleaved mrope sections 11 : 11 : 10, base 1e7, applied to the first 25 % of each head dim (64 dims)
Vocabulary 248 320
Vision tower 27 layers, hidden 1152, patch 16, 2 × 2 spatial merge, projected to 5120

Quickstart

REMOTE CODE REQUIRED

Agnes-3.0-Flash Preview ships its own model implementation. Always load it with trust_remote_code=True.

Requirements

pip install "transformers>=5.12" torch torchvision accelerate

Tested on transformers 5.12.1. Image and video inputs go through the bundled processor, which needs torchvision.

Transformers

from transformers import AutoModelForCausalLM, AutoTokenizer
path = "Agnes-AI/Agnes-3.0-Flash"
tok = AutoTokenizer.from_pretrained(path)
model = AutoModelForCausalLM.from_pretrained(
    path, dtype="bfloat16", device_map="auto", trust_remote_code=True
)
msgs = [{"role": "user", "content": "请用三句话解释什么是人工智能。"}]
ids = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt").to(model.device)
out = model.generate(ids, max_new_tokens=256)
print(tok.decode(out[0][ids.shape[1]:], skip_special_tokens=True))

Images and video

Image and video inputs go through the bundled processor (also remote code):

from transformers import AutoProcessor
proc = AutoProcessor.from_pretrained(path, trust_remote_code=True)
msgs = [{"role": "user", "content": [{"type": "image", "image": "photo.jpg"},
                                     {"type": "text", "text": "描述这张图。"}]}]
inputs = proc.apply_chat_template(msgs, add_generation_prompt=True, tokenize=True,
                                  return_dict=True, return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=256)
print(proc.batch_decode(out[:, inputs["input_ids"].shape[1]:], skip_special_tokens=True)[0])

Reasoning effort

The chat template exposes three reasoning levels — high (default), medium, low — plus a thinking-off switch:

ids = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt",
                              reasoning_effort="medium")   # or enable_thinking=False

Tool calling

The chat template renders tool definitions for you. The model emits calls as <tool_call><function=…><parameter=…>, and you feed results back as a tool role message:

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Look up current weather for a city",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string", "description": "City name"}},
            "required": ["city"],
        },
    },
}]
msgs = [{"role": "user", "content": "What's the weather in Beijing right now?"}]
ids = tok.apply_chat_template(msgs, tools=tools, add_generation_prompt=True,
                              return_tensors="pt").to(model.device)
out = model.generate(ids, max_new_tokens=256)
reply = tok.decode(out[0][ids.shape[1]:], skip_special_tokens=True)

# <tool_call>

# <function=get_weather>

# <parameter=city>

# Beijing

# </parameter>

# </function>

# </tool_call>

# run the tool, append the result, generate the final answer
msgs += [{"role": "assistant", "content": reply},
         {"role": "tool", "content": "Clear, 26°C, light northeasterly wind"}]

Over the OpenAI API pass tools= the same way. The server returns the text above verbatim by default; to get structured tool_calls, configure sglang with a tool-call parser matching this format (likewise a reasoning parser, if you want the thinking span in reasoning_content).

SGLang

serve.sh starts a server from a stock public image, overlaying three files onto the image's sglang package and nothing else. See sglang_patch/README.md.

docker run --gpus all --shm-size 64g -p 30001:8080 \
    -v /path/to/agnes-3.0-flash:/model \
    lmsysorg/sglang:nightly-dev-20260908-20ca564b \
    bash /agnes-3.0-flash/serve.sh --served-model-name Agnes-3.0-Flash

serve.sh forwards extra command-line arguments to sglang, which is how --served-model-name takes effect; --tp 2 works the same way. The server listens on port 8080 inside the container:

from openai import OpenAI
client = OpenAI(api_key="EMPTY", base_url="http://localhost:30001/v1")
response = client.chat.completions.create(
    model="Agnes-3.0-Flash",
    messages=[{"role": "user", "content": "Design a fault-tolerant event processing architecture."}],
    temperature=1.0,
    max_tokens=2000,
)
print(response.choices[0].message.content)

Pass stream=True for streaming; tools= and reasoning_effort= are accepted the same way.

Hardware Requirements

Resource Recommendation
GPUs 1 × NVIDIA H200 141 GB or NVIDIA H100 80 GB (or equivalent) at bf16
Tensor parallel --tp 1; --tp 2 for maximum context and concurrency
Weights on disk Approximately 66 GB for the bf16 checkpoint
Host memory 128 GB or more recommended

Actual context length and concurrency depend on KV-cache allocation, runtime overhead, and tensor-parallel configuration; validate the target workload on the intended hardware.

Recommended Inference Settings

Setting Recommended
temperature 1.0
top_p 0.95
top_k 20
reasoning_effort high for hard reasoning, low for latency-sensitive traffic
max_tokens 2000 or higher

These are the checkpoint's own generation_config.json defaults.

Model Capabilities

Capability Support
Advanced reasoning Yes, with high / medium / low effort levels
Coding and debugging Yes
Long-context analysis 262 144 tokens
Image understanding Yes
Video understanding Yes
Tool calling Yes (<tool_call> / <tool_response>)
Streaming Yes
OpenAI-compatible APIs Chat Completions via sglang

License

Released under the Apache License 2.0.

Citation

@misc{agnes30flash2026,
  title        = {Agnes-3.0-Flash Preview},
  author       = {{Agnes AI}},
  year         = {2026},
  month        = sep,
  howpublished = {Open-weights preview checkpoint},
  url          = {https://agnes-ai.com/}
}
Downloads last month
474
Safetensors
Model size
33B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Agnes-AI/Agnes-3.0-Flash

Quantizations
9 models