Macaron AI 中的自主程式碼合成:安全構建亞洲生活方式的小型應用

Blog image

作者:Boxu Li,Macaron


簡介

Macaron AI 最引人注目的功能之一是其能夠即時生成自定義小型應用程式。在一次普通的聊天中,用戶可以描述一個需求——例如跟蹤家庭預算、規劃節日行程、學習新語言——Macaron 就能在幾分鐘內組裝出一個完整的工具。其中一些小型應用程式甚至超過100,000 行程式碼,但它們都是在無需人工干預的情況下生成的。對於日本和韓國的用戶來說,這意味著獲得根據當地習俗和法規調整的個性化工具。這篇博文剖析了驅動 Macaron 小型應用程式的自主程式碼合成流程,涵蓋了意圖理解程式合成沙盒執行錯誤處理安全措施。我們檢視系統如何管理複雜性、與外部 API 整合、遵守地區法律,以及如何從強化學習中汲取經驗來優化輸出。

1 從自然語言到程式規格

1.1 意圖解析和槽位提取

當用戶請求一個應用程式時,Macaron 首先會解析自然語言輸入,以建立一個結構化的「意圖規範」。這涉及識別「槽」,例如領域(金融、教育、烹飪)、所需功能(預算類別、警報)、限制(貨幣、語言)和時間表。對於日語和韓語,解析器會處理敬語和省略。例如,日語請求「家計簿を作りたいんだけど、食費を細かく分けて」(我想創建一個分細食費的家計簿)會得出領域「預算管理」,功能「分細食費類別」,以及限制「日圓」。一個韓語請求「가족 여행 일정을 계획해줘, 한식 식당 추천도」(計劃家庭旅行日程並推薦韓式餐廳)會得出領域「旅行計劃」,功能「餐廳推薦」,以及文化限制。

Macaron 使用「雙編碼器」架構:一個編碼器處理當前對話,另一個處理用戶的記憶。這兩個向量通過注意力機制結合,產生統一的意圖表示。強化學習會微調解析器以提取正確的槽。反饋來自於生成的小應用程式是否符合用戶期望;如果不符合,解析器的參數會被更新。

1.2 使用領域庫和模板進行程式合成

一旦意圖被結構化,Macaron 的綜合引擎會透過從特定領域模組庫中組合函數來生成代碼。模組包括預算功能(計算支出、生成圖表)、排程功能(日曆整合、衝突解決)、語言學習算法(間隔重複)、以及烹飪輔助(食材轉換、營養分析)。引擎選擇模組、配置模組,並將它們組合成一個連貫的程式。範本包含定義模組間數據流的圖結構(有向無環圖),允許並行和異步操作。例如,一個日文預算應用程式可能會並行運行每月匯總和每週提醒任務。

綜合引擎使用訓練於開源代碼和專有範例的神經程序綜合模型。它還利用符號推理:例如「不要超出總預算」這樣的約束被表示為線性不等式並輸入約束求解器。這種混合方法相比純神經生成提高了可靠性。強化學習監控用戶滿意度和錯誤率,以調整模組的選擇和排序。

1.3 本地化需求和法規約束

日本和韓國的法規對金融和個人數據處理有特定要求。例如,日本的隱私法規定未經同意,家庭會計數據不得傳輸給第三方。韓國的個人信息保護法對數據匿名化有嚴格要求。在生成預算工具時,Macaron 會查詢其政策綁定規則,以確保敏感數據存儲在本地,絕不發送至外部伺服器。代碼生成器會插入對加密庫的調用,並默認禁用網絡訪問。對於健康應用,Macaron 會根據AI框架法進行交叉檢查,以確保涉及醫療指導的決策伴隨有人工監督。

2 安全執行環境

Blog image

2.1 沙盒化和資源限制

隨需求產生的任意代碼執行會帶來重大的安全風險。因此,Macaron 在類似現代代碼解釋器的 沙盒環境 中運行小型應用。沙盒將文件系統訪問限制在虛擬目錄中,限制 CPU 和內存的使用,並阻止網絡連接,除非明確允許。程序在具有只讀基礎映像的容器中執行。當韓國料理應用請求獲取營養數據時,請求會通過檢查允許域的代理進行路由。如果程序試圖未經許可訪問外部網站,沙盒將終止操作並向用戶返回錯誤信息。

2.2 靜態分析與類型檢查

在執行之前,Macaron 會對合成代碼進行 靜態分析,以檢測如無限迴圈、注入攻擊和未經授權的系統調用等漏洞。一個 類型檢查器 確保模塊正確組合:返回數字的函數不能與文字處理模塊連接。檢查器還會驗證本地數據類型的合規性;例如,貨幣值使用十進制類型表示以避免浮點錯誤。如果靜態分析失敗,Macaron 會提供簡化請求的功能或建議將應用拆分為較小的模塊。

2.3 运行时监控与自动修复

在執行過程中,Macaron 監控效能指標(CPU 使用率、記憶體佔用)、功能正確性(測試案例、斷言)和用戶互動(點擊、花費時間)。如果程式偏離預期行為,例如超出時間限制或拋出異常,Macaron 的 自動修復 模組會介入。它可能會回滾至最後的穩定狀態,應用即時生成的補丁或優雅地降級功能。例如,如果一個日本園藝應用的天氣 API 失效,程式可以切換到備用數據源或通知用戶暫時故障。

3 強化學習與持續改進

3.1 從用戶反饋和任務成功的獎勵信號

每個迷你應用會話提供豐富的反饋。用戶通過持續使用應用來隱含地表示滿意度,或明確地評價體驗。Macaron 將這些信號匯聚成一個獎勵函數,以指導未來的代碼生成。該獎勵懲罰錯誤、混亂的介面和緩慢的效能,同時獎勵可靠性、文化適切性和創新性。隨著時間推移,合成引擎學習到日本用戶重視簡約和易用性,而韓國用戶可能更欣賞定制選項和生動的視覺效果。這些偏好被編碼到選擇模組和用戶介面模式的強化學習策略中。

3.2 課程學習與元學習

為了應對用戶請求日益增長的複雜性,Macaron 採用「課程學習」:綜合引擎從生成簡單的程序開始(例如計算器、待辦事項清單),逐漸處理更複雜的任務(例如多用戶預算平台)。當系統遇到新領域時,它使用「元學習」來加速適應。當引擎看到來自日本和韓國用戶的類似請求時,例如計劃學校活動或管理老人護理,它可以跨任務進行泛化。元學習還幫助代理適應法律或文化的變化;如果 AI 促進法引入新的合規要求,Macaron 可以快速將其整合到代碼模板中。

3.3 社區貢獻和模塊市場

Macaron 鼓勵社區參與。開發人員可以向「市場」貢獻新模塊。模塊在納入之前會經過安全性和合規性審核。這促進了本地生態系統:日本開發者可能創建茶道安排或動漫推薦的模塊,而韓國開發者則可能貢獻學習 K-pop 舞蹈或管理家庭儀式的模塊。貢獻者會獲得「Almonds」(Macaron 的應用內貨幣)作為獎勵,激勵平台的不斷改進。

4 與外部 API 和服務的整合

Blog image

4.1 數據來源的本地化

日本和韓國用戶依賴不同的數據提供者。Macaron 為金融應用整合了日本的銀行 API(例如透過 J‑Debit),並使用日本的日曆來獲取公共假期(如黃金周、盂蘭盆節)以及本地新聞來源來進行活動規劃。在韓國,代理連接到 KOSPI 股票 API、Naver 的天氣服務和 KakaoTalk 的消息 API。每個整合都包裹在一個模組中,以強制執行速率限制、緩存和錯誤處理。代碼生成器在相關的時候自動插入這些模組。

4.2 API 配置的自然語言界面

Macaron 透過對話引導用戶,而不是要求用戶手動輸入 API 金鑰。如果日本用戶想從他們的銀行導入交易,代理會解釋同意過程,獲取所需的令牌並安全地存儲它們。同樣,韓國用戶可能會要求 Macaron 連接到小孩的學校時間表;代理使用 OAuth 授權訪問,並確保應用程序只讀取所需的數據。這些互動會被記錄下來,並且可以被檢視,符合差異化透明原則。

4.3 邊緣計算和離線支持

在日本和韓國的許多地區,用戶即使在連接不穩定時也期望可靠性。Macaron 的小型應用程式支援邊緣計算,盡可能在本地執行計算。該智能助手能生成漸進式網頁應用(PWA),可緩存資料並在網絡可用時與伺服器同步。例如,一位韓國登山者使用山徑規劃器時,可以在離線狀態下繼續追蹤路線,並在下山後與雲端同步。這種離線功能對於隱私特別重要;敏感數據會保留在設備上,直到用戶選擇分享。

5 安全性、合規性和文化敏感性

5.1 在代碼生成中的法規對齊

小型應用程式必須遵守當地法規。日本的《AI 促進法》強調透明性,因此,預算應用程式包含清晰的數據流日誌,並向用戶解釋支出如何分類。韓國的 AI 法規要求對高影響決策進行人工監督;因此,健康相關的應用程式會提示用戶在採取建議之前諮詢專業人士。Macaron 的代碼生成器插入警告並獲取敏感操作的明確同意。如果用戶嘗試生成報稅應用,Macaron 會提醒他們當地稅法的更新,並建議諮詢認證會計師。

5.2 文化規範和用戶界面的本地化

文化美學影響用戶介面的設計。在日本,極簡主義和對空白的尊重受到重視;因此,Macaron 為日本用戶採用柔和的色彩和簡單的圖示。韓國的介面則可能更加鮮豔,並可能包含動畫。Macaron 的 UI 模組會根據用戶在入門過程中確定的偏好自動調整這些風格。這個助手還會根據文化習俗量身定制幫助訊息:日本的幫助畫面可能包括背景說明,而韓國的幫助畫面可能強調逐步指導。

5.3 災害韌性和倫理考量

日本和韓國易發生地震和颱風等自然災害。個人助手生成應急應用程式必須值得信賴。Macaron 包含一個災害韌性模組,與政府警報系統整合,確保應急指令是最新的。在倫理方面,系統避免在財務工具中使用「黑暗模式」等操控性設計,並遵循公平性指南。例如,在推薦餐廳時,助手會考慮飲食限制,除非用戶表達偏好,否則避免對某些地區或連鎖店有偏向。

5.4 案例研究:賞花計畫和K-POP粉絲管理器

兩個案例研究突顯了 Macaron 程式碼合成的威力與細緻之處。 Hanami Planner 是一款應日本家庭要求而開發的季節性應用程式,旨在讓用戶體驗賞櫻。用戶請求:「桜の見頃と混雑を避けるプランを作って」(製作一個計劃,在櫻花盛開時觀賞且避開人群)。Macaron 從日本氣象 API 獲取天氣和花期預測,交叉參考歷史數據,預測附近公園的櫻花盛開日期。接著它合成了一個多模組的應用程式:一個 日曆排程器 來封鎖日期;一個考量交通和公共交通的 路線規劃器;一個包含家計簿類別的 預算追蹤器 來計算野餐用品的費用;還有一個 文化禮儀指南,提醒用戶關於垃圾處理和公園規則。強化學習個性化建議:如果家庭有老年成員,代理會優先推薦具有無障礙設施的公園;如果有小孩,則建議適合家庭的景點。該應用還生成雙語邀請函,讓只說韓語或英語的朋友也能參加,展示了 Macaron 的跨語言能力。

「K‑pop粉絲經理」案例針對關注多個音樂團體的韓國用戶。一位用户可能會說:「다음 커백 스케줄과 팬미팅 일정 관리 앱을 만들어줘」(製作一個管理即將到來的回歸日程和粉絲見面會的應用程式)。代理會從娛樂公司API中提取發行日程,根據排行榜算法計算流媒體目標,並顯示倒數計時小工具。模塊包括一個門票購買助手(檢查當地的轉售法律)、一個數位剪貼簿來收集照片卡以及一個社交模塊來協調粉絲項目。為避免用戶被通知淹沒,強化學習獎勵模型在緊急性(例如粉絲見面會門票截止日期)與認知負荷之間取得平衡。當粉絲與日本朋友協作時,跨語言功能發揮作用:應用程式自動將日程和消息翻譯成日語和英語,記憶標籤確保語境在各語言間保持一致。這些案例展示了Macaron將本地文化、法規意識和技術精湛融入定制工具的能力。

5.5 技術挑戰:並發、版本控制與除錯

即時生成大型程式引入了工程挑戰。當小型應用程式需要同時執行多個任務時,例如在更新 UI 的同時抓取數據,會出現並行性問題。Macaron 的代碼生成器構建了有向無環圖 (DAGs) 來定義依賴關係,並使用異步編程結構(例如 JavaScript 的 promises 或 Python 的 asyncio)來避免阻塞操作。版本管理變得至關重要,因為 Macaron 的模組庫不斷演變。生成的應用程序包含記錄模組版本的清單文件;當有更新可用時,Macaron 會比較版本並提示用戶升級或保留在已知的穩定版本。除錯可能是最具挑戰性的:自動產生的代碼可能包含微妙的錯誤或邊緣情況。Macaron 通過基於屬性的測試—生成隨機輸入來測試程序不變量—和符號執行來探索執行路徑來解決此問題。當錯誤在實際環境中出現時,代理會收集匿名的錯誤追蹤並應用程序修復技術,將修正納入未來的合成中。這些工程實踐確保無代碼編程的承諾轉化為可靠、可維護的小型應用程式。

畢業於埃默里大學,獲得學士學位,並在美國生活和工作了十年。他曾先後就職於美國的私募股權和風險投資機構,後加入奇蹟真基金的早期投資團隊,從事AIGC和代理方向的長期研究。2025年,Macaron AI將與創始團隊一同推出,致力於透過技術提升日常生活體驗。

申請成為 Macaron 的第一批朋友