Cloudflare AgentsとAI SDKでAIエージェントを作ってみた
by
Sato Naoya
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
Cloudflare Agentsと AI SDKでAIエージェン トを作ってみた クラウド事業本部サービス開発室 佐藤直哉
Slide 2
Slide 2 text
⾃⼰紹介 2 ● 佐藤 直哉(Sato Naoya) ● 所属 ○ クラウド事業本部サービス開発室 ● 業務 ○ サーバーサイドKotlin、Next.jsを利⽤したアプリケーション開発を担当 ● 表彰 ○ 2024 Japan AWS All Certifications Engineers ○ 2025 Japan AWS All Certifications Engineers
Slide 3
Slide 3 text
はじめに 3 ● 最近Cloudflareからリリースされた、Cloudflareのインフラ上でAIエージェ ントが動く、Cloudflare Agentsが⾯⽩そう ● 実際に動作するエージェントを作って試してみたので、実装のTIPSなどを共 有できたらと思います
Slide 4
Slide 4 text
今⽇話すこと 4 ● Vercel AI SDKとCloudflare Agentsを使って、メールをトリガーに起動するAI エージェントを作ってみた話
Slide 5
Slide 5 text
AIエージェント 5 ● 与えられたToolとLLMを利⽤して、⾃律的にタスクを実⾏するシステム ● Claude CodeやCursorのようなコーディングエージェントが代表的 ● 例えば、コーディングエージェントは、Search(検索), Bash(シェル), Read(ファイル読み込み), Edit(ファイル編集)などのToolを利⽤し、⾃ 律的にプログラミングを⾏ってくれるAIエージェントの⼀種
Slide 6
Slide 6 text
Cloudflare Agents (Agents SDK) 6 ● Cloudflare上でエージェントの開発に必要な基盤機能を提供してくれる JavaScriptライブラリ ● エージェント内の状態管理や独⽴した実⾏環境が提供され、Cloudflareのイ ンフラ上でエージェントを実⾏することができる ● 現在は、主に3つのエージェントを実装可能 ○ チャットエージェント ○ メールエージェント ○ スケジュールエージェント
Slide 7
Slide 7 text
Vercel AI SDK 7 ● Next.jsの開発元のVercelが開発している、様々なLLMのプロバイダーを統⼀ 的に扱うためのJavaScriptライブラリ ○ OpenAI ○ Anthropic ○ Google Gemini ○ Amazon Bedrock ○ etc... ● 各LLMプロバイダーのAPIを抽象化することで、LLMをプログラム上から簡単 に使うことができる
Slide 8
Slide 8 text
実際にメールをトリガーにしたAIエー ジェントを作ってみた
Slide 9
Slide 9 text
作成するAIエージェントの概要 9 領収書を添付したメールを送信すると、領収書を解析して⾃動的に経費登録して くれるAIエージェント ● Cloudflare上にあらかじめメールアドレスを作成 ● これに領収書を添付したメールを送信することで、エージェントが起動 ● メールに添付された領収書をAmazon Bedrockに送信し、テキスト情報を抽 出 ● 抽出したテキストをクラウド経費システムのAPIを通して経費として登録 ● 結果をSlackに通知
Slide 10
Slide 10 text
システム構成 10
Slide 11
Slide 11 text
エージェントの実装
Slide 12
Slide 12 text
12 ● email関数を定義することで、 メールを受信したら起動する Workerを作成 ● Agents SDKのrouteAgentEmail 関数を利⽤し、引数に起動する エージェントのクラス名を設定 することで、エージェントを起 動 Cloudflare Workersのエントリーポイント
Slide 13
Slide 13 text
13 ● Agents SDKのAgentクラスを継 承したクラスを作成 ● onEmailメソッドを作成するこ とで、引数にメールのrawデータ が渡される ● この関数の中で具体的なエー ジェントの処理を記述していく エージェントクラスの作成
Slide 14
Slide 14 text
14 ● AI SDKのgenerateText関数を利 ⽤して、Bedrock経由で領収書 のテキストを抽出 ● プロンプトには領収書の内容を 抽出するための具体的なテキス トと添付された領収書のバイナ リデータを設定 ● textには領収書の内容が抽出さ れたテキストが返される 領収書のテキストを抽出する
Slide 15
Slide 15 text
15 ● AI SDKのgenerateObject関数を 利⽤して、抽出した領収書のテ キストをJSON形式に変換 ● schemaには変換するJSONのス キーマを設定 ● プロンプトには先ほど抽出した 領収書のテキストを設定するこ とで、objectにスキーマに沿っ た形でJSONが返される 抽出した領収書のテキストをJSON形式に変換
Slide 16
Slide 16 text
16 ● AI SDKのtool関数を利⽤し、 ツールを定義する ● description: LLMがこのToolを 利⽤する際に参考にするための 説明 ● inputSchema: このToolを利⽤ する際に必要なパラメーターを zodで定義 ● execute: LLMがこのToolを利⽤ した際に実⾏される関数。引数 にはinputSchemaで定義したパ ラメーターが渡される 経費登録Toolの実装
Slide 17
Slide 17 text
17 ● AI SDKのgenerateText関数の toolsに先ほど作成したtoolを渡 す ● promptには、toolを実⾏させる ための具体的なテキストを設定 し、先程抽出した領収書のJSON を設定 ● 設定したtoolを必ず利⽤したい 場合には、toolChoiceに、 requiredを設定する Toolを利⽤して経費を登録
Slide 18
Slide 18 text
実際にエージェントを動かしてみた
Slide 19
Slide 19 text
19 実際に過去、経費登録したタクシーの 領収書を使って実験してみました 利⽤した領収書
Slide 20
Slide 20 text
20 ● Cloudflare上で作成したメール アドレスに対して、領収書を添 付して送信 ● Workerのログを⾒てみると、か なり正確に領収書の内容が抽出 されてJSON形式に変換されてい るがわかります。 メールに領収書を添付して送信
Slide 21
Slide 21 text
領収書の内容が経費として登録されている 21 ● このJSONデータがTool経由でAPI連携 ● 利⽤しているクラウド経費システムの⼀覧画⾯に登録されていることを確認
Slide 22
Slide 22 text
まとめ 22 ● Agents SDKがCloudflare上でエージェントを実⾏するための基盤機能を提供 してくれるため、開発者はインフラについてはほとんど意識する必要がな く、エージェントの実装に集中することができる ● 今回はお試しで経費登録⾃動化エージェントを作成してみましたが、アイデ アによってはいろいろできそうで夢が広がります。
Slide 23
Slide 23 text
参考資料 23 ● Cloudflare Agents ● Cloudflare Agents Documentation ● Vercel AI SDK Core
Slide 24
Slide 24 text
No content