案例:OpenCode 核心 CLI

用 graphify 分析「我們正在用來建站的工具」本身
來源:anomalyco/opencode · packages/opencode · 版本釘選 opencode@1.18.15 @ fe82a1b6 · 分析日期 2026-08-08

案例簡介

這是本站的旗艦案例。我們用 graphify 分析了 OpenCode(開源 AI 程式碼代理,194K+ stars)的核心套件 packages/opencode——也就是「我們正在用 OpenCode 建這個 graphify 教學站」這件事的 meta 版本。

語料:packages/opencode/src363 個 TypeScript 檔(docstring、規格、測試以外的核心原始碼)。TypeScript 是程式碼,所以 --code-only 就能全程在本機用 tree-sitter 解析,不需要任何 API key

我們怎麼跑的

# 1. 淺 clone + sparse checkout(只抓需要的套件)
git clone --depth 1 --branch dev --filter=blob:none --sparse \
  https://github.com/anomalyco/opencode.git
git sparse-checkout set packages/opencode

# 2. code-only 抽取(零 API key,純本機 AST)
graphify extract packages/opencode/src --code-only

# 3. 分群 + 生成報告與互動圖
graphify cluster-only .
版本釘選:本次分析對齊 dev 分支 commit fe82a1b6,套件版本 opencode@1.18.15,分析日期 2026-08-08。OpenCode 是活躍開發的專案,數據會隨版本演進而變。

互動知識圖譜

以下為本次分析的真實產出——3903 個節點,可以直接拖曳、搜尋、點節點看資訊。節點名稱是程式識別符,兩版皆保留英文;僅 UI 界面中文化。

OpenCode 核心 CLI 知識圖譜(中文界面) 開新分頁 ↗ 英文版 ↗

我們的數字

指標本站結果
節點數3903
邊數8701
社群數159
EXTRACTED 邊98%
INFERRED 邊2%

0 個 token 成本(純 AST 抽取)。INFERRED 平均信賴 0.62。

God Nodes 解說

  1. RunFooter — 66 條邊
  2. Filesystem — 50 條邊
  3. InstanceState — 44 條邊
  4. SessionID — 43 條邊
  5. reduceSessionData() — 39 條邊
  6. Config — 39 條邊
  7. createLayer() — 38 條邊
  8. Session — 34 條邊
  9. EventV2Bridge — 31 條邊
  10. Provider — 31 條邊

高度合理的 god nodes:Session / InstanceState / SessionID 是 agent 對話狀態的核心;Config 是設定樞紐;Provider 是模型供應商抽象;Filesystem 是檔案系統抽象。RunFooter 度數最高,是 TUI 畫面底部組件的結構樞紐。

Surprising Connections 解說

最有意思的推論邊(全部 INFERRED,平均信賴 0.62):

這些 indirect_call 邊的價值在於:它們是 graphify 的跨檔解析(第二遍)從 AST 推出的,不需要讀原始檔——「用圖取代 grep」的最佳示範。

社群樣貌

159 個社群。最大的社群(76 節點)以 session/prompt.ts 為 hub(agent 的 prompt 組裝層),其次 run/types.ts(執行類型)。TUI、provider、httpapi 各自形成獨立社群——架構分層清楚可見。

重現

# 依上述步驟即可完全重現。產出對照:
# worked/opencode/graph.html(互動圖)· GRAPH_REPORT.md(報告)
graphify benchmark worked/opencode/graph.json  # 若想量 token 節省