Musings

Designing for an agent

At Codegen I designed for an autonomous coding agent - you could tag it from GitHub or Slack, hand it a task, and it would come back with a pull request. Most of the UI patterns I’d relied on for a decade assumed a person driving every click. An agent breaks that assumption.

The hard part wasn’t making the agent look smart. It was making it legible. When software takes actions on your behalf, trust comes from showing its work: what it understood, what it’s doing, where it is, and how to step in. We spent most of our design effort on the trace - the running account of the agent’s reasoning and changes - because that’s where trust is won or lost.

A few things I’d carry into any agent product:

  • Default to transparency over magic. People forgive a slow, visible process. They don’t forgive a confident wrong answer with no trail.
  • Design the handoffs. The interesting moments are where control passes between the person and the agent. Make those obvious and reversible.
  • Treat latency as a design material. Agents think in seconds and minutes, not milliseconds. The waiting is part of the experience, so give it shape.

Codegen was acquired by ClickUp. I think we’re still early in working out what AI-native software should feel like - which is most of why it’s the most interesting design problem I’ve worked on.