不幸的是,精灵现在会说 MCP

发布: (2026年3月10日 GMT+8 08:00)
9 分钟阅读

I’m happy to translate the article for you, but I’ll need the text you’d like translated. Could you please paste the content you want converted to Simplified Chinese? Once you provide it, I’ll keep the source line exactly as you’ve shown and translate the rest while preserving all formatting and technical terms.

作者

Kurt Mackey

  • 姓名: Kurt Mackey
  • Twitter: @mrkurt

Fly whackamole
图片来源:Annie Ruygt

Sprites 是一次性云计算实例。它们瞬间出现,始终包含持久文件系统,空闲时几乎不产生费用。它们是互联网上运行代理的最佳且最安全的场所,我们希望你去 创建数十个它们

Sprites 是运行代理的地方;你对新 Sprite 的第一件事应该是输入 claude(或 geminicodex)。我们已经投入了大量精力(详见设计与实现)来确保编码代理在 Sprite 上感到安全和愉快,因为,正如约翰·冯·诺依曼(John von Neumann)可能会说的那样,“快乐的代理是高产的代理”。

关于 Sprites,较不明显的一点是它们也是 代理服务的绝佳工具。想要同一功能的三个不同版本?一个测试环境?一组协同工作的服务?能够在提示中写上 “On a new Sprite, do…” 是非常方便的。

Sprites API 简单、易于发现,并专为此类使用场景设计。关键在于你如何让你的代理访问它。而现在,又多了一种方式:通过 MCP。

我们这么做是因为你的代理太差

这个功能是可用的,但我们并不太热衷——不是作为产品开发者,而是作为审美者。它是个好产品;我们只是觉得还有更好的方式。

MCP 的问题

在 2026 年,MCP 已不是扩展代理能力的正确方式。新兴的“正确方式”是使用 命令行工具可发现的 API

当我们把 MCP 插入代理时,会用大量工具描述填满它的上下文——其中很多根本不会被使用。代理真正需要的只是一条简短指令,例如:

在用户想要创建新 VM 来运行任务,或管理已有 VM 时使用此技能。

技能本身应当处理其余的工作。

为什么基于 CLI 的技能更好

  • 渐进式披露 – 能力仅在需要时才被展示。
  • 子命令和子路径 – 你可以通过 sprite checkpointsprite exec 等命令,或通过层次清晰的 API 端点来暴露功能。
  • 快速学习 – 优秀的代理能迅速弄清如何使用这些接口。

实际案例:Playwright

Playwright 是业界标准的浏览器自动化工具。如果你让 Claude 安装 Playwright 和 Chrome,它有一半的概率会顺便搭建一个 MCP 服务器。当它不这么做时,Playwright 仍然可以工作,因为 Claude 只需编写小脚本来驱动它。

模型已经掌握了生成这些脚本的方法,而不会占用大量上下文。

上下文膨胀是信号,而非特性

把大量 MCP 工具描述塞进代理的上下文,会向模型发出“所有这些工具都很重要”的信号。实际上,并不是每个 Sprite 命令在每种场景下都重要。例如,如果你不使用网络策略,就不需要 gemini 命令去浪费时间进行设置。

推荐做法

  1. 通过 CLI 或 API 暴露功能 – 使用清晰、可发现的命令或端点。
  2. 给代理一个简短的高层指令 – 让它自行决定何时以及如何调用工具。
  3. 允许代理运行 Shell 命令 – 这在大多数情况下消除了对 MCP 会话的需求。

如果你只能使用无法运行命令的代理,仍可能需要 MCP 会话,但大多数现代代理(Claude、Gemini、Codex 等)都可以直接使用 sprite CLI。向它们展示 CLI,让它们给你留下深刻印象。

sprites.dev/mcp

将此 URL 填入 Claude Desktop(或任何其他支持 MCP 的代理工具)。在对你的 Fly.io 组织之一进行身份验证后,代理即可使用 Sprites

示例提示

  • 复现 bug

    On a new Sprite, take this repository and reproduce this bug from issues/913, capturing logs.
  • 基准测试函数

    On a new Sprite, benchmark this function across 1 000 runs and summarize the results.
  • 升级依赖

    On a new Sprite, update all the dependencies on this project to their newest versions and test that everything works.
  • 比较查询库

    On 3 new Sprites, change this service to use each of these 3 query libraries, and use HTTP to test latency.
  • 追踪文件访问

    On a new Sprite, run this code with bpfwatch and show me what files it touches.
  • 对端点进行负载测试

    On a new Sprite, run a load generator against this endpoint for 60 seconds and report the results.
  • 探索数据集

    On a new Sprite, download this dataset and give me a Jupyter notebook to explore it in.
  • 实时 webhook 报告

    On a new Sprite, set up a webhook receiver and render a real‑time web report of all the payloads it receives.

为什么使用 Sprites?

有时你需要一台干净、廉价、一次性的计算机(甚至五台)。Sprites 正好提供了——按需、隔离的环境,只需一个提示即可启动。想象一下它们对你项目的可能性;很快你会惊讶于过去是如何在没有它们的情况下工作的。

安全与防护措施

我们理解“机器人可能毁了我的生活”这种担忧。因此我们内置了强大的防护措施:

  • 范围受限的身份验证 – 当你进行身份验证时,仅授予代理对 单个特定 Fly.io 组织 的访问权限。
  • 会话限制 – 你可以限制 MCP 会话可以创建的 Sprite 数量。
  • 命名前缀 – 为 Sprite 名称分配自定义前缀,以便轻松识别、监控和终止它们。

这些控制让你在享受 Sprites 强大功能的同时,仍能全面监督它们的行为。

无状态沙盒

我们会一直这么说,直到我们脸色发青:业界仍停留在用“沙盒”让代理运行代码的做法,而沙盒已经不再足够。代理真正想要的是拥有真实文件系统、连接真实网络的真实计算机,而在技术上没有理由不给它们这些。

We designed Sprites so that you can fearlessly create whole bunches of them.
它们足够响应,可以为你的团队托管 Web 应用,但在空闲时会进入睡眠状态,几乎不产生费用。Fly.io 的所有使用者最终都会拥有二三十个这样的实例,随时待命。

我们认为,当你能够调用任意数量的计算机来解决问题时,你的工作会更出色。如果这需要我们提供一台 MCP 服务器来实现,那就这么做吧。


上一篇
Litestream Writable VFS

0 浏览
Back to Blog

相关文章

阅读更多 »