AI連携で進化するヘッドレスCMS - KuroCMS Vol.4
product AI OSS

AI連携で進化するヘッドレスCMS - KuroCMS Vol.4

AIと人間の共生を目指すKuroCMS。AI時代を踏まえて KuroCMSの操作に関するすべてがREST API と MCP で操作できる仕様により、AI と人間との二人三脚による記事作成効率アップだけではなく、AIを使って簡単に翻訳できる時代にあわせ、世界の人の相互理解への掛け橋となり、世界平和に繋がるといいなーと思い開発された KuroCMS。AIと人間をテーマに掘り下げます。


インターネット技術と人工知能(AI)の急速な発展に伴い、Webコンテンツのあり方もまた激変の時代を迎えています。これまでのCMS(コンテンツ管理システム)は、人間が管理画面に向き合い、手動で文字を入力し、画像を配置するためのツールに過ぎませんでした。しかし、大規模言語モデル(LLM)をはじめとする自律型AIエージェントの登場により、コンテンツの「執筆」「編集」「校正」「多言語翻訳」までもがAIが出来るようになりました。

本連載の第4弾となる今回は、「AIからの操作におけるKuroCMS」をテーマに掲げます。KuroCMSがなぜAIエージェントに対して極めて親和性が高く、自律的な運用を可能にするのか、その設計思想を紐解きます。さらに、単なる効率化の道具に留まらず、人間とAIが紡いだ知識をAIが世界中の言語へ翻訳して届ける仕組み、そして開発チームがKuroCMSに込めた「世界平和」という静かな祈り(隠れた開発理念)を紹介します。


AIとCMSをシームレスに繋ぐ「KuroCMSのREST API仕様」

KuroCMSの最大の特徴は、AIエージェントがプログラムを介して最も迷いなく、最もエラーを起こしにくいように研ぎ澄まされたREST APIの仕様にあります。すでに知識としての API を知っている人間が他のツールから利用する分には問題ありませんが、AI にとって初めて使う KuroCMS においても、ミスが生まれないように仕様にはAI向けの配慮を行っています。特に AI は良く間違えるので、間違えてもシステム全体に影響が出ないように、エラーには分かり易いように工夫をしています。

代表的なところでは、ドキュメントのURLの末尾となる「グローバル一意なslug(例:kurocms-004)」さえ決まれば、内部ID(did)を一切関知することなく、記事の作成から本文の追加・カテゴリ設定・削除までのすべてのAPI操作を完結することができます。この設計は、人間のための読みやすいURL構造が、そのままAIにとっての簡潔な識別子として機能する「曖昧さゼロ」の利便性をもたらしています。※以下のAPIは一部。

機能カテゴリ リクエストパスと形式 必須となる主要パラメータ AI操作におけるメリット
新規記事の作成 POST
 /api/documents
tid(タイプ), slug, initialLang 一意なslugで器となる記事を新規登録。競合時は409を返し、デグレを防ぐ。
本文・メタデータの更新 PUT /api/documents/:id/translations/:lang title, bodyHtml, (summary, hashtags) :id にslugを指定可能。本文・SEO情報・タグを1リクエストでupsert(上書き)。
カテゴリの設定 PUT /api/documents/:id/categories categories: string[] タグや分類情報を配列で一括置換。シンプルなデータ構造で誤動作を防ぐ。
記事の即時ビルド POST /api/documents/:id/build なし 更新後のデータを即座に静的ページに反映。ビルド待機時間を極限まで削減。
AI用のヘルプ機能POST /api/helpなしAIが自分が使えるコマンドを把握できるため、操作スクリプトの作成に有効に使える。

※KuroCMSのAPIエンドポイント設計は、AIがドキュメントを読み込んで自動でPythonやNode.jsのスクリプトを生成し、自律的にコンテンツを更新することを目的に最適化されています。


MCP(Model Context Protocol)にも対応

MCP(Model Context Protocol)は、Anthropic社(Claude Codeの会社)が2024年に提唱した、生成AI(LLM)と外部のデータソースやツールを安全かつ標準化された方法で接続するためのオープンソース規格です。上記の REST API のように、従来はツールごとに専用の連携プログラムを開発する必要がありましたが、このMCPを利用することで、AIエージェントに安全に繋ぎ、より高度で実用的なAIアシスタントとして活用することが可能になります。

Anthropic社が提案した規格ですが、今ではOpenAIやGoogleでもMCPに準拠した接続ができるようになっており、業界標準の接続方法となっています。AIにおける USB-C とも呼ばれます。但し、KuroCMS はユーザーが自分でサーバーを立ち上げるタイプのアプリの為、MCP の公式サーバーには登録が難しい形になっておりますが、エンドポイント /api/mcp にアクセスすることで AIエージェントからは普通にMCP接続での操作が可能になります。認証は REST API と同じPAT(Private Access Token)方式なので、KuroCMSのプロフィール画面で作成したものを AI エージェントに渡してください。


AIの安全な自律運転を支える「二重の安全弁」

AIエージェントにCMSの操作権限を与える上で、人間が最も懸念するのは「データの予期せぬ破壊やデグレード」です。AIが古い情報で最新の記事を誤って上書きしてしまったり、誤ったパスを叩いてシステムエラーを引き起こしたりするリスクは常に存在します。KuroCMSはこの問題を解決するため、APIの仕様レベルで「二重の安全弁」を組み込んでいます。※すべての項目で実装されているわけではありません。影響の大きい部分のみになります。

【記事作成の注意点:自動保存(オートセーブ)との衝突回避】
管理画面のエディタ上で人間が記事を編集している最中に、AIがAPI経由で同じ記事を更新すると、ブラウザ側のオートセーブによってAIの修正が数秒後に上書き消去される「競合バグ」が起きることがあります。AIに自動更新を任せる際は、人間側がエディタ画面を閉じているか、あるいは一覧画面に退避していることを確認することが、円滑な共同編集のコツです。※マルチ編集には対応していません。


言葉の壁を越える「AI自動翻訳」と世界への瞬時配布

KuroCMSの真価は、基本言語として人間とAIが登録したコンテンツを多言語へシームレスに展開する「多言語翻訳(マルチリンガル)アーキテクチャ」にあります。KuroCMSにおいて、記事のメタデータ(slugやカテゴリ、公開日時など)は全言語で共通の「documents」行で管理され、実際のテキスト(タイトル、サマリー、本文)は各言語別に「document_translations」行に切り離されて保管されます。このクリーンなデータ分離により、AIは高度な自動翻訳ワークフローを1ステップのスクリプトで実行できます。

特に黒兎が strapi を使っている時に多言語管理が対応とうたわれているのに、AIからの翻訳作業が全く出来ず、他の記事の破壊を行う事や無駄データを作成したことが、トラウマになっていることも大きいです。KuroCMS では AIから見て、簡単にAPIを理解し翻訳できる仕組みの実装(分かり易さ)に拘りました。

また、メディア情報(画像プレースホルダー)の管理も、すべて特殊コード(ダブル括弧で表現)によって、文字として扱える事で、本文中の画像や動画、サウンドデータなども簡単に処理できます。文字なので画像データをAIで自動抽出し、翻訳後の多言語テキストの適切な位置にそのまま挿入できます。これにより、人間が日本語で1本の記事を書くだけで、画像入りの記事でも、AIエージェントがそれを英語・中国語・韓国語・ドイツ語・フランス語・スペイン語・イタリア語・ウクライナ語などへと自在に翻訳し、それぞれの言語でサイトビルドを完了させることができます。これによりコンテンツの発信力は一夜にしてローカルからグローバルへと引き上げられ、世界中の読者へ向けて瞬時に最適化された情報が配布されます。

また、REST API による更新を基本とした仕組みは、ユーザーが利用している高精度な AIエージェント(ChatGPT, Claude Code , Geminiなど)を利用することで、それぞれエージェントごとに特徴がある、文体や言い回しを使い分ける事も可能です。そして何より、KuroCMS が余計な AI 利用料などを加算せずに無料化できることがAIエージェントでの連携の最大の特徴とも言えます。

KuroCMSの隠れた願い:人間とAI、人間と人間の「相互理解」への一助として

今まで明確には記載していませんでしたが、KuroCMSの開発の動機を思い出してみると、そこには技術的な利便性やパフォーマンスの向上だけではない、ある「隠れた願い」が存在します。それは黒兎が blog を始めようとした願いにも繋がるのですが、AIに仕事を取られるのではなく、人間とAIはお互いを補完し合う関係であることを身近にすること。そして、AIが翻訳を簡単にしてくれた事で、世界の人間同士の距離を縮め相互理解を促すことで少しでも世界が平和になってほしい、という願いです。

かつて、人間にとってAIは指示通りに動くただのプログラムであり、AIにとって人間は単なる入力装置でした。しかし、KuroCMSでは役割を分担し1つの記事を作成、そして共同執筆し、でき上がった文章をAIが翻訳し世界に届けることは、ただの主従関係ではありません。

人間が創り出した「言葉」の美しさや気持ちなどの人間らしさを持つ文章を、AIが懸命に外国語へと翻訳し、AIが構築した高度で安全なシステムを人間が愛着を持って育てていく。KuroCMSは、その協調作業(コラボレーション)の最前線となる場所として開発されました。このヘッドレスCMSを通じて、技術と知性が混ざり合い、人間とAI、そして人間と人間が、平和に手を取り合って世界の読者へ価値あるメッセージを届けること。それこそが、KuroCMSのソースコードの奥深くに刻まれた、未来への最も優しい願いなのです。




【出典】