著者: Boxu Li 

はじめに

Macaron AIの最も注目すべき特徴の一つは、瞬時にカスタムミニアプリケーションを生成する能力です。通常のチャット中に、ユーザーが家計管理、フェスティバルの計画、新しい言語の学習などのニーズを説明すると、Macaronは数分で本格的なツールを組み立てます。これらのミニアプリの中には10万行を超えるコードが含まれるものもありますが、人間の介入なしに生成されます。日本や韓国のユーザーにとって、これは地域の習慣や規制に合わせたパーソナライズされたツールを受け取ることを意味します。このブログでは、Macaronのミニアプリを支える自律的なコード生成パイプラインを解剖し、意図の理解プログラム合成サンドボックス実行エラーハンドリング安全対策について取り上げます。システムがどのように複雑性を管理し、外部APIと統合し、地域の法律を尊重し、強化学習からアウトプットを洗練させるかを検証します。

1 自然言語からプログラム仕様へ

1.1 意図の解析とスロット抽出

ユーザーがアプリをリクエストすると、Macaronはまず自然言語入力を解析して構造化されたインテント仕様を構築します。これには、ドメイン(金融、教育、料理)、希望する機能(予算カテゴリー、アラート)、制約条件(通貨、言語)、タイムラインなどのスロットを特定することが含まれます。日本語と韓国語の場合、パーサーは敬語や省略を処理します。例えば、「家計簿を作りたいんだけど、食費を細かく分けて」という日本語のリクエストは、ドメイン「予算管理」、機能「詳細な食費カテゴリー」、制約「日本円」を引き出します。韓国語の「가족 여행 일정을 계획해줘, 한식 식당 추천도」というリクエストは、ドメイン「旅行計画」、機能「レストランの推薦」、文化的制約を引き出します。

Macaronはデュアルエンコーダーアーキテクチャを使用します。一つのエンコーダーが現在の会話を処理し、もう一つがユーザーの記憶を処理します。二つのベクトルはアテンションを介して結合され、統一されたインテント表現を生成します。強化学習により、パーサーは正しいスロットを抽出するように微調整されます。フィードバックは、結果として得られるミニアプリがユーザーの期待に応えているかどうかから得られます。期待に応えられない場合、パーサーのパラメータが更新されます。

1.2 ドメインライブラリとテンプレートによるプログラム合成

意図が構造化されると、Macaron の合成エンジンは、ドメイン特化型モジュールのライブラリから関数を組み合わせてコードを生成します。モジュールには、予算計算(支出の計算、チャートの生成)、スケジュール機能(カレンダー連携、衝突解消)、言語学習アルゴリズム(間隔反復法)、料理支援(材料変換、栄養分析)などが含まれています。エンジンはモジュールを選択し、設定して、統一されたプログラムにまとめます。テンプレートは、モジュール間のデータフローを定義するグラフ構造(DAGs)を含んでおり、並行処理と非同期操作を可能にします。例えば、日本の予算管理アプリは、月次要約と週次アラートタスクを並行して実行することができます。

合成エンジンは、オープンソースコードと独自の例で訓練されたニューラルプログラム合成モデルを使用します。また、"総予算を超過しない"といった制約を線形不等式として表し、制約ソルバーに入力する記号的推論も活用します。このハイブリッドアプローチは、純粋なニューラル生成と比較して信頼性を向上させます。強化学習により、ユーザーの満足度とエラー率を監視し、モジュールの選択と順序を調整します。

1.3 ローカライズされた要件と規制の制約

日本と韓国の規制は、金融および個人データの取り扱いに関して特定の要件を課しています。たとえば、日本のプライバシー法は、家計簿データを同意なしに第三者に送信することを禁止しています。韓国の個人情報保護法は、データの匿名化に関して厳しい要件を持っています。予算管理ツールを生成する際、Macaronはそのポリシーバインディングルールを参照し、機密データがローカルに保存され、外部サーバーに送信されないようにします。コードジェネレーターは暗号化ライブラリへの呼び出しを挿入し、デフォルトでネットワークアクセスを無効にします。医療アプリの場合、MacaronはAIフレームワーク法と照らし合わせて、医療ガイダンスに関わる意思決定が人間の監督を伴うことを確認します。

2 安全な実行環境

2.1 サンドボックスとリソース制限

オンデマンドで生成された任意のコードを実行することは、重大なセキュリティリスクを伴います。そのため、Macaronはモダンなコードインタプリタを彷彿とさせるサンドボックス環境でミニアプリを実行します。このサンドボックスは、ファイルシステムへのアクセスを仮想ディレクトリに限定し、CPUとメモリの使用を制限し、特に許可されていない限りネットワーク接続をブロックします。プログラムは、読み取り専用のベースイメージを持つコンテナ内で実行されます。たとえば、韓国料理アプリが栄養データを取得しようとする場合、要求は許可されたドメインをチェックするプロキシを通じてルーティングされます。プログラムが許可なしに外部サイトにアクセスしようとすると、サンドボックスが操作を終了し、ユーザーにエラーメッセージを返します。

2.2 静的解析と型チェック

実行前に、Macaronは合成されたコードに対して静的解析を行い、無限ループ、インジェクション攻撃、不正なシステムコールなどの脆弱性を検出します。型チェッカーは、モジュールが正しく構成されているかを確認します。例えば、数値を返す関数をテキスト処理モジュールに接続することはできません。チェッカーはまた、地域のデータ型に準拠していることを検証します。たとえば、通貨の値は浮動小数点の誤差を避けるために小数型で表現されます。静的解析が失敗した場合、Macaronは要求された機能を簡素化するか、アプリを小さなモジュールに分割することを提案します。

2.3 ランタイムモニタリングと自動修復

実行中、Macaron はパフォーマンス指標(CPU 使用率、メモリ使用量)、機能の正確性(テストケース、アサーション)、ユーザーの操作(クリック、滞在時間)を監視します。プログラムが期待される動作から逸脱した場合、例えば時間制限を超えたり例外を投げたりすると、Macaron の自動修復モジュールが介入します。最後の安定した状態にロールバックする、即座に生成されたパッチを適用する、または機能を優雅に縮小することがあります。例えば、日本のガーデニングアプリの天気 API が失敗した場合、プログラムはバックアップデータソースに切り替えるか、一時的な停止についてユーザーに通知することができます。

3 強化学習と継続的改善

3.1 ユーザーフィードバックとタスク成功からの報酬信号

各ミニアプリセッションは豊富なフィードバックを提供します。ユーザーはアプリの使用を続けることで暗黙的に満足を示したり、体験を明示的に評価したりします。Macaron はこれらの信号を集約して、将来のコード生成を導く報酬関数を形成します。この報酬はバグや混乱を招くインターフェース、遅いパフォーマンスを罰し、信頼性、文化的適合性、新規性を評価します。時間が経つにつれて、シンセシスエンジンは、日本のユーザーがミニマリズムと使いやすさを重視し、韓国のユーザーがカスタマイズオプションや鮮やかなビジュアルを好むことを学びます。これらの嗜好は、モジュールやユーザーインターフェースパターンを選択する RL ポリシーにエンコードされます。

3.2 カリキュラム学習とメタ学習

ユーザーリクエストの複雑さが増す中で、Macaronはカリキュラム学習を採用しています。合成エンジンは、まず簡単なプログラム(例:電卓、To-Doリスト)を生成し、徐々により複雑なタスク(例:マルチユーザーの予算管理プラットフォーム)に取り組みます。システムが新しいドメインに遭遇するたびに、メタラーニングを利用して適応を加速します。エンジンが日本や韓国のユーザーから類似のリクエストを受けると、たとえば、学校行事の計画や介護管理といったタスクを一般化できます。メタラーニングはまた、法や文化の変化に対応するのにも役立ちます。AI推進法が新たなコンプライアンス要件を導入した場合、Macaronはすぐにそれをコードテンプレートに統合します。

3.3 コミュニティの貢献とモジュールマーケットプレイス

Macaronはコミュニティの参加を奨励しています。開発者は新しいモジュールをマーケットプレイスに貢献できます。モジュールはセキュリティとコンプライアンスの観点から審査され、承認されると含まれます。これにより地域のエコシステムが育まれます。日本の開発者は茶道のスケジュール管理やアニメの推薦用のモジュールを作成し、韓国の開発者はK-POP振り付けの学習や家族行事の管理のためのモジュールを提供するかもしれません。貢献者はアーモンド(Macaronのアプリ内通貨)で報酬を受け取り、プラットフォームの継続的な改善を促進します。

4 外部APIとサービスとの統合

4.1 データソースのローカライズ

日本と韓国のユーザーは異なるデータプロバイダーに依存しています。Macaronは、日本の金融アプリ向けに銀行API(例:J-Debit経由)を統合し、祝日(ゴールデンウィーク、お盆)用の日本のカレンダーや、イベントプランニングのための地元のニュースソースと連携しています。韓国では、KOSPI株式API、Naverの天気サービス、KakaoTalkのメッセージングAPIに接続します。各統合はレート制限、キャッシュ、エラーハンドリングを強制するモジュールでラップされています。コードジェネレーターは、関連する場合に自動的にこれらのモジュールを挿入します。

4.2 API設定のための自然言語インターフェース

ユーザーが手動でAPIキーを入力する必要がないように、Macaronは会話を通じてガイドします。たとえば、日本のユーザーが銀行から取引をインポートしたい場合、エージェントは同意プロセスを説明し、必要なトークンを取得して安全に保存します。同様に、韓国のユーザーが子供の学校のスケジュールに接続したい場合、エージェントはOAuthを使用してアクセスを承認し、アプリが必要なデータのみを読み取ることを保証します。これらのやり取りはログに記録され、差別化された透明性の原則に沿ってレビューできます。

4.3 エッジコンピューティングとオフラインサポート

日本や韓国の多くの地域では、ユーザーは接続が途切れがちな状況でも信頼性を期待します。Macaronのミニアプリはエッジコンピューティングをサポートしており、可能な限りローカルで計算を実行します。このエージェントは、データをキャッシュし、ネットワークが利用可能になったときにサーバーと同期するプログレッシブウェブアプリ(PWA)を生成できます。例えば、韓国のハイカーが山道プランナーを使用している場合でも、オフラインでルートを追跡し、下山後にクラウドと同期できます。オフライン機能は特にプライバシーに重要であり、ユーザーが共有を選択するまで機密データはデバイス内に留まります。

5 安全性、コンプライアンス、文化的配慮

5.1 コード生成における規制の整合性

ミニアプリは現地の規制を遵守しなければなりません。日本のAI推進法は透明性を強調しており、予算管理アプリはデータフローの明確なログを含み、支出がどのように分類されているかについてユーザーに説明を提供します。韓国のAI規制は、重要な決定に対して人間の監視を要求しているため、健康関連アプリはアドバイスに基づいて行動する前に専門家に相談するようユーザーに促します。Macaronのコードジェネレーターは、敏感な操作に対して警告を挿入し、明示的な同意を取得します。ユーザーが税務申告アプリを生成しようとする場合、Macaronは現地の税法の更新を思い出させ、認定会計士に相談することを提案します。

5.2 UIの文化的規範とローカリゼーション

文化的な美意識はユーザーインターフェースデザインに影響を与えます。日本では、ミニマリズムと余白の尊重が重視されているため、Macaronは日本のユーザー向けに控えめな色合いとシンプルなアイコンを使用します。韓国のインターフェースはより活気があり、アニメーションを含むことがあります。MacaronのUIモジュールは、オンボーディング時に決定されるユーザーの好みに基づいてこれらのスタイルを自動的に適応させます。エージェントはまた、文化的な規範に合わせてヘルプメッセージを調整します。日本のヘルプ画面には文脈的な説明が含まれることがあり、韓国のヘルプ画面はステップバイステップの指示を強調することがあります。

5.3 災害のレジリエンスと倫理的配慮

日本と韓国は地震や台風などの自然災害が多い地域です。緊急対応アプリを生成するパーソナルエージェントは信頼性が求められます。Macaronには災害レジリエンスモジュールが含まれており、政府の警報システムと統合し、緊急指示が最新であることを保証します。倫理的には、金融ツールでの「ダークパターン」のような操作的なデザインを避け、公平性ガイドラインに従います。たとえば、レストランを推薦する際には、食事制限を考慮し、ユーザーが特定の地域やチェーンを希望しない限り、偏りを避けます。

5.4 ケーススタディ: 花見プランナーとK-POPファンマネージャー

2つのケーススタディは、マカロンのコード合成の力とその微妙さを強調しています。花見プランナーは、日本の家族が桜の花見を体験したいという要望に応えて作られた季節アプリです。ユーザーは「桜の見頃と混雑を避けるプランを作って」とリクエストします。マカロンは、日本の気象APIから天気と開花予測を取得し、過去のデータを参照して近くの公園のピーク開花日を予測します。その後、複数のモジュールアプリを合成します:日付をブロックするためのカレンダー・スケジューラー、交通と公共交通機関を考慮したルートプランナー、ピクニック用品のための予算トラッカー(家計簿カテゴリを取り入れ)、ゴミ処理や公園のルールについてユーザーに思い出させる文化的エチケットガイドです。強化学習により提案が個別化され、家族に高齢者がいる場合、エージェントはアクセス可能な道のある公園を優先し、子供がいる場合はファミリー向けのアトラクションを勧めます。このアプリは、韓国語または英語のみを話す友人が参加できるように、バイリンガルの招待状も生成し、マカロンのクロスリンガル能力を示します。

「K‑pop Fan Manager」ケースは、複数の音楽グループをフォローする韓国のユーザーをターゲットにしています。ユーザーは「다음 커백 스케줄과 팬미팅 일정 관리 앱을 만들어줘」(次のカムバックスケジュールとファンミーティングの管理アプリを作って)と言うかもしれません。エージェントはエンターテインメント会社のAPIからリリーススケジュールを取得し、チャートアルゴリズムに基づいてストリーミング目標を計算し、カウントダウンウィジェットを表示します。モジュールには、チケット購入アシスタント(転売に関する現地法を確認)、デジタルスクラップブック(フォトカードの収集用)、ソーシャルモジュール(ファンプロジェクトの調整用)が含まれています。通知でユーザーを過負荷にしないように、RL報酬モデルは緊急性(例:ファンミーティングチケットの締切)と認知負荷をバランスします。ファンが日本の友人と調整するときに、アプリはスケジュールやメッセージを自動的に日本語と英語に翻訳し、メモリタグが言語間でコンテキストを確保します。これらのケーススタディは、Macaronが地元文化、規制への配慮、技術的洗練をカスタムツールに織り込む能力を示しています。

5.5 技術的課題: 同時実行性、バージョニング、デバッグ

大規模なプログラムを即座に生成することは、エンジニアリング上の課題を引き起こします。ミニアプリがデータを取得しながらUIを更新するなど、複数のタスクを同時に実行する必要があるときに、並行性が問題になります。Macaronのコードジェネレーターは、依存関係を定義する有向非巡回グラフ (DAG)を構築し、非同期プログラミング構造(例:JavaScriptのプロミスやPythonのasyncio)を使用してブロック操作を回避します。Macaronのモジュールライブラリは常に進化しているため、バージョニングが重要になります。生成されたアプリには、モジュールのバージョンを記録するマニフェストファイルが含まれています。更新が利用可能な場合、Macaronはバージョンを比較し、ユーザーにアップグレードするか、既知の安定バージョンに留まるかを促します。デバッグはおそらく最も困難です。自動生成されたコードには微妙なバグやエッジケースが含まれている可能性があります。Macaronは、プログラムの不変性をテストするためにランダム化された入力を生成するプロパティベースのテストと、実行パスを探索するシンボリック実行を用いてこれに対処します。実際にバグが発生した場合、エージェントは匿名化されたエラートレースを収集し、プログラム修復技術を適用して修正を将来の合成に組み込みます。これらのエンジニアリングプラクティスは、ノーコードプログラミングの約束が信頼性の高い、保守可能なミニアプリに変換されることを保証します。

Boxuはエモリー大学で定量経済学を専攻し、学士号を取得しました。Macaronに参加する前は、アメリカのプライベート・エクイティとベンチャー・キャピタル分野でキャリアを積んでいました。現在、彼はMacaron AIの参謀長兼マーケティング副社長として、財務、物流、運営を管理しつつ、マーケティングを監督しています。

応募する Macaron の最初の友達