Seer Agent
Send to Agent Feature

Role
Product designer
Timeline
Summer 2026
Team
AI/ML Seer Agent
1 Design Advisor, 4 Engineers, 1 PM
Skills
Interaction design
Product flows, Systems thinking
  • Handed off for the next shipping cycle with design, engineering, and PM sign-off, then presented to Sentry’s CTO, CFO, Chief of Staff, and Head of Design.
  • Turned hand copying, 306 clipboard and 235 session-link copies in a 30-day May window, into one click with two payload scopes.
  • Made the send a single tap for the 97% of users who had one agent, while keeping tool-call detail in the payload.

Seer finds the cause. The fix gets written somewhere else.

Seer is Sentry’s debugging agent. A developer asks it in plain language what broke, and it reads the issue, traces, logs, and profiles to answer. When they are ready to write the fix, they leave for Claude or Cursor, and the reasoning that found the bug has to make the trip with them.

I designed that handoff during my AI/ML internship: the entry points, what each one sends, and how the chat confirms it. A design advisor reviewed each round, four engineers worked the payload out with me on a whiteboard, and I settled the confirmation copy with the PM.

Context left Seer by hand.

Problem Statement: Developers using Seer experience lost context and evidence when they hand an investigation to a coding agent, because the only ways to move it are copying by hand or sharing session links that agents cannot open, leading to broken handoffs and fixes that start without the reasoning that found the bug.

The obvious fix is a link. But Seer’s session links are auth-gated and rendered in the browser, and a local agent has no logged-in browser to open them in. That left the clipboard, which holds one thing at a time and gets overwritten by the next copy. So the real question was not where to put a button. It was how to move enough of the investigation that another agent could pick it up.

Three structural questions came before styling a single component. Every answer had a design implication, and every implication had an engineering constraint.

  1. 1Where does it live?

    Navigation, message level, or a slash command.

  2. 2What does it send?

    A single block, the full conversation, or something in between.

  3. 3What happens after?

    The agent doesn’t send results back, so the chat has to confirm the handoff.

Two ways to send context to a coding agent

Send a specific response

A developer has found a useful response and is ready to act on it. The action beside that response sends the answer, its related tool calls, and the last user message.

This example shows multiple configured agents: open the robot menu, choose Claude, then see confirmation in the chat.

Send the full conversation

When the next step belongs in a coding agent, the top navigation sends the full conversation. Earlier questions, findings, and tool calls travel together.

This example shows one configured agent. Clicking the Claude icon starts the handoff directly; the caret keeps agent choices and integration setup accessible.

Where a response is what matters, the developer sends just that answer and its context. Where the whole thread matters, the navigation sends everything. With one agent configured the icon sends on click; with several, it opens the choices. Design, engineering, and PM approved this version. Here is how it got there.

Two developers

I started with two developers in FigJam.

A specific finding

The expert developer

Seer has surfaced something useful. They know which part they want to act on.

Use case: act on a specific finding
Send that response and its supporting context to a coding agent as a prompt or starting point, without copying it by hand.
Entry pointChat level

A continuing investigation

The vibe coder

They have reached a limit in Seer and want to keep going in their coding agent.

Use case: continue the investigation
Send the full Seer conversation to Claude or Cursor and keep working with the context already built.
Entry pointNavigation bar

What were developers already copying?

I pulled Amplitude for a 30-day window in May. Block copying had launched on May 21, so its 45 events had less exposure than the 114 to 336 a week it reached from June through August, and I kept the two periods separate.

Amplitude chart from the internship presentation showing session clipboard, session link, and block-copy activity through May
May: weekly copying, separate from the 30-day totals.
Amplitude chart from the internship presentation showing weekly copying activity from June through August
June through August: block copying became routine. Copying observed before Send to Agent existed.

Where the first direction fell apart: session links could not be read by a local agent, so the payload became the product.

The payload became readable content; 306 clipboard copies and 235 link copies in 30 days backed the call.

What travels with the send?

I mapped the handoff in FigJam, then worked the payload through on a whiteboard with an engineer.

Send to Agent journey map comparing manual copying with proposed handoff and setup paths
Existing workarounds beside the proposed handoff.

A single reply was often incomplete. A range “up to this point” avoided unrelated threads but asked the developer to judge which turns and tool outputs mattered. So I fixed two scopes: a response with its last user message and related tool calls, or the full conversation.

Whiteboard brainstorming with an engineer about agent choice, payload, and optional prompts
What to send, how to choose the destination, whether to ask for more.

Critique shrank the button

In critique the split button gave a secondary action too much weight, and one menu holding destination, scope, download, and setup added decisions. I moved to a compact action whose placement says what will be sent.

Early Send to Agent button beneath a response
A visible action beneath the response.
Table output used to explore a three-dot send action
An action on the table itself.
Selected text revealing a contextual Send to agent action
Select a passage to reveal the action.
Guided handoff asking whether to add written context
Ask for context before sending.

I annotated both scopes in Figma so engineering would carry the question, the answer, and the tool output even with the details collapsed.

The key shift: the button could stay small because the payload had been worked out behind it.

Chrisandra’s Figma workspace showing Send to Agent iterations and discarded concepts
The working file, discarded directions included.

Two scopes, annotated in Figma, went to engineering as the payload contract.

Where should the button live?

Three slash-command structures were not discoverable enough for the MVP, and Seer already had a feedback pop-up, so I dropped the idea of another command-triggered form. I reused the Autofix robot pattern as a compact icon whose placement sets the scope.

Wireframe with separate slash commands for the full conversation and most recent response
The two scopes as commands in the input.
Existing Seer Agent feedback form
Seer’s existing feedback pop-up, the reason I avoided another form.
Entry point
Split button in the toolbarPro: visible. Con: too much weight for a secondary action. Cut.
Slash commandPro: kept the send in the composer. Con: none of three structures was discoverable. Cut for MVP.
Icon action, nav and message levelPro: matched the Autofix robot pattern people knew. Con: relied on placement to say what it sends. Chosen.
Payload
Single blockPro: simplest to send. Con: too little context for the next agent. Cut.
Range, “up to this point”Pro: avoided unrelated threads. Con: lost evidence and made the developer choose. Cut.
Two scopes: response with context, or full conversationPro: the entry point set the scope. Con: the full conversation sends more material. Chosen; the model weighted what mattered.
After sending
Inline tool-call updatePro: nothing new in the chat. Con: easy to miss when scrolling back. Cut.
Large status cardPro: a persistent record. Con: implied Seer was tracking the other agent’s work. Cut.
Compact confirmation with session linkPro: confirmed the one event Seer could verify. Con: says nothing about the fix. Chosen.
Final chat and navigation flows for multiple agents, a default agent, and zero states
Design 1 and Design 2 boards as handed to engineering: both entry points across no-agent, one-agent, and multiple-agent configurations, then the zero states.

One icon in two places, the Autofix robot pattern reused, went to engineering on the Design 1 and Design 2 boards.

What happens with zero, one, or many agents?

With none configured, the menu shows “No Agents Configured” and “Add Integration.” Setup can need an admin, so a missing integration had to read as a route to settings rather than a broken handoff.

Button states showing no agents configured, one configured agent, and multiple agents
No configured agents, one agent, multiple agents.

Rules for the edges

  • No agent configured is not an error. Only admins can add integrations, so the menu offers “Add Integration” instead of a failure state.
  • The hidden send message never appears as a user bubble. Sending creates a background message for the integration; only the confirmation belongs in the visible chat.

Three button patterns and two edge rules were documented on the button-states board.

What can Seer honestly confirm?

I first explored a large “Sent to Coding Agent” card with running, success, and error states. Then two engineers, a day apart, gave me opposite answers on whether the integration could return status. I brought engineering and PM into one thread and pushed for a written decision. The question became what Seer could honestly confirm.

Large handoff card explored across launch, running, success, and error states
The larger card, including a version that ended the chat session.

The answer was that the receiving agent does not send a fix back, so success can only mean the context arrived. The card shrank to a launching indicator, a success line with a session link, or an error, all on the existing alert component.

Copy names the scope

Original Send to Agent success, session-link hover, and error designs
Confirmation and the session link beneath the response; the alert near the composer.
Confirmation copy, scoped to what was sent
ScopeSuccessError
One responseSuccessfully sent response to AgentCould not send response to Agent
Full conversationSuccessfully sent conversation to AgentCould not send conversation to Agent

Errors match their success strings, so a failed navigation send is never mistaken for a failed reply send. I worked the wording through with the PM.

Four confirmation strings shipped in the spec on the existing alert component.

The design was approved and has not shipped yet.

Design, engineering, and PM approved the design and it entered the shipping cycle. I handed off both entry points, what each sends, and the setup, launching, success, and failure behavior. At the end of the internship I presented it, with my three other projects, to Sentry’s CTO, CFO, Chief of Staff, and Head of Design. It had not shipped by then, so I have no post-release usage data.

The next opportunity

Delivery per destination. A cloud agent could return a session link while a local agent needs a different open action, with the same two scopes underneath and the confirmation tied to the one event each integration can verify.

What I took away

Data should shrink the interface, not decorate it

97% of users had one agent configured, so the dropdown became a direct action. 12 of 1,000 messages opened tool calls, so the details stayed collapsed but still travelled in the payload. I learned to use analytics to remove steps, not to justify adding them.

Design the payload before the button

The interface looked like one small icon. The real design was the contract underneath it: which messages, tool calls, and prompt travel together. What looked like a button problem was a systems problem, and I now start with what moves through an interface before I style it.

Ambiguity is a conversation you haven’t had yet

Two engineers gave me opposite answers about what the integration could return, a day apart. Instead of designing around the contradiction, I brought engineering and PM into one thread and pushed for a written decision. I no longer treat conflicting guidance as a constraint to absorb.