案例研究 · 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」階段;以最便宜的貨運業者建立寄件標籤,連同 QR code 寄給客戶。

  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 助理層——從您收件匣裡已有的問題開始,四週內上線一個管道。