案例研究 · Atravesar Services · atravesar.ca

在真实的维修与逆向物流运营之上,构建 AI 助手层

Atravesar Services 是一家加拿大电子产品维修、翻新与逆向物流公司。SolvoSync 为其打造了公开网站、网站底下的运营平台,以及一个通过检索增强生成(RAG)与 Model Context Protocol(MCP)工具、以九种语言回答客户的 AI 助手。本案例已于 2026 年 10 月 21 日在 NATEA 多伦多现场发表。

www.atravesar.ca 上的 AVS 助手对话面板,提供建议起点:保外维修、追踪货件、查询运费
个内部服务
9
行 Python 代码
~175K
种语言,共用一个知识库
9
个白名单助手工具
10
每次 AI 回答的成本(标价)
US$0.004
的代码属于 AI 层
≈3%

客户

从客户退货,到货退客户

Atravesar Services 是一家加拿大电子产品维修、翻新与逆向物流公司,办公室位于列治文山,维修中心与仓库位于万锦,并通过快递服务全加拿大。公司为制造商与零售商提供 B2B 托管维修与退货方案,也提供直接面向消费者的邮寄维修;同时是 Narwal(云鲸)在加拿大的独家授权售后服务商,并支持 ECOVACS(科沃斯)与 Segway/Ninebot。

团队每天回答同样的问题:我的包裹在哪里?错误代码 E12 是什么意思?在魁北克含税要多少?我的工单开始维修了吗?这些答案全都已经存在——在某份文档、某个数据库,或某家承运商的 API 里。需求很明确:让软件安全地、全天候、用客户的语言回答这些问题。

  • 列治文山办公室 · 万锦维修中心与仓库 · 通过快递服务全加拿大

  • Narwal(云鲸)加拿大独家授权售后服务商 · 支持 ECOVACS(科沃斯)与 Segway/Ninebot

  • 扫地机器人 · 电动滑板车 · 智能手机 · 平板 · 笔记本电脑 · 游戏机 · 小家电

  • EN简体繁體日本語한국어Tiếng ViệtESITFR

设计原则

AI 负责阅读、理解与对话。软件负责决策、记录与付款。

整个架构画出一条明确的界线。AI 助手层位于日常工作流程之上,只能通过窄而具名、有日志的门——工具与 API——接触业务系统。底层则是具备身份验证、授权与审计记录的普通软件,负责决定价格、记录工单与转移资金。

  1. AI 助手层

    阅读、理解、查询、回答——用对方的语言,全天候服务。

  2. 窄而具名、有日志的门

    订单、支付、仓储、运输、追踪与客服,只能通过带 JSON schema 的白名单工具访问。模型从不碰数据库。

  3. 安全与管控

    身份验证(你是谁?)、授权(你可以看什么、做什么?)与审计记录(发生了什么——有日志、可审计)。

原本就在运转这家公司的系统

九个服务、约 17.5 万行 Python

网站只是看得见的部分。在它背后,SolvoSync 设计并运维着支撑整家公司的平台——仓储与 RMA 管理、多承运商运输、支付与税额、身份、设备检查与制造商系统集成。AI 层约占整个代码库的 3%;其余的一切,都是它所继承的纪律。

  • 7.7K LOC

    www · 公开网站

    9 种语言 · 服务页面与指南 · 保外(OOW)在线表单 · 聊天机器人组件 · 管理端知识上传 · llms.txt

  • 59.5K LOC

    Flow · WMS / RMA

    收货 · 库存 · 零件 · RMA · 发货单 · 托盘 · ECOVACS ESB · Mammotion FS Cloud · LSS · 31 个测试文件

  • 50.6K LOC

    Fulfill · 运输

    UPS · Canpar · Canada Post · Purolator(ShipEngine)· Freightcom · 运费、面单、取件、舱单、追踪 · EDI 210 账单审计

  • 5.2K LOC

    Payment · 支付与税额

    Stripe Checkout + webhooks · 按邮编计算加拿大税额(GST/HST/PST/QST)· 发票存至 S3 · 每周报表

  • 2.6K LOC

    SSO · 身份

    账号 · OAuth2 client-credentials · 角色 ADMIN、CUSTOMER、DEALER、RECEIVER、REPAIR、TECH、SHIPPER · 供应商范围

  • 35.4K LOC

    Track · 数字系统

    早期的库存/RMA 系统 · React + TypeScript 前端

  • 10.0K LOC

    Maintain · 设备检查

    检查表、照片、签名、定时报表

  • 2.8K LOC

    Mammotion · 制造商脚本

    FS Cloud 送修、备件、RMA 与待发货导出

  • 0.6K LOC

    盘点

    扫描 AVS 标签 ↔ EAN、标记缺失机台、导出 Excel

技术栈
  • AWS EC2 (Ubuntu)
  • RDS MySQL
  • S3
  • Redis
  • nginx + gunicorn
  • Flask
  • React + TypeScript
  • Qdrant
  • Gemini API
  • Stripe
  • Google Places

LOC = Python 行数,不含虚拟环境、migration 与第三方包(2026 年 10 月统计)。

AI 助手层

Gemini + RAG + MCP:AI 助手接在哪里

AVS 助手部署于 www.atravesar.ca,受会话令牌与速率限制保护。它以 Gemini Flash 搭配函数调用运行(每个回答最多四轮工具调用),从 Qdrant 向量数据库检索知识,并通过 MCP 与函数端点查询运输、税额与身份——每个端点都有自己的验证、限制与日志。

  1. 1

    知识助手(RAG)

    员工在管理页面上传 PDF、Markdown 或纯文本。文档被分段(每段约 1,000 字符、重叠 150 字符),以 gemini-embedding-001 嵌入为 768 维向量并存储在 Qdrant。每个问题按余弦相似度检索前五个段落,模型据此回答并注明来源。英文文档就能回答九种语言的问题。

  2. 2

    工具型助手(函数调用与 MCP)

    工具 = 名称 + 说明 + JSON schema。模型选择工具与参数,我们的代码以 OAuth2 服务令牌执行,模型再解释结果。货件 MCP 服务器采用 MCP over Streamable HTTP(JSON-RPC 2.0),因此同一个集成今天服务网站聊天机器人,明天服务桌面 AI 客户端中的员工助手,之后再服务持有限定密钥的合作伙伴代理。

  3. 3

    流程自动化(没有模型)

    支付确认 → 创建面单 → 创建工单 → 发送邮件。价格、税额、编号与阶段流转的规则都写在确定性、有测试的代码里——资金与记录在这里流动。

实际部署的工具目录

设计规则 #1:模型从不碰数据库——它只能请求工具。

search_knowledge_base www → Qdrant 语义搜索,返回前五个段落并附来源与标题。 只读;要求模型注明来源、绝不编造。
share_oow_webform www 以用户的语言返回保外表单的网址。 模型不得在聊天中收集表单字段。
list_provincial_tax_rates
calculate_tax
Payment 按省份或邮编计算 GST/HST/PST/QST;区分商品与服务。 确定性的 Decimal 运算;模型从不计算税额。
rate_shipment
track_shipment
Shipment MCP (fulfillapi) 承运商运费;以 UPS 1Z/Canpar D/Canada Post PIN 或客户参考编号追踪。 OAuth2 服务令牌;只读。
email_waybill
validate_address
Shipment MCP (fulfillapi) 将面单重新发送到档案中的地址;以 Google 验证地址。 只发给该货件的联系人;仅限加拿大/美国。
get_account_info
get_account_access
SSO MCP 账号资料,以及用户可查看哪些供应商的数据。 服务器端令牌;限定供应商范围。
clear_chat_history www 清除此浏览器的对话。 仅限本会话。

限制:每个回答最多 4 轮工具调用 · 每个工具结果 ≤ 12,000 字符 · 每次搜索 5 个段落 · 没有任何工具写入数据库 · 没有任何工具转移资金。

一个流程,端到端

保外(OOW)维修旅程

AI 在开头与结尾——负责对话。中间是普通、可测试的软件。由小团队在公司既有的系统上建成。

  1. 客户问助手:“我的 Narwal 过保了——可以修吗?”share_oow_webform 工具以客户的语言返回表单链接;聊天中不收集任何个人信息。

  2. 四步在线表单收集设备、问题与地址(经 Google Places 验证),可选择自行送件或寄件。

  3. 报价由代码计算:$40 检测费、由支付服务按邮编计算的税额,以及最低的实时快递运费(并行查询各承运商)加上固定加成。

  4. 以 Stripe Checkout 支付检测费与运费;PDF 发票(15 天付款条件)通过邮件发送。

  5. 经验证的 webhook 创建工单 AVSOOW{YYMMDD}####,并在 Flow 中打开为“Receiving”阶段;以最便宜的承运商创建寄件面单,连同二维码发给客户。

  6. 收到设备并检测后发出维修报价,通过第二笔 Stripe 付款完成,工单进入“Repair”阶段。

  7. 修好的设备寄回,追踪号通过邮件发送——全程由助手通过货件 MCP 回答“我的货件在哪里?”。

https://www.atravesar.ca/OOW-Webform/
atravesar.ca 上的四步保外维修表单:基本信息、设备、报价与条款、继续
atravesar.ca 上的四步保外维修表单:基本信息、设备、报价与条款、继续

大部分价值来自平凡的自动化

我们刻意不用 AI 的地方

定价与税额
支付服务中的 Decimal 运算、银行家舍入法,以及按邮编前缀应用的各省规则。
承运商选择
规则:邮政信箱 → Canada Post;特定制造商 → Canpar;UPS 达到速率限制 → 备用;其余取最低实时运费。
工单与阶段
Flow 中的唯一编号与阶段状态机(Receiving → Repair → ……),由 31 个测试文件覆盖。
账单审计
每晚解析 EDI 210 账单(UPS、Canpar)并与报价比对,自动生成多收报告。
支付与身份
Stripe Checkout 搭配经验证的 webhooks,发票与收据存至 S3;SSO 含角色、服务间 OAuth2 client-credentials 与员工 MFA。
定时任务与制造商系统集成
每个工作日追踪两次、每周发送预警邮件、每天导入制造商工单三次;ECOVACS SEEBURGER ESB、Mammotion FS Cloud 与 LSS——靠契约,不靠对话。
经验法则:如果输出必须完全正确、可重复,而且要能向会计师或律师解释——那就是代码的事。AI 在旁边负责解释与引导。

底层的安全与管控

身份验证、授权、审计记录

身份验证——你是谁?

  • 员工与合作伙伴使用 SSO;运输系统登录需 MFA。
  • 服务之间使用 OAuth2 client-credentials 令牌(Fulfill、Payment、SSO)。
  • 聊天机器人会话:绑定 IP 与浏览器的 HttpOnly JWT,30 分钟有效;同源检查与 Redis 黑名单防滥用。

授权——你可以看什么、做什么?

  • 角色 ADMIN、CUSTOMER、DEALER、RECEIVER、REPAIR、TECH、SHIPPER;合作伙伴只能看到自家的数据。
  • 模型不持有任何凭证——只有白名单上的工具。
  • 工具皆为只读,例外只有:把面单发给该货件自己的联系人;清除自己的聊天记录。

审计记录——发生了什么?

  • 每一轮对话都记录:会话、问题、回答、使用的工具、模型版本;可导出 CSV。
  • Stripe webhooks 经验证;支付事件与发票均存储于 S3。
  • 每晚以 EDI 210 对账承运商账单与报价;每周自动报表。

这些都不是 AI 专属的。这是你本来就该有的纪律——AI 层只是直接继承。

成果

它带来了什么

  • 客户能以九种语言、全天候获得关于保修、错误代码、税额、货件与维修流程的答案,并附上来源。

  • 保外收件从第一个问题一路跑到已付款的工单,员工不必再手动录入报价、面单或邮件。

  • 同一个 MCP 集成今天服务网站助手,也已准备好服务员工与合作伙伴的助手——不需要第二套集成。

  • 每次回答的成本以美分计:按标价约 US$0.004,每月 10,000 个回答约 US$45。

  • 每一轮对话都记录使用的工具与模型版本——质量靠阅读日志与修正文档提升,而不是重新训练。

诚实的工程:我们预先规划的故障模式——以及实际发生了什么

幻觉
以检索到的段落为依据、事实一律强制查询、温度 0.4、转交邮件。实际发生:早期营业时间与地址的回答来自通用知识——以强制查询规则修正。
提示词注入
政策式提示词与受 schema 约束的工具;没有敏感功能可解锁——没有电话名单,也没有支付工具。实际发生:有人尝试;因为能力范围窄,拒绝都守得住。
服务中断
工具错误以数据形式返回,机器人继续依知识库回答;并行查询各承运商并有规则式备用方案。实际发生:承运商 API 达到速率限制 → 切换备用承运商。
模型漂移
浮动的模型别名会在你不知不觉中改变语气、长度与工具使用。每一轮都记录模型版本,并在每次变动时重跑一组真实问题的回归测试集。

如果能回到一年前,我们会告诉自己的事

九个工程教训

  1. 01

    从收件箱里已有的问题开始——而不是从技术开始。

  2. 02

    工具优先于提示词:当模型需要“知道”动态信息时,加一个工具,而不是加一段文字。

  3. 03

    让知识库保持平凡:就用员工本来就在维护的 PDF 与 Markdown。

  4. 04

    锁定模型、记录版本——浮动别名会在你不知不觉中改变行为。

  5. 05

    优雅降级:工具错误就是数据;依赖服务宕机时机器人仍要能运行。

  6. 06

    所有东西都设上限——轮数、字符、token、速率。无上限的消耗是一张真实的账单。

  7. 07

    资金放在 Stripe 与表单后面,绝不放在聊天窗口后面。

  8. 08

    采用标准:MCP + OAuth2 让集成能被我们还没做出来的客户端重复使用。

  9. 09

    先做管理页面:上传文档、阅读日志——质量就是从这里来的。

免费附赠第十条:把系统提示词当政策来写——版本化、审阅、像代码一样测试。

现场发表

NATEA 多伦多 · AI 在中小企业的用武之地

  • 60 分钟 · 演讲与现场演示 · 线上

讲者:Nelson Lai — SolvoSync · Atravesar Services 首席技术官

2026 年 10 月 21 日(线上)的 60 分钟演讲与现场演示,实地看一家零售企业如何在 atravesar.ca 上运营,以及 AI 真正派上用场的地方:2026 年加拿大统计局关于中小企业 AI 采用的数据、三种模式——知识、工具、自动化——两场生产环境演示、加拿大的安全与隐私检查清单,以及四周入门计划。

19% 的加拿大企业使用 AI,25% 计划使用,40% 认为与自己无关。真正的关联,就在你的收件箱里。

关于这个项目,大家常问的问题

如何防止助手编造答案?

事实只来自检索到的段落或工具,绝不来自模型的记忆:系统提示词强制地址、营业时间与政策一律查询知识库,温度设为 0.4,工具无法回答时助手会转交邮件。早期关于营业时间的回答来自通用知识;强制查询规则修正了这个问题。

一次 AI 回答要花多少钱?

按 2026 年 10 月标价,一次回答(约 12,000 个输入 token 加 300 个输出 token)约 US$0.004,因此每月 10,000 个回答约 US$45。真正的成本是工程与内容维护,而不是 token。

我的公司能复用这套做法或 MCP 服务器吗?

可以。工具层建立在开放标准上——MCP over Streamable HTTP 搭配 OAuth2 client-credentials——因此同一组服务器可以服务任何助手。SolvoSync 为其他中小企业打造同样的模式:从收件箱里已有的问题开始,四周内上线一个渠道,先衡量再宣称。

个人信息如何处理?

个人信息远离聊天窗口。助手把用户引导到带同意条款、验证与 Stripe 的表单;机密只留在服务器端;会话是绑定 IP 与浏览器的 HttpOnly 令牌;每一轮对话都连同模型版本记录。设计遵循 PIPEDA 与魁北克第 25 号法案的原则:模型不做决定——代码与人才做。

想为您的企业打造同样的系统吗?

SolvoSync 负责设计、搭建与运维网站、系统集成与 AI 助手层——从您收件箱里已有的问题开始,四周内上线一个渠道。