Slide 1

Slide 1 text

自作プラットフォームで実現する Ambient Agent Workflow 1 クラウドネイティブ会議 髙橋 拓也

Slide 2

Slide 2 text

アジェンダ - GMOペパボとAIとの関わり - AI活用におけるボトルネックと Ambient Agent - エージェント実行プラットフォーム概要 - プラットフォーム普及までの道のり 2 アジェンダ

Slide 3

Slide 3 text

3 自己紹介 ロリポップ・ムームードメイン事業部 第一事業開発チーム 2019年 中途入社 高橋 拓也 takutaka インフラエンジニア。 自宅サーバが好きです。

Slide 4

Slide 4 text

GMOペパボとAIとの関わり 4

Slide 5

Slide 5 text

私たちはインターネットやテクノロジーの力で情報発信のハードルを下げ、 あらゆるアウトプットを世界中に増やします。 さまざまなアウトプットが進化や価値を生み出すように、 私たちもプロダクトを生み出し続け、ユーザーと共に進化し拡大していきます。 ミッション 人類のアウトプットを 増やす 5

Slide 6

Slide 6 text

- https://pepabo.com/ai で紹介しています - ロリポップ!AIサイトエージェント - ロリポップ! Skills - ムームードメイン MCP - カラーミーショップ AIコネクター (MCP サーバ) - カラーミーショップ Skill/CLI 事業セグメントと主力サービス 6 AI と人類が協業するプロダクトを作っています

Slide 7

Slide 7 text

事業セグメントと主力サービス 7 AI と人類が協業するプロダクトを作っています

Slide 8

Slide 8 text

AI活用におけるボトルネック 8

Slide 9

Slide 9 text

- AIエージェントの進化によりボトルネックが移り変わってきた - LLM の精度 → モデルアップデート - 入出力 → Tool Use, MCP Server - 神プロンプト → Skill - 今のボトルネックは? 9 AI活用におけるボトルネック AI活用におけるボトルネック

Slide 10

Slide 10 text

10 - AI は24時間365日働くことができる - AI は作業を同時並行に無限に行うことができる - 人間は? - 1日8時間 - 脳はシングルスレッド - コンテキストスイッチのコストが大きい AI活用におけるボトルネック AI活用におけるボトルネック : 人間

Slide 11

Slide 11 text

11 - AI は24時間365日働くことができる - AI は作業を同時並行に無限に行うことができる - 人間は? - 1日8時間 - 脳はシングルスレッド - コンテキストスイッチのコストが大きい AI活用におけるボトルネック AI活用におけるボトルネック : 人間 AI に指示を与える人間がボトルネックになっている

Slide 12

Slide 12 text

- ユーザーが応答することなく自律的に動作するエージェント - 近年の実装では... - Devin の Scheduled Sessions - Claude Code の /loop, /schedule - OpenClaw CronJob, Heatbeat - Hermes Agent Job - Dify 12 AI活用における課題と Ambient Agent Ambient Agent

Slide 13

Slide 13 text

- 課題解決サイクルを自律的に実行できること - 課題の発見 - 課題の分析 - アクションの提案作成 - 実行 - 結果の分析 13 AI活用における課題と Ambient Agent Ambient Agent に必要な要素

Slide 14

Slide 14 text

- Sentry からエラーを受信する → 課題の発見 - リポジトリをクローンして調査 → 課題の分析 - 直近の変更による regression を発見する → アクションの提案作成 - PR を作成する → 実行 - 検証環境にてエラーの改善を確認 → 結果の分析 14 AI活用における課題と Ambient Agent サイクル例 : アプリケーションエラーを解決する

Slide 15

Slide 15 text

- Sentry からエラーを受信する (課題の発見) - リポジトリをクローンして調査 (課題の分析) - 直近の変更による regression を発見する (アクションの提案作成) - PR を作成する (実行) - 検証環境にてエラーの改善を確認 (結果の分析) 15 AI活用における課題と Ambient Agent サイクル例 : アプリケーションエラーを解決する このサイクルを人間の応答なしに実現したい!

Slide 16

Slide 16 text

- 課題解決サイクルを自律的に実行することが難しい箇所 - 課題の発見 - 課題の分析 - アクションの提案作成 - 実行 - 結果の分析 16 AI活用における課題と Ambient Agent Ambient Agent に必要な要素

Slide 17

Slide 17 text

- 人間をトリガとしないエージェント実行 → 課題の発見 - エージェントが自律的にデータを集めることができる環境 → 課題の分析 - 課題を解決するためのアクションを自律的に打てる環境 → 実行 17 AI活用における課題と Ambient Agent Ambient Agent に必要な要素

Slide 18

Slide 18 text

- 人間が応答しなければ24時間エージェント実行を行える - 人間がトリガしないのであれば誰がトリガする? - 自動化のワークフロー - 定期実行 - システムからのイベント通知 18 AI活用における課題と Ambient Agent 人間をトリガとしないエージェント実行

Slide 19

Slide 19 text

- 自律的に動作を開始しても、データがなければ課題は解決されない - ソースコード、ドキュメント - MCP Server による外部リソース参照 - Skill による形式知 19 AI活用における課題と Ambient Agent エージェントが自律的にデータを集めることができる環境

Slide 20

Slide 20 text

- アクションの実行を極力止めない仕組みづくり - a.k.a. auto-approve が安全にできる環境整備 - サンドボックス環境 - 最小権限での外部APIアクセス 20 AI活用における課題と Ambient Agent 課題を解決するためのアクションを自律的に打てる環境

Slide 21

Slide 21 text

- アクションの実行を極力止めない仕組みづくり - a.k.a. auto-approve が安全にできる環境整備 - サンドボックス環境 - 最小権限での外部APIアクセス 21 AI活用における課題と Ambient Agent 課題を解決するためのアクションを自律的に打てる環境 Ambient Agent を実現する手段がほしい!!!!!

Slide 22

Slide 22 text

22 AI活用における課題と Ambient Agent エージェント実行プラットフォームを作った claude code がのびのび暮らす cc牧場

Slide 23

Slide 23 text

cc牧場アーキテクチャ 23

Slide 24

Slide 24 text

24 AI活用における課題と Ambient Agent - 手元を離れたリモート実行 - マルチテナント - 多彩なトリガー cc牧場アーキテクチャ 大事なところを 3行で

Slide 25

Slide 25 text

- k8s で claude code を管理 - セッションごとに spawn - 終わったら Pod を削除 25 AI活用における課題と Ambient Agent cc牧場アーキテクチャ : リモート実行 Kubernetes 管理プロキシ Agent Agent Agent

Slide 26

Slide 26 text

26 - 24時間いろいろなトリガを受けることができる - ローカルの環境を破壊しない - スマホから操作可能! AI活用における課題と Ambient Agent claude code をリモート実行可能とした

Slide 27

Slide 27 text

- テナントごとに以下の設定を保持 - MCP Server - Claude Marketplace/Plugin - Bedrock 認証情報 - 環境変数 - テナント参加ユーザーの session に 自動で適用される 27 AI活用における課題と Ambient Agent cc牧場アーキテクチャ : マルチテナント Kubernetes 管理プロキシ Agent Agent Agent 設定情報

Slide 28

Slide 28 text

28 AI活用における課題と Ambient Agent cc牧場アーキテクチャ : API Kubernetes 管理プロキシ Agent Agent Agent Slack Bot API - API + Frontend で対話式利用

Slide 29

Slide 29 text

- cc牧場で設定できるすべての操作を API/CLI/Skill化した - エージェント起動、トリガの作成と編集など - cc牧場内でcc牧場のすべての設定を実装可能とした 29 AI活用における課題と Ambient Agent API

Slide 30

Slide 30 text

30 AI活用における課題と Ambient Agent cc牧場アーキテクチャ : Schedule Kubernetes 管理プロキシ Agent Agent Agent Slack Bot Scheduler API - スケジュールで定期実行

Slide 31

Slide 31 text

- cron式による定期実行 - 定期的に特定のプロンプトを新規に起動したエージェントに与える - 所属チームの設定(MCP Server, Plugin など読み込み済み)で動作する - 「特定のリポジトリで未トリアージの issue の一次対応を行う」などができる 31 AI活用における課題と Ambient Agent cc牧場アーキテクチャ : Schedule

Slide 32

Slide 32 text

32 AI活用における課題と Ambient Agent cc牧場アーキテクチャ : Webhook Kubernetes 管理プロキシ Agent Agent Agent Slack Bot Scheduler Webhook API GitHub Sentry DataDog - Webhook で SaaS の通知を トリガーに実行

Slide 33

Slide 33 text

- GitHub, Sentry, Datadog, Alertmanager のアラート発報をトリガとできる - GitHub の PR が作成されたら review を行ったり - Sentry のアラートの一次対応を行ったり - 任意のペイロードを受け取り、value をプロンプトに埋め込める - ペイロード自体をエージェントPodにマウントできる - エージェントから /path/to/payload.json で全ペイロードが見える 33 AI活用における課題と Ambient Agent cc牧場アーキテクチャ : Webhook

Slide 34

Slide 34 text

34 AI活用における課題と Ambient Agent cc牧場アーキテクチャ : SlackBot Kubernetes 管理プロキシ Agent Agent Agent Slack Bot Scheduler API SlackBot Webhook Slack - 任意の起動オプションを設定できる Slack Bot をユーザーが作成可能

Slide 35

Slide 35 text

- Slack からの発話でセッションを作成する - 他の bot がセッション作成をトリガしたり - ちょっとした作業を依頼したり - チャンネル名のフィルタ条件ごとに任意の設定を組める - spawn するテナントを決めたり - 特定の環境変数を埋め込めたり 35 AI活用における課題と Ambient Agent cc牧場アーキテクチャ : Slackbot

Slide 36

Slide 36 text

- 数多くのトリガーでエージェントを実行開始できる - API - Schedule - Webhook - SlackBot 36 AI活用における課題と Ambient Agent エージェント実行プラットフォームを作った

Slide 37

Slide 37 text

cc牧場アーキテクチャ エージェントレイヤ 37

Slide 38

Slide 38 text

38 AI活用における課題と Ambient Agent cc牧場アーキテクチャ : エージェントレイヤ Kubernetes 管理プロ キシ エージェント Pod manager Claude Code OpenTelemetry Collector etc AgentAPI

Slide 39

Slide 39 text

- マネジメントプロセス - AgentAPI - Claude Code 39 AI活用における課題と Ambient Agent cc牧場アーキテクチャ : エージェントレイヤ

Slide 40

Slide 40 text

- セッションの起動リクエストを受ける - リクエストを解析し Claude Code の設定ファイルを配置する - AgentAPI を起動する 40 AI活用における課題と Ambient Agent マネジメントプロセス

Slide 41

Slide 41 text

- CLI のコーディングエージェントを Web API 化するプロダクト - https://github.com/coder/agentapi - Claude Code だけでなく Codex, Gemini, Cursor, OpenCode 等にも対応 - tty 上でエージェントプロセスを起動させ、キー操作をシミュレートする - ターミナル表示のいらない部分を削って Web API のレスポンスにする 41 AI活用における課題と Ambient Agent AgentAPI

Slide 42

Slide 42 text

42 AI活用における課題と Ambient Agent Claude Code - エージェントハーネスは Claude Code をそのまま使っている - LLM Provider として AWS Bedrock を使用している

Slide 43

Slide 43 text

- エージェントハーネスの実装を避けた - 必要な機能が多い。マルチターン、 Tool Use, MCP Client, Skill… - Marketplace と Plugin の仕組みが優秀 - ローカルの Claude Code, Claude Desktop で構築した知見が流用できる - エージェントがロックインされることを避けた - いざとなったら Cursor や Codex を使うことができるようにする 43 AI活用における課題と Ambient Agent AgentAPI + Claude Code を選んだ理由

Slide 44

Slide 44 text

- ACP: Agent Client Protocol - Zed, JetBrains が主導する IDE 等がエージェントを組み込むためのプロトコル - Claude Code は agentclientprotocol/claude-agent-acp で対応 - Codex は agentclientprotocol/codex-acp で対応 - ACP に対応したエージェントはcc牧場で対応できる! 44 AI活用における課題と Ambient Agent ACP もサポートした

Slide 45

Slide 45 text

- AgentAPI 依存は少し大変 - うまく動かない Claude Code のバージョンが出てきた - 操作が独特でうまく UX に落とし込むのが難しい - Web API 経由で ESC キーのイベントを送るとか - AskUserQuestion のために十字キーイベントを送るとか 45 AI活用における課題と Ambient Agent ACP もサポートした

Slide 46

Slide 46 text

- Claude Code が expose するメトリクスにラベルを付ける役割 - プラットフォーム特有の情報を付与する - 起動ユーザー - どのチームに属しているか - どのトリガーから実行されたか 46 AI活用における課題と Ambient Agent OpenTelemetry Collector

Slide 47

Slide 47 text

47 - マルチテナントと設定共有 - テナントに設定された config がテナントに参加するユーザーに引き継がれる - MCP Server - Plugin - Bedrock 認証情報 - etc AI活用における課題と Ambient Agent その他の機能

Slide 48

Slide 48 text

プラットフォームの普及過程 48

Slide 49

Slide 49 text

- 「Ambient Agent を手軽に実現できる」を達成したい - フィードバックループを回していきたい 49 プラットフォームの普及 プラットフォームは使ってもらわないと価値にならない

Slide 50

Slide 50 text

- cc牧場は Ambient Agent を普及させるための手段である - 代替手段が確立したら乗り換えることもよい - Anthropics/OpenAI 公式ハーネスで Ambient Agent をできるようになる - 活発にメンテされる OSS が普及する 50 プラットフォームの普及 cc牧場のゴール : Ambient Agent を普及させる

Slide 51

Slide 51 text

- Ambient Agent が普及さえしていれば - ハーネス選びの勘所がわかっている - 知見を段階的に積み上げることができる 51 プラットフォームの普及 cc牧場のゴール : Ambient Agent を普及させる

Slide 52

Slide 52 text

- 始めやすい、やめやすい - 複利で効果のあるシステム - ニーズの取り込み - セルフサービス - 遊び心 52 プラットフォームの普及 プラットフォームの普及に気をつけたこと

Slide 53

Slide 53 text

- 始めやすい、やめやすい - 複利で効果のあるシステム - ニーズの取り込み - セルフサービス - 遊び心 53 プラットフォームの普及 プラットフォームの普及に気をつけたこと

Slide 54

Slide 54 text

- 始めやすい、やめやすい - 複利で効果のあるシステム - ニーズの取り込み - セルフサービス - 遊び心 54 プラットフォームの普及 プラットフォームの普及に気をつけたこと 個人と組織、双方が始めやすい

Slide 55

Slide 55 text

- 始めやすい、やめやすい - 複利で効果のあるシステム - ニーズの取り込み - セルフサービス - 遊び心 55 プラットフォームの普及 プラットフォームの普及に気をつけたこと 個人と組織、双方が始めやすい 組織への普及を握る鍵、それは

Slide 56

Slide 56 text

- 始めやすい、やめやすい - 複利で効果のあるシステム - ニーズの取り込み - セルフサービス - 遊び心 56 プラットフォームの普及 プラットフォームの普及に気をつけたこと 個人と組織、双方が始めやすい 組織への普及を握る鍵、それは 予算

Slide 57

Slide 57 text

- 個人が使いたいと思っても組織が割り当てたお金がなければ使えない - 費用負担単位(事業部)で課金体系を制御できるようにした - Claude Code Action で確保したバジェットから拠出 57 プラットフォームの普及 プラットフォームの普及、全てはお財布次第

Slide 58

Slide 58 text

- GitHub チームベースのマルチテナントで制御 - テナントに Bedrock の設定を投入する - 利用開始するユーザーは GitHub チームに参加すると自動で課金設定が反映される 58 プラットフォームの普及 プラットフォームの普及、全てはお財布次第

Slide 59

Slide 59 text

59 - 費用負担部署で利用可否を握れていれば ... - 個人が予算のことで心配することがなくなる - 予実管理者が参加可否を個別に判断する必要がなくなる プラットフォームの普及 プラットフォームの普及、全てはお財布次第

Slide 60

Slide 60 text

- 始めやすい、やめやすい - 複利で効果のあるシステム - ニーズの取り込み - セルフサービス - 遊び心 60 プラットフォームの普及 プラットフォームの普及に気をつけたこと

Slide 61

Slide 61 text

61 - やめやすさは始めやすさにつながる - 利用者が抱く不安、懸念、面倒 - 知見を整備したのにサ終ですべてパーになるのではないか ... プラットフォームの普及 やめやすい : 独自システムへのロックインをなくす

Slide 62

Slide 62 text

62 プラットフォームの普及 やめやすい : 独自システムへのロックインをなくす - すべてのベースは Claude Code - Claude Code ができることはすべてできる。できないことはできない - Plugin + Marketplace で知見を安心して蓄積できる - Claude のエコシステムに簡単に乗り換えられる

Slide 63

Slide 63 text

63 プラットフォームの普及 やめやすい : 独自システムへのロックインをなくす - プラットフォームとユーザーの責任分解点となる - Claude Code より上のレイヤはユーザーの責任 - モデルの精度、Skill の利便性、MCP Server の設定 - Claude Code を起動する方法はプラットフォームの責任

Slide 64

Slide 64 text

- 「だれかが整備したら他のすべての人が嬉しい」状態を作る - 便利 Plugin の整備 - Schedule/Webhook による暗黙的な価値創造 64 プラットフォームの普及 複利で効果のあるシステム

Slide 65

Slide 65 text

- 三角形の面積を最大化する - 試行錯誤してくれる人の層を厚くする - システムを直接利用しない人も恩恵を受けら れるようにする - PR にラベルと付けるだけで嬉しい - issue を立てるだけで嬉しい 65 プラットフォームの普及 複利で効果のあるシステム 恩恵を受ける人 試行錯誤して 仕組みを整備 する人

Slide 66

Slide 66 text

- 便利を作る - 不便をなくす 66 プラットフォームの普及 ニーズの取り込み

Slide 67

Slide 67 text

- SlackBot で人々に存在を認知してもらう - 人々の目に留まる - なにこれ?便利!使ってみたい!を誘発する 67 プラットフォームの普及 ニーズの取り込み

Slide 68

Slide 68 text

- AI から利用されることを意識する - Skill の作成 - API/CLI の作成 - rbac の整備 68 プラットフォームの普及 ニーズの取り込み : 便利を作る

Slide 69

Slide 69 text

- ユーザーフィードバックをとにかく集める - フィードバックは向こうからやって来ない - Slack チャンネルを開設するが、不便の声は他のチャンネルに閉じこもる - 「不便の声が出る」= 「使ってもらえている」なので、どうにかしたい - エゴサして見つけ出して対応する 69 プラットフォームの普及 ニーズの取り込み : 不便をなくす

Slide 70

Slide 70 text

- ユーザーフィードバックをとにかく集める - フィードバックは向こうからやって来ない - Slack チャンネルを開設するが、不便の声は他のチャンネルに閉じこもる - エゴサして見つけ出して対応する 70 プラットフォームの普及 ニーズの取り込み : 不便をなくす

Slide 71

Slide 71 text

71 - ユーザー自身が課題解決できる範囲を限りなく広くする - 物理的、心理的障壁をなくす - API/CLI/Skill で Agentic Operation 可能に - cc 牧場内でcc牧場のトラブルシュートを可能とする - 世の中の知見を流用できるようにする - エージェントレイヤで再発明をしない プラットフォームの普及 セルフサービス

Slide 72

Slide 72 text

- 「生産者の顔が見えるプロダクト」を目指す 72 プラットフォームの普及 遊び心

Slide 73

Slide 73 text

- 羊がリリースノートを喋る様子 73 プラットフォームの普及 SlackBot にキャラクターを宿す機能

Slide 74

Slide 74 text

普及を妨げた要因 74

Slide 75

Slide 75 text

1. エージェントの性能がプラットフォームの性能とみなされたこと 2. memory を用意しなかったこと 3. 予算面でセットアップできないユーザーが発生した 75 やるべきだったこと 普及を妨げた要因

Slide 76

Slide 76 text

- Claude Code より上の要因で「cc牧場の精度が悪い」と評価されることがあった - 古いモデルを使用した - 適切にコンテキストが与えられなかった - Claude Code より上の挙動はユーザーの責任とした 76 やるべきだったこと エージェントの性能がプラットフォームの性能とみなされたこと

Slide 77

Slide 77 text

- Kubernetes でセッションを起動するため Docker 対応しなかった - 社内のユースケースでは docker-compose が支配的だった - DinD での対応を検討中 77 やるべきだったこと Docker が利用できない

Slide 78

Slide 78 text

- エージェント間の記憶の同期ができない - ナレッジベースの構築による自律的な性能向上ができない - エージェントの性能向上が人間に依存する - → ボトルネック化する 78 やるべきだったこと memory を用意しなかったこと

Slide 79

Slide 79 text

- AWS を使っていない部署のユーザーが利用できない - AI 活用始めたてで予算設定がない 79 やるべきだったこと 予算面でセットアップできないユーザーが発生した

Slide 80

Slide 80 text

- AWS を使っていない部署のユーザーが利用できない - AI 活用始めたてで予算設定がない 80 やるべきだったこと 予算面でセットアップできないユーザーが発生した 利用が広がると想定外のケースが発生する デフォルトケースを設定しておくべきだった

Slide 81

Slide 81 text

結果どのように広まったのか 81

Slide 82

Slide 82 text

bot 機能に対する喜びの声 82 結果どのように広まったのか 常時100以上のセッションが動作する

Slide 83

Slide 83 text

bot 機能に対する喜びの声 83 結果どのように広まったのか 25前後の定期実行セッションが動作する

Slide 84

Slide 84 text

84 結果どのように広まったのか Sentry のエラーを Slack で一次トリアージ

Slide 85

Slide 85 text

85 結果どのように広まったのか PRレビューをしたり、問い合わせ一次対応をしたり

Slide 86

Slide 86 text

デザイナーへの広がりを見せる 86

Slide 87

Slide 87 text

Ambient Agent の今後 87

Slide 88

Slide 88 text

- OpenClaw - https://github.com/openclaw/openclaw - 自律的な動作をデフォルトとするエージェントの草分け的存在 - Hermes Agent - https://github.com/NousResearch/hermes-agent - 自律的な学習と成長をコアにしたエージェント 88 Ambient Agent の今後 Ambient Agent 前提のOSSが登場

Slide 89

Slide 89 text

89 Ambient Agent の今後 お手軽に Amibent Agent を体験するには ...