導入事例 · Atravesar Services · atravesar.ca

実際の修理・リバースロジスティクス業務の上に築いた AI アシスタント層

カナダの電子機器修理・再生・リバースロジスティクス企業 Atravesar Services のために、SolvoSync は公開ウェブサイト、その下で動く業務基盤、そして検索拡張生成(RAG)と Model Context Protocol(MCP)ツールを通じて9言語で顧客に回答する AI アシスタントを構築しました。2026年10月21日、NATEA トロントでライブ発表。

www.atravesar.ca 上の AVS アシスタントのチャットパネル。おすすめの入口:保証外修理、配送追跡、送料見積もり
内部サービス
9
行の Python コード
~175K
言語、ナレッジベースは1つ
9
許可リスト化されたアシスタントツール
10
AI 回答1件あたり(定価)
US$0.004
がコードベース中の AI 層
≈3%

クライアント

顧客からの返品を、顧客への返却へ

Atravesar Services は、リッチモンドヒルにオフィス、マーカムに修理ベンチと倉庫を構え、宅配便でカナダ全土にサービスを提供する電子機器修理・再生・リバースロジスティクス企業です。メーカーや小売業者向けの B2B マネージド修理・返品プログラムと、消費者向けの郵送修理を運営し、カナダにおける Narwal の独占認定アフターサービス事業者として、ECOVACS と Segway/Ninebot のサポートも行っています。

チームは毎日同じ質問に答えていました。荷物はどこにある?エラーコード E12 の意味は?ケベック州では税込みでいくら?作業指示書はもう修理中?答えはすべて既に存在していました——ドキュメント、データベース、あるいは配送業者の API の中に。要件は明確でした。ソフトウェアに、安全に、24時間、顧客の言語でこれらに答えさせること。

  • リッチモンドヒルのオフィス · マーカムの修理ベンチと倉庫 · 宅配便でカナダ全土に対応

  • カナダにおける Narwal の独占認定アフターサービス事業者 · ECOVACS と Segway/Ninebot のサポート

  • ロボット掃除機 · 電動キックボード · スマートフォン · タブレット · ノート PC · ゲーム機 · 小型家電

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

設計原則

AI は読み、理解し、話す。ソフトウェアは決め、記録し、支払う。

このアーキテクチャは一本の明確な線を引いています。アシスタント層は日々のワークフローの上に位置し、狭く、名前が付き、ログが残る入口——ツールと API——を通じてのみ業務に触れます。その下では、認証・認可・監査記録を備えた通常のソフトウェアが価格を決め、作業指示書を記録し、お金を動かします。

  1. AI アシスタント層

    読み、理解し、調べ、人に答える——相手の言語で、24時間。

  2. 狭く、名前が付き、ログが残る入口

    注文、決済、倉庫、配送、追跡、サポートには、JSON スキーマ付きの許可リスト化されたツールを通じてしか到達できません。モデルがデータベースに触れることはありません。

  3. セキュリティと統制

    認証(あなたは誰か?)、認可(何を見て何ができるか?)、監査記録(何が起きたか——ログに残り、監査可能)。

すでに事業を動かしていたもの

9つのサービス、約175,000行の Python

ウェブサイトは目に見える部分にすぎません。その背後で SolvoSync は、会社を動かす基盤——倉庫・RMA 管理、複数配送業者への出荷、決済と税額、認証、点検、メーカー連携——を設計し、運用しています。AI 層はコードベースの約3%。残りすべては、AI 層が受け継ぐ規律です。

  • 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 の行数(2026年10月時点)。

AI アシスタント層

Gemini + RAG + MCP:アシスタントはどこに接続されるか

AVS アシスタントは www.atravesar.ca 上で、セッションに紐づくトークンとレート制限に守られて動作します。関数呼び出し対応の Gemini Flash で稼働し(1回答あたり最大4ラウンドのツール呼び出し)、Qdrant ベクトルデータベースから知識を取得し、配送・税額・認証には MCP と関数エンドポイント経由でアクセスします。各エンドポイントは独自の認証、制限、ログを備えています。

  1. 1

    ナレッジアシスタント(RAG)

    スタッフが管理ページから PDF、Markdown、テキストをアップロードします。ドキュメントはチャンク化され(約1,000文字、150文字の重複)、gemini-embedding-001 で768次元ベクトルに埋め込まれ、Qdrant に保存されます。質問ごとにコサイン類似度で上位5件の文章を取得し、モデルはそれらに基づいて出典を明示しながら回答します。英語のドキュメントで9言語の質問に答えられます。

  2. 2

    ツール利用アシスタント(関数呼び出しと MCP)

    ツールとは、名前・説明・JSON スキーマの組です。モデルがツールと引数を選び、私たちのコードが OAuth2 サービストークンでそれを実行し、モデルが結果を説明します。配送 MCP サーバーは MCP over Streamable HTTP(JSON-RPC 2.0)で通信するため、1つの統合が今日はウェブサイトのチャットボットに、明日はスタッフ用デスクトップアシスタントに、その先はスコープ付きキーを持つパートナーのエージェントに使えます。

  3. 3

    ワークフロー自動化(モデルなし)

    決済確認 → ラベル作成 → 作業指示書作成 → メール送信。価格、税額、採番、ステージ遷移のルールは、テスト済みの決定論的なコードの中にあります——お金と記録が動くのはここです。

デプロイ済みのツールカタログ

設計ルール #1:モデルはデータベースに触れない——ツールに依頼する。

search_knowledge_base www → Qdrant セマンティック検索。出典とタイトル付きで上位5件の文章を返す。 読み取り専用。出典を示し、決して創作しないようモデルに指示。
share_oow_webform www ユーザーの言語で保証外修理フォームの URL を返す。 モデルはチャット内でフォーム項目を収集してはならない。
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 このブラウザの会話を消去。 セッション範囲のみ。

制限:1回答あたり最大4ラウンドのツール呼び出し · 各ツール結果は12,000文字以内 · 検索1回につき5件 · データベースに書き込むツールなし · お金を動かすツールなし。

1つのワークフローをエンドツーエンドで

保証外(OOW)修理のジャーニー

始まりと終わりに AI——会話の部分。中間は普通の、テスト可能なソフトウェア。会社が既に持っていたシステムの上に、小さなチームで構築。

  1. 顧客がアシスタントに尋ねます:「Narwal の保証が切れたのですが、修理できますか?」share_oow_webform ツールが顧客の言語でフォームのリンクを返します。チャットでは個人情報を収集しません。

  2. 4ステップのウェブフォームが、デバイス、症状、住所(Google Places で検証)を収集します。持ち込みまたは発送を選択できます。

  3. 見積もりはコードが計算します:検査料 $40、決済サービスによる郵便番号ごとの税額、そして最安のリアルタイム配送料金(配送業者を並列照会)に固定マークアップを加えたもの。

  4. Stripe Checkout で検査料と送料を決済。支払期限15日の PDF 請求書がメールで送られます。

  5. 検証済みの webhook が作業指示書 AVSOOW{YYMMDD}#### を作成し、Flow で「Receiving」ステージとして開きます。最安の配送業者の発送ラベルと QR コードが顧客にメールされます。

  6. デバイスを受領・検査し、修理見積もりを発行。2回目の Stripe 決済で支払われ、作業指示書は「Repair」ステージへ進みます。

  7. 修理済みデバイスを返送し、追跡番号をメールで通知——その間ずっと、アシスタントは配送 MCP を通じて「荷物はどこ?」に答え続けます。

https://www.atravesar.ca/OOW-Webform/
atravesar.ca の4ステップ保証外修理フォーム:基本情報、デバイス、見積もりと条件、進む
atravesar.ca の4ステップ保証外修理フォーム:基本情報、デバイス、見積もりと条件、進む

価値の大部分は地味な自動化にある

あえて AI を使わない領域

価格と税額
決済サービス内の Decimal 演算、銀行家の丸め、郵便番号プレフィックスによる州ルール。
配送業者の選択
ルール:私書箱 → Canada Post、優先メーカー → Canpar、UPS のレート制限 → フォールバック、それ以外は最安のリアルタイム料金。
作業指示書とステージ
Flow における一意な番号とステージマシン(Receiving → Repair → …)。31本のテストファイルでカバー。
請求監査
毎晩 EDI 210 請求書(UPS、Canpar)を解析して見積もり料金と照合し、過請求レポートを自動生成。
決済と認証
検証済み webhook 付きの Stripe Checkout、請求書と領収書は S3 へ。ロール付き SSO、サービス間の OAuth2 client-credentials、スタッフの MFA。
定期ジョブとメーカー連携
平日2回の追跡、週次の警告メール、1日3回のメーカーデータ取り込み。ECOVACS SEEBURGER ESB、Mammotion FS Cloud、LSS——会話ではなく契約で。
経験則:出力が正確で、再現可能で、会計士や弁護士に説明できなければならないなら、それはコードの仕事です。AI はその隣で、説明と案内を担います。

その下にあるセキュリティと統制

認証、認可、監査記録

認証——あなたは誰か?

  • スタッフとパートナーには SSO。配送システムのログインには MFA。
  • サービス間(Fulfill、Payment、SSO)は OAuth2 client-credentials トークン。
  • チャットボットのセッション:IP とブラウザに紐づく HttpOnly JWT、有効期間30分。同一オリジン検査と、不正利用対策の Redis ブラックリスト。

認可——何を見て、何ができるか?

  • ロール ADMIN、CUSTOMER、DEALER、RECEIVER、REPAIR、TECH、SHIPPER。パートナーは自社ベンダーのデータのみ閲覧可能。
  • モデルは認証情報を一切持たない——許可リスト化されたツールのみ。
  • ツールは読み取り専用。例外は、配送自身の連絡先へのラベル再送と、自分のチャットの消去のみ。

監査記録——何が起きたか?

  • すべてのチャットターンを記録:セッション、質問、回答、使用ツール、モデルバージョン。CSV エクスポート対応。
  • Stripe webhook を検証。決済イベントと請求書は S3 に保存。
  • 毎晩 EDI 210 で配送業者の請求書と見積もりを突合。週次の自動レポート。

これらはどれも AI 固有のものではありません。もともと必要な規律であり、AI 層はそれをそのまま受け継ぐだけです。

成果

もたらされたもの

  • 顧客は保証、エラーコード、税額、配送、修理プロセスに関する回答を、9言語で、24時間365日、出典付きで得られます。

  • 保証外修理の受付は、最初の質問から支払い済み作業指示書まで、スタッフが見積もり・ラベル・メールを手入力することなく進みます。

  • 1つの MCP 統合が今日はウェブサイトのアシスタントに使われ、スタッフやパートナーのアシスタントにも対応可能——2つ目の統合は不要です。

  • 回答1件あたりのコストはセント単位:定価で約 US$0.004、月1万件の回答で約 US$45。

  • すべてのチャットターンは使用ツールとモデルバージョンとともに記録されます——品質は再学習ではなく、ログを読みドキュメントを直すことで向上します。

正直なエンジニアリング:想定した障害モードと、実際に起きたこと

ハルシネーション
取得した文章に根拠を置き、事実は必ず検索し、temperature 0.4、メールへの引き継ぎ。実際に起きたこと:初期は営業時間や住所の回答が一般知識から来ていた——検索必須ルールで修正。
プロンプトインジェクション
ポリシー型プロンプトとスキーマで制約されたツール。解放できる機密は何もない——電話帳も決済ツールもなし。実際に起きたこと:試みる人はいるが、能力が狭いため拒否は破られない。
障害
ツールのエラーはデータとして返され、ボットはナレッジから回答を続ける。配送業者は並列照会し、ルールベースのフォールバックを用意。実際に起きたこと:配送業者 API のレート制限 → フォールバック業者へ。
モデルドリフト
浮動するモデルエイリアスは、気づかぬうちに口調・冗長さ・ツール利用を変えます。モデルバージョンを毎ターン記録し、変更のたびに実際の質問からなる回帰セットを再実行します。

1年前の自分に伝えたいこと

9つのエンジニアリングの教訓

  1. 01

    受信トレイに既にある質問から始める——技術からではなく。

  2. 02

    プロンプトよりツール:モデルが動的な情報を「知る」必要があるなら、段落ではなくツールを追加する。

  3. 03

    ナレッジベースは地味に保つ:スタッフが既に維持している PDF と Markdown で。

  4. 04

    モデルを固定し、バージョンを記録する——浮動エイリアスは気づかぬうちに挙動を変える。

  5. 05

    優雅に劣化する:ツールエラーはデータ。依存先が落ちてもボットは動き続ける。

  6. 06

    すべてに上限を——ラウンド、文字数、トークン、レート。無制限の消費は本物の請求書になる。

  7. 07

    お金は Stripe とフォームの向こうに。チャットウィンドウの向こうには決して置かない。

  8. 08

    標準を使う:MCP + OAuth2 のおかげで、まだ作っていないクライアントにも統合を再利用できる。

  9. 09

    管理ページを最初に作る:ドキュメントのアップロードとログの閲覧——品質はそこから生まれる。

おまけの10番目:システムプロンプトはポリシーとして書く——バージョン管理し、レビューし、コードのようにテストする。

ライブ発表

NATEA トロント · 中小企業のための AI

  • 60分 · 講演とライブデモ · オンライン

登壇者:Nelson Lai — SolvoSync · Atravesar Services CTO

2026年10月21日(オンライン)の60分間の講演とライブデモ。小売業が atravesar.ca の上でどう動いているか、AI が本当に役立つのはどこかを示しました:中小企業の AI 導入に関する2026年カナダ統計局のデータ、3つのパターン——ナレッジ、ツール、自動化——本番環境での2つのデモ、カナダ向けセキュリティとプライバシーのチェックリスト、そして4週間のスタータープラン。

カナダ企業の19%が AI を使い、25%が導入を計画し、40%は自社には関係ないと考えている。その「関係」は、あなたの受信トレイの中にあります。

このプロジェクトについてよくある質問

アシスタントが事実をでっち上げるのをどう防いでいますか?

事実は取得した文章かツールからのみ得られ、モデルの記憶からは決して得ません。システムプロンプトが住所・営業時間・ポリシーについてナレッジベースの検索を強制し、temperature は 0.4、ツールで答えられない場合はメールへ引き継ぎます。初期には営業時間の回答が一般知識から来ていましたが、検索必須ルールで解決しました。

AI の回答1件のコストは?

2026年10月の定価で、回答1件(入力約12,000トークン + 出力約300トークン)は約 US$0.004。月1万件の回答で約 US$45 です。本当のコストはトークンではなく、エンジニアリングとコンテンツの保守です。

自社でもこのアプローチや MCP サーバーを再利用できますか?

はい。ツール層はオープン標準——MCP over Streamable HTTP と OAuth2 client-credentials——の上に構築されているため、同じサーバーをどのアシスタントからでも使えます。SolvoSync は他の中小企業にも同じパターンを構築します:受信トレイに既にある質問から始め、4週間で1つのチャネルを公開し、主張する前に測定する。

個人情報はどう扱われますか?

個人情報はチャットウィンドウの外に置きます。アシスタントは同意・検証・Stripe を備えたフォームへ案内し、シークレットはサーバー側に留め、セッションは IP とブラウザに紐づく HttpOnly トークン、そしてすべてのターンをモデルバージョンとともに記録します。設計は PIPEDA とケベック州法25号の原則に従います:モデルは決定しない——コードと人が決める。

御社にも同じ仕組みを

SolvoSync はウェブサイト、システム統合、AI アシスタント層を設計・構築・運用します——受信トレイに既にある質問から始め、4週間で1つのチャネルを公開します。