Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cloudflare AgentsとAI SDKでAIエージェントを作ってみた
Search
Sato Naoya
September 26, 2025
Programming
0
72
Cloudflare AgentsとAI SDKでAIエージェントを作ってみた
DevelopersIO 2025 Sapporoでの登壇です
Sato Naoya
September 26, 2025
Tweet
Share
More Decks by Sato Naoya
See All by Sato Naoya
Cloudflare Workersのユースケースと開発方法
briete
0
3.3k
【Developers.IO 2020 CONNECT】AWS CDK + Step Functions 入門
briete
0
3k
re:Invent 2019 サーバーレス関連アップデート
briete
0
950
Other Decks in Programming
See All in Programming
止められない医療アプリ、そっと Swift 6 へ
medley
1
120
ABEMAモバイルアプリが Kotlin Multiplatformと歩んだ5年 ─ 導入と運用、成功と課題 / iOSDC 2025
akkyie
0
320
高度なUI/UXこそHotwireで作ろう Kaigi on Rails 2025
naofumi
4
3.4k
XP, Testing and ninja testing ZOZ5
m_seki
2
280
overlayPreferenceValue で実現する ピュア SwiftUI な AdMob ネイティブ広告
uhucream
0
110
iOS 17で追加されたSubscriptionStoreView を利用して5分でサブスク実装チャレンジ
natmark
0
580
開発者への寄付をアプリ内課金として実装する時の気の使いどころ
ski
0
350
Back to the Future: Let me tell you about the ACP protocol
terhechte
0
130
CSC305 Lecture 04
javiergs
PRO
0
250
GitHub Actions × AWS OIDC連携の仕組みと経緯を理解する
ota1022
0
240
(Extension DC 2025) Actor境界を越える技術
teamhimeh
1
220
階層構造を表現するデータ構造とリファクタリング 〜1年で10倍成長したプロダクトの変化と課題〜
yuhisatoxxx
3
910
Featured
See All Featured
Thoughts on Productivity
jonyablonski
70
4.9k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
Music & Morning Musume
bryan
46
6.8k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Code Review Best Practice
trishagee
72
19k
We Have a Design System, Now What?
morganepeng
53
7.8k
Build your cross-platform service in a week with App Engine
jlugia
232
18k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.9k
Designing Experiences People Love
moore
142
24k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Transcript
Cloudflare Agentsと AI SDKでAIエージェン トを作ってみた クラウド事業本部サービス開発室 佐藤直哉
⾃⼰紹介 2 • 佐藤 直哉(Sato Naoya) • 所属 ◦ クラウド事業本部サービス開発室
• 業務 ◦ サーバーサイドKotlin、Next.jsを利⽤したアプリケーション開発を担当 • 表彰 ◦ 2024 Japan AWS All Certifications Engineers ◦ 2025 Japan AWS All Certifications Engineers
はじめに 3 • 最近Cloudflareからリリースされた、Cloudflareのインフラ上でAIエージェ ントが動く、Cloudflare Agentsが⾯⽩そう • 実際に動作するエージェントを作って試してみたので、実装のTIPSなどを共 有できたらと思います
今⽇話すこと 4 • Vercel AI SDKとCloudflare Agentsを使って、メールをトリガーに起動するAI エージェントを作ってみた話
AIエージェント 5 • 与えられたToolとLLMを利⽤して、⾃律的にタスクを実⾏するシステム • Claude CodeやCursorのようなコーディングエージェントが代表的 • 例えば、コーディングエージェントは、Search(検索), Bash(シェル),
Read(ファイル読み込み), Edit(ファイル編集)などのToolを利⽤し、⾃ 律的にプログラミングを⾏ってくれるAIエージェントの⼀種
Cloudflare Agents (Agents SDK) 6 • Cloudflare上でエージェントの開発に必要な基盤機能を提供してくれる JavaScriptライブラリ • エージェント内の状態管理や独⽴した実⾏環境が提供され、Cloudflareのイ
ンフラ上でエージェントを実⾏することができる • 現在は、主に3つのエージェントを実装可能 ◦ チャットエージェント ◦ メールエージェント ◦ スケジュールエージェント
Vercel AI SDK 7 • Next.jsの開発元のVercelが開発している、様々なLLMのプロバイダーを統⼀ 的に扱うためのJavaScriptライブラリ ◦ OpenAI ◦
Anthropic ◦ Google Gemini ◦ Amazon Bedrock ◦ etc... • 各LLMプロバイダーのAPIを抽象化することで、LLMをプログラム上から簡単 に使うことができる
実際にメールをトリガーにしたAIエー ジェントを作ってみた
作成するAIエージェントの概要 9 領収書を添付したメールを送信すると、領収書を解析して⾃動的に経費登録して くれるAIエージェント • Cloudflare上にあらかじめメールアドレスを作成 • これに領収書を添付したメールを送信することで、エージェントが起動 • メールに添付された領収書をAmazon
Bedrockに送信し、テキスト情報を抽 出 • 抽出したテキストをクラウド経費システムのAPIを通して経費として登録 • 結果をSlackに通知
システム構成 10
エージェントの実装
12 • email関数を定義することで、 メールを受信したら起動する Workerを作成 • Agents SDKのrouteAgentEmail 関数を利⽤し、引数に起動する エージェントのクラス名を設定
することで、エージェントを起 動 Cloudflare Workersのエントリーポイント
13 • Agents SDKのAgentクラスを継 承したクラスを作成 • onEmailメソッドを作成するこ とで、引数にメールのrawデータ が渡される •
この関数の中で具体的なエー ジェントの処理を記述していく エージェントクラスの作成
14 • AI SDKのgenerateText関数を利 ⽤して、Bedrock経由で領収書 のテキストを抽出 • プロンプトには領収書の内容を 抽出するための具体的なテキス トと添付された領収書のバイナ
リデータを設定 • textには領収書の内容が抽出さ れたテキストが返される 領収書のテキストを抽出する
15 • AI SDKのgenerateObject関数を 利⽤して、抽出した領収書のテ キストをJSON形式に変換 • schemaには変換するJSONのス キーマを設定 •
プロンプトには先ほど抽出した 領収書のテキストを設定するこ とで、objectにスキーマに沿っ た形でJSONが返される 抽出した領収書のテキストをJSON形式に変換
16 • AI SDKのtool関数を利⽤し、 ツールを定義する • description: LLMがこのToolを 利⽤する際に参考にするための 説明
• inputSchema: このToolを利⽤ する際に必要なパラメーターを zodで定義 • execute: LLMがこのToolを利⽤ した際に実⾏される関数。引数 にはinputSchemaで定義したパ ラメーターが渡される 経費登録Toolの実装
17 • AI SDKのgenerateText関数の toolsに先ほど作成したtoolを渡 す • promptには、toolを実⾏させる ための具体的なテキストを設定 し、先程抽出した領収書のJSON
を設定 • 設定したtoolを必ず利⽤したい 場合には、toolChoiceに、 requiredを設定する Toolを利⽤して経費を登録
実際にエージェントを動かしてみた
19 実際に過去、経費登録したタクシーの 領収書を使って実験してみました 利⽤した領収書
20 • Cloudflare上で作成したメール アドレスに対して、領収書を添 付して送信 • Workerのログを⾒てみると、か なり正確に領収書の内容が抽出 されてJSON形式に変換されてい るがわかります。
メールに領収書を添付して送信
領収書の内容が経費として登録されている 21 • このJSONデータがTool経由でAPI連携 • 利⽤しているクラウド経費システムの⼀覧画⾯に登録されていることを確認
まとめ 22 • Agents SDKがCloudflare上でエージェントを実⾏するための基盤機能を提供 してくれるため、開発者はインフラについてはほとんど意識する必要がな く、エージェントの実装に集中することができる • 今回はお試しで経費登録⾃動化エージェントを作成してみましたが、アイデ アによってはいろいろできそうで夢が広がります。
参考資料 23 • Cloudflare Agents • Cloudflare Agents Documentation •
Vercel AI SDK Core
None