Glean 拾遗
Daily /2026-06-03 / Designing for Agents: Patterns, Feedback, and Context

Designing for Agents: Patterns, Feedback, and Context

Source x.com Glean’d 2026-06-03 06:00 Read 10 min
AI summary

Ramp’s MCP weekly active users grew 10x in 3 months; Salesforce launched Headless 360, signaling that 80% of software interaction is shifting to agents. The article proposes a new pattern: User → User’s Agent → Software’s Agent → Database, and offers three practical heuristics: proactively teach calling agents how to succeed (like Notion pre-loading a Markdown spec); build feedback loops via required rationale, a feedback tool, and purpose-built seeds; mind the context gap in agent-to-agent interactions by letting each side contribute what it knows best. Essential reading for product teams building agent-native interfaces.

Original · 10 min
x.com ↗
§ 1

Designing for Agents

If you spend time in the same corner of X as I do, scrolling past the "How I built a second brain with Obsidian" and "Anthropic just KILLED [insert industry] FOREVER" posts, you've probably also seen the take that UI is dead. And unless a product can be used by agents via an MCP, API, CLI, or something in between, it won't survive.

The trend is real at Ramp. Over the past three months, weekly active users on our MCP have grown 10x as more customers reach into the product through Claude, ChatGPT, and other agents.

Last week, Salesforce became one of the first incumbents to lean into this thesis.

From VentureBeat:

Salesforce on Wednesday unveiled the most ambitious architectural transformation in its 27-year history, introducing "Headless 360" — a sweeping initiative that exposes every capability in its platform as an API, MCP tool, or CLI command so AI agents can operate the entire system without ever opening a browser.

The announcement, made at the company's annual TDX developer conference in San Francisco, ships more than 100 new tools and skills immediately available to developers. It marks a decisive response to the existential question hanging over enterprise software: In a world where AI agents can reason, plan, and execute, does a company still need a CRM with a graphical interface?

Salesforce's answer: No — and that's exactly the point.

This is a smart move by Salesforce, and one that I can't imagine was easy to make. Ask most salespeople, and they'll tell you how much they dislike using Salesforce. But the product is pervasive because of the familiarity of its UX. Sales leaders aren't interested in ramping up their teams on new technology, and consistency frequently trumps functionality.

Benioff and team are accepting that this moat is eroding and leaning into the reality that a majority of usage will be driven through agents like Claude, ChatGPT, and other background processes that users never see.

I don't think UI is dying. Humans still want to point and click, see their configurations, and verify completed work. But the 80/20 has flipped: the new 80% of interaction with software will be through agents. That changes not only what you need to build, but how you build it.

为代理而设计

如果你和我一样常在X的某个角落刷到“我用Obsidian构建第二大脑”和“Anthropic刚刚永久干掉了[插入行业]”之类的帖子,那你大概也见过“UI已死”的论调。除非一个产品能通过MCP、API、CLI或类似接口被代理使用,否则它将无法生存。

这个趋势在Ramp是真实存在的。过去三个月,通过Claude、ChatGPT和其他代理访问我们产品的每周活跃MCP用户增长了10倍。

上周,Salesforce成为首批押注这一论点的行业巨头之一。

来自VentureBeat:

Salesforce周三宣布了其27年历史上最具雄心的架构转型,推出了“Headless 360”——一项全面的倡议,将平台上的每项能力都暴露为API、MCP工具或CLI命令,使AI代理无需打开浏览器即可操作整个系统。

该公告是在旧金山举行的公司年度TDX开发者大会上发布的,向开发者提供了100多个新工具和技能。它标志着对悬在企业软件头上的终极问题的果断回应:在一个AI代理能够推理、规划和执行的世界里,一家公司还需要带图形界面的CRM吗?

Salesforce的答案是:不需要——而这正是关键。

这是Salesforce的明智之举,我认为做出这个决定并不容易。问问大多数销售人员,他们会告诉你他们有多不喜欢使用Salesforce。但这个产品之所以无处不在,是因为其UX的熟悉度。销售领导不愿让团队学习新技术,一致性常常胜过功能性。

Benioff和他的团队正在接受这个护城河正在侵蚀的现实,并拥抱未来:大部分使用将通过Claude、ChatGPT和其他用户永远看不到的后台进程驱动的代理来完成。

我不认为UI正在消亡。人类仍然想要点击、查看配置并验证完成的工作。但80/20法则已经翻转:新的80%的软件交互将通过代理完成。这不仅改变了你需要构建什么,也改变了你如何构建它。

§ 2

The new interaction pattern

For the past twenty years, the primary way people have interacted with software has been:

User → Interface → Database

You open a product, click around, get things done. The interface is how you experience the software. For most people, the interface is the product.

As agents take on more of the work, a new layer has emerged:

User → User's Agent (e.g. Claude) → Database

The agent acts on the user's behalf. It reads, writes, and navigates the product so they don't have to. And suddenly the interface is gone. The agent is talking directly to the system underneath.

But even this is rapidly changing. Software companies are (and should be) designing their own agents and capabilities. So the new pattern looks more like this:

User → User's Agent → Software's Agent → Database

In this model, the software's agent handles complexity on behalf of the user's agent: applying business logic, enforcing rules, pulling in context the latter doesn't have. Two LLMs working together to drive toward an outcome.

新的交互模式

过去二十年,人们与软件交互的主要方式一直是:

用户 → 界面 → 数据库

你打开产品,点击操作,完成任务。界面是你体验软件的方式。对大多数人来说,界面就是产品。

随着代理承担越来越多的工作,一个新的层级出现了:

用户 → 用户的代理(例如 Claude)→ 数据库

代理代表用户行事。它读取、写入和导航产品,用户无需亲自操作。突然间,界面消失了。代理直接与底层系统对话。

但即使如此,情况也在迅速变化。软件公司正在(也应该)设计自己的代理和能力。因此新的模式更像是这样:

用户 → 用户的代理 → 软件的代理 → 数据库

在这个模型中,软件的代理代表用户的代理处理复杂性:应用业务逻辑、强制执行规则、引入后者没有的上下文。两个LLM协同工作,推动实现结果。

§ 3

Teach agents how to succeed

I do a majority of my brainstorming, writing, and ideating with LLMs. When a draft is ready to share, I push it to Notion through their MCP server. I was a Google Docs loyalist for years; Notion's MCP flipped me.

One thing I appreciate as a Notion MCP user is how every time I ask an agent to write something, it nails it. Tables, bullets, italics, lists, you name it — the agent never fails.

This is by design.

The notion-create-pages tool's description opens with: "For the complete Markdown specification, always first fetch the MCP resource at notion://docs/enhanced-markdown-spec. Do NOT guess or hallucinate Markdown syntax." When I ask my agent to write to a page, that's the first thing it does. It fetches the spec, then writes. Every Notion-specific assumption gets explicitly called out against the general model's defaults.

In an old world, that spec would've lived in API docs, and a developer integrating with Notion would read it, internalize it, and write a transformation layer. Now Notion hands the spec directly to the agent, at the moment it's needed.

If you've ever used the Slack MCP, you've probably experienced the inverse of this. Your agent assumes standard markdown and doesn't adhere to Slack's specific formatting. You end up spending more time editing the formatting than you would have writing the message:

Sure, the formatting guidelines are online and you could save them somewhere and teach your agent how to use them. But that's annoying, and it shouldn't be necessary.

Think about what your agent's callers need to know to succeed, and give it to them proactively. Don't make them figure it out.

教导代理如何成功

我大部分头脑风暴、写作和构思都使用LLM。当草稿准备好分享时,我会通过Notion的MCP服务器将其推送到Notion。多年来我一直是Google Docs的忠实用户;Notion的MCP让我彻底转变。

作为Notion MCP用户,我欣赏的一点是,每次我让代理写东西,它都能完美完成。表格、项目符号、斜体、列表,应有尽有——代理从不失误。

这是有意为之。

notion-create-pages工具的描述开头是:“要获取完整的Markdown规范,首先总是获取MCP资源:notion://docs/enhanced-markdown-spec。不要猜测或幻觉Markdown语法。”当我让代理写入页面时,它做的第一件事就是获取规范,然后写入。每一个Notion特有的假设都被明确地与通用模型的默认值区分开来。

在过去,这个规范会存在于API文档中,与Notion集成的开发者会阅读它、内化它,然后编写一个转换层。现在Notion在需要的时候直接把规范交给代理。

如果你用过Slack MCP,你可能经历过相反的情况。你的代理假设标准Markdown,不遵循Slack特定的格式。结果你花在编辑格式上的时间比写消息本身还多:

当然,格式指南在线,你可以保存它们并教会你的代理如何使用。但这很烦人,而且本不必要。

想想你的代理的调用方需要知道什么才能成功,并主动提供给他们。不要让他们自己去摸索。

§ 4

Build feedback loops

When we first launched our MCP at Ramp, observability was our largest problem. We could see tool call volume, but we couldn't see the surrounding chat context that produced those calls. Volume alone didn't tell us what was working, what was breaking, or what people were actually trying to accomplish.

We've addressed this in a few ways:

  1. Require a 'rationale' on every tool call. Every MCP or CLI tool call requires the agent to include a rationale parameter explaining why it's making the request. We can't see the chat, but the rationale reconstructs intent. Patterns in the rationales tell us what people are actually trying to do.
  2. A feedback tool. We shipped a standalone tool the agent can call when it gets blocked or runs into a pattern that isn't working. The agent submits what it was trying to do, what it tried, and where it got stuck.
  3. Tool-specific seeds. We add purpose-built parameters to individual tools to capture context we'd want later: things the agent has access to that we'd otherwise have to infer.

Imagine you're building a customer support platform, and you offer tools for customers to fetch tickets. Over time, you start noticing the same phrase in rationale logs: "building an incident report," "drafting incident summary," "gathering tickets for an outage postmortem."

That's a new product feature! A build-incident-report tool could identify related tickets, score severity, pull the affected customer segment, and draft a summary in a strongly opinionated format.

Once that's live, you might start receiving feedback on the tool: "the report pulled in tickets from three days ago that weren't part of this incident" or "it keeps including tickets from free-tier users who don't belong in postmortems." All of a sudden you've got agents telling your agents exactly what to build. Agents hallucinate, sure. But they're also more specific and more consistent in their feedback than most humans you'd ever ship to.

If the report pulls irrelevant tickets, you add a date range parameter. If it shouldn't include free-tier customers, you add a segment filter. Each feedback loop becomes a new way for the product to improve.

构建反馈循环

我们在Ramp首次推出MCP时,可观测性是我们最大的问题。我们可以看到工具调用量,但看不到产生这些调用的聊天上下文。仅凭调用量无法告诉我们什么在起作用、什么在崩溃,或者人们实际想完成什么。

我们通过几种方式解决了这个问题:

  1. 要求每次工具调用都附带“理由”。每个MCP或CLI工具调用都需要代理包含一个理由参数,解释为什么发出请求。我们看不到聊天,但理由可以重建意图。理由中的模式告诉我们人们实际想做什么。
  2. 一个反馈工具。我们发布了一个独立的工具,当代理遇到阻碍或遇到不工作的模式时可以调用它。代理提交它试图做什么、尝试了什么以及卡在哪里。
  3. 工具特定的种子参数。我们为单个工具添加了专门设计的参数,以捕获我们以后需要的上下文:代理可以访问但我们否则需要推断的信息。

假设你正在构建一个客户支持平台,并提供工具让客户获取工单。随着时间的推移,你开始在理由日志中注意到同样的短语:“构建事件报告”、“起草事件摘要”、“收集停机事后分析的工单”。

这就是一个新功能!一个构建事件报告工具可以识别相关工单、评分严重性、提取受影响的客户群,并以一种高度规范化的格式起草摘要。

一旦上线,你可能会开始收到关于该工具的反馈:“报告拉了三天前的工单,这些工单不属于这次事件”或“它总是包含免费层用户的工单,这些用户不属于事后分析。”突然间,你有了代理告诉你的代理到底该构建什么。当然,代理会幻觉,但它们的反馈比大多数人类用户更具体、更一致。

如果报告拉取了不相关的工单,你添加一个日期范围参数。如果不应该包含免费层客户,你添加一个分段过滤器。每个反馈循环都成为产品改进的新途径。

§ 5

Mind the context gap

In any agent interaction, your system has context the calling agent doesn't have, and the calling agent has context your system doesn't have. When designing these interactions, you should have an opinion about where each has a leg up.

Let's say Diego goes on a business trip. Diego's AI chief of staff picks up a Slack nudge from the expense management system's agent: he has incomplete expenses from his recent trip. Two agents are now pointed at the same outcome: submit these expenses correctly.

These two agents bring their own context.

What Diego's chief of staff brings:

  • Diego's calendar: knows which meetings happened, when, and with whom
  • Diego's email: has the hotel and flight confirmation as attachments
  • Diego's Slack: can correlate the Kokkari dinner to a thread where he invited the Acme team
  • Diego's receipts (pulled from email attachments and photo library)

What the expense management system brings:

  • The raw transaction data (e.g., merchant, time of transaction)
  • The company's policies around submission
  • The company's GL accounts
  • The company's historical coding patterns

A traditional API would dump the problem back on the user. "Here is a transaction that needs a GL code. Use this endpoint to fetch the 150 GL code options, and pick one."

A well-designed agent interaction flips this — it doesn't ask for a GL code. It asks for context: was this a client meal, a team meal, or personal travel? The chief of staff agent pulls the answer from a calendar entry or a Slack thread. The EM system applies the correct code based on the context it was missing.

Diego and his agent never need to know what the GL codes are, and the finance team gets accurate categorization. Each side contributes what it knows, and delivers an outcome that is better for Diego — and his accountant.

As you design these agent-to-agent interactions, be mindful of the context gap. It's ok to admit where your agent falls short — you're both serving the same user.

注意上下文差距

在任何代理交互中,你的系统拥有调用方代理没有的上下文,而调用方代理也拥有你的系统没有的上下文。在设计这些交互时,你应该对各自的长处有明确的看法。

假设Diego出差。Diego的AI首席助理收到费用管理系统代理的Slack提醒:他最近出差的费用不完整。现在两个代理指向同一个目标:正确提交这些费用。

这两个代理各自带来自己的上下文。

Diego的首席助理带来:

  • Diego的日历:知道哪些会议发生了、何时、与谁
  • Diego的邮件:附有酒店和航班确认件
  • Diego的Slack:可以将Kokkari晚餐与他邀请Acme团队的线程关联起来
  • Diego的收据(从邮件附件和照片库中提取)

费用管理系统带来:

  • 原始交易数据(例如商户、交易时间)
  • 公司关于提交的政策
  • 公司的GL科目
  • 公司历史编码模式

传统的API会把问题抛回给用户。“这是一笔需要GL代码的交易。调用这个端点获取150个GL代码选项,然后选一个。”

设计良好的代理交互则相反——它不问GL代码。它询问上下文:这是客户餐、团队餐还是个人旅行?首席助理代理从日历条目或Slack线程中提取答案。费用管理系统根据缺失的上下文应用正确的代码。

Diego和他的代理永远不需要知道GL代码是什么,而财务团队获得准确的分类。每一方贡献自己所知,为Diego和他的会计提供更好的结果。

在设计这些代理到代理的交互时,注意上下文差距。承认你的代理的不足是可以的——你们都在为同一个用户服务。

§ 6

The interface used to sit between Diego and his expense system. Now it sits between his agent and yours.

That shift reframes the product team's job. You used to design for a human who wanted to move fast, avoid mistakes, and see their work. Now you're designing for that same person through an intermediary whose instincts, context, and limitations are different from theirs. Teaching agents how to succeed, building feedback loops, and minding the context gap all ask the same underlying question: what does your agent's caller need to do its job well, and are you giving it to them?

Most companies will ship an MCP, check the box, and move on. Their usage will grow for a few quarters, then stall. Over time, customers will route toward products that sweated the details and around the ones that didn't.

Build for the agent with the same care you spent on the human. Before you know it, it'll be the one writing the check.

过去,界面位于Diego和他的费用系统之间。现在,它位于他的代理和你的代理之间。

这一转变重新定义了产品团队的工作。过去你为一个想要快速操作、避免错误并查看成果的人类设计。现在你通过一个本能、上下文和限制都不同的中介为同一个人设计。教导代理如何成功、构建反馈循环、注意上下文差距,都指向同一个根本问题:你的代理的调用方需要什么才能做好工作,你正在给他们吗?

大多数公司会推出一个MCP,打个勾,然后继续前进。他们的使用量会增长几个季度,然后停滞。随着时间的推移,客户会转向那些在细节上下了功夫的产品,而绕过那些没有的产品。

像你花在人类用户身上的心血一样为代理构建。不知不觉中,它就会成为那个签支票的人。

Open source ↗