2.8K Views
September 19, 26
スライド概要
ServerlessDays Tokyo 2026 での登壇資料です。
https://serverless.connpass.com/event/371637/
C#やAzureなどMS関連技術とLINE関連技術が好きです。
Serverless Days Tokyo 2026 コーディングエージェントに 全部書かせない! AI に任せる実装と、 決定論的に作るサーバーレス基盤の境界設計 平林 拓将 Microsoft MVP for Azure / LINE API Expert Serverless Days Tokyo 2026
自己紹介 Name: 平林 拓将(ひらばやし たくまさ) himarin269 himanago Award / Title: Microsoft MVP for Azure(2019.11~) LINE API Expert(2020.3~) Focus: Azure PaaS & Serverless イタリア料理とイタリア語の勉強(初心者) Serverless Days Tokyo 2026 2 / 46
イタリア語学習アプリ ・LINE ミニアプリ ・イタリア語検定風の問題を解く ・イタリア料理と文化も一緒に学ぶ ・解答結果と学習履歴を保存 ・間違えた問題をあとで復習 ・学習状況を確認 ・問題を LLM で生成する管理機能 Serverless Days Tokyo 2026 3 / 46
サーバーレスで Web アプリを構成する Static Web Apps Functions Cosmos DB Next.js をホスト:SSR・RSCの利用 / サーバー側機能は BFF として 業務ロジック・認可・外部サービス連携を実装 問題と解答記録を保存 パーティション単位でデータを扱う Webのホスティング・業務ロジック・データ保存を分けて任せる。 Serverless Days Tokyo 2026 4 / 46
学習アプリに新しく「復習機能」を追加したい 間違えた問題をあとで復習できるようにする新機能を作るとしたら 画面・API・データ・権限・デプロイ どこを変更することになるでしょうか? Serverless Days Tokyo 2026 5 / 46
Agent の判断力を、 その価値が発揮できる場所で。 機能の開発のために考えさせる。 合意済みの構造は、考えさせず再現する。 Serverless Days Tokyo 2026 6 / 46
1. コード以外にも確認したいこと Serverless Days Tokyo 2026
コードを動かすには設定や接続も必要になる 実行時の処理(構成例) CI / CD 検証・ビルド・配布 アプリを配布 Next.js on Static Web Apps Frontend Functions 業務処理 BFF Cosmos DB Event リソースを構成 各サービスの動作・接続を規定 横断的な設定(各サービスに必要な範囲で適用) IaC リソース・設定 権限・設定を構成 Identity / RBAC 主体の検証・権限 Network / Secret 接続制御・秘密情報 コード・権限・接続・配布が揃ってアプリが動く。 Serverless Days Tokyo 2026 8 / 46
コードが正しい ≠ システムが正しい 接続先や権限も含めて動作を確かめたい Serverless Days Tokyo 2026 9 / 46
項目を一つ増やすだけでも確認することはいろいろある 画面もAPIも正しく動く。それでも、既存の設計を崩すことがある―― 復習日の追加で起こりうる実装 BFF に復習日の計算を追加 復習専用のモデルクラスを新設 専用の Cosmos DB コンテナーを新設 崩れる既存の設計 業務処理は Functions に集約 既存モデルとの重複 データの配置・分割方針 「正しく動くか」だけでなく「既存の設計を守っているか」が重要。 Serverless Days Tokyo 2026 10 / 46
2. Agent と考えること・ツールに任せること Serverless Days Tokyo 2026
その部分は 毎回 Agent に考えてもらう 必要があるか? すでに決まっていることなら、決定論的な出力をさせる方法をとる。 Serverless Days Tokyo 2026 12 / 46
Agent は「考えること」と「ツールによる出力」を併用する 判断する 復習間隔・画面体験 認可の業務ルール 再現する 契約から出力 既知の接続・構成 検証する 型・契約・構造 仕様のテスト 結果を次の判断へ 計算ロジックは Agent が実装し API の型と設計はツール出力で揃える。 Serverless Days Tokyo 2026 13 / 46
Agent は「考えること」と「ツールによる出力」を併用する 判断する 復習間隔・画面体験 認可の業務ルール 再現する 契約から出力 既知の接続・構成 検証する 型・契約・構造 仕様のテスト 結果を次の判断へ 計算ロジックは Agent が実装し API の型と設計はツール出力で揃える。 Serverless Days Tokyo 2026 14 / 46
基盤にもアプリに合わせて決める部分がある 対象 API 契約 認証・データアクセス IaC CI/CD 人が決めること・Agentへの相談 項目・制約・公開する操作 誰がどの記録を扱えるか 必要なサービス・公開範囲 必要な検査・配布先・承認条件 誰に何を許すかを決め 接続と検証を共通化する。 Serverless Days Tokyo 2026 決まったらツールで揃えるもの Schema から型・CRUD を生成 認証連携・検索の共通処理 設定からリソース・権限を構成 検証・ビルド・配布の手順 15 / 46
3. Agent が作業を進めるための情報とツール Serverless Days Tokyo 2026
ルールに加えて確認や変更のためのツールも用意する 意図を伝える Instructions / Skills 「ツール成果物は直接編集しない」 状態を調べる MCP / CLI 「このファイルの編集方針は?」 変更する Schema / Generator / IaC 「入力から差分を作る」 結果を確かめる Tests / CI 「どの検査がなぜ失敗?」 「直接編集しない」なら代わりに使える操作を用意する。 Serverless Days Tokyo 2026 17 / 46
ルールに加えて確認や変更のためのツールも用意する 意図を伝える Instructions / Skills 「ツール成果物は直接編集しない」 状態を調べる MCP / CLI 「このファイルの編集方針は?」 変更する Schema / Generator / IaC 「入力から差分を作る」 結果を確かめる Tests / CI 「どの検査がなぜ失敗?」 「直接編集しない」なら代わりに使える操作を用意する。 Serverless Days Tokyo 2026 18 / 46
Agent が次に何をすればよいかわかるように 状態を調べられる ツールで変更できる 失敗したときも原因を確認できる Serverless Days Tokyo 2026 19 / 46
4. 実装例: SwallowKit Serverless Days Tokyo 2026
SwallowKit とは Azure 上のサーバーレス Web アプリを 決められた構成とルールで素早く作る スキーマ駆動の scaffolding 基盤 画面・API・インフラ・Agent の操作を 一つの開発体験としてつなぐ スキーマを起点に、アプリ開発の境界をそろえる。 https://himanago.github.io/swallowkit/ja/ Serverless Days Tokyo 2026 21 / 46
SwallowKit が支えるアプリの基本構成 アプリの基本構成 Static Web Apps Functions Cosmos DB Next.js 画面・BFF API 業務処理 データ保存 ひとつの共通 Zod スキーマで 画面・API・データモデルを一気通貫に整える 開発を高速化する仕組み Init/Scaffold 基本構成・CRUD・契約・IaCを生成 シードデータ すぐに画面と API を動かして開発 MCP ルール内で Agent が作業 コードだけでなく、境界と検証まで整えるから Agent が前に進める Serverless Days Tokyo 2026 22 / 46
イタリア語学習アプリの全体像 SwallowKit で土台を作る範囲 Next.js on Static Web Apps LINE ミニアプリ 学習者・LINE認証 出題・解答・復習 Functions 学習 API・認可 Azure OpenAI 問題生成 Cosmos DB 問題・解答記録 画面・API の雛形 / 共有モデル・CRUD / Bicep アプリ側で実装 プロンプト・生成結果の検証 管理者:Web 画面 GitHub 認証 問題の生成・管理 BFF 中継・検証 土台は SwallowKit で作り 学習体験と AI 連携を Agent が実装する。 Serverless Days Tokyo 2026 23 / 46
SwallowKit では業務処理と DB アクセスを Functions に置く Next.js on Static Web Apps Frontend 画面 BFF 中継・検証 Functions 業務処理・認可 Zod モデル → API 契約 Cosmos DB データ Bicep + CI/CD 構成・配布 API 契約はモデルから生成し 復習の計算は Functions で行う。 実線: リクエストの経路 / 破線: 契約・構成の反映(要約) Serverless Days Tokyo 2026 24 / 46
SwallowKit では業務処理と DB アクセスを Functions に置く Next.js on Static Web Apps Frontend 画面 BFF 中継・検証 Functions 業務処理・認可 Zod モデル → API 契約 Cosmos DB データ Bicep + CI/CD 構成・配布 API 契約はモデルから生成し 復習の計算は Functions で行う。 実線: リクエストの経路 / 破線: 契約・構成の反映(要約) Serverless Days Tokyo 2026 25 / 46
どこを編集してよいかプロジェクトに確認する AI・開発者が 直接編集 AI-AUTHORED モデル・独自UI 業務処理・テスト SwallowKitが 生成・管理 生成部分と 手書き部分が共存 入力を変えて再生成 生成CRUD・BFF 契約・生成資産 管理マーカーの外を編集 同じファイル内の 拡張部分 DETERMINISTIC SHARED 生成管理されたファイルは入力を直して再生成する。 編集範囲と変更方法を確認: inspect boundaries Serverless Days Tokyo 2026 26 / 46
どこを編集してよいかプロジェクトに確認する AI・開発者が 直接編集 AI-AUTHORED モデル・独自UI 業務処理・テスト SwallowKitが 生成・管理 生成部分と 手書き部分が共存 入力を変えて再生成 生成CRUD・BFF 契約・生成資産 管理マーカーの外を編集 同じファイル内の 拡張部分 DETERMINISTIC SHARED 生成管理されたファイルは入力を直して再生成する。 編集範囲と変更方法を確認: inspect boundaries Serverless Days Tokyo 2026 27 / 46
状態を調べ変更して検証結果を確認する INSPECT 使える操作 編集方針 現在の差分 PLAN / APPLY 対象差分を確認 計画を適用 古い計画は再作成 VERIFY / EXPLAIN 実行した検査 結果・ログ 修正方法を確認 Agent が進める範囲を操作と停止条件で決めておく。 古い計画は再作成 / 承認が必要な変更は人に確認 Serverless Days Tokyo 2026 28 / 46
状態を調べ変更して検証結果を確認する INSPECT 使える操作 編集方針 現在の差分 PLAN / APPLY 対象差分を確認 計画を適用 古い計画は再作成 VERIFY / EXPLAIN 実行した検査 結果・ログ 修正方法を確認 Agent が進める範囲を操作と停止条件で決めておく。 古い計画は再作成 / 承認が必要な変更は人に確認 Serverless Days Tokyo 2026 29 / 46
5. Demo 「復習予定」を一つ追加する Serverless Days Tokyo 2026
Agent はツールの結果を見ながら作業を進める Inspect 現在を知る Plan 差分を計算 Apply 構造を生成 Implement 業務を実装 Verify 結果を確認 失敗の原因に応じて必要な段階へ戻る テストの失敗理由から次に直す場所を選ぶ。 Serverless Days Tokyo 2026 31 / 46
Agent はツールの結果を見ながら作業を進める Inspect 現在を知る Plan 差分を計算 Apply 構造を生成 Implement 業務を実装 Verify 結果を確認 失敗の原因に応じて必要な段階へ戻る テストの失敗理由から次に直す場所を選ぶ。 Serverless Days Tokyo 2026 32 / 46
追加する「復習」のルール 解答の結果 誤答・正解表示・スキップ 正解 + ヒント利用または自信なし 正解 + ヒントなし + 自信あり 本人の記録から復習日が来た問題だけを表示する。 Serverless Days Tokyo 2026 次の復習 1日後 3日後 対象外 33 / 46
検証で問題が見つかったらどこへ戻る? 検査でわかったこと(例) モデルとツール成果物が一致しない 業務処理の型が合わない 復習間隔が仕様と違う BFFが直接DBへ接続している Agentが次にすること 意図した変更か確認 → Plan / Apply エラー箇所の実装を修正 → 型検査 計算処理を修正 → 受け入れテスト 処理をFunctionsへ移す → 構造検証 復習間隔が違うなら生成器ではなく計算処理を直す。 Serverless Days Tokyo 2026 34 / 46
Demo Inspect → Plan → Apply → Implement → Verify 機械的な検証と 実データ確認を分けて見る Serverless Days Tokyo 2026 35 / 46
6. 復習の通知も追加するとしたら Serverless Days Tokyo 2026
通知を追加するなら同じイベントの再配信も考えたい 既存 Functions 復習予定を確定 Service Bus 通知イベント アプリに合わせて決める 通知時刻・通知先 何を「同じ通知」とみなすか Consumer 通知する 共通化できる設定や検査 イベント契約・権限・監視 再試行・失敗の退避・重複テスト 同じイベントが届いても通知は重複させたくない。 Serverless Days Tokyo 2026 37 / 46
通知の経路を選ぶのは人の仕事 データの変化に追従 Cosmos Functions DB Change Feed で変更を受け取る 失敗記録・再処理を設計 メッセージを預ける Service Bus Functions 予約配送・負荷の切り離し DLQの調査・再投入を設計 配送方式の選択と失敗時の扱いは 人が責任を持って決める。 Agent: 選択肢の整理・実装・検証 / 基盤: 選んだ構成を再現 Serverless Days Tokyo 2026 38 / 46
SwallowKit の外でもツールに任せられる部分はある 逆に SwallowKit の中にも Agent と考えたい業務のルールがあります Serverless Days Tokyo 2026 39 / 46
機能が増えると確認したいことも増える 追加するもの 復習通知の Consumer 新しいイベント契約 キュー・権限・接続の追加 独自 Functions・業務処理 確認したいこと 同じイベントを 2 回受けても重複通知しない 既存の Consumer でも読み取れるか IaC の接続と配置後の疎通を確かめる BFF から直接 DB に接続せず認可を通るか 生成できたことと本番でつながることはそれぞれ確認が必要。 Serverless Days Tokyo 2026 40 / 46
7. AWS が公開した最新ツール Serverless Days Tokyo 2026
AWS の例: Agent から Generator を呼び出す Coding Agent 要求を解釈 MCP Agent 操作 Nx Generator Scaffold API・Web・Data CDK・IaC アプリ・IaC 生成物 Agent・MCP・Generator・IaC で、決まった構造を再現する。 Nx Plugin for AWS 1.0 — AWS公式発表(2026-09-08) Serverless Days Tokyo 2026 42 / 46
AWS の例: Agent から Generator を呼び出す Coding Agent 要求を解釈 MCP Agent 操作 Nx Generator Scaffold API・Web・Data CDK・IaC アプリ・IaC 生成物 Agent・MCP・Generator・IaC で、決まった構造を再現する。 Nx Plugin for AWS 1.0 — AWS公式発表(2026-09-08) Serverless Days Tokyo 2026 43 / 46
普段使っているツールでもこの考え方を取り入れる 整理しておきたいこと アプリに合わせて決めること ツールで生成するもの テストで確かめること 復習通知なら 誰に・いつ・何を通知するか Consumer・キュー・権限・監視 重複への対処・認可・疎通 Bicep / CDK / SAM / Terraform / 社内Generator 人が決める 要件・権限・許容する失敗 ツールで再現する 既知の構成・接続・設定 証拠で確かめる 型・仕様・実環境の動作 一つのAPIで生成からテストまでつないでみる。 Serverless Days Tokyo 2026 44 / 46
8. まとめ Serverless Days Tokyo 2026
Agent と開発するときに考えておきたいこと 1. 人が境界を決める — 要件・権限・許容する失敗 2. Agentとツールで作る — 個別実装と既知の構成の生成 3. 結果を確かめる — 型・構造・仕様・配置後の動作 [人] 何を大切にするか決める [ Agent とツール ] 実装と再現を進める [ 証拠 ] 次の判断につなげる 人が境界を決め、決まった範囲をツールで再現する。 Serverless Days Tokyo 2026 46 / 46
Agent と一緒に 考えたいことに 時間を使いたい。 人が境界を決める / Agent が実装する / ツールで再現する