
最近折腾电商 AI Agent,踩了几个坑,这篇把问题说清楚:从最基础的聊天机器人,到能够调用工具的电商 Agent,顺便把商品搜索、RAG(检索增强生成)和重排序这条链路捋顺。
本系列围绕使用阿里云 Serverless 构建电商 AI Agent展开:
源码:https://github.com/ServerlessLife/ecommerce-ai-agent
我们要为电商网站构建一个由人工智能(AI)驱动的购物助手。它会提供一个聊天界面,让访客可以查找商品、提出问题,并通过自然语言与网店交互。
我们的目标是以尽可能少的改动,把这个助手集成进现有网店,而不是围绕 AI 重构整个网站。
助手应该在整个购物过程中为用户提供帮助:
助手既要支持匿名访客,也要支持注册用户。系统会根据用户是否通过身份验证,提供不同的能力。
我们还希望支持非英语网店。这是一项重要需求,因为语言会直接影响我们对大语言模型(LLM)、嵌入模型、搜索与排序技术以及安全护栏的选择。
对话式界面为访客提供了一种与网店交互的新方式。客户不必再猜应该输入哪些关键词,也不必逐层浏览多个商品分类,直接说出自己的需求即可。
这种方式能降低发现商品的难度,鼓励用户探索更多商品,也有机会改善整体购物体验。
当然,新鲜感也是推动因素之一。AI 对很多客户来说仍然很有吸引力,购物助手仅仅因为与传统网店不同,就可能吸引不少注意力。
这个助手必须便于集成、运行和维护。下面几项需求会直接影响架构设计:
这些需求会贯穿整个系列,并影响我们后续的技术决策。
在确定架构和实现方式之前,先看看一个简单聊天界面如何逐步演化成能力更完整的电商 AI Agent。
整个体验可以分为三个阶段,每一步都在已有能力上继续增强。
第一个版本只有一个聊天窗口,但无论用户问什么,都会走完全相同的一套固定流程。
LLM 只负责撰写回答,不会决定搜索什么,也不会主动调用工具。每条消息都会触发一次全新的搜索,因此它无法把“有没有便宜一点的?”识别为上一轮问题的追问。
接下来,我们通过改写问题和重排序搜索结果,改进这条固定流程。
此时的聊天仍然没有对话历史。
到了真正的 Agent 阶段,LLM 会拿到完整对话,并自行决定调用哪些工具,而不是机械地执行固定步骤。它可以理解“有没有便宜一点的?”这类追问,也可以搜索商品、获取商品详情,或者发起加入购物车的请求。Agent 的执行框架,也就是 harness,会运行这些工具,把执行结果交还给 LLM,然后继续循环,直到 LLM 给出最终回答。后面我们会再详细拆解这套机制。
AI Agent 会反复询问大语言模型下一步该做什么。LLM 可以请求使用某个工具。工具本质上就是一个带名称和输入参数的函数。Agent 的代码,也就是所谓的 harness,负责执行工具,把结果发送回 LLM,再询问下一步。这个循环会一直持续,直到 LLM 给出最终答案。
继续阅读……