👏

AIエージェントに決済機能を統合:Stripe Agent Toolkit

2024/11/28に公開

はじめに

グローバル決済大手のStripeは、AIエージェント向けの専用SDK「Stripe Agent Toolkit」を発表しました。

このSDK(ソフトウェア開発キット)により、大規模言語モデル(LLM)を活用したAIエージェントが、支払いや請求といった複雑な金融プロセスを動的に処理できるようになります。

Stripe Agent Toolkitは、Vercel AI SDK、LangChain、Crew AIなどの人気フレームワークと互換性があり、開発者が迅速にAIエージェントを構築するのを可能にします。

大規模言語モデル(LLM)は、「AIエージェント」として様々な自動化を実現できます。これらのエージェントは、プロンプトをプログラム的なアクションのシーケンスに変換し、他のシステムと連携することができます。

https://stripe.dev/blog/adding-payments-to-your-agentic-workflows

Stripeを活用することで、エージェントに以下の機能を提供できます:

  • 金融サービスへのアクセス
  • 資金の受け取りと支払い
  • 一般的なサポート業務の自動化
  • 従量課金による請求

エージェントワークフローとは

エージェントワークフローは、LLMと関数呼び出しを組み合わせて特定の目的を達成する仕組みです。例えば、航空券の検索と購入を考えてみましょう:

ユーザーが「4月24日にニューヨークからサンフランシスコまで500ドル以下のフライトを予約して」とリクエストした場合、以下の手順が必要になります:

  1. クエリを変数に変換(出発地、目的地、出発日時、予算)
  2. 指定された変数に基づいてフライトデータベースを検索・フィルタリング
  3. ユーザーにオプションを提示し、選択を可能にする
  4. フライトの購入を実行

この実現のために、Vercel AI SDK、LangChain、CrewAIなどのフレームワークを使用できます。これらは、タスクを分割して専門のエージェントに割り当てることを容易にします。

function callingの統合

Stripeのエージェントツールキットを使用することで、エージェントにStripe APIへのアクセスを提供できます。このツールキットは、Vercel AI SDK、LangChain、CrewAIといったフレームワークをネイティブにサポートしており、function callingに対応した任意のLLMプロバイダーと連携できます。このツールキットは、StripeのNode.jsおよびPython SDKをベースに構築されています。

まとめ

Stripeのエージェントツールキットを使用することで、一般的なワークフローの自動化が可能になり、エージェントに金融サービスへのアクセスを提供できます。ただし、エージェントの動作は非決定的であるため、テストモードでの検証と、制限付きAPIキーの使用を推奨します。

詳細な実装ガイド
https://docs.stripe.com/agents/quickstart
github
https://github.com/stripe/agent-toolkit

実装例

例えば、ユーザーへの請求書発行を支援する「ビジネスパートナー」エージェントを構築する場合:

import {StripeAgentToolkit} from '@stripe/agent-toolkit/ai-sdk';
import {openai} from '@ai-sdk/openai';
import {generateText} from 'ai';

const toolkit = new StripeAgentToolkit({
  secretKey: "sk_test_123",
  configuration: {
    actions: {
      // Stripe機能の有効化
    },
  },
});

await generateText({
  model: openai('gpt-4'),
  tools: {
    ...toolkit.getTools(),
  },
  maxSteps: 5,
  prompt: 'メールアドレスに100ドルの請求書を送信',
});

金融サービスの活用

エージェントワークフローは仮想的な結果だけでなく、実際の取引も自動化できます。Stripe Issuingを使用することで、エージェントが使用できる使い捨ての仮想カードを生成できます。これにより:

  • エージェントによる資金の支出が可能に
  • 承認の自動的な承認/拒否
  • 支出制限の設定

例えば、フライト検索の結果が表示された後:

Airline 1, New York -> SFO, $250, #ABC
Airline 2, New York -> SFO, $300, #DEF

選択されたフライトに対して、金額を制限した仮想カードを生成できます:

stripe.issuing.Card.create({
  cardholder: "ich_123",
  currency: "usd",
  type: "virtual",
  spending_controls: {
    spending_limits: [{
      amount: "30000",
      interval: "all_time"
    }]
  }
});

使用量に基づく課金

エージェントワークフローの実行には、トークン使用量や時間などのコストがかかります。Stripeの従量課金を使用することで、顧客の製品使用量に基づいて課金できます。

const model = wrapLanguageModel({
  model: anthropic('claude-3-5-sonnet-20240620'),
  middleware: stripeAgentToolkit.middleware({
    billing: {
      customer: 'cus_123',
      meters: {
        input: 'input_tokens',
        output: 'output_tokens',
      },
    },
  }),
});

Discussion