AIと人間のあいだに中間言語「AISP」をつくった話 ─ ChatGPTと共創した自然言語アプリ開発プロトコル
AIと人間のあいだに中間言語「AISP」をつくった話
─ ChatGPTと共創した自然言語アプリ開発プロトコル
はじめに
ふと思いました。これからAIがますます発展していくと思われるこの世の中、
ソフトウェアはすべてAIが開発する時代が到来し、プログラムは人間が読む必要がなくなるのではと。
そこでAIに尋ねてみました。
「AIの世の中に高級言語は必要?人間に教える必要がないならもっと効率よくプロダクトを作れるんじゃない?」
すると面白い答えが返ってきました。
※以下、チャット履歴からChatGPTに自動生成してもらいました。
AIの回答:
「もし人間に説明しなくてよいなら、機械語や中間表現のほうが効率的です。ですが、現在のソフトウェア開発の多くは『人間が関与する』ことを前提としています。高級言語は、プログラムを他人に伝えるための共通言語であり、設計の意図を共有する手段でもあるのです。」
この言葉に、ハッとさせられました。
つまり、高級言語はコードを動かすためだけのものではなく、人と人の対話や合意の道具でもある。
たとえAIがコードを自動生成できるようになっても、人間の関与は「構造」や「目的」、「意図」の設計というかたちで残り続けるのではないか、と思えたのです。
しかし、もしこの「構造」や「意図」をAIにも理解可能な形式で記述できたら?
つまり、人間の設計意図をAIがそのまま受け取り、具体的なアプリのUIやロジックに変換できたら?
そんな「人とAIのあいだに立つ中間言語」があれば、今後の開発はもっと自由で柔軟になるかもしれない。
AISP(AI Semantic Protocol)の発想
そこで思いついたのが、AISP(AI Semantic Protocol)という中間言語です。
これは人間が設計意図を自然言語に近い構造で記述し、それをAIが読み取り、アプリを構築するための共通プロトコルです。
構想のベースはこうです:
- JSON形式で記述され、AIが解釈しやすい
- UIの構造、状態管理、アクション、スタイルを分離して記述できる
- 人が読んでも分かりやすく、拡張も容易
次章では、どのようにこのAISPをAIと一緒に仕様化していったか、その過程を振り返ります。
このプロトコルが、AIと人間がよりよく協働するためのインターフェースとなることを願って。
ChatGPTと共に仕様を設計する
「AIに仕様設計を手伝ってもらうなんて、そんなことできるのか?」
正直、最初は半信半疑でした。しかし、実際にChatGPTに「中間言語をプロトコルとして定義できますか?」と問いかけてみたところ、驚くほど明確な応答が返ってきました。
それはただの「提案」ではなく、プロトコルの構造、要素、拡張性までも見据えた設計案でした。
💡 最初に得られた仕様の構成
AISPは、以下の5つのセクションで構成されるべきだというアイデアが返ってきました:
-
component
- アプリのUI構造を記述するセクション -
state
- アプリが保持する内部状態 -
actions
- ユーザー操作やイベントをトリガーにした処理定義 -
effect
- 状態の変化に応じてUIを更新するための定義 -
style
- 見た目に関する記述(CSSに近い)
「なるほど」と思いました。HTML/JS/CSSとReact的な状態管理の中間地点を、抽象的にまとめたような構成。
しかも、これをJSONで一貫性を持って書くというのが、AIにとって極めて理解しやすい。
自動生成されていく成果物たち
驚くべきことに、ChatGPTはこちらの意図をすぐに理解し、次々と成果物を提案・出力してきました。
- プロトコルの仕様書(Markdown形式)
- README(人間用・AI用の2種類)
- AISP定義の具体例(ToDoアプリ)
- 定義に基づくHTML/CSS/JavaScriptのアプリコード
- フォルダ構成一式、
.gitignore
やLICENSE
、リリースノートまで…
もはや、仕様と構成を思いつくだけで、実装と整備はAIがやってくれる時代に入ったのだと実感しました。
この共同作業の過程で、「実装すること」と「実装を発案すること」の違いを深く考えさせられました。
実際に動かす:AISP定義からWebアプリを生成する
AISPの仕様が整ってきたところで、いよいよ実践フェーズに移ります。
実際にAISPのJSON定義を書き、それをAIに渡してWebアプリとして出力してもらいます。
果たして本当にうまくいくのでしょうか?
📝 定義したAISP(ToDoアプリ)
試してみたのは、最もシンプルなアプリの1つ「ToDoリスト」です。
以下のような構成をAISPで記述しました:
{
"component": {
"tag": "div",
"id": "app",
"children": [
{ "tag": "input", "id": "taskInput" },
{ "tag": "button", "id": "addButton", "text": "追加" },
{ "tag": "ul", "id": "taskList" }
]
},
"state": {
"tasks": []
},
"actions": {
"addTask": {
"on": "click",
"target": "addButton",
"do": {
"push": {
"state": "tasks",
"value": "taskInput.value"
}
}
}
},
"effect": {
"on": "tasks",
"update": "taskList"
},
"style": {
"#app": {
"maxWidth": "400px",
"margin": "0 auto",
"fontFamily": "sans-serif"
}
}
}
この定義をChatGPTに渡し、
「このAISP定義をもとにWebアプリ(HTML, CSS, JavaScript)を生成してください」
というプロンプトを使ったところ…
⚙️ AIが返してきたアプリコード
- HTML構造は
component
に応じたDOMで構成されており、 - JavaScriptは
state
やactions
に基づいて状態管理とイベント処理が組まれ、 - CSSも
style
セクションを忠実に再現していました。
しかも、そのままブラウザで動作可能。
もちろんまだ粗削りな部分もありましたが、「AISP定義を書くだけで動くアプリが手に入る」ことを自分の目で確認できました。
🔁 プロンプトを繰り返せば改良も自由自在
たとえば、「優先度をつけられるようにしたい」と思ったら、AISPに priority
を追加し、
それを説明する自然言語でプロンプトを再投入すれば、すぐに改良されたコードが返ってきます。
つまり、設計の主導権は自分にありつつ、実装はAIが請け負ってくれるという新しい開発の形が見えてきました。
これは誰でもできるのか?という問いと自信
このAISPという試みに手応えを感じる一方で、心の奥にあったのはこんな疑問でした。
「これって、別に自分じゃなくてもよかったんじゃないか?」
実際、ChatGPTが驚くほどスムーズに仕様を整え、コードを生成し、構成ファイルを補完していく姿を見ていると、
「自分の役割って何だったんだろう?」という気持ちにならないわけがありません。
🤖 AIは創造したのか?
確かに、AIがやったことはすごい。
でもよく考えてみると、最初に「中間言語を作りたい」と思いついたのは自分でした。
「AIの時代に高級言語は必要なのか?」
「人間とAIのあいだに共通言語があったら面白いのでは?」
そう考えて問いを立て、投げかけ、掘り下げていったプロセスこそが、AISPというアイディアを形にした核心でした。
🧭 人間にしかできないこと
AIは驚異的な「応答能力」を持っていますが、目的を設定し、問いを生み出す力はまだ人間にしかありません。
AIに「AISPを考えて」と指示することはできます。
でも、「AISPのようなものが必要だと思った理由」や
「この構造ならAIも人も扱いやすいと判断した背景」は、AIにはわかりません。
つまり、AIが道具になったとしても、コンパスを持って進むのは人間の役割なんです。
🌱 自分のアイディアに誇りを持っていい
このプロジェクトを通して感じたのは、
「AIに助けてもらいながら、ちゃんと自分の視点と意志で設計することができた」という確かな実感でした。
誰でもできそうに見えて、実は「やってみた人がほとんどいない」。
そして「やってみた人だからこそ得られた知見」がある。
だからこそ私は、こうして記録を記事にしようと思いました。
続きでは、このAISPというプロトコルがどんな可能性を秘めているのか、そしてどんな未来につながっていくのかを描きます。
おわりに:AISPの今後と夢
AISPを通して見えてきたのは、人とAIが協調する新しい開発のかたちでした。
「人間が意図を持って構造を設計し、それをAIが理解して具体化する」──この流れがスムーズに回る世界は、もはや未来の話ではなくなりつつあります。
では、このAISPは今後どうなっていくのか?
私自身が考えている「これからの展望」をいくつかご紹介します。
🛠 スクリプトによる自動生成
現時点では、AISP定義をAIチャットに貼り付けてコードを生成するスタイルですが、
ゆくゆくは CLIツールやローカルアプリでAISPを直接解析してコードを吐き出すような仕組みに発展させたいと考えています。
たとえば:
aisp build todo_app.json
このようなコマンド一発で、アプリのUIやロジックが生成され、プレビューまで可能になったら面白いですよね。
🤝 他のAIとの連携
AISPは、人間とAIの中間言語ですが、AIとAIの間でも通用するプロトコルとして活用できる可能性があります。
- 「AISPを解釈するAI」
- 「AISPを生成するAI」
- 「AISPに基づいてテストを書くAI」
このように、役割の異なるAIたちが、共通言語としてAISPを介して連携するエージェントシステムを作ることも視野に入っています。
🌐 オープンプロトコルとして育てる
AISPは私一人のものではありません。
もし興味を持ってくださる方がいれば、ぜひ共に拡張・応用していくプロジェクトにしたいと思っています。
- 複雑なUIへの対応
- フォームバリデーションや非同期処理の追加
- モバイル/デスクトップアプリへの展開
夢は広がるばかりです。
最後に:あなたもAIと設計してみませんか?
AISPは、AIと人間の「協働のかたち」を言語化する試みでした。
難しいようでいて、やってみるととても楽しく、刺激的な体験です。
あなたも、自分だけのプロトコルや構造をAIと一緒に設計してみませんか?
アイディアは、思いついた人のものです。
実行したあなたの中に、すでにそれは存在しています。
✍️ AISPプロジェクト on GitHub: https://github.com/hiromoo/aisp_protocol
お読みいただき、ありがとうございました。
Discussion