Macaron AIにおける自律コード合成:アジアのライフスタイルのためのミニアプリを安全に構築

著者: Boxu Li at Macaron
はじめに
Macaron AIの最も注目すべき機能の一つは、カスタムミニアプリケーションを瞬時に生成する能力です。通常のチャット中に、ユーザーが家計の追跡や祭りの旅程計画、新しい言語の学習などのニーズを述べると、Macaronは数分で本格的なツールを組み立てます。これらのミニアプリの中には、100,000行以上のコードを超えるものもありながら、人間の介入なしで生成されます。日本と韓国のユーザーにとっては、地元の習慣や規制に合わせたパーソナライズされたツールを受け取ることを意味します。このブログでは、Macaronのミニアプリを支える自律コード合成パイプラインを解剖し、意図の理解、プログラム合成、サンドボックス実行、エラー処理、安全対策をカバーします。システムがどのように複雑さを管理し、外部APIと統合し、地域の法律を尊重し、強化学習からのフィードバックを引き出して出力を改善するかを検証します。
1 自然言語からプログラム仕様へ
1.1 意図の解析とスロット抽出
ユーザーがアプリをリクエストすると、Macaronはまず自然言語入力を解析して構造化された「インテント仕様」を構築します。これには、ドメイン(金融、教育、料理)、希望する機能(予算カテゴリ、アラート)、制約(通貨、言語)、タイムラインなどの「スロット」を特定することが含まれます。日本語や韓国語の場合、パーサーは敬語や省略表現を処理します。例えば、日本語のリクエスト「家計簿を作りたいんだけど、食費を細かく分けて」では、ドメインは「予算管理」、機能は「詳細な食費カテゴリ」、制約は「日本円」となります。韓国語のリクエスト「가족 여행 일정을 계획해줘, 한식 식당 추천도」では、ドメインは「旅行計画」、機能は「レストランの推薦」、文化的制約が得られます。
Macaronは「デュアルエンコーダー」アーキテクチャを使用します。一つのエンコーダーが現在の会話を処理し、もう一つがユーザーの記憶を処理します。この二つのベクトルは注意機構を介して組み合わせられ、統一されたインテント表現が生成されます。強化学習によりパーサーは正しいスロットを抽出するように微調整されます。フィードバックは、結果として得られるミニアプリがユーザーの期待に応えるかどうかから得られ、期待に沿わない場合はパーサーのパラメータが更新されます。
1.2 ドメインライブラリとテンプレートによるプログラム合成
意図が構造化されると、Macaronのシンセシスエンジンは、ドメイン特化型モジュールのライブラリから関数を組み合わせてコードを生成します。モジュールには、予算計画機能(支出の計算、チャートの生成)、スケジュール機能(カレンダー統合、衝突解決)、言語学習アルゴリズム(間隔反復法)、料理支援(材料変換、栄養分析)などがあります。エンジンはモジュールを選択し、設定し、それらをまとめて一つの一貫したプログラムに仕上げます。テンプレートには、モジュール間のデータフローを定義するグラフ構造(DAG)が含まれており、並行処理や非同期操作が可能です。例えば、日本の予算管理アプリでは、月次の要約と週次のアラートタスクを並行して実行することができます。
シンセシスエンジンは、オープンソースコードと独自の例で訓練されたニューラルプログラム合成モデルを使用します。また、シンボリック推論も活用します。「予算を超過しない」などの制約は線形不等式として表現され、制約ソルバーに入力されます。このハイブリッドアプローチは、純粋なニューラル生成と比べて信頼性を向上させます。強化学習はユーザーの満足度とエラー率を監視し、モジュールの選択と順序を調整します。
1.3 ローカライズされた要件と規制の制約
日本および韓国の規制は、金融および個人データの取り扱いに特定の要件を課しています。例えば、日本のプライバシー法は、世帯の会計データを同意なしに第三者に送信できないことを義務付けています。韓国の個人情報保護法は、データの匿名化に厳しい要件を持っています。予算管理ツールを生成する際、Macaronはそのポリシーバインディングルールを参照し、機密データがローカルに保存され、外部サーバーに送信されないようにします。コードジェネレーターは暗号化ライブラリへの呼び出しを挿入し、デフォルトでネットワークアクセスを無効にします。ヘルスケアアプリの場合、MacaronはAIフレームワーク法を参照して、医療ガイダンスに関する決定が人間の監視のもとで行われることを確認します。
2 安全な実行環境

2.1 サンドボックスとリソース制限
オンデマンドで生成された任意のコードを実行することは、重大なセキュリティリスクを伴います。そのため、Macaronでは、現代のコードインタプリタに似たサンドボックス環境でミニアプリを実行します。このサンドボックスは、ファイルシステムへのアクセスを仮想ディレクトリに限定し、CPUとメモリの使用を制限し、明示的に許可されない限りネットワーク接続をブロックします。プログラムは、読み取り専用のベースイメージを持つコンテナ内で実行されます。たとえば、韓国料理アプリが栄養データを取得しようとすると、そのリクエストは許可されたドメインを確認するプロキシを通じてルーティングされます。プログラムが許可なしに外部サイトにアクセスしようとすると、サンドボックスは操作を終了し、ユーザーにエラーメッセージを返します。
2.2 静的解析と型チェック
実行前に、Macaronは合成されたコードに対して静的解析を行い、無限ループや注入攻撃、許可されていないシステムコールなどの脆弱性を検出します。型チェッカーは、モジュールが正しく構成されていることを確認します。例えば、数値を返す関数はテキスト処理モジュールに接続できません。チェッカーはまた、ローカルデータ型への準拠を確認します。たとえば、通貨の値は浮動小数点エラーを避けるために10進数型で表されます。静的解析が失敗した場合、Macaronはリクエストされた機能を簡素化するか、アプリを小さなモジュールに分割することを提案します。
2.3 実行時モニタリングと自動修復
実行中、マカロンはパフォーマンス指標(CPU使用率、メモリフットプリント)、機能的正確性(テストケース、アサーション)、ユーザーインタラクション(クリック、滞在時間)を監視します。プログラムが予想外の動作を示す場合—例えば、時間制限を超えたり例外をスローしたりしたとき—マカロンの自動修復モジュールが介入します。前回の安定状態にロールバックしたり、その場で生成されたパッチを適用したり、機能を優雅に劣化させたりすることがあります。例えば、日本のガーデニングアプリの天気APIが失敗した場合、プログラムはバックアップデータソースに切り替えるか、一時的な障害についてユーザーに通知することができます。
3 強化学習と継続的な改善
3.1 ユーザーフィードバックとタスク成功からの報酬信号
すべてのミニアプリセッションは豊富なフィードバックを提供します。ユーザーはアプリを使い続けることで暗黙的に満足を示したり、体験を明示的に評価したりします。マカロンはこれらの信号を報酬関数に集約し、将来のコード生成を導きます。この報酬は、バグ、混乱を招くインターフェース、遅いパフォーマンスにペナルティを与え、信頼性、文化的適合性、新規性を評価します。時間をかけて、合成エンジンは日本のユーザーがミニマリズムと使いやすさを重視し、韓国のユーザーがカスタマイズオプションと鮮やかなビジュアルを好むことを学びます。これらの好みは、モジュールとユーザーインターフェースパターンを選択する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のローカライズ
文化的な美学はユーザーインターフェースデザインに影響を与えます。日本では、ミニマリズムと余白の尊重が重視されており、マカロンはそのために、微妙な色合いとシンプルなアイコンを日本のユーザー向けに使用しています。韓国のインターフェースはより鮮やかで、アニメーションを含むことができます。マカロンのUIモジュールは、オンボーディング中に決定されるユーザーの好みに基づいて、これらのスタイルを自動的に適応させます。エージェントはまた、文化的な規範に合わせてヘルプメッセージをカスタマイズします。日本のヘルプ画面には状況に応じた説明が含まれることがあり、韓国のヘルプ画面ではステップバイステップの指示が強調されることがあります。
5.3 災害への強靭性と倫理的考慮
日本と韓国は地震や台風などの自然災害に見舞われやすい国です。緊急対応アプリを生成するパーソナルエージェントは信頼できるものでなければなりません。マカロンには、政府の警報システムと統合し、緊急時の指示を最新に保つ災害への強靭性モジュールが含まれています。倫理的には、金融ツールにおける「ダークパターン」のような操作的なデザインを避け、公平性ガイドラインを遵守します。たとえば、レストランを推薦する際には、エージェントは食事制限を考慮し、ユーザーが特定の地域やチェーンに対する好みを示さない限り、特定の地域やチェーンに偏らないようにします。
5.4 ケーススタディ: 花見プランナーとK‑popファンマネージャー
2つのケーススタディは、Macaronのコード合成の力とニュアンスを強調しています。Hanami Plannerは、日本の家族が花見を楽しむためにリクエストした季節限定のアプリです。ユーザーは「桜の見頃と混雑を避けるプランを作って」と依頼します。Macaronは日本の気象APIから天気と開花予測を取得し、過去のデータを照合して近隣の公園の満開日を予測します。そして、複数のモジュールが組み合わされたアプリを合成します:日程をブロックするためのカレンダー予定表、交通と公共交通機関を考慮したルートプランナー、ピクニック用品のための予算トラッカー(家計簿カテゴリを組み込んでいます)、ゴミの処理や公園のルールをユーザーに知らせる文化的エチケットガイドです。強化学習により提案が個別化されます。家族に高齢者がいる場合、アクセスしやすい道のある公園を優先し、子供がいる場合はファミリー向けのアトラクションを推奨します。また、アプリは韓国語や英語しか話せない友人も参加できるようにバイリンガルの招待状を生成し、Macaronのクロスリンガル機能を示しています。
「K‑popファンマネージャー」ケースは、複数の音楽グループをフォローする韓国のユーザーをターゲットにしています。ユーザーは「다음 커백 스케줄과 팬미팅 일정 관리 앱을 만들어줘」(次のカムバックスケジュールとファンミーティングの予定を管理するアプリを作って)と言うかもしれません。エージェントは、エンターテインメント会社のAPIからリリーススケジュールを取得し、チャートアルゴリズムに基づいてストリーミング目標を計算し、カウントダウンウィジェットを表示します。モジュールには、チケット再販のための現地法を確認する「チケット購入アシスタント」、フォトカードを収集する「デジタルスクラップブック」、ファンプロジェクトを調整するための「ソーシャルモジュール」が含まれています。ユーザーに通知を過剰に送信しないように、RL報酬モデルは緊急性(例えば、ファンミーティングのチケットの締め切り)と認知負荷をバランスさせます。ファンが日本の友人と調整する際に、クロスリンガル機能が活躍します:アプリはスケジュールやメッセージを自動的に日本語と英語に翻訳し、メモリタグが言語間でコンテキストを保持します。これらのケーススタディは、マカロンが地元の文化、規制への配慮、技術的洗練をカスタムツールに織り込む能力を示しています。
5.5 技術的課題: 同時実行性、バージョニングおよびデバッグ
大規模なプログラムを即座に生成することは、エンジニアリング上の課題を引き起こします。並行性は、ミニアプリがUIを更新しながらデータを取得するなど、複数のタスクを同時に実行する必要があるときに発生します。Macaronのコードジェネレーターは依存関係を定義する有向非巡回グラフ(DAG)を構築し、非同期プログラミング構造(例:JavaScriptのPromiseやPythonのasyncio)を使用してブロック操作を回避します。Macaronのモジュールライブラリは常に進化しているため、バージョニングが重要になります。生成されたアプリにはモジュールのバージョンを記録するマニフェストファイルが含まれており、更新が利用可能な場合、Macaronはバージョンを比較し、ユーザーにアップグレードするか既知の安定バージョンのままにするかを促します。デバッグはおそらく最も難しい課題で、自動生成されたコードには微妙なバグやエッジケースが含まれることがあります。Macaronはこれに対処するために、プログラムの不変条件をテストするためのランダム化された入力を生成するプロパティベースのテストと、実行パスを探索するシンボリック実行を使用しています。バグが実際に発生した場合、エージェントは匿名化されたエラートレースを収集し、プログラム修復技術を適用して修正を将来の合成に組み込んでいます。これらのエンジニアリングプラクティスにより、ノーコードプログラミングの約束が信頼性が高く、メンテナンスしやすいミニアプリに転換されます。










