跳到正文
← DeepDive 算力与商业 · v1 EN
DEEPDIVE / [基建与商业] · 哪家服务真正做到了 Agent native · 深度报告 DD · 2026-10-20 · v1 · 一手实验记录 + 各家服务商文档、规范与协议仓库(读取日期 2026-10-20)
一台猫粮机从一句话走到下单,一条订单链上的十来家服务,各把 Agent 拦在了哪一步

哪家服务真正做到了 Agent native

能造这台猫粮机的服务,不够 Agent native;够 Agent native 的那一家,造不了这台猫粮机。

DeepDive · 基建与商业  |  订单链、Agent 入口、人在协议里的位置  |  实物还没到,评的是下单这条链
418 / 0
两轮真 Agent 并行实跑的
工具调用 / 调用失败
0 / 14
嘉立创 PCB 接口里,取消与校验
接口的数量 / 总数
1 次调用
Slant MCP 报价:价格、交期、
可打印性反馈
L4 × 1
十来家制造服务里,到最高一级的
数量(我的分级)
TL;DR / 30 秒

够 Agent native 的,
造不了这台猫粮机

“Agent native”不是“有 API”,也不是“有 MCP”。要看两件事:必须由人承担的那一步(付款、法律声明、质量签字),有没有被写成协议里的状态;除此之外的每一步,一个没有人类界面的调用方能不能自己走完。我在一条真实订单链上用这把尺子量了十来家制造服务,只有 Slant 3D 的公共 MCP 够到最高一级。国内两家,一家能力对口但接口只盖住订单的一半,一家接口完整但能卖的东西对不上。

#
要点
具体是什么
01
软件那头,Agent 没有卡过
两轮真 Agent 并行实跑,共 418 次工具调用,0 次调用失败;单独重复五次的布线任务,GLM-5.3 在 high 推理档 5/5 通过 KiCad DRC。卡住的全在有对手方、有钱、有责任的地方。
02
嘉立创:能力对口,接口只盖住一半
14 个 PCB 接口里没有取消、没有校验;SMT 没有创建订单的接口;创建订单只收公网 URL,没有上传;没有沙箱;开发者协议里“自动化”“AI”“Agent”一次都没出现。真实订单是被 Agent 驱动的浏览器在我已登录的账号里下的,三笔合计 ¥361.99,其中一笔是下单之后才发现的重复。
03
造好物:接口最干净,能卖的东西最窄
测试环境里创建、查询、取消三个动词走通,错误码带原因;但没有报价,价格透传,只收人像照片,生产密钥至今没拿到。
04
Slant 3D:同一家,两道门
公共 MCP 免钥匙,10 个工具都带只读、破坏性等标注。我让 Agent 用一个 20 毫米立方体实测了报价:一次调用拿回价格、三档数量的交期和结构化的可打印性反馈;付款走 Stripe 结账链接,由人付。REST 那道门反过来:人绑一张卡之后,一次 POST 就扣款。
05
两份 llms.txt,两种指向
嘉立创的指向网页下单表单;Slant 的指向 MCP 和 OpenAPI。
06
其余几家读完公开资料,多数停在 L2
要审批、没有测试环境、没有机器可读的合同,或者缺取消。
反直觉 · 真正该盯着的地方

够 Agent native 的那家,不做电路板和贴片,外壳也只有从美国发货的 FDM。实物还没到,所以本文评的是下单这条链,不是交付。

开头 / 货还没到

货还没到:
评的是下单这条链

这篇写在货到之前。截至 10 月 19 日夜里,一块 66×60 毫米的猫粮机控制板在嘉立创付了款,带贴片的那一单还在等我确认器件极性;外壳没有打印过,固件没有烧录过,猫还没吃到一粒粮。所以下面评的不是“一台由 Agent 造出来的猫粮机”,而是它路上的那条订单链:Agent 自己能走到哪,哪一步必须有人替它按。

任务是这样定的:让一支 Agent 团队为一只猫做一台自动喂食机,外壳、电路板、固件、App 全包,人只在花钱的几个闸门上确认。团队的三路 Agent(电路、外壳、固件加 App)跑在 Z.ai 开源的 ZCode 上,模型是 GLM-5.3。下了单的那块板是 rev A,出自我自己的流水线:脚本把规格生成 KiCad 板,自动布线,过 DRC;ZCode 团队第一轮从同一份参考规格重建了它,第二轮做出 rev B(加了电机电流检测),rev B 因为零件的 LCSC 料号没核完,没有下单。设计和文件在公开仓库 fxp/cat-feeder里(仓库只放设计与文件,不记录付款与生产)。软件那头进展不错,§02 给数字。真正耗时间的,是把设计变成钱、变成快递单的那一段。

那一段我量了一遍。尺子是动手前写下的,§01 交代。

§ 01 / 尺子

一把尺子:
六个动词,两条补充

“Agent native”这个词谁都在用,先交代本文怎么用。

先看几个已有的说法。Netlify 的 Mathias Biilmann 提出的 AX(Agent Experience)拆成三个动作:agent 能不能发现服务能做什么,能不能可靠地调用,出了问题能不能恢复。Anthropic 的工程博客讲怎么给 agent 写工具:做少量面向工作流的工具而不是包一层 CRUD,错误信息要告诉 agent 下一步怎么办。MCP 规范在工具一节里写明,执行出错要用 isError 给出能让模型自我纠正的反馈,同时“应该始终有一个能拒绝调用的人在环里”。这三处说的是同一类东西:机器可读的合同、能指路的错误、明确的人工节点。它们都没有给出一份认证清单,Netlify 那套还是卖方的口径。

我自己的尺子来得更土。动手之前,我在方案里写过一份履约接口,厂商要接进来,得实现六个动词:能力查询、校验、报价、下单(带付款凭证)、跟踪、取消。那是为了写适配器,没想过它会变成尺子。后来订单一张张下出去,又补了两条从订单里学到的:入口(钥匙怎么拿,有没有测试环境,条款允不允许机器来用)和人在哪一步(付款、法律声明、质量签字)。

于是本文的工作定义是:

一个服务是 Agent native 的,当它的每个状态迁移,都能被一个没有人类界面的调用方,凭公开的、机器可读的约定走完;而必须由人承担的迁移——付款、法律承诺、质量签字——被写成协议里的状态(一个待批准的订单、一个结账链接),而不是藏在界面里的某个勾选框。

它比“有 API”严,也比“能被浏览器自动化”严。拆成一把五级的梯子:

级别长什么样本文里的例子
L0只有网页,没有给机器的入口—
L1网页能被浏览器 Agent 驱动:能走通,但每一步都在猜界面嘉立创的 SMT 下单
L2有 API,但钥匙靠审批或线下发放,或者生命周期缺一块(文件进、校验、取消)嘉立创开放平台、造好物、PCBWay 等
L3自助拿钥匙,合同机器可读,从报价到取消的生命周期完整Slant 3D 的 REST API
L4专门给 Agent 做的入口:类型化的工具、只读与破坏性的标注、结构化的校验输出、待批准的对象Slant 3D 的公共 MCP

这是我的分级,不是行业标准。L4 那一行是照着我读到的最好的做法写的,所以 Slant 排第一有一点循环;它是不是“最好”,要看表二里的逐项事实,不能只看这个级别。六个动词加两条,是后面每张表的列。

§ 02 / 对照组

软件那头,
Agent 没有卡过

先交代对照组,因为后面所有“卡”都要放在它旁边看。

团队是三路真 Agent(电路、外壳、固件加 App),跑在 ZCode 上,经一条团队总线和一份版本化的共享契约对话。两轮实跑的数字:

第一轮第二轮
本轮新增总线消息2521(累计 46)
契约版本到 v14到 v24(累计)
工具调用192226
调用失败00
三路同时活跃350 秒460 秒

第一轮墙钟 1,749 秒;第二轮 2,754 秒,输入 19.2 M token、输出 0.26 M。同一个 PCB 任务单独重复了五次:GLM-5.3 在 reasoningLevel=high 下 5/5 次布线成功、KiCad DRC 0 错误 0 未连接;默认的 max 档只有 3/5,两次失败都是推理太久,一次撞上 1,500 秒上限,一次上游在第一个请求 653 秒后断流。

“0 次调用失败”只算调用本身,不含领域错误:那五次里有 141 个 MCP 调用,约 10% 返回了领域错误(规格不合法、DRC 不过),模型都读懂并修掉了,没有一次是管线的问题。

产出事后用独立的命令复核过,没有采信 Agent 自己的汇报:kicad-cli pcb drc 对导出的板子 0 错误 0 未连接;固件主机测试 21 项 517 个断言通过,pio run 编译成功;App 对模拟器 33/33。从未烧录,从未上真手机;外壳的装配检查用的是方盒估算,32 个零件里 30 个的尺寸是估的。 DRC 全过也不等于电路对:一个本地小模型第一次把 LED 接反了,DRC 一条没报。

这些数字只想说一件事:当对手方是 kicad-cli、Blender 无头、PlatformIO 这类本地工具时,Agent 几乎不卡。它们的共同点是文件进、文件出、退出码说话,没有账号,没有钱,没有法律后果。KiCad 官方给自动化的入口也是这个路数:kicad-cli 以读取和导出为主;IPC API 在 KiCad 9 和 10 里只能连一个正在运行的图形界面,只有 PCB 编辑器能装插件。我们一直走命令行;有一次在真机上用按钮打开 KiCad 图形界面,反被 macOS 的隔离属性拦住了。

连 Agent 自己的“脑子”也有一步只能人做:第一次跑 spike 时 BigModel 账户余额耗尽(错误码 1113),充值之后才补跑。

所以后面说“卡住”,指的都是这一类:有对手方的、有钱的、有责任的。

§ 03 / 嘉立创

能力最全,
接口盖住一半

嘉立创是这次真正花了钱的地方。三张订单,合计 ¥361.99:一张 v1 板(没有 MARK 点),一张 v2 板(有 MARK 点,准备贴片),再加挂在 v2 上的贴片单。v1 其实是重复下单:没有 MARK 点的板子,平台不会把它转成贴片,这条规则是下单之后才试出来的。

我先对着开放平台把每个环节核了一遍。接口覆盖是这样的:

订单环节开放平台实际怎么做的
计价接口,用真账号实测可用接口
文件进只收一个公网 URL,让嘉立创自己去下载;没有上传接口网页上传
创建 PCB 订单接口有(没实际调用,每次成功都是真订单)网页
创建 SMT 订单没有;SMT 的接口只有查询 BOM 器件、订单、进度和寄料网页,七步
校验(DFM)没有网页上传时检查;付款后约 4 小时,人到订单列表里确认器件极性
付款创建订单时 isAdvancePayment=false,接口不会扣预付款人在网页付:先充值,再合并支付
跟踪接口有(没实际调用)网页订单列表
取消14 个 PCB 接口里没有网页;付款后取消要交工程费,排产后不接受更改

入口这一头也有几处,单看每一处都说得过去:

  • 开发者协议(2024-09-14 版)允许个人注册。应用建好以后,密钥只显示一次;调用方 IP 要进控制台白名单,否则返回 403 请求IP来源不合法,家庭网络的出口 IP 一变就失效,开代理也失效。
  • 没有测试环境:每一次成功的创建都是真订单。
  • 协议第三条第 7 款第 8 项要求,用平台应用做牟利性经营要先经嘉立创同意;第三条第 6 款不许在应用名称或宣传材料里使用“嘉立创”“JLC”等名称或标志。
  • 我把协议全文搜了一遍“自动化”“机器人”“爬虫”“人工智能”“AI”“Agent”“智能体”“脚本”“批量”“频率”“限流”,一个都没有。这一版没有为机器调用定规则,也没写调用频率。

于是真正的订单是通过一个被 Agent 驱动的浏览器,在我已登录的账号里下的。这条路能走通,也让我看清了“L1”是什么滋味:

  • 收货地址弹窗在自动化浏览器里是个空白的 iframe,只能绕到“地址管理”里用“粘贴并识别”补区县;
  • 大量控件是 <div> 和 <span>,不是按钮;弹窗和新手引导会吞掉点击;页面一刷新,表单重置;
  • BOM 和坐标文件的 Excel 表头行会被当成一个器件,冒出一条“异常不可贴的元器件”;
  • 提交页有个合规声明函,内容是美国出口管制和制裁的承诺。打开阅读弹窗再关闭,它会自动被勾上,读完得手动取消。这个声明是用户本人的法律承诺,我定下的规则是:必须由我本人明确同意,Agent 不替我勾。

最让我在意的,是两处“本该机器开口、却没人开口”的地方。

第一处,元件方向。嘉立创元件库里的 SOT-23(三脚)和 SOT-223,0° 与 KiCad 的差 180°,只有在贴片预览里才看得出来,DRC 查不到,接口里也没有这一项。预览里发现 Q1 和 U2 反了,在网页编辑器里各转 180° 存档,生成器里才补上这两种封装的偏移。其他封装有没有同样的偏移,我没验证,每次下单都得人眼看预览。

第二处,“这个设计能不能贴片”。这是个再明确不过的校验问题,答案是一条写在帮助页里的规则,却没有对应的接口。我为此付了一张重复订单的钱。

公平地说,嘉立创并不缺 Agent 意识。它的 EDA 团队在 GitHub 上放了一整排面向 Agent 的东西:easyeda-client-cli(客户端自带的命令行,可以当 MCP 服务器跑)、easyeda-api-skill、一个 WebSocket 网关扩展,还有一个本地跑嘉立创 DFM 规则的“下单检查”扩展。PCB 工艺方面的校验,嘉立创做了一部分,放在 EDA 客户端的扩展里,没放进开放平台的接口;贴片规则(MARK 点、元件方向)有没有覆盖,我没查。

JLCPCB 自己的两篇 AI 设计博文(9 月 18 日、10 月 14 日)讲的都是怎么让 Agent 操作编辑器;讲到下单的地方,是导出 Gerber、BOM 和坐标,设计验证完再上传到 JLCPCB 拿即时报价。两篇里都没有出现下单接口。它把 Agent 接到了画板,没有接到收银台。

嘉立创开放平台本身也不简陋:签名与官方示例逐字节一致,每个响应带 J-Trace-ID,业务错误码清楚。它像是给另一类调用方设计的:知道自己要下什么、愿意去网页补最后几步的人。Agent 要的是反过来:不知道结果之前,每一步都有个机器能读的回答。

FIG 1 · 谁在动手嘉立创 · PCB + 贴片(实际下单)时间 →设计+DRC导出计价补区县传 Gerber传 BOM+坐标核对旋转法律声明充值付款极性确认接口 2 步 · Agent 驱动网页 4 步 · 人 4 步Slant 3D 公共 MCP · 从报价到结账(只有前两步是我实测的)上传+报价改数量运费结账链接付款Stripe生产接口 4 步 · 人 1 步Agent 调接口 / 本地Agent 驱动网页Agent 可调,我没试必须由人格子右上角的红点:同时需要人眼核对
图 1 · 嘉立创一侧是实际下单走过的步骤;Slant 一侧是工具描述里的流程,运费与结账链接没有试 · 来源:实验记录;Slant 3D MCP 说明页
§ 04 / 造好物

接口最干净,
能卖的东西最窄

造好物(我这边叫它 Hi3D;两个名字是同一个平台,这一点只靠对接方确认,hi3d.ai 的公开页面上没出现“造好物”)是另一种 L2。

先说一句公平话:它卖的是手办,不是制造能力。我拿它来量,是因为任务需要一个高精度外壳的打印出口,而它是我手里唯一带测试环境的国内入口。

它的优点很具体。有一套独立的测试环境(api-test.zaohaowu.com),而且整条路径都能走:Basic 认证换 24 小时的 Token;图生图提交后约 20 秒从 PROCESSING 到 SUCCESS;order/create 带 requestId 做幂等;order/fulfillment/batch 查履约,订单状态 0 到 7、履约状态各有枚举;order/cancel 之后订单读作“已关闭”、履约单读作“已取消”。创建、查询、取消,三个动词在真实接口上都走通了。出错时它也肯说话:伪造的图片地址被 1003 图片URL不合法,请先上传图片 拒绝,不是人像的照片被 5003 请上传人像照片 拒绝,都带着能读的原因。

缺口也很具体:

  • 没有报价接口。 order/create 里的 price 是透传的,不校验;价格来自厂商线下给的商品目录。Agent 拿不到一个“这次要花多少钱”的、可以绑定的数字。
  • 只能做人像手办。 没有提交 STL 或 3MF 的字段,imageUrl 必须是厂商自己认可的图;物体照片、渲染图都进不去。猫粮机外壳它接不了。
  • 钥匙靠线下发放:AK/SK、modelId、productId、skuId 都是。测试密钥打到生产域名返回 40001,生产那一套我至今没拿到。
  • 付款文档没写,测试环境里下单就显示“已经支付”。
  • 接口文档在一份飞书文档里,文档里的流程图是空的。查一个不存在的任务返回 1000 系统异常,不是“未找到”。

我为此写了一份六项需求清单(自传模型的打印商品、提交模型的方式、报价、生产密钥、付款方式、尺寸与审核限制),到现在还没发出去。在它回复并真实下过单之前,我不会说“Agent 通过 Hi3D 的 API 下了单”。能说的只有一句:在测试环境里,创建、查询、取消走通了。

两家国内服务摆在一起,是一对有意思的互补:嘉立创的能力对口、接口不全;造好物的接口完整、能力不对口。

§ 05 / Slant 3D

同一家,
两道门

Slant 3D 是美国爱达荷州 Boise 的 FDM 打印农场,FAQ 写明在美国打印、从美国发货。我原来的方案里把它记作“唯一能自助拿 key 的”,按 OpenAPI 写了适配器,但没有用真钥匙调用过,后来也没放进这条链路:它不做电路板,外壳是美国发货的 FDM。这次回头读,才发现它早已多了第二道门。

门一,REST API。 OpenAPI 3.0.3 的 spec(约四十个操作)的描述里有一句:“This spec is for automated tools and AI Agents.” 里面带一个 x-agent-hints 块,把订单流程压成一行:上传文件 → 草稿单 → 处理单 → 履约 → webhook。草稿单的说明是“先估价再处理”,处理单是“开始生产并扣款”,取消限于“还没开工”。文档站还写了 webhook 带 HMAC-SHA256 签名,失败会每分钟重试,最多十次。在我读过的制造类 API 里,这是生命周期最完整的一批之一。

它的另一面也很直白。钥匙只能由人在网页会话里生成(POST /apiKey 不认 Bearer);人在账户页绑一张卡之后,POST /orders/{id} 一次就从这张卡扣款。spec 里没有幂等键,也没有沙箱。这是把闸门留给了调用方:Slant 保证草稿不扣钱,扣不扣由你的程序决定。

门二,公共 MCP。 这是本文最想说的一段。https://www.slant3d.com/mcp 不要钥匙,不要登录。llms.txt 里写着“AI agents can quote and order real 3D-printed parts in two ways”,FAQ 里专有一问:“Can an AI agent order a 3D print?” 答案是 Yes。

我让 Agent 对它做了一次只读加报价的测试(10 月 20 日,没有下单,没有填任何地址或邮箱):

  1. initialize 和 tools/list 正常。10 个工具,每个都带标注:quote_raw_pricing 是只读;quote_set_quantity 标了不碰外部世界;list_* 标了幂等。
  2. quote_upload_part:上传一个自己生成的 20 毫米立方体(base64)。一次调用返回:quote_id、包围盒、体积,以及 1、100、1000 件各自的单价、小计、设置费和交期(一件 3–5 个工作日,一百件 5–7,一千件 2–3 周),以及 print_feedback——跑了九项检查(网格、平放、倒角、底部文字、壁厚、细柱、蜘蛛状、支撑、支撑面积),给出一条 severity: warning 的“底部加 1 毫米倒角”建议,并写明“可以按原样下单”。响应同时有文本和 structuredContent,还带一句 next_steps 告诉 Agent 下一步该调哪个工具。
  3. quote_set_quantity:改成 5 件,拿回新的单价与交期。
  4. 错误路径:不存在的 quote_id 返回 isError: true,只有一句 “Unknown quote_id.”;一份 18 字节的垃圾 STL 在入参校验层被拒,原样抛出一个校验数组。

我没调用 quote_shipping_options(要姓名、地址、邮箱,我不愿往公共服务里写个人信息)和 quote_checkout(要邮箱,生成 Stripe 结账链接)。按它的工具描述:运费保存在报价上;结账链接付款后,订单自动进入打印农场,客户收到确认邮件。所以运费和结账是读了描述,没有试过。

它做对了四件事:

  • 以工作流为单位,不是以接口为单位。 quote_id 把上传、改数量、运费、结账串成一条线,正是 Anthropic 那篇文章讲的“做面向工作流的工具”。
  • 标注是合同的一部分。 只读、幂等、会不会碰外部世界,写在工具上,客户端能据此决定哪些调用要弹确认。
  • 校验是结构化输出。 有等级、有标题、有修复建议,还明说不拦下单。对比嘉立创:同一类信息在那边是帮助页里的一段话,和贴片预览里要人去看的标记。
  • 人那一步是协议里的一步。 quote_checkout 返回的是一个付款链接,由人去付。Agent 知道自己什么时候该停,该把什么交给谁。

没做到的也有:MCP 里没有跟踪和取消,那两个动词只在 REST 里;错误信息太省,Unknown quote_id. 之后不告诉 Agent 怎么办;同一份响应里零件价 1.37 美元、一件的单价 2.77 美元并存,字段含义没有解释(我没弄清差在哪);取消与退款的规则散在 spec、文档站和用户协议三处,口径不完全一致:spec 说开工前可取消,文档站说取消会连带退款,用户协议说开工之后费用不可退。

还有它的边界:用户协议是 2023 年的短文,没提 API、自动化或 AI;材料是 PLA、PETG、碳纤维 PETG 和 OPM;打印和发货在美国,国际运费我没验证。

§ 06 / 协议

把“人”
写进协议

到这里,两个问题合成了一个:人在哪一步,以什么形式出现。

我在自己这一侧做了一个闸门:模型没有“下单”这个工具,只能报价和备订单卡;下单只能走一个由后端签发确认令牌的接口,令牌绑定的东西有订单意图、报价、厂商、价格、文件的 sha256、收货地址和用户;确认还要过一次新的 WebAuthn(设计上是 Touch ID,真机的 Touch ID 还没验证)。这是我这边的设计。它需要对面递给我一个能被绑定的东西:一个有编号、有价格、有有效期的报价,或者一张待付款的订单。

对面递过来的东西,是这样的:

服务待批准的东西谁来批准、怎么批准公开资料说它绑定了什么
Slant 3D · MCPquote_id人打开 Stripe 结账链接付款报价总价;文件哈希与地址是否绑定,没写
Slant 3D · RESTDRAFT 订单没有第三方:Process 直接扣账户里的卡闸门在调用方
嘉立创待付款订单(SMT 单库存占用 7 天)人在网页收银台付款没写
PCBWay购物车里的订单、待付款包合作伙伴账户余额或信用,或跳转支付页由人付没写
OSH Parkcheckout 之后的待付款订单人收到邮件后付款;API 不收信用卡没写
造好物订单(测试环境里下单即“已支付”)文档没写price 透传,不绑定
我自己的闸门订单意图人在界面确认,过一次 WebAuthn报价、文件 sha256、地址、用户

右边这一列,厂商的公开资料里几乎都没有回答。

2026 年的支付协议其实已经把这个词汇铺好了。UCP 的结账状态里有 requires_escalation,此时商家必须给出 continue_url,并至少带一条严重级别为 requires_buyer_input 或 requires_buyer_review 的消息:什么时候该停下来、把链接交给买家,是状态字段说的,不靠猜。ACP 的会话里有 pending_approval,还有 quote_id、purchase_order_number、账期。Stripe 给 agent 的钱包要求把花钱的理由写成人能读的文字,在 Link 里等人批准,30 分钟不批就过期,重试用幂等键,另有一个永不扣款的测试模式。MCP 规范也说,应该始终有一个能拒绝调用的人在环里。相关背景,之前几篇里有:UCP、Agent 持证上岗(身份与支付)、线下 Agentic Commerce(实体经营)。

但它们瞄的都是目录里的商品:一个购物车,一个最终价格。现成的流程里,我没有找到一个“先传文件、再得价、再批准”的定制件示例;ACP 的 schema 里有 quote_id,UCP 允许在“生成报价、管理购物车”时省略 payment,两边都是留了钩子,没有例子。我读过的这批制造服务的文档里,也没有看到哪家提到自己实现了这些协议里的任何一个。在我读过的服务里,Slant 从 quote_id 到结账链接,是唯一一个公开、免钥匙、现在就能调用,并且用在定制件上的。

法律声明是同一个问题的另一半。 嘉立创把它做成界面里的勾选框,打开又关上就自动勾上,等于让“读过”变成“同意”,Agent 在循环里读一遍就把它签了。Shapeways 走了另一个极端:上传模型的接口里有两个必填的布尔字段,hasRightsToModel 和 acceptTermsAndConditions,由调用方声明自己有权使用模型、接受条款。写成字段,机器是看得见了,可一行代码就替人做了承诺,这正是我要禁止的事。UCP 的做法值得抄:把“需要买家复核”做成状态,状态没解除之前流程不往下走。

再多一个维度:越方便,往往越松。 把付款方式摆在一起看,有三种:

  • 人付:链接、页面或邮件(Slant MCP、嘉立创、PCBWay 的跳转支付页、OSH Park、Craftcloud 的跳转结账);
  • 预存或授信:上限是余额或账期(JLCPCB 国际的预付款余额,这条是我从错误示例推断的;PCBWay 的合作伙伴账户;Craftcloud 的 Net30);
  • 卡在档,调用即扣(Slant REST、Shapeways;Shapeways 文档里没有写任何额度上限)。

第三种对 Agent 最方便,也是委托人收得最松的一种。物理世界的 API 里,默认值经常比接口更说明问题:Printful 的 v2 让订单先是草稿,要再调一次确认才扣款;Printify 新店的默认设置是订单 24 小时后自动批准,不用调 API 就进生产;Mouser 的下单接口有个 SubmitOrder=false,只返回摘要不提交。Agent 运行时这一侧也一样:ZCode 的 spike 里,-p 模式默认等同 yolo,在一台一次性的 mock 服务上,Agent 一行 curl 就确认了订单;用户级钩子能被四种方式绕过,Agent 还能改自己的钩子;只有操作系统沙箱把所有尝试都拦住了。所以闸门要放在 Agent 够不着的进程里,不能指望服务方替你放,也不能指望运行时替你放。

目录型的物理服务里,已经有把整条 Agent 路径摆出来的:Shippo 的托管 MCP 用 OAuth,不用复制钥匙;每页文档都带一个给 Agent 的说明块;文档里写明买运单会扣账户的钱,写操作执行前会要求确认。但一张运单不是一个定制件,没有“传几何、得价”这一步。

FIG 2 · 同一个“人”节点,五种形状① Slant MCPquote_id结账链接人付款生产Stripe Checkout,付款后自动进入生产② Slant RESTDRAFT 草稿Process · 调用方决定扣账户里的卡闸门在调用方的程序里③ 嘉立创待付款订单网页收银台合规声明勾选框打开阅读即自动勾上④ ShapewaysPOST /orders/v1卡在档,调用即扣模型上传接口里有两个必填布尔:hasRightsToModel、acceptTermsAndConditions⑤ UCPrequires_escalationcontinue_url买家completed状态字段规定何时停下、把链接交给买家必须由人完成交给调用方自己决定服务自动完成
图 2 · “人”在协议里的位置:①②来自 Slant 的 MCP 说明 与 OpenAPI,③来自实验,④来自 Shapeways API 文档,⑤来自 UCP 结账规范
§ 07 / 记分牌

入口、合同
与生命周期

下面两张表把读到的和测到的放在一起。★ 是我自己实测或实操的,其余都来自 2026 年 10 月 20 日读的公开资料;登录后才能看的文档我没看,写成“未见”或“未知”,不等于不存在。

表一 · 入口与合同

服务级别钥匙怎么拿测试环境合同给 Agent 的入口
Slant 3D · MCP ★L4公共,无需钥匙—工具 schema,带只读/幂等/破坏性标注本身就是
Slant 3D · RESTL3自助注册,钥匙只能在网页会话里生成,每账户 3 把未见OpenAPI 3.0.3,自述 “for automated tools and AI Agents”spec 里有 x-agent-hints
造好物 ★(测试环境)L2AK/SK 线下发放有,整条路径可走飞书文档,流程图空白无
嘉立创 开放平台 ★L2个人可注册;密钥只显示一次;出口 IP 白名单无控制台里的 PDF 文档无;llms.txt 指向网页表单
PCBWayL2发邮件审批,面向有自己网站的合作伙伴含糊(示例里叫 sandbox)自动生成的帮助页,加一份 2018 年的 PDF无官方(有第三方 MCP 包装)
JLCPCB 国际 / JLC3DPL2申请加审批,面向企业与分销商;3D 下单档有未公布的月订单量门槛未见无 OpenAPI,只有 Java SDK无官方
OSH ParkL2联系客服开通未见Ruby gem;文档页返回 404无
CraftcloudL2没找到入口订单体里有 isTestOrder 标志Swagger 2.0,无认证声明,无上传无
ShapewaysL2自助,OAuth2,API 免费未见人读的文档,无 OpenAPI无
Xometry—只有供应商侧 API,发邮件申请未见供应商 API 有 OpenAPI 和 llms.txt文档面向 Agent,但服务的是供应商;买家侧没找到公开 API
Protolabs / Hubs / Fictiv—没找到公开 API(Fictiv 只有 cXML Punchout)——无

表二 · 订单生命周期

服务校验报价文件进待批准态谁付钱跟踪取消
Slant 3D · MCP ★有:九项检查,分级,带建议有,quote_id,三档数量与交期base64 或 https URLquote_id人,Stripe 链接无无
Slant 3D · REST部分:文件指标;开工前有人工审核估价接口;草稿单含运费预签名上传加确认DRAFT 到 Process人先绑卡,之后调用即扣轮询加签名 webhook有,开工前
造好物 ★部分:审核标志,错误码带原因无,price 透传只收厂商认可的图文档未写文档未写有 ★有 ★
嘉立创 ★无(装配规则在网页里)有 ★公网 URL,无上传待付款订单人,网页收银台轮询(未调用)清单里没有
PCBWay下单后人工审核有,无 id、无有效期URL 或 base64购物车到待付款包合作伙伴信用,或跳转页由人付轮询有,主要在付款前
JLCPCB 国际 / JLC3DP部分:Gerber 预解析;3D 文件解析含“不可用原因”有,形状未公开上传未知预付款余额(推断)轮询清单里没有
OSH Park渲染预览,批准(给人或视觉模型看)有上传或 URLcheckout 后等邮件付款API 不收信用卡,人付轮询有,限早期状态
Craftcloud无有,priceId、quoteId,购物车带 expiresAtspec 里没有有跳转结账(人);发票 Net30轮询客户侧没有
Shapeways部分:printable 字段无报价接口;模型信息里有各材料的价字节上传,加两个布尔声明无,一次调用下单卡在档,调用即扣轮询无
FIG 3 · 记分牌校验报价文件进待批准付款跟踪取消Slant MCP · L4实测实测实测实测人无无Slant REST · L3部分文档文档文档卡文档文档造好物 · L2部分无无无?实测实测嘉立创 · L2无实测部分文档人文档无PCBWay · L2无文档文档文档余额文档部分JLCPCB 国际 / JLC3DP · L2部分文档文档无余额文档无OSH Park · L2部分文档文档文档人文档部分Craftcloud · L2无文档无文档人文档无Shapeways · L2部分部分文档无卡文档无实测文档里有,我没调用只覆盖一部分无或未见“付款”一列看谁掏钱:人=人付(链接、页面、邮件)· 余额=预存或授信 · 卡=卡在档、调用即扣 · ?=文档没写
图 3 · 同一把尺子量九行:取消和待批准最缺,卡在档的付款方式出现在最方便的两家 · 来源:实验记录与各家公开文档,细节见 §07 两张表

读这两张表有几点:

  • “取消”是最缺的动词。 九行里有五行没有给客户用的取消接口:嘉立创、JLCPCB 国际、Craftcloud、Shapeways,还有 Slant 的 MCP。
  • 公开资料里,能确认把下单到取消走完的测试环境,制造这一边只有造好物一家。 PCBWay 的帮助页提到“测试环境”但没说清,Craftcloud 有个标志位。目录型服务的测试模式倒是普遍有,所以这不是做不到,只是制造这一侧多数还没提供。
  • 价格上有个暗示。 嘉立创接口给的价,比网页上的低,是“下单助手价”(具体数字我不写:开发者协议不允许把平台数据用于协议之外的目的,我宁可谨慎)。卖方愿意为接口渠道让价,只是还没为 Agent 这个调用方写条款。
  • Xometry 是个有意思的对照。 它的开发者文档站有 llms.txt,每页有 Markdown 版,一副 Agent 友好的样子,服务的却是接活的供应商,买方没有公开的报价或下单 API。Protolabs、Fictiv 同样没找到公开 API。
§ 08 / 清单

给两边的清单

给服务商(每条都有一个上面出现过的反例):

  1. 给一个上传口,或者允许带哈希的 URL,并写明保留期。(嘉立创只收 URL;造好物没有模型字段)
  2. 报价是对象,不是数字:编号、有效期、绑定的文件哈希和地址。(Slant 有 quote_id;Craftcloud 有 quoteId 与购物车有效期;造好物没有)
  3. 校验开成接口,输出分级和建议,装配规则也算:MARK 点、元件方向。(Slant 有 print_feedback;嘉立创的规则在帮助页和预览里)
  4. 测试环境走和生产同一条路径,包括下单和取消。(造好物有;嘉立创没有)
  5. 待批准是一个状态,附一个批准链接;法律声明做成“需要买家复核”的消息,不做勾选框,也不做调用方能自己填的布尔值。(UCP 的 requires_escalation;反例是嘉立创的自动勾选和 Shapeways 的布尔字段)
  6. 取消和退款是动词,费用写在响应里。(嘉立创网页上取消要交工程费,接口里没有这个动词;Slant 的三处文档口径不完全一致)
  7. 钥匙自助,并支持范围和额度,别只给一个全权钥匙。(嘉立创的 IP 白名单挡得住外人,也挡住了家庭网络和代理后面的用户)
  8. 条款写明机器调用:频率、转售、品牌。沉默比拒绝更难办。(嘉立创协议对此一个字没提,却要求牟利性经营先经同意)
  9. llms.txt 指向 API,不指向表单。(嘉立创的指向下单表单,Slant 的指向 MCP 和 OpenAPI)
  10. 错误要说下一步。 拒绝一个请求的同时告诉对方怎么改。(Unknown quote_id. 和 1000 系统异常 都不合格)

给搭 Agent 的人:

  1. 先把你自己的履约接口写成尺子。适配器缺哪个动词,就是厂商缺哪个动词。
  2. 下单权不要给模型。 闸门绑定报价、文件哈希、地址,放在 Agent 够不着的进程里。ZCode 的默认配置挡不住一行 curl。闸门是验证者,验证者比生成者稀缺,这是《AI Native 时代的研发》的主线,这里是又一个实例。
  3. 浏览器驱动只用在最后一公里,并且按 L1 记账:每一次人介入都记进账本。这条链上我数得出来的,至少有九处需要人出面:建应用取密钥加白名单、法律声明、开票抬头、充值、逐笔同意金额、付款后的极性确认、买现成件(电机、称重传感器)、组装、烧录。
  4. DRC 之外要有厂商规则的检查:MARK 点、封装旋转偏移、LCSC 料号。DRC 0/0 是几何对,不是电路对。
  5. 看厂商的预览当最后一道关,尤其是极性和方向。
§ 09 / 局限

没验证的,
和下一步

  • 没走到付款。 Slant MCP 的运费和结账链接只读了描述,没试;REST 一侧我没有钥匙,没有调用任何一个需要登录的接口。要不要花几美元,真下一个小件,把“人付款”那一步走完,是接下来的第一件事。
  • 嘉立创的创建订单与进度接口,没真实调用过;它需要一个公网文件托管,和我对每一笔的确认。网页下的订单能不能被接口查到,也没试。
  • 造好物的生产环境一次都没碰过,价格、运费、真实发货进度都没验证;给 Hi3D 的需求清单还没发出。
  • 货没到。 板子、手办、外壳,没有一件到手,没有硬件被烧录或上电。付款后的 DFM 极性确认,截至 10 月 19 日夜里仍待办。
  • 登录后的文档我没看:JLCPCB 国际和嘉立创的字段级文档、PCBWay 的实际准入、Craftcloud 的钥匙来源、Mouser 与 Nexar 的细节都在门后。表里写“未知”的,就是真的不知道。
  • 样本很小、只测了一个任务。 一块板、一个外壳、一只猫;团队运行和 spike 只用了 GLM-5.3,Claude 或其他端点没跑。这是一篇关于“入口”的评级,不是对交付质量的评级。
  • 我的分级不是标准。 换一把尺子,排序可能不同。

有一件事我想盯着看:把“人”写进协议的那几份规范,什么时候第一次出现一个定制件的例子。

附 / 来源与口径

来源与口径

  • 我自己的实验与探测:团队两轮运行与 spike 报告、嘉立创与造好物的下单记录与接口实测、对各域名的 llms.txt 与 MCP 的只读探测(10 月 20 日)。公开部分在 fxp/cat-feeder,其余在私有仓库。
  • 公开资料:各服务商文档、规范与协议仓库,链接见正文与表格,读取日期均为 2026 年 10 月 20 日。
  • 价格:不引用嘉立创接口返回的价格明细;Slant 的报价是公共 MCP 对公开报价请求的返回。
  • 本文没有收入任何订单号、收货地址、手机号、出口 IP 或密钥。

更新记录

首次发布 2026-10-20