LangChain Blog更新日

Snykが社内サポートエージェントを顧客向け機能に変えた方法

要点 私たちは実際の顧客の課題から始めました。 Snyk Assistは、ドキュメント、サポートコンテンツ、アカウントシステムを横断して検索しなくても、顧客が素早く正確な回答を得られるようにするために構築されました。‍ 私たちは信頼性とアクセス制御を中核的な製品要件として扱いました。 Snykはセキュリティプラットフォームであるため、エージェントはユーザーの権限の範囲内で動作するように設計され、よ

画像の出典 · LangChain Blog

要点

  • 私たちは実際の顧客の課題から始めました。 Snyk Assistは、ドキュメント、サポートコンテンツ、アカウントシステムを横断して検索しなくても、顧客が素早く正確な回答を得られるようにするために構築されました。‍
  • 私たちは信頼性とアクセス制御を中核的な製品要件として扱いました。 Snykはセキュリティプラットフォームであるため、エージェントはユーザーの権限の範囲内で動作するように設計され、より広い展開の前に安全で、信頼でき、正確であることを証明する必要がありました。‍
  • 私たちは有用性、測定可能性、拡張性を備えたものとして構築しました。 単一のLangGraphランタイムが複数のサーフェスを支え、LangSmithの評価によりチームはリグレッションを検出し、応答を改善し、自信を持って継続的にリリースしています。

‍

SnykはAIセキュリティプラットフォームです。同社のプラットフォームは、コード、オープンソースの依存関係、コンテナ、クラウド設定における脆弱性を発見して修正し、開発者がすでに作業している場所、つまりIDE、プルリクエスト、パイプラインの中に組み込まれています。

私たちは開発者向けのセキュリティ製品を作っているため、顧客からは難しく具体的な質問が寄せられます。彼らは脆弱性、アカウントの状況、サポートの問題、製品の動作についての回答を、多くの場合実際の作業の最中に求めます。Snyk Assist以前は、これらの情報は製品ドキュメント、サポート記事、リリースノート、学習コンテンツ、アカウントデータに散らばっていました。正しい情報を見つけるには、通常複数のページを読むか、チケットを起票して待つ必要がありました。

Snyk AssistはLangChainとLangGraphを基盤に構築され、LangSmithでオブザーバビリティが管理されている会話型エージェントです。顧客が平易な言葉で回答を見つけるのを支援し、顧客に代わってアクションを実行することもできます。オープンな問題の照会、パッケージの既知の脆弱性の確認、会話の中でのサポートケースの起票、あるいは要求されたワークフローがまだサポートされていない場合の機能リクエストの記録が可能です。

これは当初、私たち自身のサポートチーム向けの社内ツールとして始まりました。2026年9月に、すべての有料顧客がアクセスできるコアSnyk製品へと移行しました。

この記事では、当初の社内サポートのユースケースから顧客向け製品体験に至るまで、Snyk Assistをどのように構築したかを紹介します。また、スケールさせる過程で権限、状態、ガードレール、評価をどのように扱ったかを含む、その背後にあるアーキテクチャについても取り上げます。

課題:スケールしないサポートと、AIリリースに対する高いハードル

私たちのサポートチームは数週間ごとに何千ものケースを処理しています。それぞれのケースを読み、製品、重大度、担当者によって分類し、適切な場所にルーティングしなければなりませんでした。顧客からの問い合わせが増えるにつれ、これはスケーリングの課題となりました。エージェントが明白な解決策でしたが、私たちはセキュリティソフトウェアを作っているため、顧客に提供するものはすべて、製品の他の部分に求めるのと同じ基準を満たす必要がありました。私たちは3つのことを証明する必要がありました。エージェントが正しく回答すること、拒否すべきものを拒否すること、そしてユーザーがすでに閲覧を許可されていないものを決して返さないことです。

「エージェント構築の難しい部分は、モデルに何ができるかではなく、エージェントが実際に機能することを証明することです。私たちはすべての変更をLangSmithの評価にかけ、基準をクリアできなければリリースしません。」

—Bailey Millns、AIエンジニア、Snyk

製品内で直接公開するのではなく、まず自社チームでの内部テストから始めました。このアプローチにより、初期のエラーが有料顧客に影響を与えることなくSnyk内部に留まることが保証されました。また、よりリスクの高い機能を安全にテストし、より広い展開の前にエージェントの動作を観察することもできました。

この社内フェーズにより、顧客向け機能を導入する前に、LangSmithを使って運用モデルを確立できました。これらの初期セッションからのすべてのトレースが評価セットに直接反映され、サポートポータルで公開する時点でエージェントがどのように動作するかを強く把握できていました。

フェーズ1:社内ツール

約1年間、Snyk Assistはケーストリアージとバーチャルエージェントの両方として顧客サポートチーム向けの社内ツールとして稼働し、Snykのスタッフだけがユーザーでした。エージェントを社内でテストすることで、オフラインテストでは現れなかったエッジケースを発見でき、フィードバックループはリリースサイクルではなく数時間単位で回りました。

フェーズ2: サポートポータル

2026年4月に、サポートポータルでSnyk Assistを顧客に公開しました。この時点で、ユーザーを名前で挨拶し、アカウントの状況を理解し、ログイン時にヘルスチェックを実行し、人間の介入を待つことなくいつでもチケットを起票できるようになっていました。

フェーズ3:コア製品

2026年9月1日、Snyk Assistは新しいナビゲーションとともにコアSnyk製品に移行し、すべてのページのトップバーにあるパネルとして、すべての有料顧客が利用できるようになりました。

各フェーズを通じて、同じエージェントランタイムを使い続けました。変わったのは、その前面にあるサーフェスだけでした。

1つのランタイム、複数の窓口

Snyk Assistは、複数のサーフェスの背後にある単一のLangGraphエージェントです。Slackアプリ、Webアプリ、直接のAPIアクセスがあり、すべて同じセキュアなフレームワークを経由してルーティングされます。

私たちがLangChainを選んだのは、その広範なコミュニティ、堅牢なエコシステム、そしてエージェント構築における業界標準としての地位のためです。

「LangChainは群を抜いて最大のコミュニティとエコシステムを持ち、エージェント構築の事実上の標準になりつつありました。」

—Jada Ross、AIエンジニア、Snyk

小規模チームとして運営していた私たちは、バグの修正、機能のリリース、インシデント対応を一箇所から行えるよう、単一のランタイムを求めていました。このシンプルさのおかげで、アーキテクチャを細分化することなく迅速にスケールすることができました。

さらに、独自のソリューションを構築する代わりにLangChainのミドルウェアを使用することで、コンテキスト、ガードレール、モデルフォールバックのための明確な統合ポイントが提供されました。この構成により、大規模なコードの書き直しではなく、シンプルな1行の編集だけで機能の更新や並べ替えが可能になっています。

本番環境で実用的にシステムを運用可能にした、4つの設計上の決定を以下に示します:

  1. ユーザーごとに登録される型付き関数としてのツール。ログインしているユーザーが実際に持つ権限に基づいて、リクエスト時にツールをアタッチします。これにより、エージェントはユーザーが既に閲覧できるデータにしかアクセスできません。ほとんどのツールは独立したマイクロサービスであり、独立してスケールでき、エージェントループを変更せずに機能を追加できます。
  2. 配線作業の代わりのミドルウェア。 コンテキスト管理、ガードレール、モデルフォールバックは、ループ内に手動で組み込むのではなく、エージェントライフサイクルの定義されたポイントにフックします。動作の追加や並べ替えは、全面書き換えではなく、リストへの1行の変更だけで済みます。
  3. チェックポインターによる状態管理。 会話履歴はPostgreSQLにセッションをキーとして永続化されるため、マルチターンのメモリ、Pod間のスケーリング、会話の再開がすべて追加の配線なしで機能します。
  4. 内部プラットフォームとしてのループ。エージェントはモデル、ツール、プロンプト、ミドルウェア、チェックポインターの組み合わせに過ぎないため、共有ファクトリーがコンパイル済みグラフを返し、各チームは独自の設定を提供するだけです。ほとんどの新しいワークフローは、新しいアーキテクチャではなく、設定の変更で済みます。

「開発者の視点から見ると、LangChainはバッテリー同梱のエージェント抽象化を提供してくれたので、オーケストレーション、ツール呼び出し、ストリーミング、状態管理を再発明する代わりに、エージェントのインパクトと機能に集中できました。」

—Matt Jarvis、Snyk AIエンジニアリングディレクター

すべての変更をどのように評価するか

すべてのモデル呼び出し、ツール呼び出し、判断ポイントは、開発初日からLangSmithでトレースされています。このトレースが、リリース方法の基盤となりました。

2層の評価を使用しています。

オフライン評価 では、LangSmithでテスト質問のセットを実行します。1つ目は、正解が分かっている実際の質問であり、別のモデルによってマークされるため、プロンプトやモデルの変更によって回答品質が悪化したかどうかを迅速に判断できます。2つ目は自動化されたレッドチーム演習で、人間がエージェントを騙して指示を無視させたり秘密を漏らさせたりしようと試みます。

ゲートとしてのCI では、すべてのプルリクエストに対して実際のエージェントをそれらのスイートで実行し、リポジトリにコミットされた合意されたしきい値でブロックします。

オンライン評価 では、スケジュールされたジョブによってすべての本番実行を採点します。2つのことを確認します: その質問がSnykに関するものであったか、そして応答がそれに答えていたか。これらの評価により、推定ではなく測定されたディフレクション率が得られます。また、各質問を製品領域、トピック、言語エコシステム、エラータイプ別に分類し、プロダクトマネージャーに顧客が苦労している場所のリアルタイムマップを提供します。

ループの完結 は、LangSmith MCPサーバーを通じてコーディングエージェント内で行われます。悪いトレースを見つけた場合、IDEを離れることなく調査し、データセットに変換できます。

すべてのステップがLangSmithでトレースされているため、実際の質問に対して変更をテストし、リリース前にリグレッションを捕捉し、悪いトレースを迅速に新しいデータセットに変換できます。これにより、より高速なフィードバックループが得られ、自信を持ってリリースすることがはるかに容易になります。

その影響: チケットの減少、回答の高速化

2026年4月にSnyk Assistが顧客向けに稼働開始して以来:

  • 60,000件以上のクエリを処理
  • 500以上の顧客アカウント
  • セッションの85%以上がサポートチケットなしで解決され、サポートチームに数百時間の削減をもたらした
  • 250件以上のケースがエージェントによって自動検出され、適切なチームに直接エスカレーションされた

すべての会話が採点および分類されるため、製品のどの部分が最も混乱を生んでいるかを把握できます。これはドキュメントの改善に役立ちます。

主なポイントと今後の展望

Snyk Assistは、Snyk自身のサポートチーム向けのツールとして始まりました。今日では、60,000件以上の顧客クエリを処理し、セッションの85%以上をサポートチケットを作成せずに解決しています。9月以来、Snyk Assistは製品自体の一部となり、顧客が既に行っている作業と並行してすべてのページで利用可能です。私たちは、それがすべての顧客にとってSnyk体験の有用な一部であることを目指しています。

リンク: https://docs.snyk.io/navigate-the-snyk-web-ui#snyk-assist

‍

原文の出典

LangChain Blog

内容について

原文の公開と権利は出典元に帰属します。

機械翻訳 · 原文をご参照ください