見出し画像

「全部外してスクラッチでやろう」AIエージェント誕生秘話ー開発編ー|Palette CMS on Ch!me

2025年12月19日、AIエージェント β版をリリースしたPalette CMS。
PaaS型CMSとしての実装は、おそらく国内初。機能面でも、他にはない様々な特徴を備えています。

リリースを目前としたあわただしい12月上旬。発起人であるリーフワークスの澤社長と、コア開発を担う開発部のリードエンジニア大西さんに、話を聞きました。


AIエージェントとは

ーー最初に「AIエージェント」について教えてください

:どこから説明しようかな。まずLLMを含むAI、いわゆる生成AIが一気に台頭してきたのが、ここ3年くらい。今は共通の規格を整えていくフェーズに入っています。

生成AIの開発が活発化した当初、AIは「大規模で超賢い、全知全能の神」みたいな存在になると考えられていたんです。
でも実際に全知全能を目指すと、最終的には無難に収束して、優等生的な答えしかくれなくなる。ほしいのは模範解答を返すだけのAIではなく、個性や拡張性をもつAIなんです。

:そこで重要になってくるのが、RAGやツールの活用です。RAGは「そもそも賢いなら、知識をその場で参照させる」という仕組み。ドキュメントや辞書を用意しておき、専門知識を瞬時に理解させる。ツールはLLMに「手足」を与えて、LLMが外の世界のデータやシステムを操作できるようにするための仕組みです。

これらの手段を用いて、LLMの主開発とは別のアプローチで拡張させようというのが今の主流。この方法だと、個性や拡張性を損なうことなく、それぞれの専門領域を伸ばしていける

そうやってAIの将来像がシフトしつつあるなかで、LLMと周辺ツールをつなぐ規格として登場したのがMCP。AIに接続する各ツールを共通の形で扱えるようにする規格です。
Claudeを開発したAnthropic社が、2024年11月に提唱しました。

MCPが登場したことで、「AIエージェント」という箱を作り、その中にLLMとツール、RAGを詰めるという選択肢が取りやすくなりました。
民間企業でも開発が進んだ2025年は「AIエージェント元年」と呼ばれています。

開発の経緯

ーーAIエージェントをパレットCMSに実装しようと思ったのは?

:2025年の初頭に、大西さんと「夏にMCPを作ろう」という話をしたんです。「流行りだし、Palette CMSとの相性も良さそうじゃん、やろうよ」くらいの軽い感じで。

どういった形での実装がいいかなと試行錯誤している中、初夏にたまたまAWS(Amazon Web Services社)の方と知り合って。AIエージェントやフレームワークについて詳しく教えてもらい、一気に解像度が上がりました。

大西さんにも同じ話を聞いてもらったところ、「すごいな!これからはAIエージェントだ!!」と盛り上がって。そこから、MCPだけでなく、AIエージェントの開発を軸に進めることになりました。

PaaS型CMSのPalette CMS。このたびAIエージェントを実装

大西:僕らは最初、MCPという規格でツールだけを作ろうとしていたんです。脳はAnthropic社のClaudeを使って、ツールとして、パレットCMSを操作するプラグインみたいなものを作ろうと。
でも、たとえば「RAGをどこに持たせるか」「情報をどう見せるか」みたいなところで、違和感が出てしまって。

汎用的な規格であるMCPでは制限が多くてやりたいことが実現できないので、自由にツールを使えるよう、開発の方向性を変えました。

:夏に形になっていなかったのは、大西さんがあれも、これもと試してくれていたから(笑)。
僕らが本当にやりたいのは、Palette CMSを操作するツールを、AIにきちんと使わせること。試行錯誤の結果、MCPだけにこだわると本来実現したいことができないと気付けて、MCPを作り込むのではなく、「どう使わせるか」を直接コントロールできるAIエージェントを作るという結論に至りました。

結果的に大プロジェクトになったわけだけど、本当に良かったと思っていて。最新技術を積極的に取り入れてプロダクトアウトするというのがリーフワークスの社風だし、AIエージェントに挑むことで新しい世界が広がった。この選択はめちゃくちゃ正しかったと思っています。

ーーAIエージェントの開発は、具体的にどのような?

:ざっくりいうと、AIエージェントという箱にLLMとツールを置くだけでも形になります。でも、工夫をすればするほど、どんどん賢く・使いやすくなっていくから、奥深いところに手を出したくなる。

大西:最初は、AWSにおすすめしてもらった「Mastra」というフレームワークを使っていたんです。でも、パレットCMSに特化した調整をしようとすると、フレームワークでブラックボックスになっている部分が足かせになってしまって。
結局、イチから作り直しました。ほぼスクラッチみたいな感じです。そこからはアイデアをそのまま実現できるようになって、一気に進みました。

ーーAIエージェントをイチから、という作業がまったく想像できないのですが、最初に全体を設計する感じでしょうか?

大西:ざっくり設計はしますね。まずはPalette CMSの作業工程を、シート・項目作成っていうデータベースの設計、レコードの登録・編集・削除・検索、フロント画面の作成の3つに大別して、機能や要件を整理して。
その後は、ツールの入出力設計、データの永続化方針、UIへの受け渡し方法といった細かいところを詰めていく感じです。
そこまでいってはじめて、既存フレームワークでは思うようなチューニングができないなと。

:補足すると、Mastraでほとんどのことはできるんですよ。ただ、大西さんのアイデアと技術が、その器に収まらなかっただけ。エンジニアの性で、理解が深まれば深まるほど細かいチューニングを行いたくなるんですよね。
それでも普通は、その枠の中で工夫してやろうって努力する。「全部外してスクラッチでやろう」なんてぶっ飛んだことを考えて実際やってしまうのは、大西さんならでは(笑)。

ーーすごいですね! 既存フレームワークはどれくらい触られていたんですか?

大西:3~4週間は。でもその結果、ステップバイステップで知識を深めていけました。抽象化された状態からざっくりした知識をつかんでいって、今度はそれを解体して深掘りする、といったプロセスを踏めたので、結果的にすごくタメになる時間でした。

Palette CMS AIエージェントの特徴

ーーでは改めて、Palette CMS AIエージェントがどういったものなのか、教えてください。

大西:パレットCMSの管理画面にAIのインターフェースを組み込んでいます。たとえば僕はいまカピバラにはまっているんですけど、「カピバラの飼育記録を管理できるサイトを設計して」と話しかけると、AIエージェントが要件を整理し、パレットCMSのシート・項目を設計してくれます。項目の種類や選択肢もきちんと考えられています。

大西さんがいま一番注目している動物、カピバラの飼育記録管理にチャレンジ

ーー設計と要件定義は、すごく時間のかかる作業ですよね。それを一瞬で…

大西:「好きな食べ物も保存できるようにして」など、追加オーダーにも応えてくれます。満足のいく設計ができたら「承認」をクリック。裏側でAPIが叩かれ、パレットCMSで実際にシート・項目が設定される仕組みです。
同様に、様々なサイトをつくることができます。求人サイトなら「掲載企業」「求人」「応募情報」のシートから、というように。

ーーAIエージェントは、パレットCMSのキャラクター「パレットくん」なんですね

大西:Palette CMS AIエージェントは複数体制なんです。それぞれの作業に特化したスペシャリストが自動的に切り替わって、最適なサポートをしてくれる。β版では5つのスペシャリストが登場するので、5体のパレットくんをアサインしてもらいました。

パレットCMSの公式キャラクター「パレットくん」たち

ーー自動的に切り替わる、とは?

大西:まずはコンシェルジュという、ユーザーの要望を汲み取って最適な担当者につなぐためのエージェントがいます。
たとえば「アカウント設定について教えてほしい」というと、ナレッジガイドにつなぎます。ナレッジガイドはパレットCMSのドキュメントに特化しているので、何でも教えてくれるわけです。その後でデータベースの設計を依頼すると、今度はスキーマメイカーに担当を引き継ぎます。

操作方法のサポートとデータベース設計って、ドメインが全然違うじゃないですか。こういう設計にしておくと、新しいドメインの機能を実装したときに、影響して精度が下がったりバグが起きたりしない。特化型のスペシャリストをどんどん追加できる設計です。

:複数のAIエージェントが切り替わるという概念自体は、これまでにも世の中にあったんです。でも大西さんのアイデアはちょっと違っていて。
通常は完全に別人、エージェントAからエージェントBにバトンがぱっと渡される感じなんです。
パレットCMSのAIエージェントは、ひとつのAIエージェントの中で、得意分野をもつ複数の人格が切り替わるイメージ。簡単に言うと「催眠術をかけ直す」みたいな感じです。
記憶は共有しつつ、それぞれの人格における専門性やツールの制約が逆に良くて、精度が上がるんです。

ーー「催眠術をかけ直す」というのは、具体的にどのような?

大西:LLMって、最初はすごく純粋無垢なんです。で、そこに対してプロンプトという催眠術をかける。催眠術はかけ直すことができるし、リセットもできる。そして、催眠術がかかった状態でも、記憶は引き継げる。だから「君は今日からスキーマの天才だ」と言って、「君はこれができるからやりなさい」というのを1回1回リセットして入れ直すイメージです。

コンシェルジュだけが上の階層でルーティングしていて、その下に各分野の担当者が並列にいる感じです。各分野の担当者は、いくらでも増やすことができます。

これからの予定

ーー今回のリリースでは、コンテンツ用データベース作成周りがメインですね。これからはどんなことができるようになりますか?

大西:まずは、コンテンツ作成・外部サービスからのデザイン取り込みですね。ただ、ちょっと高めのハードルがあって。inazuma⚡engineなんですけど…

ーー今年(2025年)の春~夏に大西さんが開発を進められた、パレットCMSのテンプレートエンジンですね。式ベースの独自言語inazuma⚡codeを使うという

inazuma engine

大西:そう、独自言語というところ。LLMって、TypeScriptとか主流の言語をうまく出力するよう、チューニングされてるんですよ。
inazuma⚡codeはJavaScriptライクとはいえオリジナルで、LLMにとっては未知の言語。だから、inazuma⚡codeをきちんと使えるように、ファインチューニングしないといけないんです。

:ファインチューニングというのは、LLMにひたすら機械学習をさせて、特定分野における専門家に育て上げるようなもの。
LLMはTypeScriptを学習してるから、「inazuma⚡codeで書いて」といっても、本能的にTypeScriptに寄っちゃう。
inazuma⚡codeを刷り込むファインチューニングの作業に、膨大なサンプルコードがいるんです。

でもこれ実は、99%を99.9%にする難しさ、みたいな話で。99%はもうできてるんですよね。

大西99.999%をどこまで突き詰めるか、みたいなことですね。

2026年のAIエージェント

ーーこれから、AIエージェントはどういう存在になると思いますか?

大西:誰かが作ったAIを使うのは、もう誰もができますよね。既存のAIを使っていかに創造的なことができるか、自分の仕事をどれだけ効率化できるかを考えるフェーズにいる。
Palette CMS AIエージェントは、これからどんどん進化します。これを使えば、どんなことが面白いことができるのか。どれだけ業務を楽にできるのか。関わる人全員で、考えていけたらいいですね。

:Palette CMS AIエージェントって、基本的な開発スタイル・ベースは踏襲しながらも、大西さんのアイデアがいっぱい詰まってるんです。パレットCMSにAIエージェントを実装するには、どう設計・チューニングすればいいかを試行錯誤してる。

これ、大西さんは当たり前のようにやったけど、本当はめちゃくちゃすごいんです。先人がいないわけだから、自分で考えるしかない。正解も定義されていない。それを開発・リリースまでもっていくっていうのはすごいことだし、日本トップクラスだと自負しています。

2026年、リーフワークスの他事業においても、開発の中心はAIエージェントになると思っています。
今回を成功体験として、さらなる強化に励みたいですね。

ーーありがとうございました!


インタビューから2週間後の2025年12月19日、Palette CMS AIエージェント β版は無事にリリース
「なんとしてもAIエージェント元年に間に合わせるぞ!」の号令のもと、Palette CMS事業部と開発部が一丸となり、走り切りました。

後編にあたる「AIエージェント誕生秘話ーAPI大会編ー」では、Palette CMSへの実装フェーズの模様をお届け。作業を担当した、Palette CMS事業部に話を聞く予定です。
お楽しみに!

Palette CMS AIエージェント特設ページ




リーフワークスでは、
一緒にチャレンジする仲間を募集しています!


リーフワークスメンバーの生の声をお届け!


この記事が参加している募集