The agent-native workbench is not a chat window

Conversation is useful for intent. A workbench for agentic software must also show what is true now: the task, its changing state, its approvals, and the evidence behind progress.

There is nothing wrong with chat. It is an excellent interface for a question, a quick draft, a line of inquiry, or the first articulation of a task. It gives a person somewhere to think aloud and gives a model enough context to respond.

The trouble begins when the conversation becomes the only place where work exists.

A transcript can show that an agent said it would inspect a repository. It does not show which branch is currently active, whether a command changed a file, which check produced a screenshot, whether a request is waiting for approval, or whether the task is blocked on a missing credential. It tells us what was said. It does not reliably tell us what is true now.

That gap is the design problem for an agent-native workbench.

Start from the moment of uncertainty

Imagine taking over a task that someone else started two hours ago. The agent has edited eleven files, run a test suite, encountered a failed browser check, and stopped before a command that would publish a preview. The next decision may be simple: inspect the visual regression, approve the preview, or abandon the branch. But it will not feel simple if the interface begins with two thousand lines of chronological narration.

The workbench should answer the questions a person naturally asks at that moment:

  • What is the objective?
  • What has actually changed?
  • What is currently blocked or waiting?
  • What evidence is available for the agent's claims?
  • What action requires my decision, and what happens if I allow it?

The interface does not need to make every fact equally prominent. It needs to make the next responsible decision easy.

A task has several kinds of state

Agent interfaces often collapse everything into a single event stream: messages, tool calls, command output, approvals, and final summaries appear as neighboring bubbles. It is a convenient implementation, but a poor mental model. These events have different roles.

Intent is the request and its constraints. It changes rarely and should be visible without scrolling.

Work state is the live environment: the repository, branch, files touched, active services, pending plan, and unresolved blockers. It changes as the task proceeds.

Evidence is the subset of artifacts that supports a claim: a diff, test run, preview, query result, screenshot, or log excerpt. It should be attached to the claim it helps assess, not buried in an undifferentiated feed.

Authority is what the system may do next. Reading a local file, writing a branch, sending a message, deleting a record, and publishing a deployment are different operations. An approval should make the requested action, scope, reversibility, and relevant context clear before it asks someone to decide.

History is the sequence that explains how the task reached its current state. It matters, but it should be a route to detail, not the default surface for every decision.

When these categories are visually distinct, a workbench becomes calmer. The user is not forced to parse narration in order to determine whether the next step is a review, a retry, or a question.

Evidence should arrive when it becomes useful

An agent that claims "the issue is fixed" should not expect a reviewer to trust a polished sentence. But a workbench can make verification exhausting if it presents every build log and every screenshot before the reviewer has seen the change.

The better pattern is progressive disclosure. Start with a concise account: the task changed a specific surface, these checks ran, one limitation remains. Let the reviewer open the diff, inspect the terminal output, or compare the preview when the risk warrants it.

The order matters. A visual change may be assessed first in a preview, then in the code. A dependency update may begin with the lockfile and advisories, then expand into tests. A database operation may lead with its rollback plan and impact estimate. There is no universal panel order because there is no universal kind of work.

The interface should understand that evidence is contextual. It is not a decorative attachment added after the agent has finished speaking.

Approvals are moments of responsibility

An approval request is not another chat message with a button. It marks a change in responsibility. The agent has reached a boundary and is asking a person to authorize something the runtime will carry out.

That request deserves its own surface. Before approving, a user should be able to see:

  • the exact operation and its target;
  • why the task needs it now;
  • the authority that would be used;
  • whether the action is reversible;
  • any evidence or diff that makes the request intelligible;
  • the option to decline, narrow the scope, or ask for a different plan.

The aim is not to convert every small command into an interruption. Good systems classify operations so that routine, bounded work can proceed while consequential actions are brought into focus. The user should not have to remember a policy encoded in a prompt, nor should they be asked to approve an opaque sentence that hides the real effect.

Design for the second person

Tasks are interrupted constantly. A meeting starts. A model call fails. A reviewer changes the priority. A person moves to another task. A new engineer joins an investigation. An agent-native workbench should be designed for that second person, even when the second person is the original operator returning after lunch.

Resumption becomes inexpensive when the screen preserves a compact operating record: the goal, the branch, meaningful actions, failures that changed the plan, outstanding approvals, and evidence already collected. This is not the same as retaining every line of scrollback. A long transcript is often the least useful artifact in a handoff because it makes the reader reconstruct which details still matter.

The design test is practical: can a new person explain the task's current state in one minute, find the supporting artifacts in another, and make the next decision without asking the agent to start its story over?

The goal is a shared workspace

The best workbench will still include conversation. People need a place to state intent, challenge a proposal, and ask questions that do not fit a form. But the center of gravity should shift from conversation about work to the work itself.

That means a clear objective, legible state, scoped approvals, recoverable execution, and evidence that a human can inspect. It means using source, terminal output, previews, logs, and messages as tools for answering a decision rather than filling a dashboard.

When an agent interface is designed this way, it feels less like a conversation with a capable stranger and more like a shared workspace that keeps a careful record. That is the standard worth aiming for.

The best agent interface will feel less like a conversation with a clever assistant and more like a shared workspace with a careful operating record.

Agent-native 工作台不是聊天窗口

对话适合表达意图。Agent 软件的工作台还必须显示当前真实状态:任务、变化中的工作、审批,以及支撑进展的证据。

聊天本身没有问题。它是提问、快速起草、展开思路或第一次表达任务的优秀界面。它给人一个可以思考的地方,也给模型足够上下文来回应。

问题从对话成为工作唯一存在的地方时开始。

Transcript 可以显示 Agent 说过要检查仓库,却不能说明当前在哪个分支、某条命令是否修改了文件、哪次检查产生了截图、请求是否正在等待批准,或任务是否被缺少凭证阻塞。它告诉我们说了什么,却不能可靠地告诉我们当前事实是什么。

这就是 Agent-native 工作台需要解决的设计问题。

从不确定的时刻开始

想象你接手了一个两小时前由别人开始的任务。Agent 修改了 11 个文件、运行了测试、遇到浏览器检查失败,并在发布预览的命令前停下。下一步可能很简单:查看视觉回归、批准预览,或放弃分支。但如果界面从两千行按时间排序的叙述开始,它就不会简单。

工作台应该回答人在那一刻自然会问的问题:

  • 目标是什么?
  • 实际发生了什么变化?
  • 当前被什么阻塞或等待?
  • 有哪些证据可以支持 Agent 的结论?
  • 哪个动作需要我的决定,允许之后会发生什么?

界面不需要让所有事实同样显眼,但需要让下一项负责任的决定容易做出。

一个任务有多种状态

Agent 界面经常把一切压缩成一条事件流:消息、工具调用、命令输出、审批和最终摘要挨着出现。这种实现很方便,却不是好的心智模型,因为这些事件承担不同角色。

意图是请求及其约束。它很少变化,应该无需滚动就能看到。

工作状态是实时环境:仓库、分支、修改文件、运行中的服务、待执行计划和未解决阻塞。它会随着任务变化。

证据是支持某项结论的产物子集:Diff、测试运行、预览、查询结果、截图或日志片段。它应该附着在自己帮助评估的结论上,而不是埋在没有区别的 Feed 中。

权限是系统下一步可以做什么。读取本地文件、写入分支、发送消息、删除记录和发布部署属于不同操作。审批应该在请求决定前清楚说明动作、范围、可逆性和相关上下文。

历史是任务如何走到当前状态的序列。它很重要,但应该作为通往细节的路径,而不是每个决定的默认界面。

当这些类别在视觉上被区分时,工作台会更平静。用户不必解析叙述,才能判断下一步是 review、重试还是提问。

证据应该在有用时出现

Agent 说“问题修好了”时,不应该期待 reviewer 只相信一段精致句子。但如果工作台在 reviewer 看到变更之前展示每一行构建日志和每一张截图,验证也会变得疲惫。

更好的方式是渐进披露。先给出简洁说明:任务修改了什么、运行了哪些检查、还剩一个什么限制。风险需要时,再让 reviewer 展开 Diff、终端输出或预览。

顺序很重要。视觉变更可能先在预览中评估,再看代码;依赖升级可能先看锁文件和安全建议,再扩展到测试;数据库操作可能先展示回滚计划和影响估计。没有统一的面板顺序,因为工作也没有统一的类型。

界面应该理解证据是有上下文的。它不是 Agent 说完后再贴上的装饰品。

审批是责任发生变化的时刻

审批请求不是带一个按钮的聊天消息。它标志着责任边界:Agent 到达了一个运行时边界,请求一个人授权它执行某项动作。

这个请求值得拥有自己的界面。批准前,用户应该能看到:

  • 精确的操作和目标;
  • 任务为什么现在需要它;
  • 将使用什么权限;
  • 动作是否可逆;
  • 让请求变得可理解的证据或 Diff;
  • 拒绝、缩小范围或请求另一种计划的选项。

这不是要把每条命令都变成中断。好的系统会对操作分类,让日常、边界清楚的工作继续进行,同时把有后果的动作放到焦点上。用户不应该记住写在 Prompt 里的政策,也不应该批准一段隐藏真实影响的模糊句子。

为第二个人设计

任务不断被中断。会议开始,模型调用失败,reviewer 改变优先级,新工程师加入调查。即使第二个人只是午饭后回来的原作者,Agent-native 工作台也应该为这个人设计。

当屏幕保留一份紧凑的运行记录时,恢复会变得便宜:目标、分支、有意义的动作、改变计划的失败、未决审批和已有证据。这不是保存每一行滚动输出。交接时,长 Transcript 往往是最没用的产物,因为它迫使读者重新判断哪些细节仍然重要。

实际的设计测试是:新的人能否在一分钟内说明任务当前状态,再用一分钟找到证据,并在不要求 Agent 从头讲故事的情况下做出下一项决定?

目标是共享工作区

最好的工作台仍然会包含对话。人需要表达意图、质疑提案,提出不适合表单的问题。但中心应该从“关于工作的对话”转向“工作本身”。

这意味着清晰的目标、可理解的状态、有边界的审批、可恢复的执行,以及人可以检查的证据。源码、终端输出、预览、日志和消息都应该服务于一个决定,而不是填满 Dashboard。

当 Agent 界面这样设计时,它不像是在和一个有能力的陌生人对话,而更像一个保留谨慎运行记录的共享工作区。这才是值得追求的标准。

最好的 Agent 界面不会像和聪明助手聊天,而会像一个有可靠操作记录的共享工作区。