TECH PLAY

CS

イベント

マガジン

該当するコンテンツが見つかりませんでした

技術ブログ

G-gen の福井です。当記事では、AI エージェントツールに専門知識やワークフローを追加するためのオープンフォーマットである Agent Skills について、概念や動作の仕組み、スキルの構造、使い方などを解説します。 概要 Agent Skills とは Skills が可能にすること Skills の実体 Agent Skills の仕組み 基本的な動作 コンテキスト肥大化の防止 Skills と MCP の関係 Skills の構造 ディレクトリ構成 SKILL.md の中身 使い方 対応ツール Skills ファイルの配置場所 インストール Gemini CLI からスキルを呼び出してみる 概要 Agent Skills とは Agent Skills は、生成 AI エージェントツールに専門知識やワークフローを追加するためのオープンフォーマットです。Anthropic が策定したオープンスタンダードであり、現在は Anthropic 社外のさまざまなツールでも採用が進んでいます。 Agent Skills は、Claude Code、Gemini CLI など、さまざまな AI エージェントツールで使用することができます。 なお当記事内では、文脈に応じて Agent Skills のことを「スキル」「Skill(s)」と表記する場合があります。 参考 : https://agentskills.io/ 参考 : Agent Skills - Claude API Docs 参考 : Agent Skills | Gemini CLI Skills が可能にすること Agent Skills が提供する典型的な能力としては、以下のようなものが挙げられます。 特定領域の専門知識(例: Google Cloud の各製品の正確な仕様や最新の API) 繰り返し実行されるワークフロー(例: コードレビューの観点、リリース手順) 組織やチーム固有のルール(例: 社内のコーディング規約、ドキュメントテンプレート) AI エージェントツールは、Agent Skills を必要なときにだけ読み込むので、LLM のコンテキストウインドウを不必要に圧迫することがありません。 システムインストラクション(システムプロンプト)や tools を必要なときにだけ読み込むことで、 コンテキストウインドウを効率的に使用できるようにする のが Agent Skills の最大のメリットといえます。 Skills の実体 Agent Skills の実体は、 SKILL.md というマークダウン形式のテキストファイルを含む 1 つのフォルダ(ディレクトリ)です。フォルダの中には SKILL.md に加えて、参照ドキュメントや実行スクリプトなどのアセットを任意で配置できます。 AI エージェントツールはこのフォルダをスキルとして認識し、必要に応じて読み込んで使用します。 Agent Skills と AI エージェントツールの関係 Agent Skills の仕組み 基本的な動作 Agent Skills は、 progressive disclosure (段階的開示)と呼ばれる仕組みで動作します。これは、必要なときに必要な情報だけを読み込むことで、AI エージェントツールのコンテキストを効率的に使うための仕組みです。 progressive disclosure では、AI エージェントツールはスキルを次の 3 段階に分けて読み込みます。 1 つ目の段階は Discovery (発見)です。AI エージェントツールの起動時に、使用可能なすべてのスキルの name(名前)と description(説明文)だけを読み込みます。この段階では、各スキルがどのような場面で使えるのかを把握するための最小限の情報のみが読み込まれます。 2 つ目の段階は Activation (有効化)です。ユーザーからのタスクが、あるスキルの description にマッチした場合、AI エージェントツールはそのスキルの SKILL.md 本文をすべて読み込みます。これにより、そのスキルに書かれた指示の詳細をタスク遂行に使用できます。 3 つ目の段階は Execution (実行)です。AI エージェントツールは SKILL.md の指示に従ってタスクを進めます。必要に応じて、スキルに同梱されたスクリプトを実行したり、参照ドキュメントを追加で読み込んだりします。 progressive disclosure の 3 段階 このように、すべての情報を一度に読み込むのではなく、必要な情報を必要なタイミングだけ読み込む仕組みであるため、多数のスキルを導入した場合でも、LLM のコンテキストウインドウを節約できます。 コンテキスト肥大化の防止 Agent Skills が解決しようとしている課題の 1 つに、AI エージェントツールに特有の コンテキスト肥大化 (Context Bloat)があります。 AI エージェントツールが特定領域で正確に動作するためには、LLM が正確な知識を参照する必要があります。必要な情報を AI に参照させるには、システムインストラクションやユーザープロンプトとして大量の情報を読み込ませたり、あるいは Model Context Protocol(MCP)サーバー経由でドキュメントを取得させるといった方法が挙げられます。例えば Google は、Google Cloud のドキュメントを提供する MCP サーバーを公開しています。 しかし、長大なプロンプトや MCP サーバーによる情報取得を多用すると、大量のドキュメントが常時、コンテキストウィンドウに読み込まれることになり、LLM の応答精度や応答速度が下がるほか、トークン消費量の増加にも繋がります。これがコンテキスト肥大化です。 一方、Agent Skills では、AI エージェントツールが、 必要なスキルだけを必要なタイミングで 読み込みます。これにより、コンテキストを節約しつつ、特定領域に関する正確な知識を LLM に与えることができます。 Skills と MCP の関係 前のセクションでも触れた MCP は、外部システムへのアクセスを標準化するためのプロトコルです。一方の Agent Skills は、専門知識やワークフローをパッケージ化して AI エージェントツールに配信するためのフォーマットです。両者は競合するものではなく、 役割が異なる補完的な関係 です。 MCP は、LLM が外部のシステムやデータソースにアクセスする手段を提供します。たとえば、Google ドライブのファイルを読み込む、データベースにクエリを発行する、Slack にメッセージを投稿する、といった操作を、LLM が API 経由で実行しやすくするプロキシのような役割を果たすのが MCP です。 一方の Agent Skills は、AI エージェントツールが特定の領域やタスクで、人間の意図どおりに振る舞うための知識と手順(プロンプト)や、tools(スクリプト等)をパッケージしたものです。Agent Skills の実体は 1 つのディレクトリにまとめられたファイル群であるため、1 度開発すれば容易に他人に共有できます。また、スキル内からは、同梱のスクリプトをツールとして使うこともできれば、MCP サーバーを呼び出すこともできます。 Agent Skills と MCP は 併用 できます。たとえば、組織の開発のワークフローに沿うために以下のような Agent Skills を作成できます。 ユーザーが指示した CSV ファイルを分析し、適切な BigQuery テーブルの設計を行う(パーティショニング、クラスタリング、カラムの説明などを作成) BigQuery 用の MCP サーバーを呼び出して、設計に基づいてテーブルを作成する CSV を新規のテーブルにロードする Skills の構造 ディレクトリ構成 Agent Skills は、 SKILL.md を必須ファイルとして含む 1 つのフォルダで構成されます。 SKILL.md 以外のファイルやフォルダは、用途に応じて任意で配置できます。 代表的なディレクトリ構成は以下のとおりです。 skill-name/ ├── SKILL.md (必須)スキルのメタデータと指示 ├── references/ (任意)詳細な参照ドキュメント ├── scripts/ (任意)スキルから呼び出される実行スクリプト └── assets/ (任意)テンプレートやリソース それぞれのファイルやフォルダの役割は、以下の通りです。 構成要素 必須/任意 役割 SKILL.md 必須 スキルのメタデータと、AI エージェントツールがタスクを遂行する際に従う指示を記述するファイル references/ 任意 SKILL.md の指示の中で参照される詳細なドキュメントを格納するフォルダ。AI エージェントツールは、SKILL.md の指示に従って必要なときだけ読み込む scripts/ 任意 スキルから呼び出される実行可能なスクリプトを格納するフォルダ。フォーマット変換スクリプトや API 呼び出しのヘルパースクリプトなどを配置する assets/ 任意 スキルが使用するテンプレートファイルやリソース(画像、設定ファイルなど)を格納するフォルダ シンプルなスキルであれば SKILL.md だけで構成することも可能ですし、複雑なスキルであれば references/ や scripts/ を組み合わせて表現できます。スキルの複雑さに応じて柔軟に構成できる、軽量なフォーマットといえます。 参考 : Specification - Agent Skills SKILL.md の中身 SKILL.md は、先頭にメタデータを記述する YAML フロントマター(ファイルの冒頭に YAML 形式で記述されるメタデータのこと)があり、それに続いて、AI エージェントツールがタスクを遂行する際に従う指示を Markdown 形式で記述する構造になっています。 YAML フロントマターには、name(スキル名)と description(スキルの説明)の 2 つを必ず記述します。description は、AI エージェントツールがどのスキルを使うべきかを判断する際の最も重要な情報です。「このスキルがどのような場面で使われるべきか」を具体的に書きます。 google/skills リポジトリで公開されている bigquery-basics スキルの SKILL.md から、構造が分かる範囲を抜粋して以下に示します。 参考 : google/skills - bigquery-basics/SKILL.md (Apache 2.0 ライセンス、抜粋) --- name: bigquery-basics description: >- Manages datasets, tables, and jobs in BigQuery, and integrates with BigQuery ML and Gemini for advanced data analytics and AI-driven insights. Use when you need to interact with BigQuery, run SQL queries, manage BigQuery resources, or leverage BigQuery's built-in ML capabilities. Also use when performing data analysis, ingesting data into BigQuery, or developing AI applications on BigQuery. --- # BigQuery Basics BigQuery is a serverless, AI-ready data platform that enables high-speed analysis of large datasets using SQL and Python. Its disaggregated architecture separates compute and storage, allowing them to scale independently while providing built-in machine learning, geospatial analysis, and business intelligence capabilities. ## Setup and Basic Usage (中略) ## Reference Directory - [ Core Concepts ]( references/core-concepts.md ): Storage types, analytics workflows, and BigQuery Studio features. - [ CLI Usage ]( references/cli-usage.md ): Essential ` bq ` command-line tool operations for managing data and jobs. - [ Client Libraries ]( references/client-library-usage.md ): Using Google Cloud client libraries for Python, Java, Node.js, and Go. (以下省略) このサンプルから、YAML フロントマター( name と description )、Markdown 本文( # BigQuery Basics 以降)、 references/ 配下のファイルへの参照( ## Reference Directory )という、これまで説明してきた構造が実際にどう書かれているかを確認できます。 description には、「いつこのスキルを使うか」を具体的に書くことが重要です。AI エージェントツールは、起動時に全スキルの description を読み込み、ユーザーのタスクと照合して「どのスキルを使うか」を判断します。description が曖昧だと、本来使われるべきスキルが選ばれない、または不適切な場面で使われてしまう、といった問題が発生します。 bigquery-basics スキルの description を見ると、「Use when you need to interact with BigQuery, run SQL queries...」のように、「いつ使うか」が具体的な動詞で複数列挙されているのが分かります。これにより、AI エージェントツールがユーザーのタスクと正確にマッチングできるようになっています。 使い方 対応ツール 規格に準拠した AI エージェントツールであれば、開発元を問わず Agent Skills を使用できます。主要なツールは以下のとおりです。 ツール名 提供元 種別 Antigravity Google IDE Gemini CLI Google CLI Claude Code Anthropic CLI Cursor Anysphere IDE GitHub Copilot GitHub IDE 拡張 Codex OpenAI CLI Anthropic、Google、OpenAI、GitHub などの主要 AI ベンダーが提供するツールが揃って Agent Skills の規格に対応しており、特定ベンダーに閉じない普遍的なフォーマットとして広く採用されていることがわかります。 なお、後述する npx skills install コマンドは、2026年5月現在で合計 55 個の AI エージェントツールへのインストールに対応しています。 Skills ファイルの配置場所 スキルは、決められたディレクトリに配置することで認識されます。AI エージェントツールは、起動時にこのディレクトリ配下を走査して、スキルを検出します。 Agent Skills の規格では、配置場所として Workspace スコープ と User スコープ の 2 種類が定義されています。 スコープ 説明 用途 Workspace スコープ プロジェクト(リポジトリ)単位でスキルを配置する形式。プロジェクトのカレントディレクトリ配下に配置され、プロジェクトと一緒に Git 管理できる プロジェクトメンバー間でスキルを共有する場合に使用する User スコープ ユーザー単位でスキルを配置する形式。ホームディレクトリ配下に配置され、すべてのプロジェクトから横断的に使用できる 個人で使うスキルや、プロジェクトを問わず使用するスキルに適している 主要なツールごとの、各スコープの配置場所は以下のとおりです。 ツール名 Workspace スコープ User スコープ Universal(Antigravity、Gemini CLI、Cursor 等に共通) .agents/skills/ ~/.agents/skills/ Gemini CLI .gemini/skills/ ~/.gemini/skills/ Claude Code .claude/skills/ ~/.claude/skills/ Augment .augment/skills/ ~/.augment/skills/ AiderDesk .aider-desk/skills/ ~/.aider-desk/skills/ 上記の表で「Universal」としているのは、複数のツールで使用される配置場所のことです。Antigravity、Gemini CLI、Cline、Codex、Cursor、GitHub Copilot などは、共通の .agents/skills/ ディレクトリ配下に配置されたスキルを認識します。 一方、Claude Code や Augment、AiderDesk など、独自のディレクトリを持つツールは、それぞれ専用のディレクトリにスキルを配置する必要があります。 なお、Gemini CLI については、上記の Universal エイリアス( .agents/skills/ )に加えて、ツール固有のパスである .gemini/skills/ も同時にサポートしています。両者は併用可能で、Gemini CLI は起動時に両方のディレクトリを走査します。同一スコープ(Workspace スコープまたは User スコープ)内で同名のスキルが両方のディレクトリに存在する場合は、 .agents/skills/ 配下のスキルが優先される仕様です。 参考 : Gemini CLI | Agent Skills Discovery tiers インストール 自前で作成したスキルを使用する場合は、前述に示したディレクトリに、 SKILL.md を含むスキルフォルダを直接配置します。AI エージェントツールは起動時に該当ディレクトリを走査してスキルを検出するため、特別なインストール作業は不要です。社内向けのスキルや、自身で作成したスキルを使う場合はこの方法が適しています。 一方、GitHub などで公開されているスキルは、 npx skills install コマンドでインストールできます。 npx skills は、Vercel 社(Vercel Labs)が提供するオープンソースの CLI ツールです。GitHub リポジトリ上の SKILL.md を取得し、AI エージェントツールの所定の配置場所に展開する役割を担います。 参考 : vercel-labs/skills - GitHub なお、 npx コマンドは Node.js に同梱されているコマンド実行ツールです。Node.js は、JavaScript ベースのコマンドラインツールやスクリプトを動かすためのランタイム環境で、Windows、macOS、Linux のすべてに対応しています。手元の環境で npx コマンドが使えない場合は、まず Node.js をインストールしてください。 参考 : Node.js 公式サイト - ダウンロード 以下のように GitHub リポジトリの URL を指定してコマンドを実行することで、スキルを導入できます。ここでは Google が公開している公式リポジトリ google/skills を例に挙げます。 npx skills install github.com/google/skills 処理を続行するか問われるため「y」を入力します。 Need to install the following packages: skills@ 1 . 5 . 5 Ok to proceed? ( y ) y インストールするスキルを選択します。リポジトリに含まれるスキルが一覧で表示されるため、必要なものだけを選択できます。 ┌ skills │ ◇ Source: https://github.com/google/skills.git │ ◇ Repository cloned │ ◇ Found 13 skills │ ◆ Select skills to install ( space to toggle ) │ ◻ alloydb-basics │ ◼ bigquery-basics ( Manages datasets, tables, and jobs in BigQuery, and integ... ) │ ◻ cloud-run-basics │ ◻ cloud-sql-basics │ ◻ firebase-basics │ ◼ gemini-api ( Guides the usage of the Gemini API on Agent Platform with... ) │ ◻ gke-basics │ ◼ google-cloud-recipe-auth ( Provides expert guidance on authenticating and authorizin... ) │ ◼ google-cloud-recipe-networking-observability ( Investigates Google Cloud networking issues by analyzing ... ) │ ◼ google-cloud-recipe-onboarding ( Guidance for a developer ' s first steps on Google Cloud, c...) │ ◼ google-cloud-waf-cost-optimization (Generates cost optimization guidance for Google Cloud wor...) │ ◼ google-cloud-waf-reliability (Generates reliability-focused guidance for Google Cloud w...) │ ◼ google-cloud-waf-security (Generates security-focused guidance for Google Cloud work...) インストール対象の AI エージェントツールを選択します。 Universal (.agents/skills) の下部に記載されているツールは、いずれも .agents/skills ディレクトリに配置されたスキルを認識します。一方、Claude Code など独自の配置場所を持つツールは、Additional agents の一覧から個別に選択する必要があります。 ◇ 55 agents ◆ Which agents do you want to install to? │ │ ── Universal ( .agents/skills ) ── always included ──────────── │ • Amp │ • Antigravity │ • Cline │ • Codex │ • Cursor │ • Deep Agents │ • Dexto │ • Firebender │ • Gemini CLI │ • GitHub Copilot │ • Kimi Code CLI │ • OpenCode │ • Warp │ │ ── Additional agents ───────────────────────────── │ Search: │ ↑↓ move, space select, enter confirm │ │ ○ AiderDesk ( .aider-desk/skills ) │ ○ Augment ( .augment/skills ) │ ○ IBM Bob ( .bob/skills ) │ ❯ ○ Claude Code ( .claude/skills ) │ ○ OpenClaw ( skills ) │ ○ CodeArts Agent ( .codeartsdoer/skills ) │ ○ CodeBuddy ( .codebuddy/skills ) │ ○ Codemaker ( .codemaker/skills ) │ ↓ 32 more │ │ Selected: Amp, Antigravity, Cline + 10 more 次に、インストールのスコープを選択します。 Project はカレントディレクトリ配下にスキルを配置する形式で、プロジェクトと一緒に Git 等で管理できます。Global はホームディレクトリ配下にスキルを配置する形式で、すべてのプロジェクトから横断的に使用できます。プロジェクトごとに使うスキルが異なる場合は Project、すべてのプロジェクトで共通して使う場合は Global を選びます。 ◆ Installation scope │ ● Project ( Install in current directory ( committed with your project )) │ ○ Global インストール確認に対する承認を行うため「Yes」を選択します。 インストール内容に加えて、各スキルに対する Gen、Socket、Snyk によるセキュリティリスク評価が表示されます。Agent Skills は AI エージェントツールが持つ権限で実行されるため、信頼できるソースのスキルだけをインストールすることが重要です。セキュリティリスク評価を確認することで、インストール前にリスクを把握できます。 セキュリティリスク評価に関する詳細は、 Security Risk Assessments の Details のリンク先から確認できます。 ◇ Installation Summary ──────────────────────────────────────────────────────────────────╮ │ │ │ ~/blog_work/google-skills/.agents/skills/bigquery-basics │ │ copy → Amp, Antigravity, Cline, Codex, Cursor + 8 more │ │ │ │ (中略) │ │ │ ├─────────────────────────────────────────────────────────────────────────────────────────╯ │ ◇ Security Risk Assessments ──────────────────────────────────────────────────────────╮ │ │ │ Gen Socket Snyk │ │ bigquery-basics Safe 0 alerts Low Risk │ │ gemini-api Safe 0 alerts Med Risk │ │ (中略) │ │ │ │ Details: https://skills.sh/google/skills │ │ │ ├──────────────────────────────────────────────────────────────────────────────────────╯ │ ◆ Proceed with installation? │ ● Yes / ○ No インストールが完了します。 └ Done! Review skills before use; they run with full agent permissions. Vercel 社が公開している「find-skills」のインストール確認があります。今回は不要ですので「No」を選択します。 ◆ Install the find-skills skill? It helps your agent discover and suggest skills. │ ○ Yes / ● No Gemini CLI からスキルを呼び出してみる これまで解説してきた Agent Skills の仕組みが実際にどう機能するかを、 Gemini CLI を例にとって実演します。 Gemini CLI の概要やインストール方法については、以下の記事で詳しく解説しています。 blog.g-gen.co.jp 今回は、題材として google/skills リポジトリで公開されている bigquery-basics スキルを使用します。ここからは、すでにこのスキルが導入済みである前提で紹介します。 参考 : google/skills - bigquery-basics/SKILL.md (Apache 2.0 ライセンス、抜粋) bigquery-basics スキルが導入された Gemini CLI に対して「BigQuery のデータセットを作りたい」と入力した結果が以下です。 > BigQuery のデータセットを作りたい BigQuery Dataset Creation Research: Activating the BigQuery skill to assist with dataset creation. ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ Action Required │ │ │ │ ? Activate Skill "bigquery-basics": Manages datasets, tables, and jobs in BigQuery, and integrates with BigQuery ML and Gemini for advanced data analytics and AI-driven insights. Use when … │ │ │ │ You are about to enable the specialized agent skill bigquery-basics. │ │ │ │ Description: │ │ Manages datasets, tables, and jobs in BigQuery, and integrates with BigQuery ML and Gemini for advanced data analytics and AI-driven insights. Use when you need to interact with BigQuery, │ │ run SQL queries, manage BigQuery resources, or leverage BigQuery's built-in ML capabilities. Also use when performing data analysis, ingesting data into BigQuery, or developing AI │ │ applications on BigQuery. │ │ │ │ Resources to be shared with the model: │ │ Showing up to 200 items (files + folders). │ │ │ │ /home/xxx/blog_work/google-skills/.agents/skills/bigquery-basics/ │ │ ├───SKILL.md │ │ └───references/ │ │ ├───cli-usage.md │ │ ├───client-library-usage.md │ │ ├───core-concepts.md │ │ ├───iac-usage.md │ │ ├───iam-security.md │ │ └───mcp-usage.md │ │ Do you want to proceed? │ │ │ │ ● 1. Allow once │ │ 2. Allow for this session │ │ 3. No, suggest changes (esc) │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ここで起こっているのは、progressive disclosure の Activation(有効化)の段階です。Gemini CLI は起動時に全スキルの description を読み込んでおり(Discovery)、ユーザーのプロンプト「BigQuery のデータセットを作りたい」が bigquery-basics スキルの description にマッチしたため、 SKILL.md 本文を読み込もうとしています。 ユーザーが有効化を承認すると、Gemini CLI は bigquery-basics スキルの SKILL.md を読み込み、その指示に従ってタスクを進めます。ここから progressive disclosure の Execution(実行)の段階です。 SKILL.md の指示に基づいて、データセット作成に必要な情報を Gemini CLI が対話形式で確認してきます。最初に、データセット名を尋ねられます。今回は my_dataset と入力します。 ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ Answer Questions │ │ │ │ ← ✓ Dataset Info │ □ Location │ ≡ Review → │ │ │ │ データセット名は何にしますか? │ │ │ │ > my_dataset │ │ │ │ │ │ Enter to submit · Tab/Shift+Tab to switch questions · Esc to cancel │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ 続いて、データセットを作成するロケーション(リージョン)を尋ねられます。US や EU といったマルチリージョンに加えて、asia-northeast1(東京リージョン)などの選択肢が提示されます。今回は asia-northeast1 を選択します。 ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ Answer Questions │ │ │ │ ← ✓ Dataset Info │ □ Location │ ≡ Review → │ │ │ │ ロケーション(リージョン)はどこにしますか? │ │ │ │ ▲ │ │ 1 . US │ │ US multi-region │ │ 2 . EU │ │ EU multi-region │ │ ● 3 . asia-northeast1 │ │ Tokyo region │ │ ▼ │ │ │ │ Enter to select · ←/→ to switch questions · Esc to cancel │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ 入力した情報の確認画面が表示されます。データセット名 my_dataset 、ロケーション asia-northeast1 で問題ないため、そのまま確定します。 ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ Answer Questions │ │ │ │ ← ✓ Dataset Info │ ✓ Location │ ≡ Review → │ │ │ │ Review your answers: │ │ │ │ Dataset Info → my_dataset │ │ Location → asia-northeast1 │ │ │ │ Enter to submit · Tab/Shift+Tab to edit answers · Esc to cancel │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ 入力した情報を元に、Gemini CLI が実行すべき gcloud コマンドと bq コマンドが提示されました。ここでは、BigQuery API の有効化( gcloud services enable bigquery.googleapis.com )とデータセット作成( bq mk --dataset --location=asia-northeast1 my_dataset )を 1 行で実行する形になっています。コマンドの実行を承認します。 ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ ? Shell gcloud services enable bigquery.googleapis.com && bq mk --dataset --location = asia-northeast1 my_dataset │ │ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ │ │ gcloud services enable bigquery.googleapis.com && bq mk --dataset --location = asia-northeast1 my_dataset │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ Allow execution of [ gcloud ] ? │ │ │ │ ● 1 . Allow once │ │ 2 . Allow for this session │ │ 3 . No, suggest changes ( esc ) │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ コマンドが実行され、BigQuery のデータセットが作成されました。Gemini CLI から、データセットの作成完了と次のステップの提案が返ってきます。 ✦ BigQuery のデータセット my_dataset を asia-northeast1(東京)リージョンに作成しました。 次のステップとして、テーブルの作成やデータのインポートなど、お手伝いできることはありますか? このように、Agent Skills の仕様に準拠したスキルは、AI エージェントツールが認識できる場所に配置されていれば、ユーザーがスキルを意識して呼び出すことなく、ユーザーのプロンプトに応じて自動的に起動します。「Discovery」「Activation」「Execution」の 3 段階を経て動作する progressive disclosure の仕組みが、Gemini CLI で実際に動作していることが確認できました。 福井 達也 (記事一覧) カスタマーサクセス課 エンジニア 2024年2月 G-gen JOIN 元はアプリケーションエンジニア(インフラはAWS)として、PM/PL・上流工程を担当。G-genのGoogle Cloudへの熱量、Google Cloudの魅力を味わいながら日々精進
みなさん、こんにちは。AWS ソリューションアーキテクトの野間です。生成AIを使ったサービスが日々の業務やプライベートに溶け込んできていますが、その裏側でどんなハードウエアが動いているのかまで意識する機会はあまり多くないかもしれません。普段車に乗るときにエンジンの仕組みまで気にしないのと似ていて、たまにボンネットを開けて覗いてみると、自分が使っているサービスへの理解が深まり、技術選定や活用方法を考えるうえでのヒントになることもあります。「 10 AI chip terms you should know (知っておきたいAIチップに関する10の用語)」というブログを見つけたのでお時間あるときに是非読んでみてください。 お昼休みの30分で最新情報を知れる場として「 もぐもぐAWS 」という企画がスタートしました。是非チェックしてみてください。 5 月 28 日には「 第7回 AWS ジャパン 生成 AI Frontier Meetup ~学びと繋がりの場~ 」というイベントが開催されます。生成 AI の最新トレンド紹介や参加者間での情報交換を目的としたイベントですのでぜひご参加ください。 それでは 5月 11 日週の生成 AI with AWS界隈のニュースを見ていきましょう。 さまざまなニュース AWS生成AI国内事例ブログ「 株式会社アクト・ノード様の AWS 生成 AI 活用事例:Amazon Bedrock Agent Coreで実現する「見守りエージェントAI」。一次産業の人手不足と熟練知識の属人化を解決し、見守り頻度を最大48倍に拡大、生産者の工数を50%削減 」 養鶏や果樹、水産養殖といった一次産業の現場で、Amazon BedrockとAmazon Bedrock AgentCoreを活用した「見守りエージェントAI」を構築した株式会社アクト・ノードの事例を紹介するブログです。生産者がチャットで相談すると見守り要件をAIが整理し、既存の定点カメラから取得した画像を自律的に分析して異常時にアラートを出す仕組みになっています。少量の参考画像と説明文だけで多様な見守りニーズに対応できるFew-shot examplesの活用や、Amazon Bedrock AgentCoreの会話メモリでセッションをまたいだ文脈維持を実現している点が特徴です。実証では見守り頻度が1日1〜3回から30分間隔で最大48回へ拡大し、生産者の工数も50%削減されたほか、ベテランの暗黙知を構造化データとして蓄積できる副次的な効果も確認されています。人手不足と知識の属人化に悩む一次産業の現場で生成AIの活用を検討しているユーザーにとって参考になる内容です。 AWS生成AI国内事例ブログ「 「人がいない」を、AIが埋める ── 養鶏・防災・建設・化学の中堅・中小企業4社が示すDX最前線 」 人手不足や知識継承といった日本の中堅・中小企業に共通する課題に対して、生成AIとAIエージェントで解決に取り組む4社の事例をまとめたブログです。アクト・ノード(養鶏での見守りエージェント)、ヤマトプロテック(防災・書類電子保管)、大豊建設(社内生成AIツール「大豊AI」)、メック(化学の研究情報検索エージェント)の取り組みが紹介されています。ヤマトプロテックではAmazon BedrockとKiroを使ってわずか2日でAI-OCRによる書類電子保管システムを構築し、手作業入力を85%以上削減した事例、大豊建設では8ヶ月で307名が利用し規程検索で約250時間の業務時間を削減した事例、メックではAmazon Bedrock AgentCore・Amazon S3 Vectors・Strands Agentsを組み合わせた情報検索エージェントを約3週間で開発した事例など、短期間に生成AIを業務に組み込みたいユーザーにとって参考になる内容です。 AWS生成AI国内事例ブログ「 AWS GenAIIC の技術支援で実現する建設・BIM 特化基盤モデル開発 — GENIAC 第 3 期 ONESTRUCTION Ishigaki-IDS 事例 」 GENIAC第3期において、ONESTRUCTION株式会社が建設・BIM領域に特化した基盤モデル「Ishigaki-IDS」を開発した事例を紹介するブログです。BIMモデルへの情報付与・照査内容を定義する新しいXML規格「IDS(Information Delivery Specifications)」に対応するため、Qwen3(8B/14B/32B)をベースに、継続事前学習(CPT)、教師ありファインチューニング(SFT)、検証可能な報酬による強化学習(RLVR)の3段階パイプラインで学習を進めています。学習基盤にはAmazon EC2 P5enインスタンス(NVIDIA H200 GPU搭載)を2ノード、AWS ParallelClusterによる分散学習のオーケストレーション、Amazon FSx for Lustreによる高スループットな共有ストレージが使われています。AWS Generative AI Innovation Center(GenAIIC)からは、学習データ設計・評価ベンチマーク・学習テクニック・インフラ・実験結果の診断まで隔週で技術アドバイザリーを受ける形で支援され、最終的に「Ishigaki-IDS-8B」とベンチマーク「IDS-Bench」がHugging Faceで公開されています。 ブログ記事「 3人月の開発を2日間で ─ 日立グループ初の AI-DLC 実践で得たリアルな手応え 」 2026年1月22〜23日にAWS Loft Tokyoで開催された「11社合同 AI-DLC Unicorn Gym」に株式会社日立産業制御ソリューションズが参加した体験レポートです。「分散したIT資産・セキュリティデータの統合基盤構築」をテーマに、Kiroを中心にAWS Lambda・Amazon DynamoDB・AWS CDKを使った構成を2日間で形にしています。従来手法で約530時間(3人月相当)と見積もられた開発を、7名×10時間の約70時間で動作するプロトタイプまで到達させた点が特徴です。AI駆動開発を社内で本格的に検討したいユーザーにとって、前提条件(業務担当者の同席、結合テストやセキュリティ審査は別途)も含めて参考になる内容です。 ブログ記事「 実践企業に学ぶ生成 AI 導入の勘所 〜眠るデータを企業価値に変える〜 – AWS Local Executive Roadshow 大阪編(#1/8)開催レポート 」 2026年4月13日にAWS大阪支社で開催された「AWS Local Executive Roadshow」シリーズ第1回の開催レポートです。全国5都市・計8回のシリーズの初回として、エグゼクティブや情シス部門に向けて生成AIをビジネス価値に転換するためのポイントが、関西拠点の実践企業の事例を中心に共有されました。文具メーカーのサクラクレパスでは、Amazon BedrockとDifyを組み合わせた社内AI共通基盤を「情シス主導×ユーザー作成」の役割分担で運用している事例、化学メーカーのメックではAWS Amplify、Amazon Bedrock AgentCore、Amazon S3 Vectors、Strands Agentsを使ったAgentic RAGを自前構築している事例が紹介されています。 ブログ記事「 AI ツールで実現する継続収益ビジネス 〜開発力を資産に変える〜 – AWS Local Executive Roadshow 大阪編(#2/8)開催レポート 」 2026年4月14日にAWS大阪支社で開催された「AWS Local Executive Roadshow」シリーズ第2回の開催レポートです。AIで顧客を支援するIT企業のエグゼクティブ向けに、開発力をストック型収益に変えるためのビジネスモデル変革をテーマに開催されました。ロジカル・アーツのSaaS「HARMONY」では、Amazon Connectベースに7つのAI機能を組み込んだAIコンタクトセンターソリューションで、アフターコールワーク時間を20分から5分へ短縮し、ランニングコストを85%削減した事例が紹介されています。アプリズムの競走馬見守りプロダクト「aiba」では、Amazon SageMaker AIで独自の骨格推定モデルを反復学習させ、AWS IoT Coreのフリートプロビジョニングでデバイスのプロビジョニング工数を約90%削減した取り組みが共有されています。 ブログ記事「 最新の Amazon Q コスト機能による FinOps の変革 」 Amazon Q Developerに追加されたコスト分析・最適化機能を使って、FinOps(クラウド財務運用)の進め方をどう変えられるかを解説するブログです。AWS Cost Explorer、AWS Cost Optimization Hub、AWS Compute Optimizer、AWS Budgets、AWS Pricing APIなど複数のサービスから情報を横断的に取得し、自然言語の質問に対して時間単位・リソースレベルの粒度で回答できるようになっています。設計段階のアーキテクチャを読み取ってAmazon EC2やAmazon S3の料金見積もりを生成したり、AWS GravitonやサーバーレスへのWhat-if分析を行ったりと、開発者がコスト意識を「シフトレフト」させやすくなる点が特徴です。 ブログ記事「 Hannover Messe 2026 AWS ブースレポート 」 世界最大級の産業見本市「Hannover Messe 2026」のAWSブースを紹介するレポートです。スマート生産・サプライチェーン・製品設計開発・スマートプロダクトの4領域で、Amazon Bedrock、Amazon Bedrock AgentCore、Amazon Nova、Amazon Quick、AWS IoT Core、Amazon Connect、Kiroなどを組み合わせたデモが展示されました。また、注目の「AI-Driven Product Journey」では、来場者がキオスクで入力したデザインから生成AIがオリジナルデザインを作り、AMR・協働ロボット・レーザー彫刻機・AI画像検査・ヒューマノイドロボットが連携して金属コースターを製造する一連のフローを、エージェントAIが自律的にオーケストレーションする様子が披露されました。スマート生産の「Investigation Trace」によるエージェントの推論過程の可視化や、Kiroで7インチHMI向けの空調管理システムをC++で開発するデモを30分以内で完了させる事例など、実運用フェーズに進みつつある産業AIの最新動向を把握したいユーザーにとって参考になる内容です。 ブログ記事「 Specがさらに高速にスマートに進化 」 Kiroの仕様駆動開発(spec-driven development)機能に、開発スピードを高めながら品質を維持するための3つの新機能が追加されました。タスクリストの依存関係を自動でグラフ化して独立タスクを並列実行する「Run tasks in parallel」、要件・設計・タスクを一度に自動生成する「Quick plan mode」、そしてLLMと自動推論を組み合わせるNeurosymbolic AIで要件の曖昧性や論理矛盾を検出する「Requirements analysis」の3つです。タスクの並列実行では、同じファイルを編集するタスクは並列化を避けつつ、独立タスクは「waves」としてまとめて同時実行する仕組みになっており、1時間以上かかっていた大規模な仕様の実装時間が約4分の1に短縮された例が紹介されています。Quick plan modeでは2〜4個の的を絞った質問とワークスペースの自動スキャンで承認プロセスを簡略化し、Requirements analysisでは「レコードを削除」がハード削除かソフト削除かといった解釈のばらつきを実装前に検知できます。 ブログ記事「 探求のための広い余地:20ドル分の有料ティアサインアップボーナス 」 Kiroの新規有料サブスクライバー向けサインアップボーナスが、これまでの500クレジットから1,000クレジット相当(20ドル分)に倍増されました。初日からClaude Opus 4.7を含むプレミアムモデルにフルアクセスでき、ソーシャルログインまたはBuilder IDで登録した利用者が対象になります。無料ティアの構成も見直され、Claude Sonnet 4.5に加えてQwen3 Coder Next、DeepSeek v3.2、MiniMax 2.1といったオープンウェイトモデルがクレジットカード不要で使えるようになりました。 サービスアップデート Claude Platform on AWSが一般提供開始 Anthropic社のネイティブなClaude Platformの体験を、既存のAWSアカウントから直接利用できる「Claude Platform on AWS」が一般提供開始されました。AWSがこの体験を提供する最初のクラウドプロバイダーとなり、AWSのIAM認証情報、統合請求、AWS CloudTrailによる監査ログをそのまま利用できます。Claude Managed Agents(ベータ)、Advisor strategy(ベータ)、ウェブ検索、ウェブフェッチ、コード実行、Files API(ベータ)、Skills(ベータ)、MCPコネクタ(ベータ)、プロンプトキャッシング、引用、バッチ処理など、Anthropic側の最新機能に同じAPIで直接アクセスできる点が特徴です。東京リージョンを含む17のAWSリージョン(米国・欧州・アジアパシフィックなど)で利用でき、別アカウント・別請求の管理を増やさずにClaudeの最新機能を試したい開発チームや企業にとって参考になる内容です。 Amazon Bedrockが高度なプロンプト最適化と移行ツールを発表 Amazon Bedrockに、プロンプトの最適化と複数モデル間での比較評価を一括で行える「Advanced Prompt Optimization」機能が追加されました。プロンプトテンプレート、サンプル入力、任意の正解データ、評価指標または自然言語の評価基準を入力すると、元のプロンプトと最適化後のプロンプトを最大5モデルで同時に比較できます。JPG・PNG・PDFなどのマルチモーダル入力にも対応しており、出力には最終プロンプトに加えて評価スコア・コスト見積もり・レイテンシーがまとめて表示されます。現行モデルをベースラインに据えて移行先候補と比較できるため、モデル変更時のパフォーマンスの後退(リグレッション)を事前に検知しやすくなる点も特徴です。 Kiro CLI 2.3.0でMCPサーバー接続の拡充、~/.kiroの再配置、TUIのリマップに対応 Kiro CLIのバージョン2.3.0がリリースされ、MCPサーバーへの接続性、Kiroのインストール場所、ターミナルUIのキーバインドのカスタマイズ性を高める4つの機能が追加されました。動的クライアント登録に対応していないHTTPベースのMCPサーバーに対しては、設定ファイルに事前登録済みの oauth.clientId を指定することで、Slack・GitHub・Figmaなどのサービスを独自プロキシなしで使えるようになります。 KIRO_HOME 環境変数を設定するとグローバルエージェント・プロンプト・スキル・設定・セッションの保存先を変更でき、複数マシンでのdotfiles管理や仕事用・個人用プロファイルの分離、コンテナ環境での状態の隔離がしやすくなります。V2 TUIのキャンセル・メニュー終了・終了アクションのキーバインドをリマップできるようになったほか、エージェントの実行結果を $AGENT_DISPLAY_OUT と $AGENT_CONTEXT_OUT という2つの新チャネルに出力する仕組みも追加され、コンテキスト消費を抑えつつ進捗表示と内部メモを使い分けられるようになっています。 Amazon SageMaker AIがQwen3.6のサーバーレスモデルカスタマイズに対応 Amazon SageMaker AIで、Alibaba Cloudが提供する「Qwen3.6 27Bパラメータモデル」に対するサーバーレスのファインチューニングがサポートされました。教師ありファインチューニング(SFT)と強化学習ファインチューニング(RFT)の両方に対応しており、これまではベースモデルのデプロイのみだったところから、特定のドメインやワークフローに合わせたカスタマイズが可能になります。インフラのプロビジョニングやトレーニングのオーケストレーションはAmazon SageMaker AIが担い、利用した分だけの従量課金モデルで使える点が特徴です。東京リージョンを含む4つのAWSリージョン(米国東部(バージニア北部)、米国西部(オレゴン)、アジアパシフィック(東京)、欧州(アイルランド))で提供されています。 AWS Transformがエージェントビルダーツールキット「Kiro Power」を提供開始 AWS Transform向けのエージェントビルダーツールキット「Kiro Power」の一般提供が開始されました。「AWS Transform composability initiative」の一環として提供され、移行・モダナイゼーションを担うパートナーやISV、ユーザーが、自社の専門エージェント・ツール・ナレッジベース・ワークフローをAWS Transformのエージェント型AI機能と統合できます。ツールキットはエージェントの構築から共有、AWS Transformへの登録、ディスカバリーまでのライフサイクル全体をカバーしており、構築したカスタムエージェントは「Kiro Power Marketplace」を通じて他のユーザーからも利用される形で展開できます。 AWS Transformがカスタマー所有のアーティファクトストアをサポート アセスメント・移行・モダナイゼーションをAI駆動で進めるAWS Transformで、変換アーティファクトの保存先として、ユーザー自身が所有するAmazon S3バケットを設定できるようになりました。任意でAWS KMSキーによる暗号化を組み合わせることもでき、自社のIAMポリシーでアクセス制御を行えます。S3バケットへ直接ファイルをアップロードすればAWS Transformのエージェントが即座に利用でき、複数のAWSアカウントにまたがるアーティファクトを集約管理できる点が特徴です。 Amazon SageMaker JumpStartで画像生成・テキスト埋め込みの新モデルが利用可能に Amazon SageMaker JumpStartに、Black Forest Labsの画像生成モデル「FLUX.2-klein-base-4B」と、Qwenのテキスト埋め込みモデル「Qwen3-Embedding-0.6B」の2つが追加されました。FLUX.2-klein-base-4Bはコンパクトなアーキテクチャでリアルタイム画像生成とマルチリファレンス編集に対応し、13GBのVRAMがあれば動作します。Qwen3-Embedding-0.6Bは100以上の言語に対応したテキスト埋め込みモデルで、検索・分類・クラスタリング・バイテキストマイニングといった用途に向き、出力次元の柔軟な指定や指示認識型の埋め込みにも対応しています。 Amazon SageMaker JumpStartで音声認識・テキスト読み上げの3つの新モデルが利用可能に Amazon SageMaker JumpStartに、Qwenの音声系モデル3種が追加されました。多言語TTSで音色・感情・韻律の指示制御に対応する「Qwen3-TTS-12Hz-1.7B-CustomVoice」、3秒の音声入力からの高速ボイスクローニングが可能な「Qwen3-TTS-12Hz-1.7B-Base」、52言語・方言に対応し複雑な音響環境に強い音声認識モデル「Qwen3-ASR-1.7B」の3つです。数クリックでデプロイできるJumpStartの特性を活かし、リアルタイム対話型のボイスアプリ、仮想アシスタント、文字起こしや多言語カスタマーサポート、リアルタイム字幕といった幅広いユースケースに対応します。 Amazon SageMaker JumpStartでエージェント型コーディングと効率的AI向けの2つの新モデルが利用可能に Amazon SageMaker JumpStartに、Z.aiの「GLM-5.1-FP8」とMicrosoftの「Phi-4-mini-instruct」の2つの新モデルが追加されました。GLM-5.1-FP8はリポジトリレベルのコード生成、ターミナルタスク、複雑なデバッグワークフローを得意とするエージェント型ソフトウェアエンジニアリング向けのモデルで、長期的な反復推論で解を磨き上げるタイプです。Phi-4-mini-instructはメモリやレイテンシーの制約がある環境向けにコンパクトに作られており、24言語と関数呼び出しに対応し、推論・数学・論理処理に強みがあります。自動コードレビューパイプラインやAI開発環境を構築したいユーザーや、エッジ・低レイテンシー環境で多言語チャットボットやリソース制約下の推論を扱いたいユーザーにとって参考になる内容です。 Amazon SageMaker Data AgentがIAM Identity Centerドメインで利用可能に Amazon SageMaker Unified StudioのData Agentが、AWS IAM Identity Centerで構成されたドメインでも利用できるようになりました。Amazon Athena、Amazon Redshift、Amazon S3、AWS Glue Data Catalogなどに接続し、自然言語で分析目的を伝えるとPythonまたはSQLのコードを生成します。ノートブックのセル、選択中のテーブル、クエリ履歴を会話のコンテキストとして引き継ぎ、コード生成前に段階的な実行プランを提示する仕組みになっています。 Amazon SageMaker Feature StoreがSageMaker Python SDK V3をサポート 機械学習モデル向けの特徴量を保存・共有・管理するAmazon SageMaker Feature Storeが、SageMaker Python SDK V3(v3.8.0以降)に対応しました。フィーチャーグループの作成時にAWS Lake Formationを有効化することで、オフラインストアのデータに列レベル・行レベルのアクセス制御を適用できます。加えて、Apache Icebergのコンパクションやスナップショットの有効期限といったテーブルプロパティを、SDK経由で直接設定できるようになっています。 Amazon SageMakerノートブックインスタンスでG6インスタンスのリージョン拡大 Amazon SageMakerノートブックインスタンスで利用できるAmazon EC2 G6インスタンスが、東京リージョンを含む8つのAWSリージョン(東京、ムンバイ、シドニー、ロンドン、パリ、フランクフルト、ストックホルム、チューリッヒ)に拡大されました。G6は最大8基のNVIDIA L4 Tensor Core GPU(1基あたり24GBメモリ)と第3世代AMD EPYCプロセッサを搭載しています。 Amazon SageMaker StudioノートブックがP6-B200インスタンスのリージョン拡大 Amazon SageMaker Studioノートブックで、Amazon EC2 P6-B200インスタンスが米国東部(バージニア北部)リージョンで利用できるようになりました。NVIDIA Blackwell GPUを8基(高帯域幅GPUメモリ合計1,440GB)と第5世代Intel Xeonプロセッサ(Emerald Rapids)を搭載しており、AIトレーニングでP5enと比較して最大2倍の性能が示されています。現時点では東京・大阪リージョンは対象外です。 Amazon SageMaker StudioノートブックでG6eインスタンスのリージョン拡大 Amazon SageMaker Studioノートブックで、Amazon EC2 G6eインスタンスが東京リージョンを含む6つのAWSリージョン(東京、ソウル、ドバイ、フランクフルト、ストックホルム、スペイン)に拡大されました。G6eは最大8基のNVIDIA L40s Tensor Core GPU(1基あたり48GBメモリ)と第3世代AMD EPYCプロセッサを搭載しており、EC2 G5と比べて最大2.5倍の性能が示されています。 Amazon SageMaker StudioノートブックでG6インスタンスのリージョン拡大 Amazon SageMaker Studioノートブックで利用できるAmazon EC2 G6インスタンスが、中東(ドバイ)とアジアパシフィック(マレーシア)の2つのAWSリージョンに新たに拡大されました。G6は最大8基のNVIDIA L4 Tensor Core GPU(1基あたり24GBメモリ)と第3世代AMD EPYCプロセッサを搭載し、EC2 G4dnと比較してディープラーニング推論性能が約2倍となります。 Amazon SageMaker StudioノートブックでP4deインスタンスのリージョン拡大 Amazon SageMaker Studioノートブックで利用できるAmazon EC2 P4deインスタンスが、東京リージョンを含む3つのAWSリージョン(東京、シンガポール、フランクフルト)に拡大されました。P4deは80GBのHBM2eメモリを搭載したNVIDIA A100 GPUを8基使用し、合計640GBのGPUメモリを提供します(P4d比でGPUメモリが2倍)。 Amazon SageMaker StudioノートブックでP5.48xlインスタンスのリージョン拡大 Amazon SageMaker Studioノートブックで利用できるAmazon EC2 P5.48xlインスタンス(NVIDIA H100 Tensor Core GPU搭載)が、東京リージョンを含む7つのAWSリージョン(サンフランシスコ、東京、ムンバイ、シドニー、ジャカルタ、ロンドン、ストックホルム)に拡大されました。ディープラーニングやハイパフォーマンスコンピューティング向けに設計されたインスタンスです。 Amazon SageMaker StudioノートブックがP5.4xlインスタンスタイプをサポート Amazon SageMaker Studioノートブックで、Amazon EC2 P5.4xlインスタンス(NVIDIA H100 Tensor Core GPU搭載)が一般提供開始されました。東京リージョンを含む7つのAWSリージョン(米国東部(バージニア北部)、米国東部(オハイオ)、米国西部(オレゴン)、ムンバイ、東京、ジャカルタ、サンパウロ)で利用できます。 「 AWS ジャパン生成 AI 実用化推進プログラム 」も引き続き実施中ですので検討してみてください。 今週は以上です。それでは、また来週お会いしましょう! 著者について 野間 愛一郎 (Aiichiro Noma) AWS Japan のソリューションアーキテクトとして、製造業のお客様を中心に日々クラウド活用の技術支援を行なっています。データベースやデータ分析など、データを扱う領域が好きです。最近天ぷらを(食べるのではなく)揚げるほうにハマってます。
はじめに こんにちは。医療プラットフォーム本部ビジネス基盤グループでエンジニアをしている熊本です。 ブログへの登場は久々となりますが、2019年に新卒で入社して以来、長らくプロダクト開発のエンジニアをしてきました。そんな私は現在、医療プラットフォーム全体のMA(マーケティングオートメーション)、SFA(営業支援)、CRM(顧客管理)といったITツールおよび業務フローの設計・改善を通じて、事業パフォーマンスの向上を担う開発組織のマネージャーを務めています。 メドレーでは、患者・生活者と、病院・有床診療所、医科診療所、歯科診療所、調剤薬局といった各医療機関向けに事業・プロダクトを展開していますが、今回は、これらの事業を支えるITツールの Salesforce を kintone へ移行したプロジェクトについてお話しします。 背景 SFAが抱えていた課題 弊社では長年、医療プラットフォームにおける複数の事業部門で共通のSalesforceを利用してきましたが、運用を続ける中で以下のような課題が顕在化していました。 最新・正しい情報の把握が困難 :正規化されていないデータや重複管理による情報の分散 データ分析の壁 :分析を見据えた設計になっておらず、プロダクト側の利用状況との突合など、柔軟なデータの加工に工数がかかっていた 非効率な業務フロー :複数ツールの併用や重複する項目の存在などを背景に、手動での転記やダブルチェックが発生している状態 システム管理の属人化 :目的が不明な項目が乱立し、メンテナンス・レポート作成ができる人が限られている状態 また、130個近くのライセンスを保有していたため、これらの課題を踏まえるとコスト過多な状況にも陥っていました。 全ての顧客体験をプロダクト側が理解し、設計責任を持つ 私たちは、 営業・カスタマーサクセスといった顧客活動から、契約・請求に至るまでを「一連のプロダクト体験」として捉え 、その設計・実装にエンジニアが深く関わることを大切にしています。 この考えに基づき、単なるツールのリプレイス(お引っ越し)ではなく、より良い顧客体験につながる合理的で整理された事業オペレーションを実現するため、 業務・データ・ツールを一体でエンジニアが設計し直す 。これが本プロジェクトの重要なポイントでした。 取り組み 体制構築とアーキテクチャ設計 前述の通り、Salesforceはこれまで複数の事業部門で活用してきました。1人で各事業の業務フローや必要データを把握し再設計するのは困難ですし、何より私たちが大切にしている考え方も踏まえ、プロダクトエンジニアが各事業に深く潜り込んで再設計すべきだと考えました。そこで、各事業領域からプロダクトエンジニアを1名ずつアサインする体制としました。私はPMとして全体設計や車輪の再発明が起きないよう各部門の連携をコントロールする役割を担い、各環境のデータ設計・構築はその事業領域担当のエンジニアが主導する形をとりました。 kintoneは責務分離やメンテナビリティを考慮し、事業領域ごとに環境を分けるアーキテクチャを採用しました。また、kintoneへの移行に伴い、コストや親和性を加味してMAツールの移行も行いましたが、本記事では詳細を割愛させていただきます。 医療プラットフォーム本部の組織体制 ツールの移行イメージ 業務理解と要件定義 まずは、日々の事業活動の中で発生するデータや、業務上必要となるデータ、およびそのフローの現状とあるべき姿を描くため、事業部とコミュニケーションを重ねました。長年利用してきたこともありデータ項目が膨大となっていたため、「このデータをどう活用するのか」を重点的に会話し、そもそも不要ではないか、より活用しやすくするにはどうすべきか、などの整理に時間をかけました。 データ設計 特に工夫したのは、DB観点での「正規化」とユーザー観点での「入力のしやすさ」のバランスをとったデータ設計です。kintoneはDBとUIが一体型であるため、このバランス調整にとても苦労しました。一般的なRDBMSではデータの履歴を残すために専用のテーブルを設けイミュータブルモデリングなどを採用する場面でも、kintoneだとテーブル≒アプリとなるため、テーブルを分けることは単純にユーザーの画面遷移や入力箇所を増やすことに直結してしまいます。こういった場合は完全な正規化をするのではなく、普段の商談管理で使用するアプリとその商談ステータスの履歴を管理するアプリを分け、それぞれのアプリに同類のフィールド(RDBMSのカラムをkintoneではフィールドと呼びます)を設置することを許容しつつも、JavaScriptを用いた自動転記の仕組みを作ることで、ユーザーは商談管理アプリだけに入力していれば良いようにするといった工夫をしました。 泥臭く戦ったポイント:データ移行と同期システム ここからは、エンジニアとして特に苦労した2つのポイントをご紹介します。 1. 冪等性と再現性を追求したデータ移行 100名以上が利用するシステムにおいて、特にデータ移行には慎重を期しました。具体的な方法としては、Salesforceのスキーマをkintoneのスキーマに変換し、データをマッピングした結果をCSVに出力するという一連の処理を、CLIコマンド等の整備によりスクリプト化しました。 データ移行では、一度kintoneに投入した後、UAT期間中に事業部からのフィードバックを受けて設計を見直し、再投入が必要になるケースがありました。また、リハーサル目的で、本番移行前にも何度でも再実行できる仕組みが必要でした。そのため、前述のように一連の処理をスクリプト化し、「再現性」を確保しました。さらに、「冪等性」も重要なポイントでした。今回のケースでは、それぞれのアプリにユニークキーを設けて常にUPSERT処理を行うことで、元データが同じであれば、何度実行しても同じ状態を再現できるようにしました。 kintoneへのインポート処理自体はレコード数に比例して一定の時間がかかってしまうものの、事前に手順化しリハーサルを重ねたことで、本番稼働前日の夜間作業で無事に移行を完了させることができました。ただし、(一定の想定範囲ではあったものの)移行作業直前にSalesforce側でデータの更新や削除が行われたことで、kintone側で関連データ同士の紐付けがうまく設定できないケースも発生しました。これはエラーログを見て個別に対処するしかなく、大変苦労した部分でもありました。 2. Salesforceとkintoneの双方向同期システム Salesforceは長年活用してきたことから、いわゆるSFAとしての機能だけではなく、請求や契約管理としての役割も担っていました。今回のプロジェクトでは事業部側が利用するSFAとしての機能はkintoneへ移行しつつも、請求や契約管理といったバックオフィス領域に関しては将来的な販売管理システムへの移行も見据えてスコープ外としていました。よって、これまでは一つのシステムの中で顧客・商談から契約・請求まで一元管理していたものを分離したため、システム間でデータを連携させる必要がありました。 詳細は省きますが、Salesforceに残った契約・請求関連データの一部は、営業やカスタマーサクセスなどの事業部側と契約・請求処理を担うバックオフィス部門の双方向による書き込みが業務上必要であったため、単にkintoneから必要なデータを一方向で送るだけでは要件を満たせませんでした。そのため、SFA領域とバックオフィス領域のハブとなる「商談」などのデータに関しては、Salesforceとkintone間で一部のスキーマ定義を揃え、両システムを一定間隔で同期させる仕組みとしました。 具体的な仕組みとしては、両システムのスナップショットを一定間隔で取得し、前回との差分を検知して互いのシステムへ反映し合う形をとりました。 ここで壁となったのが、「準リアルタイム性」の要求と「データの競合」です。両方のシステムで日常的にトランザクションが発生するため、「同じレコードの同じ項目が、それぞれのシステムで同時に別の値へ書き換えられる」可能性がありました。この競合状態を安全に解決するためのロジックを構築する必要があり、非常に苦労しました。 この対応にあたっては、当初想定していた対象項目が、本当に準リアルタイムで同期が必要なのかを関係者と徹底的に精査しました。その結果、同期間隔の調整や同期対象の大幅な絞り込みができ、現在は安定して稼働する仕組みを実現できています。 ※ データ移行や同期処理のディープな話は盛りだくさんな内容となってしまうため、また別の機会にブログ化できればと思います! 成果 80%以上のランニングコスト削減 契約・請求などを担う組織の必要分を除き、90個ほどのアカウントを削除することができました。kintoneの費用を加味しても、全体のランニングコストとして80%以上削減することができました。 BigQuery集約によるデータ分析・可視化の実現 Salesforceのレポート機能の制約から解放され、より柔軟なデータ活用ができるようになりました。 KPIダッシュボードの構築 :Looker Studioなどのアセットと連携したデータの分析・可視化が可能に 自律的な分析文化 :勉強会の開催やマニュアル整備のおかげもあり、事業部メンバーが生成AIも活用しながら、より自律的かつスピーディなデータ分析が可能に 横断的分析 :kintoneの顧客・商談データ、契約データ、プロダクトデータなどをBigQueryに集約し、多角的な分析を実現 また、横断組織にあるデータ戦略グループが、最近「自然言語でBigQuery等のデータを分析できる社内システム」をリリースしました。今回のプロジェクトによるデータ整備とこのシステムが組み合わさり、よりスピーディにデータ分析を行える環境づくりが加速しています。 関連記事: データ分析AIエージェントの実践 - Slack × Devin × Context Engineering 今後の展望 本プロジェクトによって多くの成果を得られましたが、私たちはまだ「業務やデータの一部をツールの移行と共に再設計し、基盤を整えた」に過ぎません。 今後はこの基盤を活かし、KPIなどの定量的なデータや現場ヒアリングを通じて事業の課題・ボトルネックを特定し、継続的に改善を回すサイクルを作っていきたいと考えています。 また、日々顧客と向き合う事業部のメンバー自身が、データ活用や拡張性を見据えて自律的にツールを改修できる状態こそが、組織のアジリティを最も高く保ちながらスケールできる理想の形だと考えています。その実現に向けて、エンジニアリングの専門性を持つ私たちビジネス基盤グループが、誰もが改修・改善しやすい仕組みづくりを牽引していきたいと考えています。 まとめ エンジニアが事業の深い部分に入り込み、業務・データ・ツールを一体で再設計するプロジェクトについてご紹介させていただきました。 メドレーでは、「医療ヘルスケアの未来をつくる」というミッションのもと、エンジニアがビジネスの根幹に関わり、プロダクトと事業を共に成長させる文化があります。自ら課題を発見し、設計から運用までをエンジニアとしてのリーダーシップを発揮しながら一気通貫で推進できる方を絶賛募集しています。 メドレーで働く|株式会社メドレー メドレーでの働き方や人事制度、求人情報など、採用に関する情報をご紹介します。 www.medley.jp 少しでも興味を持っていただけましたら、ぜひメドレーの採用ページをご覧ください!

動画

書籍