Archify 開源架構圖工具,把程式碼庫編譯成可互動的系統圖

Archify 是掛在 Claude Code、Codex 與 Cursor 上的開源架構圖 Skill:模型寫 JSON 規格,它負責九道檢查與原子交付,產出可互動的自包含 HTML。實測它的驗證回報與修復診斷,並攤開它驗得了形式、驗不了內容的邊界。

用 AI 摘要這篇文章:

大多數讓 AI 畫架構圖的做法,最後都卡在同一個地方:模型吐給你一張看起來很完整的圖,但你沒有辦法知道它哪裡漏了、哪裡連錯了。我把 Archify 抓下來、在本機跑完它附帶的驗證器之後的判斷是:這個專案真正有價值的部分不在畫圖,在驗收。它把架構圖變成一種編譯目標,模型只負責寫出一份帶型別的 JSON 規格,剩下的布局、連線與成品檢查全部交給確定性的程式把關。

這個分工換來的保證很具體,但邊界也很具體:它驗得了圖的形式,驗不了圖的內容。這篇就把兩邊都攤開來看。

它不是畫圖軟體,是掛在 Agent 上的編譯器

Archify 是一個開源(MIT)的 Node.js 渲染與驗證系統,安裝方式一行指令:

npx skills add tt-a1i/archify -g

裝好之後它會進到 Claude Code、Codex CLI、Cursor 或 OpenCode 的 Skill 目錄。你對著 Agent 說「讀這個倉庫,畫一張這個系統的架構圖」,讀程式碼、判斷有哪些服務與呼叫關係的是宿主 Agent 背後的模型;接手的是 Archify 的工具鏈:模型把圖寫成一份有 schema 約束的 JSON 規格,Archify 檢查這份規格、算出布局、渲染成一個自包含的 HTML 檔案。它本身不含模型,所以模型服務的費用照舊由你的 Agent 訂閱或 API 額度吸收。

專案在 2026 年 4 月中建立,到查證當天是 42,191 顆星、2,689 個 fork,最近一次提交就在同一天,開發版走到 2.17.0。支援五種圖:架構圖、工作流圖、時序圖、資料流圖與生命週期圖,從 CI 流程、API 呼叫順序到資料血緣都各有對應的表達方式。不確定該用哪種時,CLI 附了一個 guide 指令,用一句白話描述場景它就回你建議的圖種。

Skill 本身的行為契約也值得看一眼,因為它直接約束你的 Agent 怎麼做事:模型被要求先讀對應的 schema 與一份範例、立刻寫出候選規格、每改一次就重新驗證,主要節點建議壓在 12 個以內,預設走最嚴的 showcase 品質檔。它甚至禁止模型在第一次嘗試前就去翻渲染器的內部程式碼,避免把力氣花在探索而非產出上。這種把「怎麼用工具」寫成硬規則的做法,比多數只給一段簡介的 Skill 紮實得多。

它對 Mermaid 的態度也是同一個邏輯:貼一段 Mermaid 給它,它會請模型讀懂語意後重新寫成自己的 JSON 規格,並沒有做自動解析器。反過來也一樣,它明確不做的還有通用自動布局、線上託管分享與所見即所得編輯。

實測:一份合格的規格進去,檢查報告長這樣

我把倉庫 clone 到本機(macOS、Node 26.7.0)先跑它的自檢指令 doctor,十五項全綠。接著拿它內建的範例規格走完整流程。

第一步是驗證。validate 指令配上 --quality showcase --json 之後回的是一份機器可讀的 JSON 報告:九項檢查全數通過,零錯誤零警告,而且每一項都有實測數字,例如連線交叉 0 次、模糊走廊 0 處、標籤與線距的最小淨空 20px、單一連線最多 3 個轉折。這些數字都是量出來的,沒有形容詞的空間。

第二步是交付。deliver 指令同樣回一份 JSON:規格檔的 SHA-256、成品的 SHA-256、雙方的位元組數都列在裡面,實際產出是一個 715,216 bytes 的 HTML 檔案。交付的行為也講究:候選成品必須通過全部檢查才會原子性地替換目標檔,失敗時上一版完好如初。

我把成品拿去瀏覽器實際操作了一輪。打開不需要伺服器或任何 runtime,線上開啟時唯一的外連是向 Google Fonts 抓等寬字型,離線就退回系統字型,不影響圖本身。工具列上有深淺主題切換與匯出選單,可以存 PNG、SVG 或 WebM 動畫,還有一個專門做 1200×630 分享卡的選項,方便直接放進 README 或社群貼文。鍵盤按 / 能搜尋並聚焦節點,按 R 做路徑探查,我實測從使用者節點探到資料庫,畫面上會把那條有向路徑單獨亮起來,其餘連線淡掉,另有上下游擴散、角色對照與簡報模式。圖例會自動標記每種節點類型與數量,安全群組邊界用虛線框畫出來,整張圖的語意是可讀的。

Archify 產生的互動架構圖成品,深色主題下呈現節點連線與虛線信任邊界Pin
Archify 交付的自包含 HTML 架構圖,瀏覽器直接開啟即可互動。

故意把規格弄壞,看它怎麼報錯

驗收系統的成色要看失敗路徑,所以我動了手腳:把範例規格裡的 quality_profile 欄位改錯一個字母,再把一條連線指向不存在的節點,重新跑驗證。

回來的診斷直接是一個結構化的 JSON 物件,看不到半行 stack trace:錯誤代碼 schema/enum、嚴重度、精確到 /meta/quality_profile 的欄位路徑、允許值的清單,以及一個 supportedFixes 欄位直接告訴你怎麼修。把錯字修回來、再跑一次,第二層檢查接著抓到我動的另一處手腳:連線 HTTPS 引用了不存在的目標節點,這次回的代碼是 layout/constraint,訊息直接寫出哪條連線、引用了哪個名字,雖然 supportedFixes 是空的,修正方向也一目瞭然。這個設計的受益者是模型:Agent 拿到診斷後知道要改哪個欄位,不需要整張圖重畫。Skill 的行為契約也寫得很節制,限制模型只做兩輪聚焦修正,兩輪沒有改善就停下來,把沒解決的診斷如實回報給你,修不動就承認修不動。

反覆調圖的情境它另外給了一個預覽迴圈:preview 指令會在本機開一個只綁 127.0.0.1 的桌面視窗,盯著同一份 JSON 規格,只有最新候選通過全部檢查才刷新畫面,存檔存到一半或規格無效時,上一張驗證過的圖會繼續留在螢幕上。對「邊改邊看」的人來說,這比每次存檔就閃一次白畫面或壞圖踏實。

驗收閘門的死角:圖的內容是誰說了算

這是最值得想清楚的一層。九項檢查驗的是形式:schema 合法、布局不重疊、連線不亂穿、標籤不壓線。至於圖裡畫的服務有沒有漏、呼叫方向有沒有搞反,檢查器不知道,因為它沒有讀你的程式碼,讀程式碼的是模型。

專案自己對這條邊界的認知寫得相當白話。倉庫裡附了一個叫 ordinary-model-floor 的基準測試,問題定義得很窄:一個普通等級的 coding agent 能不能在第一次嘗試就產出可用的圖,中間不需要人來修 JSON。它的通過條件有三道閘:語意需求都在而且連對、真實 CLI 的 showcase 驗證通過、再加上一位具名審查者看過成品並回報無缺陷。開頭就寫明「渲染合格但語意錯誤的圖算失敗」,等於承認確定性驗證蓋不到語意層,而這一層最後仍然要人看。把基準測試當作產品自我要求的證據看,比把它當排行榜看更準確,倉庫也明說參考素材不可當成模型成績發布。

它給的補救機制是選配的證據節點:節點可以標上來源編號,讀者點開會連到釘在某個公開 commit 上的檔案與行號。這是語意層唯一的錨點,原始碼裡有實作也附了測試,我這次的流程沒有走到它。另外有一個我實際跑過的功能值得記:架構圖支援快照比較,拿兩份都通過驗證的規格去跑 compare,會產出前版、差異、後版三段式的對照成品,新增、移除、改動與改道的連線各有標記與統計,適合放進 code review 或交接文件,讓「這次改動動了哪些線」變成可核對的事實清單。對照圖一樣是自包含 HTML,分享時寄一個檔案就夠。

Archify 架構圖快照比較畫面,以標記呈現新增移除與改動的連線Pin
快照比較產生前版、差異、後版三段對照,改動各有標記。

連網一筆,授權兩層

隱私方面我讀了它的更新檢查程式碼。整個工具的例行連網只有一筆:對自家 GitHub Pages 上的穩定版清單發一次 GET,成功後 72 小時內不再問,失敗就 6 小時、24 小時後再試,回應超過 32KB 或一秒內沒有回應都直接放棄。請求不帶版本號、Agent 名稱或專案資料,伺服器只看得到一般 HTTP 中繼資訊。想完全斷網也行,環境變數 ARCHIFY_UPDATE_CHECK_DISABLED=1 設下去就停,這個開關就寫在檢查程式第 1637 行,不需要動任何檔案。檢查的結果也只是提醒:有新版時在對話裡顯示一段固定文字,裝好的版本原封不動,要不要更新完全由你決定,它從不自動下載或安裝。Skill 契約還要求檢查失敗時不對使用者提起,避免無意義的雜訊。你的程式碼會不會出機器,取決於宿主 Agent 與模型服務,Archify 自己不傳內容。

授權方面則是兩層故事。第一層是血統:LICENSE 同時保留 2026 年 Archify 與 2025 年 Cocoon AI 兩行版權宣告,Skill 的 metadata 也記明它基於 Cocoon-AI 的 architecture-diagram-generator(MIT,v1.0)改作而來。上游專案 7,108 顆星,2026 年 5 月之後就凍結了,衍生作四個半月衝到六倍星數,動能完全在這一邊,原始碼從 2.0 起算、不帶上游歷史,要看血統得回上游倉庫。第二層是商標:它內建一百多個品牌圖示(取自釘版的 Simple Icons 16.28.0),第三方聲明檔逐一記錄來源與授權,其中 Vue 的圖示是 CC BY-NC-SA,帶非商業條款。換句話說,拿它產的圖去畫公司對外文件時,圖裡用到哪些品牌標,商業使用的許可要自己再確認。這份聲明檔是 2026 年 9 月初才補進配送包的,同週的提交還包括把兩組查不到轉載授權的 Mermaid 輸入整組移除,打包流程也被改成缺少授權聲明就直接建置失敗。合規動作做得確實,但也說明這些邊界是最近才被系統性補齊的,早一步採用的使用者拿到的配送包內容不太一樣。

集中限制

介面語言是台灣讀者會先撞到的一條:圖檢視器的介面只有英文與簡體中文兩種(meta.localezh-CN),沒有繁中選項。圖的內容文字不受影響,你用繁中寫節點與標籤就會是繁中,只是工具列與圖例會是英或簡。

其餘照重要性列:Claude.ai 網頁版要上傳 zip 檔當 Skill,但完整渲染與驗證取決於沙盒有沒有給 Node.js,穩定使用還是以 CLI 類 Agent 為準;程式碼改了之後圖不會自動同步,要重新請 Agent 生成,快照比較是補這個痛點的工具;主要維護者是一人(166 次提交),贊助欄掛著 API 轉售商的推薦連結與一家做 Agent 記憶基礎設施的公司,聯絡信箱是 QQ 郵箱,長期依賴要把單人風險計入;版本推進很快,查證當時是開發版 2.17.0,隔週的功能與指令口徑就可能變動。

判斷

如果你已經天天在 Claude Code 或 Codex 裡工作,而且定期要產出給人看的架構圖、時序圖或資料流圖,Archify 值得裝。它把「模型畫圖」這件最不可靠的事,包進一個會驗收、會報錯、會留檔案的編譯流程裡,九項檢查與 SHA-256 交付紀錄讓成品可以重現也可以追。使用 Skill 掛進 Claude Code 的另一個實例,可以參考我們之前實測的倉頡 Skill

反過來,如果你要的是拖拽畫布、滑鼠微調版面,或是團隊線上白板,它現在明確不做這些,往對話式 draw.io 類工具找會更順手;如果只是偶爾畫一張簡單流程圖,直接叫模型寫 Mermaid 再自己目測,成本低得多。至於模型成本怎麼拿捏,可以一併參考我們整理的AI coding 訂閱方案比較

最後回到那句判斷:它賣的是驗收。裝了它,你的架構圖至少在形式上有人把關;內容的真,永遠還是讀程式碼的那個模型說了算,而這一點,記得留給自己最後一眼。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 1065

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...