2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ビジネスモデル2.0図解をClaude Agent Skill化して、Webサービスにしてみた

2
Last updated at Posted at 2026-10-24
明るいオフィスで、眼鏡をかけた金髪の女性がガラスのホワイトボードに3×3のビジネスモデル図を描いている。マスの間を緑・黄・水色の矢印がつないでいる

作成日:2026年10月25日(日)

TL;DR

  • 『ビジネスモデル2.0図鑑』の 3×3図解 を、Claude Code の Agent Skill として自動生成できるようにしました。「メルカリのビジネスモデルをWebで調べて図解して」の一言で、SVG と PowerPoint(PPTX)が出てきます。
  • 設計の肝は「AIに絵を描かせず、JSONを書かせる」ことです。主体・矢印・補足を並べた図解定義JSONから、スクリプトが毎回同じ SVG と PPTX を組み立てます。
  • 素材のアイコンは、PowerPoint のオートシェイプを pptx → JSON → SVG に変換する治具で吸い出しました。
  • 同じスキルを Claude Agent SDK + FastAPI で包み、Webサービスとしても動くようにしました。「アプリはスキルの中身を知らない」設計です。
  • 素材のツールキットは現在有償提供に移行しており、権利者への確認が取れていないため、スキルとWebサービスは公開していません。この記事では設計の考え方と、実際に踏んだ4つの罠(重なり、PPTX崩れ、タイムアウト、ゾンビセッション)を共有します。
パランティアのFDEモデルのビジネスモデル図解。顧客の現場で作り、製品に還元して売る構造

生成例: Palantir FDE(2026年8月時点の公開情報にもとづく)
※実在企業の図解は、公開情報をもとにAIが生成し筆者が確認した、筆者個人の解釈によるものです。各社の公式見解ではありません。
※図解フォーマット:ビジネスモデル図解ツールキット 配布版 Ver.4.2 ©図解総研(出典)、Licensed under CC BY 4.0。改変: アイコンをSVGに変換し、色とサイズを変更


1. はじめに

『ビジネスモデル2.0図鑑』の3×3図解が好きで、気になる会社のビジネスモデルを自分でも描いてきました。ただ、手で描くと1枚に数時間かかります。主体を選び、矢印を引き、補足を書き、レイアウトを整える。この手間のせいで、図解は「たまにやる趣味」に留まっていました。

そこで生成AIに描かせることにしました。以前、Dify-1.1.3からClaude 3.7 SonnetでSVG図解をする という記事で SVG の図解を試しましたが、自由に描かせると体裁が毎回バラバラで、3×3の型を守った図にはなりませんでした。本記事はその続編です。今回は「AIにどう描かせるか」を設計し直し、Claude Code の Agent Skill と、それを包んだWebサービスにしました。

この記事で分かること:

  • Agent Skill で「作法」をAIに渡す設計 — 自由に描かせず、ルールとデータで縛る
  • pptx のオートシェイプを JSON / SVG 素材にする考え方 — 手描きし直さずに素材を吸い出す
  • スキルをそのまま Webサービスに組み込む構成 — Claude Agent SDK でスキルを実行する
  • 長時間エージェントをWebで動かすときのハマりどころ — おそらく本記事の一番の価値です

なお、内容は執筆時点(2026年10月)の情報です。Claude Agent SDK などは変化が速いので、試すときは一次情報を確認してください。

また、先にお断りしておくと、作ったスキルとWebサービスは公開していません(理由は2-3で説明します)。この記事は「作り方の記録」で、配布物はありません。

2. ビジネスモデル2.0図解とは

本題の前に、題材の図解手法と、使った素材の扱いを説明します。図解をご存じの方も、2-3 だけは読んでいただけると助かります。

2-1. 3×3で事業を描く図解手法

『ビジネスモデル2.0図鑑』(近藤哲朗 著、KADOKAWA、2018年)で使われている図解の手法です。100の事例をすべて同じ3×3の型で描いているので、業種の違う事業を同じ土俵で比べられます。書籍の内容は note で全文公開されています(ビジネスモデル2.0図鑑 #全文公開チャレンジ)。

  • 構成要素は 主体・矢印・補足 の3つだけ
  • 3×3の行は固定で、上段が利用者、中段が事業、下段が事業者。中央の縦列が「だれに・なにを・だれが」を表す
  • 矢印は モノ(緑)・カネ(黄、¥マーク)・情報(水色) の3種類。確定しない流れは点線で描く
  • 補足には「なぜそうなのか」と「感動ポイント」を書く
3×3のグリッド。行は上から利用者・事業・事業者、中央の縦列はだれに・なにを・だれが。主体の枠をモノ・カネ・情報の矢印と点線の矢印でつなぎ、右に主体・矢印・補足の3要素の凡例

3×3の型と、3種類の流れ

2-2. ビジネスモデル図解ツールキット(配布版)

図解を描くための PowerPoint 素材が「ビジネスモデル図解ツールキット」です。ヒト・会社・カネ・モノ・情報・スマホ・店舗・その他の8種類のアイコンと、3×3のフォーマットが入っています。2018年7月に note で無料配布が始まりました(ビジネスモデル図解ツールキットを無料で配布してみた(追記あり))。

私は2019年頃から使っていて、今回使ったのは 2020年6月10日更新の配布版(Ver.4.2) です。この版には、ライセンスが CC BY 4.0 であることがファイルの中に明記されています。

  • 1枚目の更新履歴に「商用利用可・許可不要で利用できる本資料の著作権の扱いを明確にしたほうがいいとおすすめいただいたので、クリエイティブ・コモンズライセンスで最も緩い CC BY 4.0 を付与しました(4.1)」とある
  • 1枚目と、2・3・7・8枚目のフッタに「©図解総研 (Licensed under CC BY 4.0)」とある
  • 7枚目には「本ファイルまたはファイル内のデータ、素材をそのまま商用利用・再配布することはお控えください(このツールキットそのものを販売するようなことです)。それ以外の、本ツールキットで制作した図解を仕事でお使いいただくのは問題ありません」とも書かれている
ビジネスモデル図解ツールキット 配布版の1枚目。2020.6.10 更新 Ver.4.2 の更新履歴に、CC BY 4.0 を付与した旨と、コピーライトを図解総研に変更した旨が書かれ、下部に「©図解総研 (Licensed under CC BY 4.0)」とある

配布版(Ver.4.2)の1枚目。更新履歴と下部に CC BY 4.0 の記載がある
※出典:ビジネスモデル図解ツールキット 配布版 Ver.4.2 ©図解総研(出典)、Licensed under CC BY 4.0。1枚目のスクリーンショットを縮小して掲載

ただし、2026年10月25日に確認した時点で、無料の配布版は配布されていません。

  • 上記の note 記事に「今後は有償で提供させていただきたいと思います」と追記があり、無料ダウンロードへのリンクはありません。「もうすでに無料版をダウンロードした方は、そのままお使いいただいて大丈夫です」とも書かれています
  • 図解総研の告知によると、製品は「ビズグラムツールキット」に名称を変えて全面リニューアルされました(2025年3月5日付)。2026年10月の追記では「いまは『ビズグラムツールキット3.0』を扱っています」とあります(ビジネスモデル図解ツールキットがリニューアル!)
  • 図解総研のオンラインストアでは「ビズグラムツールキット3.0」が1,650円で販売されています。購入時に利用規約への同意が必要で、法人利用は「法人・内部」と「法人・外部」(組織外への公開を含む)に分かれています。CC BY 4.0 ではなく、販売元の利用規約にもとづく商品です
  • 現在の note 記事・リニューアル告知・販売ページのいずれにも、CC BY 4.0 の記載は見当たりません
2018年7月の無料配布開始から、2019年頃の利用開始、2020年6月の配布版更新(今回使用)、時期不明の有償化、2025年3月のビズグラムツールキットへの改称、2026年10月の3.0販売中までの年表。下に無料配布の期間と有償提供の期間の帯

ツールキットの配布状況の移り変わり(2026年10月時点で確認できた範囲)

有償に切り替わった正確な時期は、どのページにも書かれていませんでした。年表では「時期不明」としています。

CC BY 4.0 なら再配布してよいのか

結論から言うと、ライセンス上は、条件(表示)を守れば再配布してかまいません。営利目的でも、改変したものを配っても大丈夫です。クリエイティブ・コモンズ公式のライセンス要約にもとづいて、できることと条件をまとめます。

No 項目 内容
1 共有 どのようなメディアやフォーマットでも、複製・再配布できる(営利目的も可)
2 翻案 リミックス・改変・別の作品のベースにできる(営利目的も可)
3 条件: 表示 作者のクレジット(©図解総研)を表示し、ライセンスへのリンクを示す。変更した場合はその旨を書く
4 条件: 推奨の示唆の禁止 許諾者が自分や自分の使い方を推奨しているように見せない
5 条件: 追加的な制約の禁止 受け取った人が同じ自由を使えないような、法的・技術的な制限をかけない
6 撤回できない 条件を守っている限り、許諾者は上の自由を取り消せない

今回の素材に当てはめると、次のようになります。

  • 無料配布のときに CC BY 4.0 で入手した配布版(Ver.4.2)は、有償化された後も、上の条件を守れば再配布まで可能です
  • ただし、ライセンスが及ぶのは CC BY 4.0 で提供された版だけです。有償の「ビズグラムツールキット3.0」は販売元の利用規約にもとづく商品なので、同じように扱ってよいわけではありません
  • 配布版にある「ファイル・素材をそのまま再配布・販売するのは控えて」は、ライセンス本文の条件ではなく、配布元からのお願いです。CC BY 4.0 は利用者に追加の制約を課せない仕組みなので、法的な拘束力は弱いと考えられます。それでも、権利者の意向として尊重したいと考えました(これが 2-3 の判断につながります)

注意: 公式の要約(コモンズ証)は法的な効力を持ちません。判断の根拠はライセンス本文(リーガルコード)で確認してください。また、私は法律の専門家ではありません。

2-3. 権利者への確認と、公開を控えている理由

2-2 のとおり、入手済みの配布版はライセンス上は再配布まで可能だと理解しています。一方で、配布版は現在有償提供に移っていて、配布版の中でも「素材をそのまま再配布するのは控えて」「制作した図解を仕事で使うのは問題ない」とお願いされています。

今回作ったスキルには、ツールキット由来のアイコン(JSON化したもの)と、図解の作法をまとめたルールが入っています。これを配布すると、有償のツールキットや書籍の売れ行きに影響するおそれがあります。

そこで、2026年9月に、念のため権利者(図解総研)へ利用範囲と公開の可否を問い合わせました。問い合わせの要旨は次のとおりです。

  • 配布版(2020年6月10日更新版)を CC BY 4.0 にもとづいて使っていること、現在は有償提供であることを承知していること
  • 生成AIで図解を自動生成するツールを個人で作ったこと
  • ツールキットが有償で提供されている現状を踏まえ、書籍やツールキットの売れ行きに影響するおそれがあるため、一般公開は見送り、勤務先での限定的な利用にとどめたいこと。その範囲での利用の可否
  • 生成物には帰属表示(©図解総研 / CC BY 4.0)を入れていること

記事の公開時点(2026年10月25日)で、回答はいただけていません。そのため、作成した Agent Skill・Webサービス・ソースコードは、どこにも公開していません。回答をいただけたら、この記事に追記します。

南京錠のかかった素材の木箱を抱えるAI助手と、遠くの建物に向けて紙飛行機の手紙を飛ばした会社員。机の上に砂時計

ライセンス上は使えても、返事が来るまでは手元に置いておく

この記事でやること・やらないことを整理しておきます。

区分 内容
やる 設計の考え方、構成図、設計を説明するための短いコード抜粋、ハマりどころ、生成した図解の例(帰属表示付き)
やらない ソースコード・スキル一式・コンテナイメージの配布、導入手順、アイコンのデータや作法書の中身の掲載、Webサービスの公開

注意: この記事をまねて同じものを作る場合は、素材は正規に入手したもの(現在はビズグラムツールキット)を使い、提供元の利用条件を確認してください。

3. なぜ「AIにそのまま描かせる」とうまくいかないのか

左: AI助手がキャンバスに自由に描いた図は四角と矢印が絡まり、会社員が頭を抱えている。右: AI助手がカードに記入して機械に差し込むと、整った3×3の図解が出てきて会社員が笑顔

自由に描かせると絡まる。カードに書かせて、描画は機械に任せる

LLM にいきなり「〇〇のビジネスモデルを SVG で図解して」と頼むと、それっぽい図は出てきますが、

  • 3×3の型を守らず、矢印の色や種類もバラバラ
  • 座標の計算までAIがやるので、毎回レイアウトが揺れる
  • 修正のたびに全体が描き直され、前の版と比べられない
  • 出典や時点が分からず、終わった事業を現役のように描いてしまう

になりがちです。

そこで、次の4段階を順番に踏むことにしました。

  1. ルール化: 図鑑の描き方を、AIが読める手順書に書き直す
  2. 素材のデータ化: ツールキットのアイコンを座標データに変換する
  3. スキル化: 手順一式を Claude Code の Agent Skill にまとめる
  4. Webサービス化: ブラウザからボタン一つで呼べるようにする

技術的な全体像は、3フェーズ7ステップの図にまとめています。

「ビジネスモデル図解AI」ができるまでの7ステップ。フェーズ1したく(事前データ化、アイコンのJSON化)、フェーズ2つくる(Webグラウンディング、SVG化、フォーマット成形)、フェーズ3とどける(Agent Skills化、Webサービス開発)

全体像: 3フェーズ7ステップ

4. この記事で使う言葉(用語集)

用語 一言でいうと この記事での例
CC BY 4.0 帰属表示をすれば、改変・再配布・商用利用ができるライセンス ツールキットの素材。生成するSVGのフッタに帰属表示を自動で入れる
Agent Skill SKILL.md と参照資料・スクリプトを束ねた「手順のパッケージ」 今回作った business-model-diagram スキル
Webグラウンディング 実行時のWeb検索・ページ取得で、回答の根拠を補うこと WebSearch / WebFetch で一次情報を優先して調べる
図解定義JSON 主体・矢印・補足の3つの配列で図解を記述したデータ ここから SVG と PPTX を毎回同じように生成する

Agent Skill そのものについては、Claude Agent Skills完全ガイド にまとめています。

5. 作ったもの:business-model-diagram Skill

Claude Code 上で「〇〇のビジネスモデルを図解して」と頼むと、自動的にスキルが読み込まれ、作法を読み、調べ、JSONを書き、SVG と PPTX を生成し、自分で検品して直すところまで進みます。

設計の中心方針

  1. AIに座標を計算させない。 列と行の基準座標を作法書に固定し、AIは「どのマスに置くか」だけを決めます。
  2. AIにはSVGではなくJSONを書かせる。 描画は Python のスクリプトが担当します(標準ライブラリのみ)。
  3. AIに目を持たせる。 生成したSVGをPNGにして、AI自身に見せて検品・修正させるループを手順に組み込みます。
依頼文、調査(Web調査ONのときだけ)、図解定義JSON、生成スクリプト、SVGとPPTXの順に流れ、SVGをPNG化してAIが画像を見て検品し、問題があればJSONの差分で修正に戻るループ。図解定義JSONに「AIが書くのはここだけ」の吹き出し。設計方針1〜3の番号付き

AIが書くのはJSONだけ。描画はスクリプト、検品はAIが画像を見て行う

1枚の図解を描く工程を、AIが自分で回して止められるループとして設計しました。最近の言葉でいえば、ループエンジニアリングの考え方を、スキルの中の小さなループに取り入れた形です。

この検品ループは「ループエンジニアリング」と言えるか

2026年6月ごろから「ループエンジニアリング(loop engineering)」という言葉が広まっています。名付け親とされる Addy Osmani 氏のエッセイ「Loop Engineering」(2026年6月7日)では、エージェントにプロンプトを打つ人を、自分から仕組みに置き換えること、と説明されています。ループは「目的を決めると、AIが完了するまで反復する再帰的なゴール」で、エージェントを動かす土台(ハーネス)の一段上の層に位置づけられています。

上の図の「生成 → PNG化 → AIが画像を見て検品 → JSONの差分で修正」は、AIが完了条件を満たすまで自分で回すループなので、考え方は同じです。Osmani 氏が挙げる構成要素と対応させると、次のようになります(○: 当てはまる / △: 一部 / ×: 当てはまらない)。

No Osmani 氏の構成要素 意味 このスキル 対応
1 Skills プロジェクトの知識を SKILL.md にまとめ、エージェントに推測させない 3×3の作法・JSONの書式・よくある崩れの表を SKILL.md と参照資料にまとめた ○
2 State(状態) 会話の外に「済んだこと・次にやること」を残す 版ごとの図解定義JSON(v1, v2…)と、修正履歴を含む再現用プロンプト ○
3 Plugins and connectors 外部のツールにつなぐ WebSearch / WebFetch で公開情報を取りに行く △
4 Sub-agents 作る役と確かめる役を分ける 検品するのは、図を描いたのと同じAI ×
5 Automations スケジュールで仕事を見つけて振り分ける 起動のきっかけは人の依頼 ×
6 Worktrees 並行作業を作業ツリーごとに分ける 1枚ずつ順に描くので不要 ×

止め方と検証についても照らし合わせました。

  • Osmani 氏は「確かめられる条件で止める」ことを勧めています。このスキルは、よくある崩れ(重なり・はみ出し)がなくなったら止めます。ただし判定はAIが画像を見て下すもので、テストのように機械で合否が出る条件ではありません
  • 「完了はAIの主張であって証明ではない。検証は人に残る」とも書かれています。このスキルも、仕上げは人が入れる前提で使っています(12章)
  • 回数と時間には上限を設けています。検品は「2〜4回は回る前提」、Webサービスでは1ジョブ5分で打ち切ります(11章)

Osmani 氏は、Claude Code の /goal(書いた条件を満たすまで作業を続ける、セッション内の仕組み)を「この考え方に近い」としつつ、ループエンジニアリング本体は、タイマーで起動し、補助のエージェントを立て、実行をまたいで状態を持ち続ける、より大きな仕組みとして区別しています。今回の検品ループは /goal に近い位置づけです。

結論:ループエンジニアリング「そのもの」ではなく、その考え方をスキルの中の小さなループに取り入れた形です。作る役と確かめる役を分けていない点や、人の依頼で動き出す点は、本来のループエンジニアリングとは違います。

スキルの構成

スキルは次の4つで構成しています(中身は公開していないので、役割だけ示します)。

business-model-diagram(Agent Skill)
├─ SKILL.md      … 手順書(調査→JSON→SVG→検品→修正)
├─ 参照資料      … 3×3の作法、JSONの書式、よくある崩れと対処表
├─ 素材          … アイコンのデータ、完成例
└─ スクリプト    … SVG生成 / PPTX生成 / 検品用PNG化

Agent Skill は、普段は name と description だけがコンテキストに載り、依頼が description に合ったときに初めて SKILL.md の本文が読み込まれます。参照資料やスクリプトは、必要になったときだけ読まれたり実行されたりします。スクリプトはコードそのものがコンテキストに載らず、実行結果だけが返るので、「描画はスクリプトに任せる」設計と相性が良いと感じました。

図解定義JSON

図解1枚は、主体・矢印・補足の3つの配列で書きます。たとえば矢印は、つなぐ主体のIDと接続位置(アンカー)で指定します。

{ "from": "customer.bottom", "to": "uniqlo.top", "type": "kane",
  "label": "商品代金", "label_at": [700, 378], "marker_t": 0.505 }

この形にしたことで、次の3つが手に入りました。

  • AIはSVGの座標を直接いじらず、JSONの数値を少し変えるだけで修正できる
  • 同じJSONからPowerPoint版も生成できる(11章で詳しく書きます)
  • 図解の差分が Git で読める

生成サンプル

実際にこのスキルで生成した図解です。

依頼(要約) Web調査 主体 / 矢印 / 補足
ユニクロ(説明文から描いたお手本) なし 7 / 11 / 7
メルカリ あり 8 / 11 / 7
マクドナルド(Form 10-K から) あり 7 / 11 / 5
Palantir FDE(TL;DR の図) あり 8 / 11 / 6
ユニクロのビジネスモデル図解。利用者・事業・事業者の3段に顧客、アプリ・EC、店舗、商品、素材メーカー、ファーストリテイリング、パートナー工場を配置し、モノ・カネ・情報の矢印でつないだ図

生成例: ユニクロ(説明文から描いたお手本。Web調査なし)

開発の初期に手で調整しながら作った完成例で、スキルに同梱してAIの記述例にしています。顧客の購買データが情報の流れでアプリに戻り、需要予測と商品改良につながる「情報製造小売業」の循環が見どころです。

メルカリのビジネスモデル図解。出品者と購入者を上段に、売上金・フリマアプリ・出品商品を中段に、メルペイ/メルコイン・株式会社メルカリ・配送パートナーを下段に配置

生成例: メルカリ(2026年8月時点の公開情報にもとづく。Web調査あり)

「メルカリのビジネスモデルをWebで調べて図解してください」と頼んだ結果です。購入者からメルカリへ、手数料10%を差し引いて売上金として出品者へ、というカネの流れが閉じることも確認しています。検品ループでは、ラベルとカネのマークの重なり、ラベル同士の接触を2回自分で直しました。

マクドナルドのビジネスモデル図解。本社が土地・建物を押さえて加盟店に転貸し、賃料とロイヤルティを得る構造

生成例: マクドナルド(2024年12月期 Form 10-K にもとづく。一次資料から描いた例)

タイトルは「店舗を貸して稼ぐフランチャイズ」。本社が土地と建物を押さえて加盟店に転貸し、賃料とロイヤルティを得る構造です。「飲食業ではなく不動産業」という逆説が、図にすると一目で見えます。

※実在企業の図解は、公開情報をもとにAIが生成し筆者が確認した、筆者個人の解釈によるものです。各社の公式見解ではありません。
※図解フォーマット:ビジネスモデル図解ツールキット 配布版 Ver.4.2 ©図解総研(出典)、Licensed under CC BY 4.0。改変: アイコンをSVGに変換し、色とサイズを変更

6. 実際の作り方(フェーズごと)

ここからは、4段階をどう進めたかを順に書きます。どのフェーズも、Claude Code に日本語で依頼して進めました。

Phase 1: 作法をAIが読めるルールにする

最初に、図解総研の公開記事と配布版のスライドを読み込ませ、Markdown の作法書に書き直してもらいました。実際に渡したプロンプトはこれだけです。

使い方マニュアル生成プロンプト
以下の記事からビジネスモデル図解ツールキットの使い方.mdファイルをまとめてください。
SVGを生成するときは./jsonフォルダ内のアイコン情報を参照するようにしてください。

https://note.com/tck/n/n95812964bcbb

ここから人とAIで何度かやり取りし、作法書を育てました。中身は次のとおりです。

  • 3×3のルール、アイコンの選び方、矢印3種の作法、補足の作法、色や線幅など素材の実測値
  • 書籍の「図解をよむ7つのステップ」を描く手順に転用(中央の縦列 → 中段の左右 → 下段の左右 → 上段の左右 → 矢印 → 補足の順)
  • 情報源から3×3へ落とし込む判断のルール。特に「カネの流れが閉じるか(誰が誰に払うかがつながるか)」は必ず確認させる
  • 標準レイアウト座標。列の中心と行の上端を固定し、AIに座標の計算をさせない
  • 「よくある崩れと対処」を、症状・原因・対処の表にしたもの。AIが自分で直すときの辞書になる
分厚い原典と付箋だらけの資料を読みながら会社員がレシピ本に書き写し、右でエプロン姿のAI助手がそのレシピ本を読みながら調理している

図鑑の描き方を、AIが読める「レシピ本」に

学び:自由に描かせるより、正解の座標と禁止事項を渡したほうが安定する。

Phase 2: pptx のオートシェイプを JSON / SVG にする治具

ツールキットのアイコンは、PowerPoint のオートシェイプ(図形の組み合わせ)です。手で描き直すのではなく、pptx を解析して座標を吸い出す治具を作りました。依頼はこう始めています。

JSON化プロンプト(冒頭)
PowerPoint内のオートシェイプの構造を解析してオブジェクト毎にJSONファイルに変換するプログラムを作成し、
そのJSON構造からオブジェクト毎のSVGを生成してください。

治具は2段に分けました。

  • pptx → JSON: pptx は XML の ZIP なので、スライドの図形ツリーを読み、グループの入れ子と拡大率を解決して、すべての図形をスライド上の絶対座標に正規化します
  • JSON → SVG: 座標の換算(96dpi で 9525 EMU = 1px)と、プリセット図形・カスタムパスの変換だけを行います

いちばんの山は、グループの入れ子の解決でした。PowerPoint のグループは、子の座標を「子の座標空間」(chOff / chExt)で持っていて、親の位置と大きさ(off / ext)で写し直す必要があります。入れ子のたびに変換を合成していきます。

グループの座標変換を合成する(抜粋)
def compose_group(self, off, ext, ch_off, ch_ext) -> "Transform":
    """親側の変換に、このグループの子空間 -> 親空間の写像を合成する。"""
    cx = ext["cx"] / ch_ext["cx"] if ch_ext["cx"] else 1.0
    cy = ext["cy"] / ch_ext["cy"] if ch_ext["cy"] else 1.0
    # 子空間の点 p -> off + (p - chOff) * scale -> さらに親の変換
    sx, sy = self.sx * cx, self.sy * cy
    tx = self.tx + self.sx * (off["x"] - ch_off["x"] * cx)
    ty = self.ty + self.sy * (off["y"] - ch_off["y"] * cy)
    return Transform(sx, sy, tx, ty)

一つだけ例外がありました。店舗のアイコンだけ、オートシェイプではなくPNG画像だったのです。そのまま埋め込むと拡大したときに劣化します。そこで、軸に平行な線だけでできた絵であることを利用し、二値化して最大の長方形に分割していく方法でベクタ化しました。結果は元の画像とピクセル単位で一致します。

pptx(XMLのZIP)から図形ツリー、絶対座標のJSON、SVGへ変換する上段の流れと、画像だった図形を二値化して極大矩形に分割し、ベクタ化してSVGに合流させる下段の分岐

pptx → JSON → SVG の2段構成。画像だった図形は途中でベクタ化する

学び:「pptx → JSON」と「JSON → SVG」の2段に分けると、途中にベクタ化などの後処理を挟める。

Phase 3: Skill Creator で Agent Skill 化

最初は、作業フォルダにツールと使い方のメモを置き、Claude Code に毎回プロンプトで指示していました。これを Skill Creator で Agent Skill に整理しました。手順書(SKILL.md)、作法とJSONの書式の参照資料、アイコンのデータと完成例、生成・検品スクリプトの4つです。

Agent Skill では、依頼と description を照らし合わせて読み込むかどうかが決まるので、description には「何ができるか」と「どんな依頼で使うか」の両方を書きました。「〇〇のビジネスモデルを図解して」「3×3で図解して」「利用者・事業・事業者で整理して」など、実際に使いそうな言い回しを並べています。これで「図解して」と言うだけで、AIが自分で作法を読み、JSON作成、SVG生成、PNGでの検品、修正のループを回すようになりました。

3コマ。長い指示を毎回渡す会社員、スキルの冊子をリュックに入れたAI助手、街角の自販機からボタン一つで図解が出る場面

口頭指示、スキル、自販機の3段階

Phase 4: Webサービス化(Claude Agent SDK + FastAPI)

次に、Claude Agent SDK(Python)と FastAPI でチャット型のWebサービスにしました。依頼の書き出しはこうです。

コンテナサービス化プロンプト(冒頭)
business-model-diagramスキルをClaude Agent SDKを使って専用のWebユーザインタフェースを備えた、コンテナサービスにしてください。

構成は次のとおりです。

ブラウザ → FastAPI(非同期ジョブ / SSE)
           └─ Claude Agent SDK → SKILL.md を読んで実行
                 └─ WebSearch / WebFetch / スクリプト実行

ここでの設計原則は「アプリはスキルの中身を知らない」です。スキルのフォルダを丸ごとコンテナにコピーし、アプリが依存するのは「SKILL.md がある」ことだけにしました。スキルを直したら、コンテナを作り直すか、スキルのzipを差し替えるだけで、アプリのコードは変わりません。

ブラウザとFastAPIが依頼(POST)と進捗(SSE)でやり取りし、FastAPIが境界線を越えてClaude Agent SDKに実行を依頼する。SDKの中に差し替え可能なスキルのフォルダ(SKILL.md・参照資料・スクリプト)。下に出力の4点セット

アプリはスキルを「差し替え可能な箱」として扱う

ダウンロードは、SVG、PowerPoint版、図解定義JSON、再現用プロンプトの4点セットにしました。

  • 図解定義JSONがあれば、スクリプトで同じSVGを機械的に再現できます。手で数値を直して再生成する使い方もできます
  • 再現用プロンプトは、元の依頼、時点、出典URL、主体・矢印・補足の一覧、適用済みの修正履歴を含む、自己完結の指示文です。別の環境の Claude Code に貼れば、同じような図解が出ます
Webサービスの画面構成。左に事例ボタン・Web調査トグル・チャット・入力欄、右に図解プレビューとダウンロードボタン、フッタに帰属表示

Webサービスの画面構成(プレビューの図解はサンプル)
※図解フォーマット:ビジネスモデル図解ツールキット 配布版 Ver.4.2 ©図解総研(出典)、Licensed under CC BY 4.0。改変: アイコンをSVGに変換し、色とサイズを変更

学び:スキルという単位で「手順」を固めておくと、Webサービス側は薄い実行基盤で済む。

7. セキュリティとライセンス

生成AIと連携するサービスで重要なのが、認証情報とライセンスの扱いです。

  • シークレットを載せない: マネージドIDと Key Vault 参照を使い、APIキーを設定に直接書かない。コンテナは非rootユーザで実行する
  • 入力を残さない: 入力プロンプトはログに残さず、完了時に破棄する。生成物は最終更新から72時間で自動削除する
  • ライセンスを分けて管理: 自作プログラムは MIT、ツールキット由来のアイコンと図解フォーマットは CC BY 4.0(「改変あり」も明記)と、ライセンスを分けて整理しました。ただし、配布はしていません(2-3)
  • 帰属表示を自動で入れる: 生成するSVG・PPTXのフッタと、Webサービスの画面フッタに帰属表示を入れる

実は、帰属表示には小さなハマりどころがありました。CC BY 4.0 の第3条(a)では、共有するときに作者・著作権表示、出典、ライセンス名とそのURL、改変した旨を示す必要があります。最初の帰属表示には「改変した旨」と「ライセンスのURL」が抜けていて、この記事を書いている途中で気づいて直しました。

4点を1行に入れると長すぎるので、帰属表示を2行にし、そのぶんキャンバスを下に伸ばしました(図の中身と重ならないように)。

図解のフッタに入れている帰属表示(2行)
図解フォーマット:ビジネスモデル図解ツールキット 配布版 Ver.4.2 ©図解総研 出典: https://note.com/tck/n/nb76ac2c2a709
Licensed under CC BY 4.0(https://creativecommons.org/licenses/by/4.0/deed.ja) 改変: アイコンをSVGに変換し、色とサイズを変更

教訓:CC BY 4.0 の素材を改変して使うなら、「改変した旨」を書き忘れない。図の中の帰属表示は縮小すると読めないので、記事に貼るときは画像の下にも書く。

8. 実行環境の構成(概要)

配布物がないため、導入手順は載せません。どういう構成で動かしているかの説明に留めます。

  • コンテナ構成: Python 3.12 のスリムイメージに、Node.js 20(Agent SDK 内蔵の CLI に必要)と日本語フォントを同梱しました。フォントは Noto Sans CJK JP の1書体だけにして、90MB の一式を17MBに抑えました
  • CI/CD: GitHub Actions で main への push をきっかけに、非公開のコンテナレジストリへイメージを自動で発行します
  • 実行環境: Azure App Service(Web App for Containers)で動かし、LLM は Microsoft Foundry 上の Claude Opus 5 をバージョン固定で使います
  • アクセス制御: 利用者の認証は App Service 認証(Easy Auth)と Entra ID を前提にした設計です。加えて、接続元ごとに1時間50リクエストのレート制限をかけています
  • ローカル: docker compose で起動します。VPN 経由のプライベートエンドポイントに WSL から届かないケースに備えて、Windows でそのまま起動するスクリプトも用意しました
つくる(非公開のGitHubとGitHub Actions)、ためる(非公開のコンテナレジストリ)、うごかす(Azure App Service がマネージドIDでKey Vaultを参照し、Microsoft FoundryのClaude Opus 5で推論、Web検索・取得)の3列の構成図。下にローカル実行

つくる・ためる・うごかすの3段。リポジトリもレジストリも非公開

動きは環境変数で切り替えられるようにしています。主な項目は次のとおりです(シークレットは Key Vault 参照で渡すので、ここには含めていません)。

環境変数 既定 役割
MODEL_ALIAS opus 使うモデル。実際のモデルIDは Foundry 側で固定する
AGENT_EFFORT medium エージェントの思考量。高すぎると1ターンに数分かかるため medium に固定
WEB_RESEARCH_ENABLED 1 Web調査を許可するか
JOB_TIMEOUT_SEC 300 1ジョブの上限(5分)
MAX_CONCURRENT_JOBS 2 同時に動かすジョブ数
RATE_LIMIT_PER_HOUR 50 接続元ごとの1時間あたりのリクエスト上限
RETENTION_HOURS 72 生成物を自動削除するまでの時間

学び:「スキルを差し替えて再デプロイするだけ」を受け入れ基準にしたので、CI/CD とコンテナ化が自然に必要になった。

9. 動かしてみた様子

Claude Code から(自然言語)

スキルを入れた Claude Code で、

「スターバックスのビジネスモデルをWebで調べて図解してください」

と頼むだけです。Claude がスキルを読み込み、WebSearch / WebFetch で一次情報を調べ、図解定義JSONを書き、SVG と PPTX を生成して、PNG にした画像を見ながら重なりを直していきます。最後に、保存先、出典URL、カネの流れが閉じるかの確認結果を返してくれます。

Webサービスから

ブラウザでは、事例ボタンを押すか自由文を入力し、Web調査のON/OFFを選んで送信します。Web調査ONは他社の事例を公開情報から描くとき、OFFは自社の説明文から描くときに使います。

  • 進捗は「調査中 → 図解定義を作成中 → SVG生成中 → 検品・修正中(n回目)」の4段階で表示します
  • 新規の生成は数分、修正指示は2分程度です
  • 生成後は、同じ入力欄が修正指示の欄になります。「矢印のラベルを『手数料』に変えて」「上段左に広告主を追加して」と頼むと、v2、v3 と版が積まれていきます。修正はJSONへの最小の差分として処理し、指示に関係ないレイアウトは変えません
上段に調査中・図解定義を作成中・SVG生成中・検品・修正中(n回目)の4段階の進捗。下段にv1・v2・v3の図解が並び、修正指示ごとに変わったマスだけが黄色で示されている

進捗は4段階で表示。修正はJSONの差分として版を積む

Web調査では、次のルールを守らせています。

  • 有価証券報告書・IR資料・公式サイトなどの一次情報を優先し、確認できた数値だけを書く
  • 図のサブタイトルに時点を明記し、出典URLを結果に添える
  • 資料にない部分は勝手に埋めず、空きマスのままにする。3×3は全部埋めなくてよい、というルールがここで効きます

10. 【追記】国際化(i18n)— 翻訳だけでは足りなかった

あとから、Webサービスの画面を英語・日本語・中国語・韓国語・スペイン語の5言語に対応させ、図解は依頼文の言語で描くようにしました。やってみると、文言を訳すだけでは足りない点が3つありました。

  • 素材に埋まった文字: 情報アイコンの中に「データ」という日本語が入っていた。アイコン内の文字を差し替える項目を追加(DATA、Daten、数据、데이터)
  • 通貨: カネのマークが ¥ に固定だった。通貨記号を指定する項目を追加($、€、₩)
  • 折り返し: 英語は文字幅が狭い代わりに単語が長い。補足の折り返しを単語の切れ目で行うように変更
UNIQLO business model diagram in English, same layout as the Japanese version

同じ図解定義から生成した英語版(日本語版は5章の図)
※実在企業の図解は、公開情報をもとにAIが生成し筆者が確認した、筆者個人の解釈によるものです。各社の公式見解ではありません。
※図解フォーマット:ビジネスモデル図解ツールキット 配布版 Ver.4.2 ©図解総研(出典)、Licensed under CC BY 4.0。改変: アイコンをSVGに変換し、色とサイズを変更

学び:国際化は文言だけでなく、「素材に埋まった文字」「通貨」「折り返し」まで含む。

11. ハマりどころ(実際に踏んだ罠)

ここからは、実際にやってみて困ったことと、その対処です。各節は症状、原因、対策の順に書きます。

1. 一度の描画ではオブジェクトが重なる

円環のループ図。AI助手が図解を描き、印刷して虫眼鏡で見ると重なりに×印、該当箇所をずらして直し、✓印の図解になる。中央にx2〜4の回転矢印

描く、画像で見る、直す。2〜4回は回る

症状: 補足が主体名に重なる。矢印のラベル同士が重なる。矢印が主体名を貫く。平行な線が1本に見える。補足の最終行が1文字だけになる。

原因: 文字数と幅の相性、同じ高さに並ぶ複数のラベル、接続位置の選び方。座標を決める工程が残る以上、一発では決まりません。

対策:

  • SVG を PNG に変換し、AI自身に画像を見せて検品させます。「2〜4回は回る前提」と手順書に明記し、省略を禁止しました
  • 症状・原因・対処の表を参照資料に置きました。幅を縮める、ラベルを上下に振る、側面の接続位置から出す、45px以上ずらす、などです
  • プレビューの偽陽性を先に教えました。プレビュー用の描画エンジンでは、代替フォントで「ー」や「・」が消えたり、点線が実線に見えたりします。これは SVG の不具合ではないので、直そうとしないよう明記しました
  • Webサービスでは、検品中の SVG を8秒ごとに取得して、生成途中のプレビューを表示しています

2. PowerPoint で「図形に変換」するとテキストがはみ出す

左はスライド上で分解した図解のテキストが箱からはみ出して慌てる会社員。右は同じ設計図からAI助手が直接スライド部品を組み立て、文字が箱に収まっている

「図形に変換」をやめ、PPTXを直接生成する

症状: 生成した SVG を PowerPoint に貼って「図形に変換」すると、テキストが枠からはみ出し、折り返し位置がずれる。

原因: 変換のときに、フォントサイズが px から pt(1px = 0.75pt)に計算し直され、端数のサイズや日本語フォントの幅の差で崩れる。

対策: 2段階で対処しました。

  • 応急: フォントサイズを4の倍数px(16、20、24、32、40)にそろえ、整数のptに写るようにする
  • 根本: SVG の変換をやめ、同じ図解定義JSONから PPTX を直接生成する。テキスト・矢印・マーク・補足は PowerPoint の図形として、アイコンは透過PNGとして配置するので、「図形に変換」なしでそのまま編集できます

学び:中間表現をJSONにしておいたので、出力形式を1つ増やすだけで済んだ。

3. Webグラウンディングが終わらず、App Service の240秒タイムアウトで切れる

左はPDFの山に埋もれて熟読するAI助手と砂が落ちきった砂時計、切れた電線の画面。右は検索3回・取得2件のバッジを付けたAI助手が3枚のカードだけで図解を作り、進捗バーを見ながら会社員がコーヒーを飲んでいる

「どこで止めるか」を指示しないと止まらない

症状: 調査モードで20分以上返ってこない。App Service の前段のタイムアウト(240秒)でHTTP接続が切れる。

原因: エージェントが有価証券報告書のような長大なPDFを熟読する。思考量の多いモデル設定で、1ターンに数分かかる。

対策:

  • 調査に上限を設けました。検索は最大3回、ページ取得は最大2件、長大なPDFの熟読は禁止。「誰が・何を・いくらで・どう儲けるか」がそろったら打ち切ります
  • エージェントの思考量(effort)を medium に固定しました
  • HTTP の同期応答をやめ、**非同期ジョブと SSE(Server-Sent Events)**で進捗を配信するようにしました。1ジョブの上限は5分です
  • タイムアウトしても途中の SVG があれば、未検品の版として返すようにしました(途中結果の救済)
  • 待ち時間が長いので、ツールを呼ぶたびに「Web検索: 〇〇」「SVG生成中」といった1行を画面に流します

4. ブラウザのリロードでセッションがゾンビ化する

左は更新ボタンで真っ白になった画面と、壁の向こうで黙々と描き続ける半透明のAI。右はセッションのチケットを画面にかざすと裏のAIと糸でつながり進捗が戻る。画面の端に赤い停止ボタン

再接続、停止、消失時の案内の3つを設計する

症状: 生成中にリロードすると、画面は初期状態に戻るのに、サーバ側のジョブは走り続ける。結果を受け取れず、止めることもできない。

原因: SSE の接続がブラウザ側で切れるだけで、サーバのジョブと画面の結び付きが失われる。

対策:

  • 図解IDをブラウザの sessionStorage に保存し、リロードしたら実行中のジョブへ再接続する
  • 停止ボタンを追加。サーバ側で非同期タスクをキャンセルし、その時点の SVG があれば「停止時点の版」として保存する
  • ジョブの状態はプロセス内のメモリに置き、消えることを許す設計にした。サーバの再起動で図解IDが見つからなければ「セッションがリセットされました」と表示して新しく始める

教訓:長時間エージェントをWebに載せるなら、「どこで止めるか」「再接続」「停止」を最初から設計する。

12. 事例から見えた傾向と限界

観点 傾向
検品ループの回数 どの事例でも2〜3回で収束。崩れの種類は「ラベルと矢印のマークの重なり」「補足と主体名の重なり」「サブタイトルの長さ」に集中
Web調査の量 出典3〜5件で収まる。検索3回・取得2件の上限でも、図解に必要な要点はそろう
要素数 掲載した4事例で、主体7〜8・矢印11・補足5〜7。3×3の型が要素の膨張を抑えている

限界もあります。数値の精度は出典次第です。補足に書く「感動ポイント」は、人が書いたものに及ばないことがあります。Osmani 氏の言う「完了はAIの主張であって証明ではない」のとおりで、仕上げの一手は人が入れる前提で使うのがよさそうです。

13. まとめ

  • 描く対象をSVGではなくJSONにしたことで、再現性・差分修正・PPTX出力がすべて手に入った
  • AIに目を持たせる(描画 → 画像化 → 自己修正)ことで、重なりの問題が実用レベルになった。ループエンジニアリングの考え方を、スキルの中の小さなループに取り入れた形
  • スキルとアプリを分離したので、スキルの差し替えが再デプロイだけで済む
  • 素材のライセンスが CC BY 4.0 でも、提供形態が変わった素材は、権利者への配慮から公開を控えた。回答をいただけたら扱いを見直して追記する
  • 今後の改善案: 検品を別のエージェントに任せ、「描いたAIが自分の絵を採点する」状態をなくしたい(ループエンジニアリングでいう、作る役と確かめる役の分離)

Agent Skill は Claude Code の中だけでなく、Webサービスの「中身」としても使える単位だと感じました。手順をスキルに固めておけば、呼び出し口がチャットでもブラウザでも、同じ品質の図解が出てきます。

14. 関連記事

15. 参考URL


図解フォーマット:ビジネスモデル図解ツールキット 配布版 Ver.4.2 ©図解総研(出典)、Licensed under CC BY 4.0。記事中の図解のアイコンは、オートシェイプをSVGに変換し、色とサイズを変更して使用しています。
本記事のヘッダー画像とイラストは gpt-image-2 で生成したものです。ヘッダー画像の人物は実在しません。また、ツールキットの実物アイコンや実在のロゴを模倣していません。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?