Skip to content

Model and effort

Each role runs one model. Pick it in @role, with or without an effort.

@role(model=Claude.OPUS)
@role(model=Claude.OPUS(effort=ClaudeEffort.HIGH))
@role(model=OpenAI.SOL(effort=OpenAIEffort.XHIGH))

Claude models run through Claude Code, and OpenAI models through Codex. One workflow can use both. You only need to log in to the tools your roles use. Before a run starts, AGL checks that each of them is ready, and refuses the run if one isn't.

Claude and OpenAI each have two kinds of member:

  • Family member - Runs the newest model of its family, as Claude.OPUS runs the newest Opus.
  • Versioned member - Runs one model, as Claude.OPUS_4_7 runs Claude Opus 4.7.
@role(model=Claude.OPUS_4_7(effort=ClaudeEffort.HIGH))
  • Claude - OPUS, SONNET, HAIKU, FABLE, and the versioned OPUS_4_5, OPUS_4_6, OPUS_4_7, OPUS_4_8, OPUS_5, OPUS_5_5, SONNET_4_5, SONNET_4_6, SONNET_5, HAIKU_4_5, FABLE_5, FABLE_5_1.
  • OpenAI - SOL, TERRA, LUNA, ASTRA, and the versioned GPT_5_6_SOL, GPT_5_6_TERRA, GPT_5_6_LUNA, GPT_6_ASTRA, GPT_6_SOL, GPT_6_LUNA.
  • ClaudeEffort - LOW, MEDIUM, HIGH, XHIGH, MAX.
  • OpenAIEffort - LOW, MEDIUM, HIGH, XHIGH, MAX, ULTRA.

Without an effort, a model runs at its tool's default.

Reference

agl.sdk.ModelId

Bases: StrEnum

A model a role can run on.

agl.sdk.Claude

Bases: ModelId

A Claude model a role can run on.

OPUS class-attribute instance-attribute

The model its backend runs as opus.

SONNET class-attribute instance-attribute

The model its backend runs as sonnet.

HAIKU class-attribute instance-attribute

The model its backend runs as haiku.

FABLE class-attribute instance-attribute

The model its backend runs as fable.

OPUS_4_5 class-attribute instance-attribute

The model its backend runs as claude-opus-4-5-20251101.

OPUS_4_6 class-attribute instance-attribute

The model its backend runs as claude-opus-4-6.

OPUS_4_7 class-attribute instance-attribute

The model its backend runs as claude-opus-4-7.

OPUS_4_8 class-attribute instance-attribute

The model its backend runs as claude-opus-4-8.

OPUS_5 class-attribute instance-attribute

The model its backend runs as claude-opus-5.

OPUS_5_5 class-attribute instance-attribute

The model its backend runs as claude-opus-5-5.

SONNET_4_5 class-attribute instance-attribute

The model its backend runs as claude-sonnet-4-5-20250929.

SONNET_4_6 class-attribute instance-attribute

The model its backend runs as claude-sonnet-4-6.

SONNET_5 class-attribute instance-attribute

The model its backend runs as claude-sonnet-5.

HAIKU_4_5 class-attribute instance-attribute

The model its backend runs as claude-haiku-4-5-20251001.

FABLE_5 class-attribute instance-attribute

The model its backend runs as claude-fable-5.

FABLE_5_1 class-attribute instance-attribute

The model its backend runs as claude-fable-5-1.

__call__(*, effort)

Chooses how long this model reasons.

Parameters:

  • effort (ClaudeEffort) –

    The reasoning level, one of Claude's own.

Returns:

  • ChosenClaude –

    The model at that effort, to pass as @role(model=...).

Raises:

agl.sdk.ClaudeEffort

Bases: StrEnum

How long a Claude model reasons before answering.

LOW class-attribute instance-attribute

The least reasoning of the five.

MEDIUM class-attribute instance-attribute

More reasoning than LOW.

HIGH class-attribute instance-attribute

More reasoning than MEDIUM.

XHIGH class-attribute instance-attribute

More reasoning than HIGH.

MAX class-attribute instance-attribute

The most reasoning of the five.

agl.sdk.OpenAI

Bases: ModelId

An OpenAI model a role can run on.

SOL class-attribute instance-attribute

The model its backend runs as gpt-6-sol.

TERRA class-attribute instance-attribute

The model its backend runs as gpt-5.6-terra.

LUNA class-attribute instance-attribute

The model its backend runs as gpt-6-luna.

ASTRA class-attribute instance-attribute

The model its backend runs as gpt-6-astra.

GPT_5_6_SOL class-attribute instance-attribute

The model its backend runs as gpt-5.6-sol.

GPT_5_6_TERRA class-attribute instance-attribute

The model its backend runs as gpt-5.6-terra.

GPT_5_6_LUNA class-attribute instance-attribute

The model its backend runs as gpt-5.6-luna.

GPT_6_ASTRA class-attribute instance-attribute

The model its backend runs as gpt-6-astra.

GPT_6_SOL class-attribute instance-attribute

The model its backend runs as gpt-6-sol.

GPT_6_LUNA class-attribute instance-attribute

The model its backend runs as gpt-6-luna.

__call__(*, effort)

Chooses how long this model reasons.

Parameters:

  • effort (OpenAIEffort) –

    The reasoning level, one of OpenAI's own.

Returns:

  • ChosenOpenAI –

    The model at that effort, to pass as @role(model=...).

Raises:

agl.sdk.OpenAIEffort

Bases: StrEnum

How long an OpenAI model reasons before answering.

LOW class-attribute instance-attribute

The least reasoning of the six.

MEDIUM class-attribute instance-attribute

More reasoning than LOW.

HIGH class-attribute instance-attribute

More reasoning than MEDIUM.

XHIGH class-attribute instance-attribute

More reasoning than HIGH.

MAX class-attribute instance-attribute

More reasoning than XHIGH.

ULTRA class-attribute instance-attribute

Reasoning with parts of the task handed to subagents, and offered for some models only.