読み込み中…
読み込み中…
Etsy のエンジニアリングチームは、独自の商品データが非構造化で属人的な知識が必要な課題に対し、LangChain ベースのエージェントを導入しました。信頼性の向上のためにミドルウェアによる制御やメモリ管理の改善を行い、既存インフラを活用した高速ストリーミング実装を成し遂げました。また、LangSmith を活用した評価ワークフローと CLI ツールにより、LLM 判定器の整合性を高め、6 週間で本番リリースを実現しました。
単なる技術紹介ではなく、信頼性確保のための具体的なミドルウェア設計や、既存インフラを活用したストリーミング実装など、現場で即座に適用可能な知見が詰まった貴重な登壇です。AI エージェントの実装における「評価」と「デプロイ」の難解さを解決するアプローチとして強く推奨します。
非構造化データと専門知識が必要なギフト検索のため、LangChain の ReAct アージェントを採用し、ミドルウェアとツールでカスタマイズした。
トークン無限ループ防止や ID 誤認への対応をミドルウェアで行い、Apache を活用したソケット転送パターンでストリーミングを実現した。
LangSmith と独自の CLI を用いてデータセット生成から LLM 判定器の調整まで自動化し、レビューア間の合意率を統計的に管理した。
この事例は、大規模 EC サイトにおいて複雑な非構造化データを扱う AI エージェントを、既存インフラを破壊することなく本番環境に導入する具体的なアーキテクチャを示しています。特に、LLM の不確実性をミドルウェアで制御し、評価プロセスを自動化・標準化する手法は、エンタープライズレベルの AI 開発におけるベストプラクティスとして広く参照されるでしょう。
Etsy は、数百万人の出品者が手作りのユニークなアイテムを販売する二面型マーケットプレイスです。しかし、在庫に固定された属性スキーマが存在せず、専門知識や視覚情報が不可欠な「非構造化データ」の検索は長年の課題でした。この課題に対し、エンジニアリングチームは LangChain ベースのエージェントを導入し、6 週間で本番環境へのリリースを成し遂げました。
本記事では、Etsy のエンジニアがどのようにして複雑なギフト検索を実現し、LLM の不確実性を制御しながら信頼性の高いシステムを構築したのか、そのアーキテクチャと評価プロセスを解説します。
Etsy の商品データは、時として雑多でノイズの多い記述や、画像に依存する情報が散在しています。また、ギフト選びという行為自体が「誰に贈るか」は分かっても「何を贈ればよいか」が不明確な曖昧なプロセスです。
こうした課題に対し、Etsy は単なる検索エンジンではなく、ユーザーと対話しながら推薦リストを洗練させるエージェントの導入を決断しました。選定された基盤技術は、業界標準である LangChain です。
「エージェント分野で最高かつ最先端のツールであり、ネイティブな観測性と評価機能も提供します」
具体的には、抽象化と制御のバランスが取れた LangChain v1 のReAct アージェントを採用しました。このアーキテクチャでは、モデルがリクエストを受け取ると、まずどのツールを呼び出すかを判断し、その結果に基づいて推論を行います。そして「さらに検索を続けるか」「推薦リストを返すか」を選択するループを回します。
このエージェントの核心となるカスタマイズポイントは以下の 2 点です。
受取人の長期記憶には PostgreSQL のキーバリューストアを使用し、モデルが動的に指示を読み込んで適切なツールを使用できるようにスキルを設定しました。これにより、ユーザーはエージェントとペアとなり、協力的かつ反復的に最適なギフトを見つけ出す体験が可能になりました。
本番環境への移行において最大の障壁となったのは、LLM の信頼性と速度です。Etsy は以下の具体的な対策を講じました。
モデルが同じツールを繰り返し呼び出す現象(スピン)や、存在しないリスト ID を返すハルシネーションは致命的な問題となります。これらに対し、Etsy は独自のミドルウェアで介入を行いました。
また、リスト ID のハルシネーション対策として、ツール実行後に得られた ID を台帳(観測済み ID)と比較し、ミドルウェアが可能な限り最善の方法で ID を修正する仕組みを実装しました。これにより、不確実なモデル出力を堅牢に制御しています。
モデルが誤って「T シャツのサイズ」を「興味分野」フィールドに保存するなど、メモリを破損する事例も発生しました。これを解決するため、Etsy はターミナル UI エージェントデバッガを開発しました。
このツールにより、エージェントの状態を可視化し、グラフ内のノードでブレークポイントを設定してスタックを確認できます。Python のネイティブデバッガーとも統合されており、7〜8 種類の課題を迅速に特定・解決することができました。
理想的には LangGraph から直接クライアントへ結果をストリームしたいところですが、Etsy は新しい Kubernetes クラスターへの依存やセキュリティリスクを避けました。代わりに、長年使われている既存の Web インフラ(Apache)を活用するソケット転送パターンを採用しました。
この工夫により、既存の Web インフラを破壊することなく、エージェントによる高速ストリーミングを実現しました。
本番リリースに向けて最も時間を割いたのが評価プロセスです。Etsy は「結果に至る軌跡」と「最終成果物」の両面から評価を行いました。
エージェントの軌跡については、Pass-K テスト(非決定論的なテストを K 回実行し、パス率が閾値を超えることを保証)を採用しました。一方、最終成果物の評価にはLLM ジャッジ(AI が AI を判定する仕組み)が必要でしたが、データセット生成やレビューヤーの整合性確保など多くの課題がありました。
「多様なデータセットをどう生成するか? レビューヤーをどう整合させ、較正して出品物を一貫した方法でラベル付けさせるか?」
これらの課題に対し、Etsy はLangSmith APIを活用した独自ツール「Etsy Agents CLI」を開発しました。この CLI を用いて以下のワークフローを自動化・標準化しています。
このプロセスにより、精度と再現率を統計的に管理し、LLM ジャッジの整合性を高めました。最終的には、ホールドアウトセットや本番環境の例に対して実行し、自信を持ってリリース判断を下しています。
Etsy は、シニアエンジニア 3 名とデザイナー 1 名の小規模チームで、LangChain と LangSmith を活用してわずか6 週間で本番環境へのベータ版リリースを達成しました。
この事例が示すのは、複雑な非構造化データを扱う AI エージェントであっても、ミドルウェアによる制御や既存インフラの流用、そして標準化された評価ワークフローによって、大規模サイトでも安全かつ高速に導入できるという事実です。LLM の不確実性を「制御」し、「評価」を自動化するこのアプローチは、エンタープライズレベルの AI 開発における新たなベストプラクティスとして注目されるでしょう。
この記事はAIが動画の内容を記事化したものです。正確な発言は動画および文字起こしをご確認ください。