Model chooser  /  Run a customer-facing chat assistant  /  Recurring

For a support assistant in production, run Claude Sonnet 5.

Live chat is judged on answer quality, response time and cost per conversation, all at once. Sonnet 5 is Anthropic's speed-and-intelligence balance, handles tool calls for order lookups reliably, and caches your knowledge base between turns.

Why Claude Sonnet 5

The reasons it wins for this job.

  • Customers wait for every token. Sonnet 5 is built for the speed and intelligence balance that live chat needs, where Opus-tier depth is rarely the bottleneck.
  • Tool use lets it look up an order, check a subscription or open a ticket instead of guessing. Strict tool schemas keep the arguments valid.
  • Prompt caching means the help centre and instructions are paid for once per cache window, not once per message, which dominates cost in long conversations.
  • It is available on the Claude API, Amazon Bedrock and Google Vertex AI, so it fits the cloud and data-residency setup you already have.

How to use it

4 steps to a first result.

  1. 1Retrieve, then answerFor a large help centre, retrieve the relevant articles per question (see the search task) and put them after the cached instructions.
  2. 2Give it two or three toolsOrder lookup, subscription status, create ticket. Fewer, well-described tools beat many.
  3. 3Log and grade weeklySample 50 conversations a week. Track wrong answers and missed hand-offs, not just deflection rate.
  4. 4Add a kill switchOne flag that routes every conversation to people. You will use it at least once.

Claude API, TypeScript

Start from this.

Edit the parts in capitals, then run it.

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic();

const tools: Anthropic.Tool[] = [{
  name: "lookup_order",
  description: "Get status and tracking for an order by its number.",
  strict: true,
  input_schema: {
    type: "object",
    properties: { order_number: { type: "string" } },
    required: ["order_number"],
    additionalProperties: false,
  },
}];

export async function reply(history: Anthropic.MessageParam[], instructions: string, articles: string) {
  return client.messages.create({
    model: "claude-sonnet-5",
    max_tokens: 2000,
    output_config: { effort: "low" },
    system: [
      { type: "text", text: instructions, cache_control: { type: "ephemeral" } },
      { type: "text", text: `Relevant help articles:\n${articles}` },
    ],
    tools,
    messages: history,
  }); // if stop_reason is "tool_use", run the tool and send the result back
}
Nothing is sent anywhere. It copies to your clipboard.

Alternatives that also work

If Claude Sonnet 5 is not an option.

Gemini 3.8 FlashOfficial page →

Google · closed · cost: low

Pick it when volume is high and cost per conversation is the constraint, or customers send images and voice notes.

GPT-5.6 TerraOfficial page →

OpenAI · closed · cost: medium

Pick it when your stack is on OpenAI. Terra is its balance of intelligence and cost.

Qwen3.8 27BHugging Face →

Alibaba Qwen · open weights · cost: free weights; you pay for the hardware · 7.5M HF downloads/mo

Pick it when conversations cannot leave your infrastructure. Apache 2.0, runs on one GPU, and handles text and images.

Watch out for

Doing this just once? To prototype a support assistant, start with Claude Opus 5. A pilot has one job: prove the assistant can answer your real questions well. Build it on Opus 5 first, find the quality ceiling, then test whether a cheaper model holds that line before launch.

Sources

Checked . Models change monthly; we re-check this page when they do.

Picking the model is the easy part.

Wiring it into a workflow that runs every week, with evals, fallbacks and a cost you can predict, is the work. Fifteen minutes, no deck.

Book fifteen minutes →