Since the last update, we shipped 7 v3.0.0 alphas and 21 SDK commits. Last week, Agentuity Coder got real-time clients for WebSocket and SSE. This week, Agent Builder sessions are available in the Coder SDK, WebSocket sessions get a read-only observer path, and agentuity dev gets reliability fixes.
Overview
- Agent Builder sessions in the Coder SDK with
createAgentBuilderSession() - Read-only Coder observers with live subscription updates
- Dev-mode reliability fixes for request timeouts, startup races, proxy routing, and process cleanup
- Coder cookbook docs for session creation, observers, skills, and more
- v3 alpha releases, plus more template and deployment work starting to take shape
- And more!
Agent Builder Sessions from the SDK
Agent Builder is the Coder flow for creating and editing custom agents. You can start from a prompt, edit an existing custom agent, or turn the shape of an existing session into a reusable agent.
This is now available through @agentuity/coder:
import { CoderClient } from '@agentuity/coder';
const client = new CoderClient();
// Create a builder-backed Coder session from a prompt
const session = await client.createAgentBuilderSession({
prompt: 'Create an on-call triage agent for PagerDuty incidents',
label: 'triage-builder',
// Share the session with your org
visibility: 'organization',
});
const sessionId: string = session.sessionId;
The request supports three modes:
newstarts a builder session from a blank slateedittargets an existing custom agent withtargetAgentIdortargetAgentSlugfrom_sessionstarts from another Coder session withsourceSessionId
You can pass mode explicitly, or let the SDK infer the mode for validation from the fields you provide. Passing sourceSessionId validates the request as from_session; passing targetAgentId or targetAgentSlug validates it as edit; otherwise it validates as a new builder session.
Session list and detail responses also include a builder field for builder-backed sessions. List responses get the projected builder summary, while detail responses can include the full proposal state. That gives dashboards and tools enough state to show what the builder is working on from the normal session APIs.
Read-Only Coder Observers
In last week's update, we covered real-time Coder clients for WebSocket and SSE. This week the WebSocket client picked up a cleaner observer path.
Connect with role: 'observer' when you want to watch a session without driving it. You can also send a typed subscribe message while the socket is open to change which events you receive.
import { CoderHubWebSocketClient } from '@agentuity/coder';
import type { ServerMessage } from '@agentuity/coder';
// Choose the Coder session you want to observe
const sessionId: string = 'codesess_abc123';
const client = new CoderHubWebSocketClient({
sessionId,
role: 'observer',
// Start with the event categories you want to receive
subscribe: ['streaming', 'content'],
onMessage: (message: ServerMessage) => {
if (message.type === 'broadcast') {
// Broadcast messages carry the session activity you react to
}
},
});
client.connect();
// Update filters later without reconnecting the socket
client.send({
type: 'subscribe',
patterns: ['streaming', 'content', 'task_*'],
});
The protocol message is type: 'subscribe' with a patterns array. Patterns can be categories, exact event names, wildcard prefixes, or '*'.
SSE remains a one-way observer stream. Mid-connection subscription changes are WebSocket-only.
Handshake failures also carry more useful diagnostics now, including server close codes, close reasons, and the server message type when the failure came from a connection rejection or protocol error.
Dev-Mode Reliability Fixes
This week also included a focused reliability pass on agentuity dev.
Long-running requests no longer hit Bun's default 10-second request timeout. In dev mode, the runtime now sets the request timeout before handing requests to Hono. The default is 0, which disables the timeout. If you want a ceiling, set requestTimeout in createApp():
import { createApp } from '@agentuity/runtime';
await createApp({
requestTimeout: 60, // seconds; 0 disables the timeout
});
Cold starts now fail less loudly. The dev server routes tunnel traffic through the right local proxy, resolves that proxy port before Bun starts, and returns a proper startup response while the backend is still coming up instead of surfacing a stray ECONNREFUSED.
Shutdown cleanup now covers process trees. Child processes are started and cleaned up as process groups, stale dev locks are handled more carefully, and the cleanup guard is tested against the port conflicts that were leaving local runs in a weird state.
These fixes do not change your app code. They make the local loop less brittle when you are streaming responses, waiting on a slow model call, restarting dev mode, or cleaning up after a stopped process.
Also Shipping
CLI and Runtime
--quietfor sandbox exec and run:agentuity cloud sandbox exec --quietandagentuity cloud sandbox run --quietsuppress stdout and stderr. The CLI also detects/dev/nullredirection and avoids creating unused output streams.- Empty Coder workspace guard:
agentuity coder workspace createnow requires at least one repo, saved skill, skill bucket, or enabled agent, so accidental empty workspaces fail early. - Sandbox job log streaming:
agentuity cloud sandbox job logsnow streams stdout and stderr through the same path as sandbox exec output. - Coding-agent package update: the in-CLI coding-agent dependencies moved forward, with interactive install telemetry disabled for CLI sessions.
Docs
- Coder cookbooks: the new Coder cookbook gives Coder workflows a single place in the docs. Start with creating sessions with the SDK, observing sessions through the hub, and attaching skills. It also covers agent rosters, loop mode, remote attach, and workspace reuse.
- OIDC provider docs: the docs now separate Agentuity's OIDC provider flow from app-owned
@agentuity/authusage. - CLI profiles reference: a new CLI profiles reference explains how to work with multiple named CLI configurations. That helps when you switch between orgs, credentials, or local environments.
v3 Alphas and What's Moving
The first v3.0.0 alpha releases are on npm under the alpha dist tag. v2 is still the stable track, and v1 projects still work. Gabe laid out the larger direction in the path to being agnostic: deploy more kinds of apps to Agentuity without making every project fit one runtime or file layout.
If you want to try the alpha track:
bun create agentuity@alpha
On the Horizon
As we move toward v3, we're cleaning up features, including older evals and Workbench surfaces, and moving toward a more framework-agnostic way to deploy apps to Agentuity. Keep an eye out for updates as that work lands.
A few related threads are still moving: paused sandbox timeout controls, route-first starter templates, Vite-style public asset conventions, and preserving agent context when WebSocket handlers call agents. Explorer examples for schedules, WebRTC, and WebSocket flows are still in progress.
A Busy Week Ahead
We'll be in Miami next week for AI Engineer: Miami and React Miami, both part of Frontier Tech Week. AI Engineer runs April 20-21, and React Miami runs April 23-24.
We launched Agentuity publicly at React Miami last year, and it's been a wild ride since then. We've made a lot of progress, and we're excited to be back to talk about it all, and to preview what's coming next!
If you're around for either event, come say hello! And if you can't make it, we'll have a recap blog with all the details for you.
Upgrade
The CLI will prompt you when a new version is available, or you can upgrade manually:
agentuity upgrade
bun add @agentuity/coder@latest
New to Agentuity? Install the CLI:
curl -fsSL https://agentuity.sh | sh
Once you're upgraded:
- Start an Agent Builder session with
client.createAgentBuilderSession({ prompt: '...' }) - Connect a read-only observer with
role: 'observer' - Read the new Coder cookbook pages for session workflows, observers, skills, and workspaces
Resources
Questions or feedback? Drop by our Discord to chat. See you in Miami.