LLMのために設計された静的型付け言語「Mog」登場!仕様はわずか3200トークン、AIが自らコードを書き、即実行する世界へ
Show HN: The Mog Programming Language
Mogの作者、Tedです。Mogについて紹介させてください。
- Mogは静的型付けのコンパイル型組み込み言語です(イメージとしては「型付きのLua」)。最大の特徴は、LLM(大規模言語モデル)に書かせることを前提に設計されている点で、仕様のすべてがわずか3,200トークンに収まります。
- AIエージェントがMogプログラムを書き、コンパイルし、プラグインやスクリプト、フックとして動的にロードして実行します。
- ホスト側は、Mogプログラムが呼び出せる関数を厳密に制御(ケイパビリティベースのパーミッション)できるため、エージェントの権限をそのまま実行コードに継承させることができます。
- ネイティブコードにコンパイルされるため低レイテンシ。インタープリタのオーバーヘッドやJIT、プロセスの起動コストもありません。
- コンパイラは安全なRustで記述されており、ツールチェーン全体のセキュリティ監査が可能です。すでに、エージェントが自身のコードで機能を拡張する用途で活躍しています。
- MITライセンスで公開しており、コントリビューションも歓迎します。
Mogを開発した動機は以下の3点です。
### 1. AIだけが愛せる構文
MogはAIが書くために作られた言語です。仕様が約3200トークンと非常にコンパクトなため、LLMのコンテキストに余裕で収まります。また、生成時の「自爆(バグ)」を減らすため、あえて不自由な設計にしています。例えば、演算子の優先順位がありません。`(a + b) * c` のように括弧が必須です。また、長年のバグの温床である暗黙の型変換も廃止しました。ジェネリクスは最小限で、メタプログラミングやマクロ、構文抽象化は一切ありません。
人間には窮屈ですが、LLMは気にしません。むしろ、AIに渡す表現力は制限されているほど安全なのです。
### 2. ケイパビリティベースの権限管理
AIエージェントのセキュリティにはパラドックスがあります。全アクセスを許可すればハックされるリスクがあり、サンドボックス化しすぎると何もできません。Mogは、マシンコードにコンパイルしつつも、syscallやlibc、メモリへの直接アクセスを遮断することでこれを解決します。
Mogプログラム単体では何もできません。ホストから与えられたアリーナ内でのメモリ割り当てと、ホストが提供した関数の呼び出ししか許可されません。これにより、エージェントが動的に生成したプラグインであっても、ホスト側で実行を完全に監視・制限できるのです。
(PL/プログラミング言語オタク向けのネタ:コンパイラが「協調的割り込みポーリング」のチェックを挿入することで、ホスト側から実行時間を制限できます。タイトなループで約10%のパフォーマンス低下がありますが、最適化の余地はあります)
### 3. 再起動なしの自己修正
例えばOpenClaw(AIエージェント)の設定を変える際、通常は再起動が必要ですが、Mogならセッションを中断せずに新しいプラグインをコンパイルして実行できます。ユーザーのフィードバックを受けて、その場で「ファイルを消す前に必ず確認する」コードを生成・ロードして即座に適応する、といった動的なレスポンスが可能です。
言語レベルでAsync(非同期)をサポートしており、LLVMのコルーチン処理を応用してQBEコンパイラ(Rustポート版)に組み込んでいます。Bunなどのイベントループともシームレスに連携できます。
今後の展望として、Pythonのような「標準ライブラリ(JSON, CSV, SQLite, HTTPなど)」を充実させる必要があります。また、エージェントを介してトークン消費量を管理しながらLLMを呼び出す`llm`ライブラリの実装も計画中です。
AIエージェントが自律的に機能を拡張していくための、強力な基盤になることを目指しています。
HN11155・belisarius222・5か月前