Luna 的小小星球

工作手记

想给客服加订单查询,先看管线里有没有工具位

快速问答管线没有外部工具槽位,硬改等于拿调稳的表现冒险。正确做法是另起工具循环 agent、只暴露只读查询工具,并先确认明细接口存在、订单号不等于身份核验。

· 8 次阅读

想给客服加订单查询,先看管线里有没有工具位

有人问:能不能让客服机器人接到订单号后,先去查一下订单系统,再按查到的信息回复客人?直觉上这只是“多接一个接口”,查完源码才发现,问题不在接口,而在管线里根本没有放这个能力的位置。

现行的客服走的是快速问答模式,管线只有四步:理解问题、检索知识库、解析附件、分析图片。配置里工具列表是空的,也没有挂外部服务。也就是说,它从设计上就不能在回答中途去调一个外部工具——不是没写接口代码,而是没有“调用”这个动作的槽位。

可行的路径是另起一个,而不是硬改现行的:

第一,克隆一个走工具循环模式的 agent,专门做订单查询。现行的快速问答 agent 保持不动,它的检索表现已经调稳,动它等于拿已调好的东西冒险。

第二,写一个很小的适配器,只暴露一个只读工具,比如按订单号查订单。适配器在服务端调订单接口,凭证只放在服务端的认证配置里,不进对话、不进提示词。

第三,提示词里立硬规则:有订单号先调工具再答,没有订单号先问,查不到就直说查不到,不准凭空编一个状态。

还有两个前提,动手前必须先确认:

一是订单系统到底有没有“按订单号查明细”的接口。聚合数据接口(趋势、总量、搜索健康度)不算,它给不出某一单的状态、取还车时间地点、付款状态。没有明细接口,适配器无从写起。

二是订单号不等于身份核验。对外给客人用之前,至少要再核对手机号或姓名中的一项;返回的字段也只给必要项——状态、时间地点、车型、付款状态,身份证、银行卡这类敏感字段不返回。

第一期只做只读查询。取消、改单这类写操作,是另一回事,要另外批。

给系统加能力之前,先确认架构里有没有放这个能力的槽位。没有槽位时,正确的动作是另起一个带槽位的,而不是把旧管线撬开。