posts/qwen-open-platform-agent-services.md
千问开放平台最值钱的,不是聊天入口
租房、寄快递、查理财,十余类服务一起塞进一个对话框里,会发生什么?
今天,千问 APP正式上线开放平台。官方给出的入口覆盖手机、PC 和 AI 眼镜,用户可以在对话中调用相关服务,从咨询、推荐一路走到下单。
这类发布最容易被写成一张功能清单。能租房,能寄件,能查理财,能办汽车服务,后面再接一句超级入口来了。
我自己的判断不太一样。
这次最值得开发者盯住的,不是千问又多了十几个能聊的话题,而是第三方服务开始被塞进同一条授权、支付、订单和履约链路里。聊天框只是露在水面上的那一截,水下面全是状态机。
好家伙,按钮可以藏起来,责任可藏不起来。
过去两年,我们习惯把 Agent 理解成一个会调用工具的模型。查天气,搜网页,跑脚本,再吐回一段文字。哪怕中间失败了,最坏的结果常常也只是回答不对,重试一下就行。
可一旦 Agent 开始寄出真实包裹、提交真实订单、触发真实付款,失败的单位就不再是 token,而是钱、时间和责任。
这才是千问开放平台真正有意思的地方。
从回答到下单,中间不是一条直线
假设一个最普通的寄件流程。
用户说把桌上的键盘寄给朋友。Agent 得先确认寄件地址、收件信息、物品类型和期望时效,再去询价,让用户选服务,确认费用,创建订单,等待快递员接单,再把运单状态带回对话。
写成一条流程,大概长这样。
发现服务 → 用户授权 → 生成报价 → 确认支付
→ 商家履约 → 完成
↘ 失败/退款/人工接管

当交易进入对话,重试也必须有边界。
看着挺顺,对吧?
真正上线时,箭头之间全是坑。
用户把地址授权给千问,是否等于同意把地址交给每一家候选物流商?报价出来以后,价格变了要不要重新确认?订单创建成功,支付结果却因为网络超时没有返回,Agent 该重试还是先查单?快递员接单后用户突然改地址,谁来判断能不能改?
更麻烦的是,Agent 很擅长重试。
调用超时了,模型或者外层调度器再来一次,这在查资料时是很合理的恢复策略。放到交易里,两次重试可能就是两张订单、两次扣款、两个快递员同时上门。棒棒的,容错把用户的钱包容了两次。
所以支付和订单接口通常需要幂等键,同一业务动作无论重放几次,服务端都只认一次。Stripe 的官方文档把这件事写得很直白。对 Agent 来说,幂等不是后端的边角知识,它是能不能放心自动执行的地基。
这里还有一个经常被低估的问题,对话状态和业务状态不是同一份东西。
用户可以关掉窗口,可以换到 PC,可以过几分钟再从 AI 眼镜里问一句我的快递到哪了。聊天上下文也许已经被压缩,订单却还在商家系统里继续流转。Agent 不能靠记得上一轮对话来判断订单是否存在,它必须回到可查询、可验证的业务状态。
也就是说,服务接入之后,模型不是系统的账本。
数据库才是。
真正的接口不是聊天框
官方介绍里有几个词很关键,标准化协议接入、一键授权、AI 支付、订单接入和端到端调测。
这些词听起来没有十余领域那么热闹,却决定了平台能不能从演示走到日常。
先看授权。
让 Agent 读取一个人的地址、资产信息或订单记录,不能只靠一句用户好像同意了。授权范围得足够细,时效得明确,用户还要能撤销。公开的 OAuth 2.0 安全最佳实践一直在强调最小权限、重定向校验和令牌保护,因为授权链接一旦松动,后面的每一个服务都可能跟着漏。
放到对话里,这件事反而更难。
传统页面可以把权限列表摆在屏幕上,用户逐项点选。Agent 倾向于把复杂步骤压成一句自然语言,体验确实丝滑,但丝滑不该把风险提示一起磨平。查理财信息和买理财产品不是一个权限,查看历史订单和创建新订单也不是一个权限。坦率讲,这里少弹一个确认框,可能就多一张客服工单。
再看支付。
模型可以帮用户比较方案,却不该替用户猜测付款意愿。价格、收款方、商品或服务、退款条件,都应该在付款前被再次确认。确认之后还得生成可以审计的记录,证明用户同意了什么,而不是只留一段模糊的聊天摘要。
然后是订单。
一个订单至少会经历待确认、已创建、待支付、已支付、履约中、已完成、已取消、退款中等状态。不同服务商的命名不一样,转换条件也不一样。平台如果只统一了调用入口,没有统一失败语义,Agent 就会遇到一种很尴尬的局面,同一句失败,在 A 服务里可以重试,在 B 服务里却代表钱已经扣了。
厉害了,接口都返回 200,用户还是收到了两份货。
所以开发者接入这类平台,真正该交付的不是一个能被大模型叫到的 API,而是一份机器能执行、人能追责的业务契约。输入字段只是起点,授权范围、状态查询、错误码、重试规则、退款路径、人工接管和日志留存都得写清楚。
这跟早期接 MCP 工具还不太一样。工具调用常常关心模型能不能找到能力、参数能不能填对;交易型服务还得回答调用之后谁负责。参数正确不等于业务成功,业务成功也不等于用户满意。
中间差着一整套运营系统。

聊天框露在上面,真正承重的是下面几层。
App 没消失,只是退到了调用栈下面
这次发布还有一层变化,我觉得会慢慢影响开发者做产品的方式。
以前争用户入口,大家做的是下载、搜索排名、Push 和桌面图标。服务进了 Agent 以后,分发规则会多出一套新的维度。你的能力能不能被模型准确发现,参数描述会不会让它选错,返回结果是否容易比较,失败后有没有清楚的恢复动作,这些都可能影响服务被调用的机会。
换成工程语言,就是产品除了给人看,还得给机器读。
阿里云今年 5 月公开介绍 agentic AI 生态和 Qwen Cloud时,已经把企业服务和智能体放进同一套基础设施叙事里。千问这次把服务入口推到手机、PC 和 AI 眼镜,更像是把那套叙事往用户的日常动作里又推了一步。千问 PC 官方页面本来就在强调全局小窗和随时唤起,开放平台则让小窗后面不只连着模型,也连着真实服务。
很多人会顺势得出一个很猛的结论,App 要没了。
我没这么乐观。
App 里那些复杂的筛选、对比、内容展示、售后沟通和品牌体验,不会因为多了一个聊天入口就全部蒸发。更可能发生的是,高频、低歧义、步骤固定的任务先被 Agent 吃掉。查物流、补开发票、改预约时间,这些动作特别适合一句话完成。到了买房、理财、选车这种高金额、高风险、需要大量比较的决策,用户还是会想看页面、看合同、看细节。
Agent 会缩短路径,但不会取消判断。
这也解释了为什么十余领域只是开始。服务品类越多,平台越需要知道什么时候应该自动执行,什么时候只给建议,什么时候必须把用户送回页面,什么时候直接转人工。
一个成熟的 Agent,不是每件事都替你做。
它得知道哪一步不该替你做。
接入前,先把失败流程写出来
如果我是准备接入这类平台的开发者,我不会先做一段最顺的演示视频。
我会先画状态机。
把每一个会产生真实后果的动作圈出来,标明用户确认发生在哪、幂等键从哪生成、超时后先查什么、重复通知怎么去重、退款由谁发起、超过多久转人工。正常路径往往半天就能跑通,真正拖上线进度的,都是那些看起来不太会发生的分支。
接着要做的是权限表。每项数据由谁提供,交给哪家服务,保存多久,用户在哪撤销。尤其是地址、身份和理财信息,别用一个同意授权把所有范围包起来。授权越方便,撤销就越应该方便。
然后把观测补齐。
每次调用得有贯穿平台和服务商的请求标识,日志里要能看到模型选择了什么工具、发了哪些经过脱敏的参数、服务端返回什么状态、后来有没有重试。用户说我明明没下单时,团队不能靠翻聊天截图猜发生了什么。
说真的,这些东西一点都不性感。
没有发布会愿意用十分钟讲重复通知,也很少有人拿退款状态机做首页大图。可 Agent 一旦接触真实交易,产品可信不可信,往往就死在这些地方。
等这些做好,才轮到提示词和对话体验。
提示词当然重要。Agent 要学会问缺失信息,要能在多个服务之间解释差异,也要避免把推荐说成保证。但如果底层接口没有幂等、没有明确状态、没有人工接管,再漂亮的对话也只是给事故加了一层柔光滤镜。
这话听着有点扫兴,但我始终觉得,Agent 时代最稀缺的能力不是让模型更敢做,而是让系统知道它到底做了什么。
千问开放平台把第三方服务带进对话框,是一个很有分量的信号。入口开始变化,服务分发开始变化,开发者写接口的对象也开始从人类客户端变成模型与人类共同参与的系统。
新的入口已经来了。
接下来拼的,不是谁能把按钮藏得最深,而是谁能把责任写得最清楚。