Skip to main content

Supported Models

Nen uses Anthropic’s Claude family of vision-language models.
Model IDDescriptionBest For
claude-opus-4-6Most capableComplex reasoning, multi-step decisions
claude-sonnet-4-6Latest SonnetGeneral-purpose, good balance
claude-sonnet-4-5-20250929BalancedDefault model. Reliable for most tasks
claude-haiku-4-5-20251001Fast & cheapSimple clicks, navigation, quick checks

Setting the Default Model

The model parameter on Agent is optional. If omitted, all calls on that agent default to claude-sonnet-4-6. Passing a model sets the default for every method call on that agent:
from nen import Agent

# Use claude-sonnet-4-6 by default
agent = Agent()

# Use a specified model
agent = Agent(model="claude-opus-4-6")
Individual method calls can override the agent’s default by passing their own model argument. If no model is passed to the method, the agent-level default is used.

Per-Call Overrides

Override the model for a specific call:
def run(params: Params) -> Result:
    # Use Haiku for simple navigation
    agent = Agent(model="claude-haiku-4-5-20251001")
    agent.execute("Open the application")

    # Switch to a more capable model for complex extraction
    data = agent.extract(
        "Extract all invoice line items with amounts",
        InvoiceSchema.model_json_schema(),
        model="claude-sonnet-4-6"
    )

Choosing a Model

Speed & Cost

Use claude-haiku-4-5-20251001 for simple clicks, form fills, and navigation where accuracy is straightforward.

Accuracy

Use claude-sonnet-4-6 for data extraction, complex UI reasoning, and multi-step decisions.

Rules of Thumb

  • Navigation & simple clicks → Haiku
  • Data extraction → Sonnet
  • Complex multi-step reasoning → Sonnet or Opus
  • Default (if unsure) → leave unset (platform default)
def run(params: Params) -> Result:
    agent = Agent(model="claude-haiku-4-5-20251001")

    # Fast: simple navigation
    agent.execute("Open the browser to https://example.com")
    agent.execute("Click the Login button")

    # Accurate: complex extraction
    customer = agent.extract(
        "Extract customer details from the profile page",
        CustomerSchema.model_json_schema(),
        model="claude-sonnet-4-6"
    )
Start with the default model. Only switch to Haiku or Opus when you have a specific reason — the default is chosen to work well for most workflows.