iT邦幫忙

2026 iThome 鐵人賽

DAY 14
0
AI Engineering

從單一agent 到多agent 集群的開發流水帳以及應用系列 第 18

Day 14|讓每台機器的 AI 讀一份文件,就知道下一步

  • 分享至 

  • xImage
  •  

紀錄日期:2026-09-07。

前言:設備增加後,先把方向保存下來

一份入口供三種 AI CLI 共用

開發 Spectyn Mesh 的目標,是讓使用者帳號下的設備透過 App 協作,並接入 AI CLI 與子專案能力。目前仍優先交付完整可用的 Mac App。但當 Acer、Z13、AYANEO 和之後的 Linux 小主機開始參與開發,每個新 AI session 都要重新解釋方向、分工和進度,會增加接錯工作與重做的機會。

這次我把要求縮成一句話:「能不能讓各台機器的 AI 只讀一份文件,就知道自己怎樣開始?」我們沿用根目錄 FLEET-PROTOCOL.md,加入 §0「單檔啟動」。新 AI 的第一輪不需要先跳讀一串規劃文件;正式開發時仍須閱讀相關程式與驗收條件。

架構:同一個目標,各設備有明確責任

設備與平台責任圖

設備 預設開發責任 目前限制
M5 MacBook Pro macOS、iOS;既有協調任務 新 session 不自動取得協調權
Acer 筆電 A514-54G Android 主力、Windows 相容性 重型建置分時
ROG Flow Z13 Windows runtime、核心與打包 共用核心修改須具名指派
AYANEO 2 Web App 跑 Windows 不代表接 Windows App 工作
Acer RB102 Linux App U5-115U/16GB/1TB;待 Linux 安裝與環境核驗
M1、手機、平板 M1/手機待命,平板按需驗收 不預设為常駐開發節點

產品要支援手機獨立工作,與手機目前不加入開發隊列,是兩件不同的事。文件把「能跑什麼平台」與「使用者現在願不願意派它工作」分開。設備表來自使用者確認和既有清冊;目前沒有逐台重新量測,因此不把文件分工當成全部設備已在線。

實作:一句提示,完成第一輪報到

辨識、分流、盤點與報到流程

其他機器同步私有專案的 dev/hive-2026-08-14 分支後,在 Claude Code、Codex 或 agy 貼上:

讀取專案根目錄 FLEET-PROTOCOL.md,依 §0「單檔啟動」辨識本機並完成第一輪。

AI 會先讀 Git 來源、HEAD、dirty 狀態、主機名與硬體型號,再依平台盤點必要工具。第一包是最多十分鐘的唯讀 READINESS:不自動安装、不啟服務、不開模擬器,也不向每個 AI 發送付費測試問題。工具存在、帳號已登入、還有額度,分別記錄;讀不到就寫 unknown。

完成後回覆 HELLO,列出節點、session、平台、來源版本、缺少的工具與下一步。M1/手機回待命;主機名和型號衝突則回報衝突。本機實測也發現 M5 的主機名和舊紀錄不同,促使我們避免只靠一個舊 alias 就決定任務。

開發流程:報到之後,還要核對正式工作包

工作包核對、開發與交接流程

目前 HELLO 由使用者轉交給 M5 協調任務,協調者再給具名 ASSIGN。工作包要寫清楚節點、session、coordinator/assignment epoch、code base SHA、可改路徑、依賴、驗收與額度槽。這些欄位讓接手者知道「這是不是我的工作、我拿的是哪一版、可以改到哪裡」。

初期全艦最多兩個 AI 寫手,每個 provider 帳號預設一個工作槽,review 也算在內。同一 checkout 只有一個寫手。額度不足時先保留 tracked 與 untracked,記錄 HANDOFF;失聯不代表已停止,不能只因超時就把有副作用的工作重新派出去。

接下來第一個程式切片是唯讀工作包檢查:將錯節點、錯平台、過期 epoch 與錯誤來源變成可重現的拒絕結果。它本身不取得鎖、不發動 CLI、不操作遠端分支,仍需後續競態測試與 runner 接線才能談自動派工。

證據與下一步:把完成的範圍寫準確

已完成與待驗證範圍圖表

項目 可查證的結果 能證明什麼
共用上線文件 commit 44445f28;已核對遠端分支 SHA 其他機器可同步文件
Claude/Codex/agy 入口 指向同一個 §0;唯讀 hook 實跑 上線指引已一致
七種上線情境 前輪四個 AI 均 APPROVE 文件可被正確理解,非遠端實機驗收
JSON/連結/hook 前輪五份 JSON 可解析、連結與 shell 語法檢查通過 文件與入口的基本檢查通過
自動頻道與 runner 未啟用 目前仍由使用者轉交訊息
完整 Mac App goal 尚未完成 本文不以文件成果代替產品驗收

七種情境涵蓋 Acer 無工作包、AYANEO 跑 Windows、M1 待命、RB102 尚未裝 Linux、M5 身分、主機名與型號衝突,以及額度停止且有未追蹤檔案的既有工作。舊 fleet v2 指令已封存,避免整份文件讀取時重新引入舊 loop。

後續依序完成唯讀工作包核對、在本機隔離 Git 靶場驗證競爭與過期工作包,再評估接入有界 runner;Mac App 的 MAC-01–08 驗收繼續依唯一 roadmap 推進。開發步驟會寫回本篇和交接文件,不另外建立另一份產品計畫。

本日開發紀錄

  • 已實作 assignment_check.py,並接入 backlog.sh check-assignment 的獨立唯讀入口;12 項隔離 Git 回歸測試通過(exit 0)。包含工作包竄改、節點/平台錯配、既有任務/槽位占用、dirty 保存、scope 越界與「檢查不修改檔案」;無 remote 的測試仍可完成,未建立 claim。
  • agy 與 OpenCode 對程式、測試及文章均 APPROVE。受審程式未在審查後修改;文章此處僅補實跑结果。此通過不代表 Windows/Linux 原生實測或多寫手互斥已完成。
  • 回歸命令:python3 -m unittest discover -s scripts/dev-cluster -p test_assignment_check.py -v。首輪測試曾因模組尚未建立而無法載入,不計為產品行為的紅證;實作後 11 項通過,加入既有任務/槽位測試後為 12 項通過。
  • 本轮新增內容保留本機,尚未 commit/push。前表 44445f28 只指前輪已發布文件,不包含本輪 Python 工具或 Day 14 新稿。
  • 本輪 Codex CLI 設計複核因本機 CLI 版本不支援其設定模型而失敗,未計為通過;改由其他可用工具做有界獨立審查。

上一篇
Day 13:手機也是工作節點:先修正 Spectyn 的目標與驗收
系列文
從單一agent 到多agent 集群的開發流水帳以及應用18
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言