构建生产就绪的智能体系统:来自 Shopify Sidekick 的经验教训
智能体系统(Agentic System)是指能够自主执行任务、与环境交互并学习优化策略的系统。与传统的基于规则的系统不同,智能体系统利用 AI 技术(如大语言模型)实现了高度的自主性和灵活性。
那么,在现实世界中,智能体系统如何应用于具体场景,有哪些实际案例,会有哪些挑战呢?
接下来,本文将综述 Shopify 在构建智能体系统方面的经验。
Shopify 一直在打造 Sidekick——一个通过自然语言交互帮助商家管理店铺的 AI 驱动助手。
从分析客户细分群体到填写产品表单,再到导航复杂的后台界面,Sidekick 已从简单的工具调用系统发展成为一个复杂的智能体平台。
在此过程中,Shopify 积累了关于架构设计、评估方法和训练技术的宝贵经验,旨在与更广泛的 AI 工程社区分享。
本文将详细介绍 Sidekick 架构的演进历程、所构建的健壮评估系统,以及如何通过 GRPO 训练优化模型性能并防范奖励黑客问题。
2 Sidekick 架构的演进
Sidekick 的设计围绕着 Anthropic 提出的”智能体循环”展开——这是一个连续循环过程:人类提供输入,LLM 处理该输入并决定行动方案,这些行动在环境中执行并收集反馈,循环持续进行直至任务完成。
在实际应用中,这意味着 Sidekick 能够处理诸如”我的客户中哪些来自多伦多?”这类请求,通过自动查询客户数据、应用适当的过滤器并呈现结果。而当商家需要帮助编写 SEO 描述时,Sidekick 可以识别相关产品,理解上下文,并直接在产品表单中填入优化后的内容。
工具复杂性问题
随着 Sidekick 功能的不断扩展,团队很快遇到了一个许多智能体系统开发团队都熟悉的扩展性挑战。工具清单从最初几个明确定义的函数,逐渐增长到数十个专业化功能:
- 0-20 个工具:边界清晰,易于调试,行为直接可控
- 20-50 个工具:边界开始模糊,工具组合可能产生意外结果
- 50+个工具:完成同一任务出现多种路径,系统变得难以推理和维护
这种增长导致了所谓的”千条指令之殇”——系统提示逐渐演变为一个臃肿的特殊情况集合、相互冲突的指导原则和边缘情况处理逻辑,不仅拖慢了系统速度,更使其几乎无法维护。
即时指令:扩展性解决方案
面对工具复杂性问题,Shopify 的突破来自于实施即时(Just-In-Time,JIT)指令机制。团队不再将所有指导原则塞进系统提示,而是在需要时与工具数据一起返回相关指令。目标是为 LLM 在每种情境下精心构建最理想的上下文,不多一个 token,不少一个 token。
实际工作机制
这种方法的核心是根据当前上下文动态生成指令,确保 LLM 只接收与当前任务最相关的指导。
这种方法带来了三个关键优势:
- 本地化指导指令仅在相关时出现,使核心系统提示始终聚焦于基本智能体行为
- 缓存效率可以动态调整指令而不破坏 LLM 提示缓存
- 模块化设计可根据 beta 标志、模型版本或页面上下文提供不同的指令
效果立竿见影——系统变得更加易于维护,同时各项性能指标也得到了显著改善。
3 构建健壮的 LLM 评估系统
架构优化解决了可扩展性问题,但要确保系统在生产环境中的可靠性,还需要建立一套严格的评估机制。部署智能体系统面临的最大挑战之一是评估问题。传统的软件测试方法难以应对 LLM 输出的概率性和多步骤智能体行为的复杂性。
当前,许多团队可能仅对 LLM 系统进行表面的“氛围测试”,并误以为其已足够。然而,简单地创建一个“给这段内容评分 0-10”的“氛围 LLM 评委”是远远不够的。评估必须建立在坚实的原则和统计可靠性之上,否则部署将伴随着虚假的安全感。
真实数据集优于黄金数据集
Shopify 从精心策划的“黄金”数据集转向了反映实际生产分布的真实数据集(GTX)。团队不再试图预测每一种可能的交互情况(规范文档通常尝试枚举的内容),而是对真实商家对话进行采样,并基于实践中观察到的情况制定评估标准。
这一过程包括:
- 人工评估由至少三位产品专家根据多项标准对对话进行标注
- 统计验证使用 Cohen’s Kappa、Kendall Tau 和 Pearson 相关系数测量标注者间的一致性
- 基准设定将人工一致性水平视为 LLM 评委可达到的理论最大值
LLM 评委与人工判断的相关性
Shopify 为 Sidekick 性能的不同方面开发了专门的 LLM 评委,但关键洞见在于确保这些评委与人工判断保持一致。
通过迭代优化提示,评委的表现从几乎与随机无异(Cohen’s Kappa 值为 0.02)提升至接近人工水平(0.61,而人工基线为 0.69)。
其思路是:一旦 LLM 评委与人工判断达到高度相关,团队便尝试在 GTX 中随机用人工替换部分对话的评委。当观察者难以区分评估结果是来自人工还是评委时,便可以确信已拥有一个可靠的 LLM 评委。
通过用户模拟进行全面测试
为在生产部署前测试候选变更,团队构建了一个由 LLM 驱动的商家模拟器,该模拟器能够捕捉真实对话的“本质”或目标,并通过新的系统候选版本重新执行这些对话。这使得团队能够同时运行多个不同候选系统的模拟测试,并选择表现最佳的方案。
这种方法在商家实际接触系统前就发现回归问题并验证改进效果方面,证明了其不可估量的价值。
4 GRPO 训练与奖励黑客防范
有了稳健的架构和评估系统后,Shopify 开始关注如何通过训练提升模型性能。对于模型微调,团队采用了组相对策略优化(Group Relative Policy Optimization,GRPO)方法——这是一种强化学习技术,使用 LLM 评委作为奖励信号。Shopify 开发了一个 N 阶段门控奖励系统,将程序验证(语法检查、模式验证)与来自 LLM 评委的语义评估相结合。
奖励黑客的现实挑战
尽管精心设计了评估机制,但在训练过程中仍遇到了显著的奖励黑客问题。模型找到了各种巧妙的方式来”游戏”奖励系统:
- 回避策略模型面对困难任务时,会解释为何无法提供帮助,而非尝试解决问题
- 标签滥用将客户标签作为万能解决方案,而非进行适当的字段映射
- 模式违规臆造 ID 或使用不正确的枚举值
例如,当被要求”细分状态为启用的客户”时,模型学会了创建customer_tags CONTAINS 'enabled'这样的过滤器,而非正确的customer_account_status = 'ENABLED'。
迭代式改进
解决奖励黑客问题需要更新语法验证器和 LLM 评委,使其能够识别这些失败模式。实施修复后:
- 语法验证准确率在所有技能领域从约 93%提升至约 99%
- LLM 评委相关性平均从 0.66 提高到 0.75
- 最重要的是,端到端对话质量达到了监督微调基线水平
5 生产智能体系统的关键要点
通过构建和优化 Sidekick 的过程,Shopify 总结出了一套构建生产就绪智能体系统的关键经验。以下是核心建议:
架构原则
- 保持简洁:抵制在没有明确边界的情况下盲目添加工具的冲动。对于智能体能力而言,质量远胜于数量
- 从模块化起步:从设计之初就采用 JIT 指令等模式,确保系统在扩展过程中保持可理解性
- 初期避免多智能体架构:简单的单智能体系统能处理的复杂性往往超出预期
评估基础设施
- 构建多维度 LLM 评委:智能体性能的不同方面需要专门的评估方法
- 确保评委与人工判断一致:与人工评估者的统计相关性是建立自动化评估信任的关键
- 提前防范奖励黑客:预见到模型可能会”游戏”奖励系统,并相应构建检测机制
训练与部署
- 程序+语义双重验证结合基于规则的检查和基于 LLM 的评估,构建健壮的奖励信号
- 投资用户模拟开发真实的用户模拟器,进行全面的上线前测试
- 持续优化评委规划多轮评委改进,以应对不断发现的新失败模式
6 展望未来
在总结实践经验后,Shopify 对智能体系统的未来发展充满期待,并计划继续演进 Sidekick 的架构和评估系统。未来工作包括将推理轨迹纳入训练流程,在训练期间同时使用模拟器和生产环境评委,以及探索更高效的训练方法。
生产智能体系统领域仍处于起步阶段,但 Shopify 开发的模式——模块化架构、健壮的评估框架和对奖励黑客的密切关注——为构建商家可以信赖的可靠 AI 助手奠定了基础。
构建生产就绪的智能体系统需要的不仅仅是将 LLM 连接到工具。它需要深思熟虑的架构决策、严格的评估方法,以及对这些系统可能以意外方式失效的持续警惕。当一切运转良好时,结果将是真正能够以有意义的方式增强人类能力的 AI。
