From 03fe240ba18e8ced9ca945f5a33fdaa0ca544130 Mon Sep 17 00:00:00 2001 From: Thibault Le Ouay Date: Tue, 29 Sep 2026 22:04:30 +0200 Subject: [PATCH] model: update model (#2817) --- apps/server/src/routes/mcp/evals/run.ts | 2 +- apps/server/src/routes/slack/agent.ts | 2 +- packages/ai/src/resolve-model.test.ts | 2 +- packages/ai/src/resolve-model.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/server/src/routes/mcp/evals/run.ts b/apps/server/src/routes/mcp/evals/run.ts index 7e570060..13eeac00 100644 --- a/apps/server/src/routes/mcp/evals/run.ts +++ b/apps/server/src/routes/mcp/evals/run.ts @@ -38,7 +38,7 @@ import { type EvalCase, cases } from "./cases"; // Resolved through the AI Gateway (`AI_GATEWAY_API_KEY` env). Using // `gateway(...)` instead of a bare string makes the routing path // explicit and gives a clearer error if the gateway is unconfigured. -const MODEL = gateway("anthropic/claude-opus-5"); +const MODEL = gateway("anthropic/claude-sonnet-5"); // Lenient bar (10/12) accommodates model non-determinism even at // `temperature: 0` — a single flaky tool selection shouldn't tank // the run. Tighten if descriptions stabilize and runs trend toward diff --git a/apps/server/src/routes/slack/agent.ts b/apps/server/src/routes/slack/agent.ts index ff191e87..e18c695a 100644 --- a/apps/server/src/routes/slack/agent.ts +++ b/apps/server/src/routes/slack/agent.ts @@ -11,7 +11,7 @@ import { buildSystemPrompt } from "./system-prompt"; // Vercel AI Gateway model id (`anthropic/`). Override via // SLACK_AGENT_MODEL when rolling out a new model version. -const DEFAULT_MODEL = "anthropic/claude-opus-5"; +const DEFAULT_MODEL = "anthropic/claude-sonnet-5"; // `||` (not `??`) so empty / whitespace-only env values fall back to the // default rather than being passed through to `generateText`. const MODEL = process.env.SLACK_AGENT_MODEL?.trim() || DEFAULT_MODEL; diff --git a/packages/ai/src/resolve-model.test.ts b/packages/ai/src/resolve-model.test.ts index a1bfb388..21181cea 100644 --- a/packages/ai/src/resolve-model.test.ts +++ b/packages/ai/src/resolve-model.test.ts @@ -32,7 +32,7 @@ describe("resolveChatModel", () => { test("gateway path: paid plan resolves the stronger model string", () => { process.env.AI_GATEWAY_API_KEY = "gw-key"; expect(resolveChatModel({ plan: "team" })).toBe( - "anthropic/claude-sonnet-4.5", + "anthropic/claude-sonnet-5", ); }); diff --git a/packages/ai/src/resolve-model.ts b/packages/ai/src/resolve-model.ts index b53fa1d7..97916aea 100644 --- a/packages/ai/src/resolve-model.ts +++ b/packages/ai/src/resolve-model.ts @@ -6,7 +6,7 @@ import type { LanguageModel } from "ai"; // bare model strings. Free workspaces get the cheaper model because we pay for // their inference; this tiering applies ONLY to the gateway path. const GATEWAY_MODEL_FREE = "anthropic/claude-haiku-4.5"; -const GATEWAY_MODEL_PAID = "anthropic/claude-sonnet-4.5"; +const GATEWAY_MODEL_PAID = "anthropic/claude-sonnet-5"; // `||` (not `??`) so empty / whitespace-only env values fall back instead of // being passed through as a real value. -- 2.51.2