Groq()

Open-weight models at very high throughput, with your own API key. Costs go direct to the vendor at their rates — no markup, nothing on your Axon balance.

export default defineProfile({
    providers: [Groq()],
})

Serves a fixed list — see below.

Credentials

Set the environment variable, or pass key on the declaration:

GROQ_API_KEY=...
providers: [Groq({ key: process.env.MY_OWN_VAR })]

You can also store this key in your Axon account vault through the cloud client:

await cloud.user.vault.connections.get("groq").connect({ key: apiKey })

A fresh host signed into the same account can use the connection. Profiles without an explicit providers list discover active account connections automatically; an explicit list continues to restrict which providers that machine uses.

Explicit keys and environment variables take precedence over the account vault. A custom url requires an explicit credential. Provider SDKs ship with Axon.

Options

Groq(options?: ProviderOptions)
OptionDefaultDescription
keyGROQ_API_KEYYour own credential, passed directly
urlthe provider's APIEndpoint override
slotsunboundedCeiling on concurrent calls a fanned-out role may spend here

An inference host, not a vendor

Groq does not publish models; it serves other vendors' open weights on its own hardware, under names of its own choosing. OpenRouter's meta-llama/llama-3.3-70b-instruct is llama-3.3-70b-versatile here, and nothing in the first name predicts the second.

So this provider serves an explicit list rather than deriving names. A model absent from that list is not offered — which is deliberate: a derived name that Groq has never heard of would resolve at boot and 404 on the first call, and the whole point of resolving against a catalogue is to move that failure to axon prepare.

Currently mapped: the GPT-OSS models, Kimi K2, Llama 4 Maverick and Scout, Llama 3.3 70B, and Llama 3.1 8B. Others reachable on Groq's API can be added — open an issue with the canonical id and Groq's own name for it.

Model ids

Groq's own names:

export default defineAgent({ model: "groq:llama-3.3-70b-versatile" })

Why declare it

Throughput. Reach for Groq when latency matters and the workload suits open weights — compression, filtering, classification, a fanned-out percept role. Pair it with a frontier route for the roles that need one:

providers: [Groq(), Anthropic(), Axon()]