他把一個橫跨40幾個檔案的大型重構任務丟給AI代理,想說這次應該能省下不少時間
Muse Code是Meta最新推出的一款終端編碼代理(terminal coding agent)一個直接在你電腦的命令列(黑底白字那種視窗)裡工作的AI助手,可以自己讀程式、寫程式、跑測試,不需要你手把手一行一行教它,背後由最新模型Muse Spark 1.2驅動。它鎖定的不是『幫你補完一行程式碼』這種小忙,而是敢接下橫跨整個專案、要規劃、要動手改、還要驗證結果的大型軟體工程任務。
這篇文章最值得工程師學的,是它的『系統設計』而不只是模型多聰明。Muse Code採用『一個主代理+一群背景子代理(background subagent)整個工作階段都常駐待命的AI助手,不用每次任務都重新自我介紹、重新蒐集資訊,能直接接手做事』的架構:這些子代理不是每次要用才臨時叫出來,而是從session一開始就常駐在線,自己判斷什麼時候該回報進度給主代理,藉此減少重複溝通、加快處理困難的多步驟任務。
更關鍵的是它怎麼『扛得住當機』:每一次模型呼叫、工具執行、人類核准、程式碼編輯,都會被寫進本機一本事件日誌(event log)把每個動作依照時間順序寫進去的流水帳,存在硬碟上,即使程式當機或電腦重開機也不會消失。這本日誌是整個系統唯一可信的紀錄,讓runtime可以做到斷點續跑(replay-exact/restart-safe)當機或中斷之後不用從頭開始,而是根據完整的操作紀錄,精準回到中斷的那一步接著做——就算任務跑到一半斷線,重開之後也能接著做,不會前功盡棄。
| 比較面向 | 傳統單次呼叫式AI助手 | Muse Code常駐子代理 |
|---|---|---|
| 當機或中斷後怎麼辦 | 進度多半消失,得重新輸入需求、重新蒐集資訊 | 讀事件日誌,精準接續到中斷的那一步 |
| 多步驟任務中的助手角色 | 每次呼叫都要重新自我介紹情境 | 背景子代理全程常駐,直接接手不用重講一次 |
| 模型與操作工具的關係 | 模型與工具各自訓練,再湊在一起用 | 模型與工具共同訓練(co-training)把AI模型和操作它的工具綁在一起訓練,讓兩者搭配使用時發揮最好效果,而不是各自訓練好之後才勉強湊在一起,搭配效果最佳化 |
這段程式碼示範Muse Code文章裡講的『事件日誌』設計精神:不是用一個資料庫欄位記錄『目前進度』,而是把每個動作都append(附加)進一份日誌,當機重啟後靠『重新讀一次日誌』來精準知道自己做到哪、接下來該做什麼。
import json, osLOG_FILE = 'events.log'def append_event(event): with open(LOG_FILE, 'a', encoding='utf-8') as f: f.write(json.dumps(event, ensure_ascii=False) + '\n')def replay_events(): if not os.path.exists(LOG_FILE): return [] with open(LOG_FILE, 'r', encoding='utf-8') as f: return [json.loads(line) for line in f]def resume_task(): events = replay_events() last_step = events[-1]['step'] if events else 0 print('從第 ' + str(last_step) + ' 步接續,不用從頭開始') return last_step