
很多人可能被这个标题里的“立规矩”三个字吸引了。亚马逊这次确实动手了而且针对的就是现在最火的AI Agent以后凡是Agent替用户在亚马逊上下单必须先向买家声明“我是AI在替你操作”不声明身份就代替用户买买买账号可以直接被清退订单也可能不认账。做技术的人看到这条消息第一反应可能是“平台又要限制自动化了”但真正研究过规则的人会明白这是一次规范化的信号远比表面上的限制有意思。我第一时间把这条规则和手头几个购物Agent项目做了对照越看越觉得这不仅是平台治理的升级更是所有Agent开发者迟早要面对的合规门槛。这篇就围绕“不亮身份别想替用户下单”展开聊聊规则背后的治理逻辑、Agent开发侧怎么接招以及它对整个Agent生态的连锁影响。1. 亚马逊这波操作等于给Agent划了一条“身份红线”1.1 政策原文拆解下单前不说实话订单就作废要理解这个政策的全貌得先把它当成一纸合同条款来读。亚马逊这次更新的核心内容用大白话翻译就是三句话第一如果你在购物场景里用了Agent在下单之前这个Agent必须主动向消费者披露“我是AI我在替你操作”第二这个披露不能藏在犄角旮旯里必须是消费者在确认订单前能看到的信息第三如果Agent没有做这个披露就代替用户完成了购买亚马逊保留关闭账户、终止服务的权利。条款里提到的对象是“purchasing agents”也就是所有干购买这件事的Agent一视同仁不管你是自己写的脚本还是接的第三方AI购物助手。这个定义范围很关键它不是只针对某个品牌的Agent工具而是把所有能独立完成下单动作的智能体全部纳入了管理范围。换句话说只要你的程序具备“代替用户完成交易”的能力就落在这个规则的射程之内。有意思的是亚马逊没有选择一刀切禁止Agent下单而是选择“必须先亮明身份”。禁止当然更省事但那等于放弃了整个购物Agent市场强制披露则把信任问题前置化允许你做但你得让所有人知道你是AI。这种思路其实是很多平台从“堵”转向“治”的典型路径先把行为主体识别清楚后续策略才有落地的抓手。1.2 亚马逊真正在防的是这四类失控风险为什么亚马逊偏偏在这个时间点给Agent立规矩表面看是治理补位实际上是为了堵住四类已经出现苗头的失控风险第一个是批量下单和虚假订单。Agent的可怕之处在于它可以把“快”发挥到极致真人手速再快一两分钟也就完成一笔订单Agent却可以在同一时间开几十个会话高频创建订单、反复取消把平台的库存和推荐系统当成压力测试场。批量操作恰恰是电商平台最头疼的行为因为它会直接扭曲商品的真实销量和库存数据。第二个是责任主体模糊。真人用户下单出问题平台可以找用户沟通可以走退款流程Agent下单出问题用户一句“我没看清是Agent选的”就能把责任推得干干净净。如果没有身份标记平台连找谁核实都说不清楚后续的投诉、退款、纠纷调解全部陷入死循环。第三个是数据污染。Agent的访问模式和人完全不同它会跳过很多人类才会有的浏览行为直接命中目标商品、直接下单。这种流量大量涌入之后点击率、转化率、停留时长全部失真平台的推荐算法和商家的投放策略都会被带偏。数据污染有时候比经济损失更麻烦因为它是慢性腐蚀。第四个是自动化扩散的不可控性。一套Agent框架可能被部署到上千个账号上使用一旦策略出问题爆发的不是单个账号违规而是规模化合规事故。这个风险在信用卡风控、账号安全领域已经有过很多教训平台必须提前约束。2. 为什么偏偏是“下单”这个动作最需要身份声明2.1 购物Agent带来的信任缺口比想象中更严重你可能会想Agent帮用户搜商品、比价格、看评论这些动作平台怎么不限制偏偏盯上下单因为购物链路里的大量动作属于“浏览型”操作搜商品、看评价、比价格Agent做这些时平台最多损失一点流量和用户注意力风险可控。但下单是“契约型”动作涉及付款、履约、退款、售后法律上讲这个动作必须由具有民事行为能力的主体来负责。Agent一旦介入下单环节信任缺口就出现了。用户不在场Agent自作主张商家收到订单却找不到真实决策人。我举个特别常见的例子用户给Agent设了一个“500元以内帮我买一双通勤鞋”的指令Agent凌晨看到一个促销活动觉得符合要求就下单了结果鞋码不对、款式不喜欢。这时候用户说“我没仔细看是Agent选的”商家说“订单明明是你账号下的”平台夹在中间如果连这个操作是不是Agent完成的都不知道根本没有办法做出裁决。这种模糊状态就是交易信任的腐蚀剂。身份声明机制的作用在于把这个模糊的状态拉回到明面上用户知道自己在用AI代劳商家知道这单背后是个Agent后续所有的售后、投诉、退换货都按规则来谁也不吃亏。2.2 身份披露落地后责任边界才能说得清身份披露一旦成为硬性规则其实是在帮三类角色划清责任边界。对消费者来说看到“此操作由AI Agent执行”的提示就会本能地多看一眼订单详情不会出现“我以为是人推荐的”这种误解。这一点非常重要因为Agent购物最大的隐患不是技术失灵而是用户预期错位。用户以为Agent比自己还懂自己的需求实际Agent只是按预设参数匹配披露提醒能有效降低这种预期落差。对平台来说Agent订单可以走专用的风控通道。比如限制Agent下单的品类、金额阈值、频次或者在高峰期对Agent请求做排队限流。没有身份标记时平台只能靠行为特征去猜“这是不是机器人”规则永远慢半拍有了身份标记策略可以直接命中又不会误伤真人用户。对开发者来说披露本身是自我保护。Agent拥有独立身份后出了争议可以有完整的链路日志能说清楚“这个订单在什么条件下、由哪个Agent、依据什么用户指令产生”反而比身份不明的脚本更有公信力。说白了身份披露不是一个单方面被管束的动作它同时给开发者和用户上了一道保险。3. Agent开发者怎么接招合规身份声明的落地方案3.1 让Agent学会“自报家门”的三种实现路径明确了规则之后技术问题就来了Agent怎么才能做到“自报家门”目前业内没有统一标准但可以从三个层级去实现我分别说一下优缺点。界面层声明是最直观的。Agent在它的交互界面比如浏览器插件、App、桌面客户端里在下单前弹出一个明确的提示“当前操作由AI Agent执行是否继续”这个方案适合有独立客户端的购物Agent产品它的优势是用户看得见、感知强劣势是只能覆盖自家界面。如果Agent是通过脚本方式直接操作网页这种声明方式就失效了。请求层声明是偏技术的手段。在HTTP请求层面加自定义头比如X-Agent-Declared: true同时在User-Agent里带上Agent的名称和版本。平台的风控系统只要读到这个头就能识别出这是一次Agent操作。这个方案实现成本低适合脚本型Agent但需要平台主动认账如果平台没有对应的识别逻辑这个头基本上属于“我声明了但对方没听见”。平台API对接是最规范的路径。如果Agent调用的是平台官方API可以在请求参数里显式传递agent_id和purpose字段平台在授权时就给Agent一个独立的开发者身份。这个方案的合规强度最高也最能拿到平台侧的业务支持但前提是平台开放了相关接口权限并且你的Agent通过了申请。三个方案不是三选一现实的工程里往往是组合拳。我的建议是前端声明用来获取用户确认请求头声明用来给平台做风控识别官方API对接用来做深度合作。只做其中一项遇到较真的平台还是会被卡。声明层级实现成本合规强度适合场景界面层声明中中有独立客户端的C端Agent产品请求层声明低中低脚本型、浏览器自动化型Agent平台API对接高高深度运营型、商业化Agent3.2 从框架到生产把“Agent身份标签”放进开发生命周期如果你的Agent项目现在还没有任何身份披露机制不用慌补起来并不难关键是别把它当成最后才加的补丁而是当做一个基础模块嵌入Agent的开发、测试、上线的整个生命周期。第一步在Agent的配置文件里增加一个身份信息段。以最常见的YAML配置为例可以这样写agent: name: shopping-helper version: 1.0.0 disclosure: enabled: true message: 当前操作由AI Agent执行 level: before_purchase这段配置干的事是让Agent在每次下单前自动触发披露逻辑而不是依赖开发者临时想起来。配置化设计的价值在于以后政策调整比如某个平台要求更严格、或者允许放宽改配置就能适配不用大改代码。第二步把“下单前声明”封装成一个通用的Agent Skill。现在业界常说Agent Skill其实就是把一些高频动作沉淀成可复用的能力模块。购物类Agent完全可以共用一个“身份声明”Skill它负责生成统一的披露文案、记录披露时间、把披露状态写进会话日志。这样任何Agent在走到购买节点时都会自动先调用这个Skill而不是每个项目各写各的、各有各的漏。第三步给Agent的每一次会话绑定唯一的agent_session_id。这个ID贯穿搜索、浏览、加购、下单、支付全链路出了纠纷可以精确回溯。我特别强调这一点是因为很多团队只给用户账号做日志但同一个用户可能在不同时间、用不同Agent执行了不同任务如果没有独立的会话ID排查问题时根本分不清是哪次操作出了问题。第四步在Agent Memory里加一个状态位记录“当前站点是否已经完成身份声明”。Agent记忆不光是用来记住用户偏好的它同样可以记住自己的操作状态。比如Agent访问某个平台第一次请求时声明了身份Memory里就把这个状态置为“已声明”下一次请求直接复用不用重复弹窗打扰用户。如果Agent发现平台规则变了或者声明被拒绝也可以基于这个状态位做快速响应。这几个步骤看起来琐碎组合起来就是一套完整的Agent身份基础设施。以后不管你做的Agent跑在什么框架里是用Rust从零写的高性能Agent还是基于Spring AI搭的企业级Agent中台这套身份模块都能无缝嵌入。4. 这波规矩对整个Agent生态的连锁反应4.1 平台治理进入“Agent可治理”时代亚马逊这步棋最大的信号不是针对某一个Agent产品而是宣告平台开始把Agent当成“一类用户角色”来管理。以后购物、外卖、出行、订票、内容社区各类平台大概率会跟进类似的披露规则只是形式上可能各有差异。这对Agent开发团队其实是利好规则明确了运营策略就好落地。以前Agent在平台眼里是灰色地带做得太活跃容易被封做保守了又没效果全凭平台风控的心情。现在有了合规路径平台完全可能反过来给已声明的Agent开绿灯。比如允许Agent使用更高频的商品查询接口但限制下单频次允许Agent批量比价但要求它不能绕过页面的交易流程。这就像给Agent修了一条专用道虽然有限速但至少比在车流里穿插安全得多。这种“可治理”的思路还会催生一个新的技术方向Agent声明协议。虽然现在还是各平台各出各的规则但已经有讨论在往标准化方向走。比如网站可以通过公开文件声明“此处允许Agent访问但必须携带身份标识”Agent访问前先去读这个文件再决定要不要声明。这个思路很像当年的robots.txt只不过约束对象从搜索引擎变成了智能体。4.2 “多Agent协作”和Agent中台需要重新考虑合规层单Agent的场景还相对简单真正麻烦的是多Agent协作。你可能已经预想到了用户唤醒一个购物主Agent主Agent又调度好几个子Agent去各个平台比价、查库存、最后下单。此时每个子Agent访问的都是不同的平台如果它们各自不带身份标识平台根本无法区分这三个操作来自同一个用户、同一个任务外在表现就是三股独立的陌生流量很容易同时触发三边的风控。这是很多多Agent项目容易踩的坑。主Agent声明了一次身份并不代表它的子Agent也声明了。合规身份必须是每个对外请求的携带属性而不是某个顶层组件的局部配置。所以在做Agent编排的时候要把身份信息做“透传”主Agent的任务上下文里带着用户授权和Agent身份信息子Agent每次对外发起请求时都要从上下文里读取并带上。企业级Agent平台和中台就更需要提前规划了。我的建议是中台可以做一个“身份披露中心”统一管理所有接入Agent的对外身份配置包括Agent类型、调用方、使用场景、授权状态、声明话术。这个中心对外提供一套统一SDK无论底层Agent是用什么框架写的接入中台后都走同一套身份声明逻辑。这样既避免各团队各做各的也为未来对接不同平台的规则留出了统一出口。5. 留给从业者的几个实操提醒5.1 别把合规当负担这是Agent基础设施的一部分我看到不少同行第一反应是“平台又来限制Agent了”但其实换个角度看强制披露是在帮Agent行业建立基本的信任基础。没有身份披露机制以前平台分不清Agent和真人为了安全只能一刀切结果真正的优质Agent产品也被误伤。现在有了规矩至少多了个对话空间。我自己维护的几个购物Agent项目最近全部把身份披露加到了默认配置里。刚开始确实觉得多此一举但跑了一段时间后发现调试反而更顺畅了。因为所有对外请求都带了Agent标识日志里能一眼看出哪个功能、哪个Agent、哪次会话出了问题不用再从一堆混在一起的行为数据里大海捞针。身份声明这个机制在合规之外还给了开发者一个免费的“可观测性”增益。5.2 从亚马逊的规则反推Agent产品设计的五个检查项最后给大家整理一份自查清单做购物类Agent或者任何一个涉及替用户执行交易的Agent上线前过一遍这五个检查项一是用户能否在可见界面看到Agent身份。这不只是合规要求也是用户体验的底线。用户有权知道正在替自己做决定的是一个程序。二是服务端能否识别Agent身份。也就是说你的Agent技术栈里有没有对应的头和标识不是只在界面上显示而是每个请求都要带上。三是订单和会话有没有独立ID。没有独立会话ID就没有追溯能力一旦出现争议你会非常被动。四是平台拒绝时能否快速降级。比如平台读到Agent声明后返回拒绝Agent能不能优雅地停止操作而不是强行重试直到被彻底封禁。五是下单前有没有二次确认。这一点尤其重要。身份声明是给平台看的二次确认是给用户看的两个动作叠加才算完成了合规闭环。我个人的判断是亚马逊这一步开了个头之后类似的披露规则很快会成为各类交易平台的标准配置。现在就把身份声明当成Agent系统的默认组件来设计后面政策怎么变你都不会慌。把身份亮在前面把丑话说在前面反而是Agent生态走得远的必要条件。最后分享一个自己写代码时的习惯凡是涉及支付、下单、权限变更的动作我都会强制绑定“身份声明加用户确认”两个前提。以前觉得这么设计有点过于保守现在平台直接把它变成规则反倒觉得当初的坚持值了。这个习惯建议做Agent的同学都尽早养成省得到时候手忙脚乱。