動画記事 · LangChain
Managed Deep Agents Connections の共有・ユーザー認証管理方法
動画の文字起こしと公開情報をもとにAIで要約・構成しています。 正確な発言は元動画と時間位置で確認してください。
まず要点
LangChain の Managed Deep Agents Connections を用いた、共有シークレット、MCP ベースのユーザー認証、カスタム OAuth アプリによる認証管理の実装手法を解説する。
AI エージェントの認証管理を革新する:LangChain「Connections」による 3 つの実装パターン
AI エージェントが外部サービスと連携する際、開発者が直面する最大の壁は「誰の名前で行動するか」という認証の問題です。従来のハードコードされた API キーやサービスアカウントに依存する手法はセキュリティリスクを伴いますが、LangChain の新機能「Connections」はこの課題を解決する 3 つの実用的なパターンを提供します。
本記事では、エージェント所有のシークレット管理から、MCP を介したユーザー認証、そしてカスタム OAuth アプリ連携まで、それぞれの仕組みと実装フローを解説します。
エージェント所有シークレット:全ユーザーで共有する API キー
まず紹介するのは「エージェント所有シークレット(Agent-owned secrets)」です。これは、すべてのユーザーが共通の API キーを使用し、エージェントが動的に取得して実行する方式です。
例えば、ウェブ検索ツールとして「Tavily」を利用する場合、各ユーザー固有の資格情報が必要ないため、この方式が最適です。開発者は mda connections create コマンドを実行し、環境変数から API キーを取得して接続を作成します。
「このキーはエージェントシークレットであり、ユーザーシークレットではありません。」
作成された接続は LangSmith に保存され、デプロイ後のあらゆるインタラクションでエージェントが自動的に取得できるようになります。ツールコード内では connections.get コマンドを用いて、定義したスラグ(識別子)をキーに API キーを取得します。
この仕組みにより、エージェントは Tavily などの制限付きサービスに対して、安全に共有された API キーを使用して検索を実行できます。開発者は複雑な認証フローを管理する必要なく、シンプルかつ効率的にツールを統合可能です。
MCP を経由したユーザー認証:エンドユーザーの資格情報を直接取得
次に紹介するのは「MCP(Model Context Protocol)経由のユーザー認証」です。この方式では、エージェントが外部サービスと連携する際、ユーザー自身の資格情報を OAuth フローを経て直接取得・利用します。
実装の流れは以下の通りです。
mda connections createコマンドで MCP 接続を作成し、MCP サーバーの URL を指定します。- ツールディレクトリに
mcp.pyファイルを作成し、define_mcp_connectionをインポートしてサーバー設定を行います。 - エージェントがツールを実行しようとした際、自動的に OAuth フローがトリガーされます。
開発者が LangChain Studio でテストすると、Linear のチケット作成を依頼した際に「接続フロー」が起動します。ユーザーは承認画面で OAuth 認証を行い、自身の Linear アカウントに紐づくトークンを付与します。
「これはサービスアカウントやボットトークンではなく、特定のユーザーの資格情報を使用して実行されます。」
この方式の利点は、リソースが提供するツールセットが十分であり、エンドユーザーの権限をそのままエージェントに委譲したい場合に適している点です。開発者は認証管理コストを大幅に削減しつつ、ユーザーの信頼性を高めるガバナンス基盤を構築できます。
カスタム OAuth アプリ連携:柔軟なトークン管理と自動更新
最後に紹介するのは「カスタム OAuth アプリ連携」です。これはより高度ですが、GitHub などの外部サービス向けに独自のアプリアイデンティティを設定し、トークンの取得・更新を完全に自動化する最も柔軟な実装フローです。
まず、LangChain のカタログから GitHub の接続オプションを選び、OAuth アプリのクライアント ID とシークレット、必要なスコープ(例:repos)を指定して connections create コマンドを実行します。これにより、LangSmith 上に OAuth アプリが登録されます。
ツールコード内では、connections.get を使用してアクセストークンを取得します。このメソッドは非常に賢く、以下のロジックで動作します。
- トークンが存在し有効な場合:即座にキャッシュされたトークンを返す。
- トークンがない、または無効な場合:自動的に OAuth フローを起動して新規トークンを取得・更新する。
開発者はこれらの認証フローを明示的に管理する必要はありません。エージェントがツールを実行しようとした際に、ユーザーが接続承認を行うだけで、以降は自動でトークンが管理され続けます。
「開発者が設定するのは
connections.getメソッドのみです。これにより、トークンの取得と更新が保証されます。」
この仕組みにより、エージェントはユーザーの権限で GitHub のイシュー検索や作成を安全に行うことができます。ユーザー認証フローは背景で自動的に処理されるため、開発者はセキュリティリスクを低減したまま、高度な機能を持つ AI エージェントを迅速に構築できます。
まとめ
LangChain の「Connections」システムは、サービスアカウントへの過度な依存というセキュリティリスクを解消し、エージェントの認証管理を劇的に簡素化します。エージェント所有シークレット、MCP 経由のユーザー認証、カスタム OAuth アプリ連携の 3 つのパターンを理解し、プロジェクトの要件に合わせて最適な方法を選択することで、より安全で信頼性の高い AI エージェント開発が可能になります。
Original Source
元動画で発言を確認
プレイヤーは必要になるまで読み込みません。YouTubeのCookieと通信も再生を選ぶまで開始しません。
時間位置から根拠を確認
章や引用を選ぶと、元動画をその位置から再生します。