Skip to main content
A chat agent is three parts: a long-lived agent task that runs the turn loop, a durable Session carrying messages in and the response stream out, and a frontend transport that plugs the session into useChat. The pages in this section each own one part of that picture. This page is the map — if you’d rather read mechanics end to end, skip to How it works. Everything below maps onto one annotated agent:
trigger/my-agent.ts
The frontend side is one hook — useTriggerChatTransport connects useChat to the agent’s session, no API routes (Frontend). Underneath, the conversation lives on a Session: a pair of durable streams keyed on your chatId that survives refreshes, deploys, and run boundaries.

Where each part is covered

Beyond this section: Features covers opt-in capabilities (Head Start, compaction, steering, actions), and Patterns covers production recipes (sub-agents, HITL approvals, persistence, recovery).