作者:Sravan Jayanthi

Connectly AI 是一家 B2B 对话式 AI 公司,为 Alibaba、Columbia 和 American Eagle 等大型电商品牌提供销售 AI SaaS 服务。
Connectly AI 的旗舰产品是 Sofia AI 销售助理,一款先进的对话式销售 AI,能够实现商品发现、推荐和客户协助,为企业的外呼营销活动和入站联络带来高出 30% 的转化率。
Connectly 的旗舰产品 Sofia AI 销售助理
在 Sofia AI 取得初步成功之后,我们的客户希望它能超越基础销售员的角色,成为一名销售"专家"。要成为专家,Sofia AI 需要更先进的多跳推理和多步规划能力。举例来说,为了推荐最适合劳动节的穿搭,Sofia 可能需要先阅读多篇博客,浏览商品目录,最后才能推荐搭配方案。
此外,AI"专家"不可能是一个千篇一律的模型,它必须针对每个企业量身定制。我们的企业客户需要能够用自然语言分享领域知识并指定指令(例如提升某款商品的销量、促进企业间的互动、精准获客等)。举个例子,一家企业可能会说"当我们推荐搭配时,如果每套搭配里至少包含一件清仓货架上的商品,客户的反馈会更好",或者"接下来两周,你可以用促销码'sofia15'来吸引犹豫不决的客户下单。"
此前的 Sofia AI 助理采用两阶段设计:工具调用和响应生成。整套架构被设计为一个专用工具的多路复用器,每个"动作模型"都有一套逻辑,用来判断是否要触发对应的工具。该架构通过使用更小、针对特定任务的模型,根据对话内容判断是否应该调用某个工具,从而在低延迟和低成本方面做了优化。这种设计有其优点,也有一些缺点。

Sofia V2 架构
在最后一个阶段,一个 LLM 会被要求分析一段较长的对话、一组工具调用结果、自定义提示词逻辑,以及一套复杂的响应规则或条件,并试图整理出一条回复。
这种设计存在几个关键问题:
在 Sofia V3 中,我们的目标是设计一款高度灵活的对话式聊天机器人。我们的智能销售 AI 能够借助最先进的智能体推理技术,完成商家指定的目标,并应对复杂的多跳查询。
架构设计中的一个重要目标,是确保每个 AI 模块都拥有单一、明确定义的职责,不会被过多任务拖累。为此,我们设计了一套自定义的、由商家指定的规则,分配给不同的模块(后面会详细讨论)。
当用户向 Sofia 询问礼物建议或订单方面的协助时,请求会首先交给指令提取智能体,由它生成一个 Sofia 需要完成的上下文目标。随后,这条指令会传递给规划与工具调用智能体,由它梳理出一个低层级的计划并执行工具来完成任务。最后,工具的结果连同指令会一起交给响应智能体,由它撰写回复给用户的消息。

Sofia V3 架构
下面是一个用户与某家红酒商的 Sofia AI 之间两轮直观对话的示例。Sofia 的高层目标是介绍并销售其主打产品——一项红酒订阅服务。
用户:适合搭配玛格丽塔披萨的红酒。
Sofia:搭配玛格丽塔披萨,我推荐以下几款酒:经典基安蒂、灰皮诺和长相思。这几款有没有你喜欢的?
用户:我选灰皮诺,有哪些订阅方案?
Sofia:没问题!这是一款来自法国勃艮第产区的灰皮诺 <link>。我推荐我们的 3 种订阅方案之一,性价比最高。想了解更多吗?

指令提取智能体流程
第一个模块是指令提取智能体,负责根据"行为规则"和用户的问题,识别出系统的目标。
行为规则描述系统的高层行为,比如它应该如何应对不同类型的输入。以下是我们红酒商店的示例:
结合对话的上下文以及企业为 Sofia 设定的目标,它会为当前对话流程的阶段设计出一条合适的指令。
***第一轮指令:***查阅红酒搭配指南,并从我们的产品组合中推荐几款适合搭配玛格丽塔披萨的红酒。
***第二轮指令:***在产品目录中搜索灰皮诺,并建议购买一个订阅方案。
指令评判者会审视生成的任务,判断它是否完整体现并遵循了给定的行为规则。这是 Reflexion(Shinn 等人,2023)中描述的一种技术,能够提升 LLM 的推理能力,确保指令提取器更稳健地捕捉到潜在意图和企业的目标。
在利用评判者验证提取出的指令的准确性之后,它会被传递给工具调用智能体和响应智能体,指导它们接下来的动作。

规划与工具调用智能体流程
规划与工具调用智能体负责利用一整套提供给销售助理的工具,尝试完成给定的指令。这包括制定计划、执行工具,并观察输出结果以判断是否可接受。
在我们的示例中,Sofia 被指示利用一个知识库,其中包含关于哪种酒最适合搭配披萨的目录和指南,并结合可用红酒的产品库存,为用户提供建议。
第一轮规划与工具调用追踪
*思考:*我需要推荐一款适合搭配玛格丽塔披萨的酒。我应该搜索知识库,找到描述选酒建议的产品指南。
*工具调用:*knowledge_base_search(instruction="从我们的产品组合中找出适合搭配玛格丽塔披萨的红酒")
*工具输出:*推荐红酒:经典基安蒂、灰皮诺和长相思。
第二轮规划与工具调用追踪
*思考:*我应该在产品库存中为用户找到一款灰皮诺红酒,然后告知他们可以通过订阅服务购买这款特定的灰皮诺产品。
*工具调用:*recommendation_engine(query="灰皮诺")
*工具输出:*这是我们灰皮诺系列的链接:<link>。

响应智能体流程
最后一个模块是响应智能体,它可以访问响应规则,负责理解对话内容和观察到的工具输出,并撰写一条回复给用户。
响应规则描述了系统响应的格式和风格。以下是这家红酒商如何为响应指定语气或详细程度的示例。
***第一轮响应:***搭配玛格丽塔披萨,我推荐以下几款酒:经典基安蒂、灰皮诺和长相思。这几款有没有你喜欢的?
***第二轮响应:***没问题!这是一款来自法国勃艮第产区的灰皮诺 <link>。我推荐我们的 3 种订阅方案之一,性价比最高。想了解更多吗?
请注意它如何组织回复内容,遵循简洁明了的目标,同时通过相关的后续问题让用户保持参与。
为了确保使用最优的模型和提示词,我们构建了数据集,并采用指标驱动开发的方式进行迭代优化。
尽管我们数据集的方法和结构仍属专有信息,但为了鼓励对这类系统的后续研究,我们想分享一个我们发现特别有用的合成数据集生成技术:
依照 SMM-QG 中的技术,我们指导生成模型同时设计成功和不成功的工具输出,以测试两种情况。

SMMQG 的采样与数据集生成方法(Wu 等人,2024)
这项技术很有用,因为它让我们拥有了一个标准数据集,可以据此开发,并在指标驱动开发方法中作为优化目标。
注:我们的 LLM 架构属于专有信息,因此在这一部分,我们将使用常见的基础模型来展示我们的指标驱动开发方法*。*** 此外,我们也希望这能为大家了解流行基础模型的表现提供更多参考信息。
为了评估成功程度,我们为a) 指令提取和 b) 规则遵循的成功率分别定义了明确可衡量的分数,作为系统优化的目标。
我们通过让 GPT-4 充当评判者,对 3 段对话(平均每段 5 轮)中生成指令的质量按 4 分制打分,来评估指令提取和评判环节的成功率。

主流基础模型的指令评分表
我们希望对比新旧架构在对话质量上的表现,尤其是在遵循既定规则分类方面。我们在工具输出成功的情况下(成功工具输出)以及工具失败的负面情况下(不成功工具输出)都进行了基准测试,以确定它们能否仍然成功遵循给定的规则。

Sofia V2 与 Sofia V3(配合 GPT-4o)的规则遵循评分对比表
这些结果表明,新架构设计在对话过程中遵循自定义助理规则方面有着明显且持续的改进。此外,在工具失败的情况下,我们依然能够继续与用户进行对话,而不会降低规则遵循方面的表现。
我们进行的一项有趣研究是,在整个技术栈中对不同的 LLM 模型进行消融实验。不同的模型在支持多语言、工具调用或复杂推理方面各有取舍,我们希望在尽量降低响应时间和成本的同时,找出模型组合的最佳配置。

Sofia V3 中使用的模型消融对比
我们发现,可以组合使用这些模型,让每个模型都承担与其能力相匹配的任务,从而在最大化性能的同时,最小化响应时间。

平均对话时间分布
我们计划进一步研究如何优化模型的响应时间,让终端用户感觉几乎是即时响应。
Sofia V3 为商家提供了先进的能力,让他们能够用纯自然语言"编程"一位自主的 AI 销售"专家"。企业不仅可以为销售助理设计自定义目标,还能规定它与用户互动的标准,而它会在对话中智能地完成这些任务。新一代 Sofia AI 现已在 https://www.connectly.ai/ 上线,更多进阶功能也在每月持续推出!
构建当代 LLM 应用是一项充满挑战的任务,我们梳理出了一些设计和构建高性能、可用于生产的生成式 AI 系统的最佳已知技术,且开发速度极快。
合成数据集生成,Wu、Jayanthi 等人,2024:
Reflexion,Shinn 等人,2023:

Reflexion 中的口头强化学习(Shinn 等人,2023)
Self-Reflection,Renze 和 Guven,2024,以及 Self-Refine,Madaan 等人,2023:

LangChain 的自我反思示例
GPT-as-a-Judge,Thankur 等人,2024:
Sravan Jayanthi、Joel Simonoff、Yandong Liu