Skip to content

Commit 86ef3c4

Browse files
chore: release v4.5.0 (#3998)
# Trigger.dev v4.5.0 4.5.0 is the GA of the AI Agents platform. Everything built during the prerelease line (durable agents, Sessions, AI Prompts) is now stable on the `latest` tag, alongside a set of SDK and runtime improvements. ## AI Agents (`chat.agent`) Run Vercel AI SDK chat completions as durable Trigger.dev tasks instead of fragile API routes. A conversation runs as one long-lived task keyed on `chatId`, so it survives page refreshes, network blips, redeploys, and crashes, and every turn is a span in the dashboard. ```ts import { chat } from "@trigger.dev/sdk/ai"; import { streamText, stepCountIs } from "ai"; import { anthropic } from "@ai-sdk/anthropic"; export const myChat = chat.agent({ id: "my-chat", run: async ({ messages, signal }) => { return streamText({ ...chat.toStreamTextOptions(), // system prompt, compaction, steering, telemetry model: anthropic("claude-sonnet-4-5"), messages, abortSignal: signal, stopWhen: stepCountIs(15), }); }, }); ``` ## Sessions The durable primitive underneath `chat.agent`, usable on its own: a run-aware, bidirectional stream channel keyed on a stable `externalId` whose `.in` / `.out` streams survive run boundaries (suspend, crash, idle-timeout, redeploy). One Session spans many runs, which makes it a good fit for agent inboxes and approval flows. ```ts import { sessions } from "@trigger.dev/sdk"; // Create the session and trigger its first run (idempotent on externalId) await sessions.start({ type: "inbox", externalId: userId, taskIdentifier: "inbox-agent", }); const session = sessions.open(userId); await session.in.send({ text: "hello" }); const stream = await session.out.read({ signal: AbortSignal.timeout(30_000) }); for await (const chunk of stream) console.log(chunk); // durable across run swaps ``` ## AI Prompts Define prompt templates as code, versioned on every deploy, and override the text or model from the dashboard without redeploying (environment-scoped). Each generation links back to its prompt version for usage, cost, and latency. ```ts import { prompts } from "@trigger.dev/sdk"; import { z } from "zod"; export const supportPrompt = prompts.define({ id: "customer-support", model: "gpt-4o", variables: z.object({ customerName: z.string(), issue: z.string() }), content: `You are a support agent for Acme. Customer: {{customerName}} Issue: {{issue}}`, }); // Honors any active dashboard override, else the current deployed version const resolved = await supportPrompt.resolve({ customerName: "Alice", issue: "Can't log in" }); // resolved.text, resolved.model, resolved.version ``` ## `useChat` integration `useTriggerChatTransport` is a Vercel AI SDK `ChatTransport` that runs `useChat` over Trigger.dev realtime with no API routes. Text, tool calls, reasoning, and `data-*` parts stream natively, and it works with AI SDK v5, v6, and now v7. ## First-turn fast path (`chat.headStart`) Runs the first turn in your warm server process while the agent boots in parallel, cutting cold-start time-to-first-chunk roughly in half (measured ~2.8s to ~1.2s). Available via the new `@trigger.dev/sdk/chat-server` subpath. ## Human-in-the-loop, stop, and steering The agent control surface: tool approvals (`needsApproval` + `addToolApprovalResponse`), client-driven stop-generation, mid-execution steering (`pendingMessages`), and between-turn context injection (`chat.inject` / `chat.defer`), all durable across the conversation. ## Agent Skills `skills.define({ id, path })` bundles a `SKILL.md` folder into your deploy image. The agent gets a one-line summary up front and loads the full instructions plus scoped `bash` / `readFile` tools on demand (progressive disclosure), so a capability is something the model reaches for rather than a pre-declared typed tool. ## `trigger skills` for coding assistants `trigger skills` installs version-pinned Trigger.dev skills plus a bundled docs snapshot into Claude Code, Cursor, GitHub Copilot, and Codex, so your assistant's Trigger.dev knowledge stays current with your installed SDK version. `trigger init` now offers to set up the MCP server and skills too. ## Model library A new Models page in the dashboard: a catalog of models grouped by provider with context window, capabilities, and input / output pricing per 1M tokens, plus a "Your models" tab showing per-model usage, cost, and cache-hit sparklines from your actual traffic. ## Dev branches Run multiple local `trigger dev` sessions in parallel (separate git worktrees or coding agents) without runs colliding, each isolated with its own dashboard, via `trigger dev --branch <name>`. ## `TriggerClient` An instantiable client so one process can trigger and read across projects, environments, and preview branches, each with its own auth and baseURL, with no shared global state. ```ts import { TriggerClient } from "@trigger.dev/sdk"; const prod = new TriggerClient({ accessToken: process.env.TRIGGER_PROD_KEY }); const preview = new TriggerClient({ accessToken: process.env.TRIGGER_PREVIEW_KEY, previewBranch: "signup-flow", }); await prod.tasks.trigger("send-email", { to: "user@example.com" }); await preview.runs.list({ status: ["COMPLETED"] }); ``` ## SDK and runtime - AI SDK 7 support (v5 and v6 still supported), with OpenTelemetry telemetry auto-wired - Large trigger-payload offload: trigger payloads at or above 128KB upload to object storage automatically, using the same auth and baseURL as the trigger call - Region support on the runs API: filter runs by region and read each run's executing region (also on MCP `list_runs`) - Duplicate task-id detection: `dev` and `deploy` fail with a clear error instead of silently overwriting - `envvars.upload` gains an `isSecret` flag to import redacted secret variables - Retry hardening: `TASK_MIDDLEWARE_ERROR` now retries under the task's retry policy Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent 4536ede commit 86ef3c4

124 files changed

Lines changed: 887 additions & 1139 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.changeset/agent-skills-bundled-in-sdk.md

Lines changed: 0 additions & 6 deletions
This file was deleted.

.changeset/agent-skills.md

Lines changed: 0 additions & 16 deletions
This file was deleted.

.changeset/ai-prompts.md

Lines changed: 0 additions & 52 deletions
This file was deleted.

.changeset/ai-sdk-7-support.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changeset/ai-tool-helpers.md

Lines changed: 0 additions & 15 deletions
This file was deleted.

.changeset/backpressure-scale-up-freeze.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changeset/bundle-skills-single-pass.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changeset/cap-idempotency-key-length.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changeset/chat-agent-hardening.md

Lines changed: 0 additions & 6 deletions
This file was deleted.

.changeset/chat-agent-on-boot-hook.md

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
 (0)