Handoff: The AI Workspace Where Agents Remember

Case study

Handoff: The AI Workspace Where Agents Remember

engineeringaiuiBy Jackson Barnes

I designed and built an agent-first platform for shared context and configurable AI agents, with MCP and REST APIs for headless workflows and a visual workspace for people to inspect and shape the same system.

Handoff agent home with selectable agent profiles and a shared workspace composer โ€” explore the live product (opens in a new tab)

Founder & Principal Design Engineer ยท Product design, full-stack engineering, and AI integration

I founded Handoff and led its design and development as an agent-first platform for shared context and configurable AI agents. An agent can use MCP or REST APIs to organize information, configure itself, create another agent, and continue a conversation without opening the web app. I designed the visual workspace so people can inspect and shape that same system.

  • Ownership: Product direction, interaction design, full-stack implementation, and agent integrations.
  • Technical scope: An agent-editable harness, persistent sessions, a versioned context graph, and shared MCP and REST API operations.
  • Delivery: Headless agent and context workflows with an optional visual workspace; textable cloud agents remain in development.

An Agent-Editable Harness

The agent configuration is part of the system an agent can operate. Through shared tools, an agent can update its own instructions, choose a model, change its avatar, attach context, and schedule a prompt. Instructions, model selection, and attached context persist for later turns; avatars update asynchronously, and schedules trigger future prompts.

I also built tools for creating persistent agents and messaging them. A message creates or continues the target agent's session and waits for its reply, so one agent can involve another through the same API it uses for other work. The harness is configurable from a request; the user does not need to open a settings panel to make each change.

Handoff agent system: API and MCP clients or an optional interface connect to an agent harness; tools can update the setup, return a response, and create or message other agents

Agents can change their setup through tools, create other agents, and send messages to their sessions. Updated instructions and model choice apply to later turns.

Open runtime diagram at full size

Shared Context Beyond a Single Session

I built MCP integration around the application API so external AI tools, managed agents, and the web app work with the same items and relationships. Operations include creating and connecting information, searching, reading document content, and accessing history. The context system remains useful independently of Handoff's own conversation interface.

Requests carry authenticated caller context, with access checked at the API boundary. Graph mutations run through a per-space transaction coordinator and produce versioned records in PostgreSQL. Markdown versions and images live separately in object storage, linked from the graph by resource references. Scoped live updates carry changes to connected views, while history and restoration let users review and recover stored graph state.

Handoff context system: agents and people use a shared API to access connected items, documents and media, and version history

Agents and people work with the same connected information. Documents, media, and history remain available across conversations, with or without the web interface.

Open context diagram at full size

DecisionWhy it matters
Use one model of items and relationships across the tree, graph, and APIsVisual editing and agent access operate on the same information.
Make agent configuration available through shared toolsAgents can change their instructions and setup without a separate manual editing workflow.
Start retrieval with a bounded overview, then request relevant detailsAgents can navigate the workspace without loading every document into a model's context window at once.
Pair live updates with history and restorationUsers can follow agent activity, review the result, and recover earlier state.

Technical Stack

I built the interface and services around a shared set of data and API contracts, so visual editing and agent actions can stay connected.

LayerImplementation and purpose
Web workspaceNext.js, React, and TypeScript for the application; Lexical for Markdown editing and Three.js with 3d-force-graph for spatial navigation.
Application APIHono with Zod-validated OpenAPI routes and a generated TypeScript client. MCP exposes workspace operations to external AI tools through the API.
Context and historyPostgreSQL and Drizzle, accessed through Cloudflare Hyperdrive. Versioned items, relationships, and commits support graph history and restoration.
Documents and mediaCloudflare R2 stores images and immutable Markdown resource versions, with references linking content back to workspace items.
Agent executionCloudflare Workers and Durable Objects manage persistent sessions and turn coordination; AI SDK adapters connect the runtime to different model providers.
Live experienceServer-sent events stream agent responses, while WebSockets carry workspace changes back to connected clients.

AI Engineering Behind the Experience

An agent needs useful context, dependable tools, and continuity between turns. I built those concerns into the runtime:

  • Context assembled for the task. Active-session context takes priority over persistent attachments. A bounded graph overview gives the model a map of the workspace; tools retrieve item details when needed instead of loading every document upfront.
  • History within a working budget. The model receives recent messages plus bounded excerpts of older conversation. A history-search tool can retrieve stored messages, keeping earlier work accessible without sending the entire transcript on every turn.
  • Tools with explicit contracts. Shared tool definitions validate arguments before execution and call authenticated application APIs. This connects model actions to the same workspace operations and permission checks used elsewhere in the product.
  • Sessions that survive interrupted views. I separated persisted conversation state from the live stream and serialized turns within a session. Recovery checkpoints are saved only when no tool call is in progress, and bounded stream replay lets a reconnecting client catch up with an active turn.
  • Instructions loaded when relevant. Agents see a compact catalog of assigned skills and activate instructions on demand. The runtime pins the selected version for retries, making the instruction set reproducible without treating a skill as additional permission.
  • Model choice behind one runtime. Provider adapters handle differences between model APIs while preserving the surrounding tool and session machinery. Stable instructions are separated from turn-specific context, with prompt-cache hints where the provider supports them.

The Challenge

Useful context accumulates in conversations, documents, and individual AI tools. Moving between them often means repeating instructions or copying information, with little visibility into what an agent actually knows.

Handoff makes that context accessible to agents through tools and to people through a visual workspace. Notes, decisions, and sources can be linked and maintained across sessions, while agent configuration can be inspected and changed through either interface.

Design principle: People should be able to inspect and change the context their agents use, then see what those agents change in return.

Making the System Understandable

I designed tree navigation, a visual graph, and an agent conversation as connected views of the same workspace. Each has a different job: the tree provides structure, the graph exposes relationships, and the conversation lets an agent work with that context.

The challenge was connecting those views without asking users to understand the implementation behind them. An item needed to remain the same piece of information whether someone opened it visually or an agent accessed it through an API.

Handoff workspace showing linked knowledge in a graph, a navigable item hierarchy, and an agent conversation

One workspace, three connected views: structured navigation, a visual context graph, and an agent working alongside it.

From Concept to Working Product

My work brought together product design, the context model, the agent runtime, and the APIs that make both available without the interface. The visual workspace gives people a way to organize context, inspect agent activity, and continue working with that information across sessions and tools.

The product presentation makes that architecture understandable before someone enters the workspace, connecting the visual identity and website to the idea of shared context.

Handoff product website introducing a shared AI workspace with a connected context graph

The product presentation connects the underlying architecture to a simple user promise: carry context between people, agents, and tools.

In Development: Textable Cloud Agents

The next direction extends access to the configurable agent system through texting. The textable cloud-agent experience remains in development; the preview shows how conversations could continue beyond the workspace interface.

Preview of Handoff textable cloud agents, labeled in development

Concept for text-based access to configurable cloud agents. In development.

Visit Handoff โ†—