デジタル庁のガバメントAI「源内(GENAI)」がOSS化されたので、GenUとの差分を調べながらAWSアカウントにデプロイしてみた

デジタル庁のガバメントAI「源内(GENAI)」がOSS化されたので、GenUとの差分を調べながらAWSアカウントにデプロイしてみた

2026.04.25

いわさです。

デジタル庁が開発・運用しているガバメントAI「源内(GENAI)」をご存知でしょうか。
源内は、政府職員が安全・安心に生成AIを利用できる環境として、デジタル庁が内製開発しているプラットフォームです。

名前の由来について、デジタル庁のnote記事[1]では以下のように説明されています。

源内の名前の由来は、生成AIを英語略称でGenAIと書くことから、と様々な生成AIアプリケーションの発明が集まって欲しいという願いを込めて、の2点からです。

2025年5月にデジタル庁職員向けに運用が開始され、2026年度には全府省庁の約18万人の政府職員を対象とした大規模パイロットが進められています。[2]

そんな源内ですが、本日2026年4月24日に一部がOSSとして公開されました。

https://www.digital.go.jp/en/news/907c8e5d-2f4f-4bd7-9400-37c9f4221d7d

商用利用を許可するMITライセンスで、GitHub上の公式リポジトリに公開されています。
ドキュメントはCC BY 4.0です。

MITライセンスなので、行政機関だけでなく民間企業や個人でも自由に利用・改変・再配布が可能です。
源内はAWSが公開している生成AI活用アプリケーション Generative AI Use Cases(GenU) [3]をベースにしたAWS CDKプロジェクトなので、ガバメントクラウドでなくても通常のAWSアカウントにデプロイできます。

チーム管理やExApp(外部AIアプリ連携)など、GenUにはない組織運用向けの機能が追加されているので、社内向け生成AI基盤の選択肢としても面白そうです。

というわけで、今回は非ガバメントクラウドの個人検証用AWSアカウントに実際にデプロイして使ってみました。

源内のリポジトリを調査してみる

まず、公開されたリポジトリの中身を調査して、源内の構成やGenUとの違いを整理してみます。

公開されたリポジトリ

源内は大きく2つのリポジトリで構成されています。

  • 源内 Web(AIインターフェース): 利用者が直接さわるWebアプリケーション
  • 源内 AIアプリ(行政実務用AIアプリ): 生成AIを活用したマイクロサービス群

https://github.com/digital-go-jp/genai-web

https://github.com/digital-go-jp/genai-ai-api

源内 Webが提供するAIアプリは2種類に分かれます。

  • 汎用型AI: チャット、文章生成、翻訳、画像生成、ダイアグラム生成、音声文字起こしなど、デプロイするだけで利用可能
  • 行政実務用AI: 外部マイクロサービスとして構築されたAIアプリを、チーム単位で登録・利用する仕組み

行政実務用AIアプリは源内 Webとは独立した環境で構築でき、REST APIのプロトコルに準拠すればGUIから源内への追加登録ができるみたいですね。

アーキテクチャ構成

リポジトリの内容を整理して全体の構成図を作成してみました。
源内 Web側はGenUから引き継いだリソース(上段)と源内が独自に追加したリソース(下段)を色分けしています。

genai-architecture.drawio.png

構成図の左側がgenai-webで右側がgenai-ai-apiです。

GenUベースの開発

ご存知の方も多いかと思いますが、源内 Webは AWS 製オープンソースの Generative AI Use Cases(GenU) をベースに開発されています。

Amazon Web Services (AWS) 社製オープンソース Generative AI Use Cases (GenU) をベースに以下の変更および機能追加をしました。

なお、GenUとは独立して開発を進めているため、GenUとは異なる機能構成になっているとのこと。

GenUとの違い

フォーク元のGenUバージョン

源内 Webのリポジトリはプライベートリポジトリからの同期という形で公開されており、GenUのコミット履歴は含まれていないため、リポジトリだけから正確なフォーク元バージョンはちょっとよくわかりませんでした。

ただし、CDKのエントリポイントの構造やconstruct構成から、GenUのv3〜v4系(2025年前半頃)をベースにフォークし、その後大幅に改変されたものと推測されます。GenU v5 系の内容が含まれていなかったので。
ソースコード内には genUApiuseGenUApps といったGenU由来の変数名がそのまま残っている箇所もあります。

GenUからの主な変更点

READMEに記載されている変更点は以下の通りです。

  • チーム管理機能: チームの作成・ユーザー割り当て・ロールベースのアクセス制御(システム管理者、チーム管理者、ユーザー)
  • AIアプリ管理機能: チーム単位でのAIアプリ登録・管理
  • 外部マイクロサービス連携(ExApp): REST APIベースの外部AIアプリの追加・実行機能。JSONでリクエスト形式を定義するとUIコンポーネントが自動生成される仕組み
  • デジタル庁デザインシステムの適用: @digital-go-jp/tailwind-theme-plugin を使用
  • アクセシビリティ試験の実施: 庁内アクセシビリティチームによる試験を実施済み
  • 運用機能の追加: 監視・モニタリング、CI/CD設定、メンテナンスモードなど
  • コードベースの大幅な変更

GenU(v5.4.0)との機能比較

実際にリポジトリのルート定義やサイドバーの実装を確認して、GenU最新版(v5.4.0)との機能の有無をカテゴリごとに整理してみました。

エンドユーザーが使う生成AI機能

機能 源内 GenU
チャット
文章生成
翻訳
画像生成
ダイアグラム生成
音声文字起こし
要約 -
執筆(校正) -
Webコンテンツ抽出 -
動画生成 -
映像分析 -
議事録生成 -
音声チャット -
プロンプト最適化 -

源内はGenUの汎用ユースケースの多くを削ぎ落としています。
ただし、源内は削った機能を「ExApp」として外部マイクロサービスで後から追加する設計思想なので、必要に応じて拡張できる構造です。

なお、利用可能なモデルの制限は源内として特別制限されているものはなくて、GenUと同じです。Bedrockのモデルアクセス設定とCDKデプロイ時のパラメータファイルで指定できます。(デフォルトは Claude系と Nova Liteみたいです)

RAG・エージェント(外部データやツールと連携するもの)

機能 源内 GenU
ExApp(外部REST API連携) -
RAGチャット(Kendra / Knowledge Base) -
エージェントチャット(Bedrock Agents) -
MCPチャット -
AgentCore -
Flowチャット(Bedrock Flows) -
エージェントビルダー -
リサーチエージェント -

GenUはBedrock Agents、Knowledge BaseなどAWSのマネージドサービスや MCP を活用する方向ですが、源内はREST APIベースのExAppで外部マイクロサービスと連携する方式を採用しています。
ExAppはクラウドを問わないので、Azure上のvLLMやGoogle Cloud上のGeminiアプリも源内のUIから統一的に利用できます。
源内の基盤部分は AWS で、内部の各アプリはお好きなようにって感じみたいです。

管理・統制(組織運用に必要な機能)

機能 源内 GenU
チーム管理(ロールベースアクセス制御) -
SAML複数IdP対応 -
KMS CMEK暗号化(全データ) -
データ保持期間(TTL) -
メンテナンスモード -
Bedrock Inference Profiles(コスト配分) -

このあたりは源内でかなり強化されているっぽいです。
政府システムとしてのセキュリティ要件(CMEK暗号化、データ保持期間)や、複数府省庁での運用を想定した機能(チーム管理、複数IdP)が揃っている感じですかね。
なお、WAFはGenUにもCloudFront用として存在しますが、源内ではさらにAPI GatewayやCognito User Poolに対するRegional WAFも追加されていました。セキュリティの多層化が図られていますね。なるほど。

カスタマイズ・拡張(ユーザーが独自のユースケースを作る機能)

機能 源内 GenU
ユースケースビルダー -
チャット共有 -
ブラウザ拡張 -

GenUのユースケースビルダーはプロンプトテンプレートを自然言語で記述するだけで独自のユースケース画面を自動生成できる機能ですが、源内にはありません。
源内では独自のユースケースはExAppとして外部に構築する方針です。

技術スタックの比較

項目 源内 Web GenU (v5.4.0)
フロントエンド React 19 + Vite 8 + Tailwind CSS 4 React 18 + Vite + Tailwind CSS
ルーティング React Router 7 React Router DOM 6
状態管理 Zustand 5 Zustand 4
デザインシステム デジタル庁デザインシステム 独自
フォーマッター/リンター Biome Prettier + ESLint
テスト Vitest Jest
TypeScript 6.x 5.x
ライセンス MIT MIT-0

React 19、Zustand 5、React Router 7、TypeScript 6 など、フロントエンドのメジャーバージョンが軒並み上がっています。
触ってみたらわかるのですが、UIは源内で刷新されている感じです。

実際にデプロイして使ってみる

では、非ガバメントクラウドの個人検証用AWSアカウントに源内 Webをデプロイしてみます。

デプロイ手順

デプロイはGenUと同様にAWS CDKで行います。
手順は docs/ 配下のドキュメントに沿って進めます。

  1. リポジトリをクローン
  2. npm ci で依存関係をインストール
  3. パラメータ設定ファイルを作成
  4. CDK bootstrap(ap-northeast-1 と us-east-1 の両方が必要)
  5. CDK deploy

パラメータ設定ファイルは packages/cdk/env-parameters/ にテンプレートが用意されています。
テンプレートをコピーして環境名やモデルIDなどを設定し、packages/cdk/parameter.tsdeploy_envs に登録する形です。

cd packages/cdk/env-parameters
cp self-hosting-template.ts self-hosting-dev.ts

今回は以下の最小構成でデプロイしました。

packages/cdk/env-parameters/self-hosting-dev.ts
  appEnv: 'dev',
  logLevel: 'INFO',
  selfSignUpEnabled: true,
  modelRegion: 'ap-northeast-1',
  modelIds: [
    'amazon.nova-lite-v1:0',
    'jp.anthropic.claude-sonnet-4-6',
  ],
  imageGenerationModelIds: ['amazon.nova-canvas-v1:0'],
  monitoring: false,
};

parameter.ts にインポートを追加します。

packages/cdk/parameter.ts

const deploy_envs: Record<string, Partial<StackInput>> = {
  '-selfHostingDev': selfHostingDevParams,
};

デプロイコマンドはこちらです。

npm -w packages/cdk run cdk -- deploy --all --require-approval never -c env=-selfHostingDev

なお、CDK bootstrapはap-northeast-1だけでなくus-east-1も必要です。
CloudFront用のWAFスタック(AppDomainStack)がus-east-1にデプロイされるためです。
us-east-1のbootstrapを忘れると No bucket named 'cdk-hnb659fds-assets-...-us-east-1' というエラーになります。

デプロイには約20分かかりました。
254リソース(ネストスタック含めると487リソース)が作成されます。

ログイン画面

デプロイが完了すると、CloudFrontのURLが出力されます。

DF83F749-8A01-435D-8682-C9700D93201E.png

アクセスするとログイン画面が表示されます。

7FF22442-B242-497A-8860-87AEBC1FDDDA_1_105_c.jpeg

「ガバメントAI 検証環境」というタイトルが表示されています。
今回はセルフサインアップを有効にしたので「アカウントを作る」タブからメールアドレスでアカウントを作成できます。

ホーム画面

ログインするとホーム画面が表示されます。

4560683F-8736-49CE-B74F-A951ADD4E2A6.png

ヘッダーに「ガバメントAI 検証環境 Powered by デジタル庁 プロジェクト源内」と表示されています。
デジタル庁デザインシステムが適用されており、GenUとは見た目の印象がかなり異なります。

サイドバーの「おすすめ」にはチャット、文章を生成、翻訳、音声ファイルから文字起こしの4つが表示されています。
画像生成やダイアグラム生成はサイドバーには出ませんが、後述するAIアプリ一覧からアクセスできます。

チャット画面

チャット画面でClaude Sonnet 4.6を使ってみました。

2BC2F68D-CD36-4491-9B7F-6E5577591FD2.png

LLMの切り替えはドロップダウンで行えます。
パラメータ設定で指定したNova LiteとClaude Sonnet 4.6が選択可能です。

20D73356-BB09-4393-BD05-A85386E366DB.png

初回アクセス時には「チャット入力のEnterキー仕様変更のお知らせ」と「生成AI利用時の注意事項」が表示されます。
注意事項にはハルシネーション、最新性の欠如、バイアス、著作権侵害などのリスクが記載されており、政府職員向けの配慮が感じられます。

チーム管理機能を有効にする

デプロイ直後の状態では、ヘッダーの「アカウント」メニューに「チーム管理」は表示されません。
チーム管理機能を使うには、ログインユーザーをCognitoの SystemAdminGroup に追加する必要があります。

源内には専用のスクリプトが用意されています。

C56ED7F6-05E6-4486-854B-EF3C48424BBF_4_5005_c.jpeg

./scripts/add-system-admin.sh -selfHostingDev iwasa.takahito@classmethod.jp

このスクリプトは、CloudFormationの出力からCognito UserPoolIdを取得し、指定ユーザーを SystemAdminGroup に追加します。
CDKデプロイ時にCognitoユーザープールには3つのグループが自動作成されています。

  • SystemAdminGroup(優先順位1): チームの作成・全チームの編集が可能
  • TeamAdminGroup(優先順位2): 特定チーム内のメンバーやアプリの追加・削除が可能
  • UserGroup(優先順位3): 一般ユーザー

1BB918FE-45DC-4D3F-8B20-655CC6CD9A92_1_105_c.jpeg

GenUにはこのグループ構成はないので、源内独自のロールベースアクセス制御ですね。

SystemAdminGroupに追加後、ログアウト→再ログインすると「アカウント」メニューに「チーム管理」が表示されます。

8B2D2783-1CEC-476A-9887-76E5E2131EA9.png

チームの作成とAIアプリ登録

チーム管理画面からチームを作成してみます。
チーム名とチーム管理者のメールアドレスを入力するだけです。

41F4431C-F872-4F8F-A8ED-4B9D1FCE1CE8.png

チームを作成すると、「AIアプリ」タブと「メンバー」タブが表示されます。
「AIアプリを作成」ボタンからExApp(外部AIアプリ)を登録できます。

D92193BC-F052-472F-A0AF-4483D3322A59_1_105_c.jpeg

ExAppの仕組みは、GenUのエージェント機能とはアプローチが異なります。
GenUはBedrock AgentsやMCPなどAWSのマネージドサービスを活用する方向ですが、源内はREST APIベースの外部マイクロサービスとして構築する方式です。
これにより、AWS以外のクラウド(Azure、Google Cloud)上に構築したAIアプリも源内のUIから統一的に利用できるようになっています。

実際に、もう一つのリポジトリである 源内 AIアプリ(genai-ai-api) には、AWS(クエリ拡張RAG)、Azure(vLLMセルフデプロイ)、Google Cloud(法制度AIアプリ)の3クラウドに対応したテンプレートが公開されています。
こちらをデプロイしてExAppとして源内 Webに接続する検証は、別の記事で試してみたいと思います。

AIアプリ一覧を表示する

デプロイ直後の状態で「すべてのAIアプリを見る」をクリックすると、「該当するAIアプリはありません。」と表示されます。

67320A18-8F76-4C37-884C-BE94EE8A03FB.png

これは「共通アプリチーム」が未登録のためです。
共通アプリチームとは、すべてのユーザーが参照できるAIアプリを管理するための特別なチームで、これを作成すると汎用AIアプリがAIアプリ一覧に表示されるようになります。

専用のスクリプトが用意されています。

./scripts/create-common-app-team.sh -selfHostingDev

このスクリプトはDynamoDBに固定ID(00000000-0000-0000-0000-000000000000)の共通アプリチームレコードを作成します。

共通アプリチーム作成後、再ログインするとAIアプリ一覧に「共通アプリ(6)」として汎用AIアプリが表示されます。

8D54A856-1F84-46DF-B602-E1A2BF0E53CB.png

チャット、文章を生成、翻訳、画像を生成、ダイアグラムを生成、音声ファイルから文字起こしの6つが確認できます。

デプロイ後のセットアップまとめ

源内 Webをデプロイした後、フル機能を使うには以下のセットアップが必要です。

  1. CDKデプロイ: cdk deploy --all(約20分)
  2. アカウント作成: CloudFront URLにアクセスしてサインアップ
  3. システム管理者設定: scripts/add-system-admin.sh でCognitoグループに追加 → チーム管理機能が有効に
  4. 共通アプリチーム作成: scripts/create-common-app-team.sh でDynamoDBにレコード追加 → AIアプリ一覧に汎用アプリが表示

GenUだとデプロイ後すぐに全機能が使えますが、源内はチーム管理やAIアプリ一覧の表示に追加のセットアップが必要です。
これは源内がマルチテナント・ロールベースの運用を前提としているためで、組織的な運用には必要なステップですね。

さいごに

本日はデジタル庁のガバメントAI「源内(GENAI)」がOSSとして公開されたので、非ガバメントクラウドの個人検証用AWSアカウントにデプロイして使ってみました。

GenUとは大きく構成が違っていますね。GenUをベースにしつつ本番環境へ使える状態にカスタマイズしたケースとしてかなり参考になりそうです。
チーム管理や ExApp とかはそのまま使えそうですよね。

デプロイ自体はGenUと同じCDKベースなので慣れている方はスムーズだと思いますが、チーム管理やAIアプリ一覧の表示には追加のセットアップスクリプトの実行が必要な点は注意が必要です。
ドキュメントは docs/ 配下に日本語で丁寧に整備されているので、手順に沿って進めれば問題なくセットアップできました。

なお、今回は源内 Web(AIインターフェース)のデプロイのみ行いました。
もう一つのリポジトリである源内 AIアプリ(genai-ai-api)には、AWS・Azure・Google Cloudの3クラウドに対応した行政実務用AIアプリのテンプレートが公開されています。
こちらのデプロイと、ExAppとして源内 Webに接続する検証は別の機会に試してみたいと思います。

脚注
  1. ガバメントAI、プロジェクト「源内」の構想紹介 - デジタル庁 note ↩︎

  2. 全府省庁の約18万人の政府職員を対象としたガバメントAI(源内)の大規模実証を開始します|デジタル庁 ↩︎

  3. Generative AI Use Cases JP (GenU)を使って生成AIを体験してみよう(基礎編) | DevelopersIO ↩︎

この記事をシェアする

関連記事