讓 AI 讀懂你的系統
Knowledge Graph × Agent-First 實戰 —— 把 repo、文件、需求,建成一張可查詢的地圖。
掃描取得講義
Neo Hsu
graphify · Knowledge Graph Workshop
01
講者介紹
目前從事 OT/工控資安領域的產品開發
近年專注於 Agentic Coding 與 AI 輔助軟體工程, 持續探索如何將 AI 納入可驗證、可治理且可規模化的軟體開發流程
同時也是公司內部 Agentic Coding 傳教士, 透過技術分享、工具導入與工作流設計, 推動 AI 輔助開發在團隊中落地
graphify · Knowledge Graph Workshop
02
開場
你一定遇過這個情境
AI agent 讀過整個 repo,
卻答不出跨檔案、跨文件的問題。
PM 視角
文件都丟進去了,還是給不正確的資訊
RD 視角
搜尋只撈回孤立片段,看不到關係
重點 Agent 讀過文件,不代表可以關聯得起來
graphify · Knowledge Graph Workshop
03
共同需求 把需求、程式、測試與文件連起來。
PM
這個需求能做嗎?
會牽涉哪些功能、 模組與限制?
QA
這段驗證邏輯是什麼?
規則在哪裡實作, 哪些測試有覆蓋?
FAE
客戶問題從哪裡查起?
該追哪些模組、 設定與相關文件?
開場 · 問題在哪
Agent 最容易壞在找 context
理解目標
interpret
→
搜尋 context
search
→
推理
reason
→
修改 / 回答
edit
→
驗證
verify
graphify · Knowledge Graph Workshop
05
↑ 最容易壞的一步
重點 找錯 context,後續推理就可能建立在錯誤的前提上。
開場 · 概念來源
Andrej Karpathy 提出的 LLM Wiki
前 Tesla AI 總監、OpenAI 創始成員;最近把大量心力從「改 code」轉向「為研究主題建知識庫」。
“
不要在查詢時才去撈原始文件,而是讓 LLM 預先建立並持續維護一個結構化的知識圖譜,讓知識關係在查詢前就已經存在。
Andrej Karpathy @karpathy · 「LLM Knowledge Bases」· 2026 年 4 月
graphify · Knowledge Graph Workshop
06
開場 · 為什麼要圖
先建 Index,LLM 才搜得快又準
順著這個想法:把原始資料先建成 index,LLM 就能快、又準地找到對的內容。
graphify · Knowledge Graph Workshop
07
原始資料
code · docs · spec · issue
→
建 Index / Graph
把關係先畫出來
→
LLM 快速、正確搜尋
不用每次盲掃整個 repo
重點 就是把你的 Repo / Document 先建成張可查詢的 index。
這場的一句話目標
建立 Knowledge Graph,
透過 Knowledge Graph 找出需求、文件、Code、Test 的關係,
並知道哪些可信、哪些要人工確認。
graphify · Knowledge Graph Workshop
08
開場 · 今天的工具
今天的工具:Graphify
github.com/Graphify-Labs/graphify
multi-modal knowledge graph engine
多模態輸入
code · docs · PDF · 影片
結構+語意抽取
AST 硬關係 + LLM 軟關係
Community Detection
自動分群、找 god nodes
Audit trail
每條邊標 confidence
重點 把整個 repo / 文件,建成一張可查詢、可追溯的 Knowledge Graph。
graphify · Knowledge Graph Workshop
09
先看魔法 · DEMO
先看怎麼透過 Knowledge Graph 問問題
/graphify query ”目前支援哪些 authentication?"
graphify · Knowledge Graph Workshop
10
開場 · 定位
今天希望你帶走三件事
1
建圖 / 查圖
會用 /graphify query · path · explain 找到對的 context。
2
判斷可信度
會看 EXTRACTED / INFERRED / AMBIGUOUS,知道哪些能信。
3
落地改善
知道要補哪些文件,讓團隊的 graph 更準。
graphify · Knowledge Graph Workshop
11
PART 1 · 核心觀念
Grep 找「字」,Graph 找「關係」
grep / 關鍵字
找得到「字」在哪裡
快、準、可預期。
適合 function name、error code、config key。
只知道字串在哪,分不出哪個是核心、看不到關聯。
Knowledge Graph
找得到「誰跟誰有關係」
關心 Entity 與 Relation。
A 呼叫 B、文件描述 Module、Test 覆蓋路徑。
能跨檔案、找 Shortest Path。
重點 Grep 給你符合字串的清單;Graph 給你帶關係、可追溯的結構。
graphify · Knowledge Graph Workshop
12
PART 1 · 具體例子
改一條 Login flow:Grep vs Graph
graphify · Knowledge Graph Workshop
13
grep "login"
UI button label
test fixture
README
舊 migration note
auth service ✓ 真正核心
grep 找到「字」,分不出哪個是核心
Knowledge Graph
login command
handler
service
config
test
沿著關係一路追到底,看得到完整因果
PART 2 · 示範
直接建一張 graph
講者示範
/graphify . --max-concurrency 5 –-mode deep
用 atla 當範例資料夾
github.com/NeoHsu/atla — 幾十個檔案,現場跑得完。
不知道怎麼安裝 Graphify?
把 repo 網址直接丟給 agent,看它怎麼一步步建——也是一種觀察方式。
graphify · Knowledge Graph Workshop
14
動手 · BLOCK 2
換你建「自己的 graph」
換你做
1
/graphify . --max-concurrency 5 [--mode deep --no-viz]
挑一個自己的小資料夾,幾十個檔案內跑得完
2
graphify-out/GRAPH_REPORT.md
看白話報告:god nodes、建議問題
3
graphify-out/graph.html
找意外連結,挑一個 surprising connection
graphify · Knowledge Graph Workshop
15
PART 2 · 產出檔案
你剛打開的文件
graph.html
給人
互動式視覺化瀏覽
graph.json
給 agent / 工具
GraphRAG、MCP、查詢
GRAPH_REPORT.md
給人
god nodes、surprising connections、建議問題
manifest.json
工具自用
記錄每個檔的 hash / mtime,--update 靠它判斷哪些檔改過、要重抽。
重點 前三個給人/agent 用;manifest.json 是工具自用的增量記錄,判斷哪些檔改過。
graphify · Knowledge Graph Workshop
16
PART 3 · DEMO
Demo:問一個跨檔案的問題
講師示範
/graphify query "authentication flow 是怎麼運作的?"
答案不是單一檔案
串起 module、文件、test、config
可以回到 source 看依據
重點 不是只找「auth」這個字,而是沿著關係找 context。
graphify · Knowledge Graph Workshop
17
PART 3 · DEMO
Demo:路徑與節點
講師示範
/graphify path "Login Page" "Auth Service"
找兩個概念的 Shortest Path
圖能回答「A 怎麼一路連到 B」
中間節點通常就是討論時最有價值的 context
/graphify explain "Auth Service"
解釋一個節點
跟哪些 module / docs / tests 有關
哪些關係是 EXTRACTED、哪些是 INFERRED
graphify · Knowledge Graph Workshop
18
PART 3 · DEMO
Demo:打開視覺化的 graph
講師示範
graphify-out/graph.html
Community Detection(社群)
高連結節點,也就是 god nodes
孤島或弱連結區域
god node
重點 graph 不是越密越好——太密通常代表雜訊太多,要靠 .graphifyignore 或更好的文件邊界。
graphify · Knowledge Graph Workshop
19
PART 3 · 照打就好
Query Cheat Sheet
RD 版
› 核心 module 和依賴有哪些?
› 新人先讀哪幾個檔?entry point?
› 改 auth 會影響哪些檔?(blast radius)
PM 版
› 這個產品再做什麼?
› 目前加入 Google login 會影響哪些模組?
› 有哪些跟 auth 相關的 ticket?
重點 不知道問什麼?直接照打——這些都是真實工作場景。
graphify · Knowledge Graph Workshop
20
PART 4 · 它怎麼建出來的
graphify 做了什麼
graphify · Knowledge Graph Workshop
21
1
Structural Extraction
對 code 做 AST / parser,抓 import、call、reference 等關係。
2
Semantic Extraction
對 docs、spec、issue、圖片抽出概念與關係。
3
Community Detection
把相關節點分群,找出自然形成的主題區塊。
4
Audit trail
每條邊標 EXTRACTED / INFERRED / AMBIGUOUS。
PART 4 · 抽完之後
Community Detection:浮現你沒想到去問的關聯
god nodes
被很多東西依賴的核心節點
surprising connections
原本不知道、跨 community 的意外連結
3 個 community + 1 條意外連結
surprising
重點 graph 會自動分群,讓你看到原本不會想到去問的跨文件關聯。
graphify · Knowledge Graph Workshop
22
PART 4 · 信任校準
這張 graph 可以怎麼信?Report 三個 Confidence 等級
EXTRACTED
原始資料明確出現
→ 可高度參考,但仍回 source 驗證
INFERRED
工具依語意或結構推論
→ 適合作為探索線索
AMBIGUOUS
不確定
→ 必須人工確認
graphify · Knowledge Graph Workshop
23
PART 4 · 信任校準
Code 關係與文件關係不一樣
Code 關係(較硬)
AST 關係相對可驗證:import / call / reference。
但 dynamic dispatch、runtime config、feature flag、外部服務呼叫,仍可能要人工確認。
文件關係(較軟)
通常比較「軟」,適合探索與縮小範圍。
不適合當最終判決——要回 source 確認。
重點 graphify 幫你縮小探索範圍,不取代 source of truth。
graphify · Knowledge Graph Workshop
24
PART 4 · 信任校準
降噪:用 .graphifyignore 過濾雜訊
# tests / fixtures(本次不關心就排除)
tests/ __tests__/ *.spec.*
# 生成碼 / 重複性高的檔案
*.gen.* generated/ *.min.js
migrations/ locales/
# vendored deps / 大型資料
vendor/ data/ *.csv *.parquet
排除這些,graph 更乾淨
測試樣板、fixtures(除非這次要看 test)
生成碼、migration、locales 等重複性高的檔
vendored deps、大型資料檔(csv / parquet)
重點 降噪不是省事——雜訊太多,會把真正重要的關係淹掉。
graphify · Knowledge Graph Workshop
25
PART 4 · 信任校準
多 repo:補一層 bridge doc,孤島變大陸
docs/
├── architecture.md
├── data-flow.md
└── ubiquitous-language.md
各 repo 各自建 graph,再用這層 doc 把它們接起來。
architecture.md
架構說明:各服務職責、誰呼叫誰
data-flow.md
資料流:一筆資料怎麼穿過各服務
ubiquitous-language.md
統一語彙表:同概念在各 repo 的命名對照
重點 多 repo 最大的問題通常不是不會 merge,而是 repo 之間本來就缺一層描述關係的 doc。
graphify · Knowledge Graph Workshop
26
PART 4 · 更新圖譜
/graphify skill 指令速查
前提 working directory 要在 sample corpus 根目錄——/graphify 會讀當前目錄的 graphify-out/graph.json。
/graphify query "auth flow 是怎麼運作的?" # 查詢
/graphify path "Login Page" "Auth Service" # 最短路徑
/graphify explain "Auth Service" # 解釋節點
/graphify . # 建 graph(講者 / 進階)
/graphify . --update # 增量更新(檔案有改)
/graphify . --cluster-only # 只重新分群
open graphify-out/GRAPH_REPORT.md # 檢查 graph 狀態
graphify · Knowledge Graph Workshop
27
任務 A · PM 視角
需求文件能不能連到實作?
換你做
選一個需求 / spec / Jira / Confluence:它連到哪些 code module?哪些是 EXTRACTED、哪些只是 INFERRED?有沒有 gap?
1
/graphify query "哪些需求對應到 authentication 相關 module?"
2
/graphify query "哪些文件跟 auth flow 的實作關聯最高?"
3
/graphify query "有沒有文件提到功能,但 graph 上找不到明確 code module 關聯?"
目標 找不到明確關聯 ≠ 一定沒實作——那是需要 PM/RD 一起確認的 gap candidate。
graphify · Knowledge Graph Workshop
28
任務 B · RD 視角
改一個功能前,先做 impact analysis
換你做
假設你要改 authentication flow:entry point 在哪?相關 service / config / test 有哪些?哪段答案你不信?
1
/graphify query "改 auth flow 會影響哪些 module、config 和 test?"
2
/graphify path "Login Page" "Auth Service"
3
/graphify explain "Auth Service"
目標 不只列檔案,要說明「為什麼相關」,並標出信心高低。
graphify · Knowledge Graph Workshop
29
PART 6 · 團隊落地
從一張「會被用的 graph」開始
第一版只選
+
一個產品功能
+
一個主要 repo
+
對應的 spec / PRD / Jira / Confluence
+
少量 architecture doc
目標不是建最大的 graph,
而是建一張會被用的 graph。
不要一開始就全團隊、全 repo。
graphify · Knowledge Graph Workshop
30
PART 6 · AGENT-FIRST
“
你只要提供足夠的工具和文件給 Agent 就可以自行運作,方向由工具驗證就好了,不需要靠語意去控制 Agent 走向
Neo Hsu @neohsu · 2026 年 1 月
graphify · Knowledge Graph Workshop
31
更進一步:把 agent 當第一個使用者
PART 6 · AGENT-FIRST
Graph-repos/
├── AGENTS.md
├── repos.lock.json
├── .graphifyignore
├── Makefile
├── mise.toml
├── project.toml
├── repos/
├── docs/
└── skills/
└── graphify/AGENTS.md
設定任何任務都優先使用 graphify
mise.toml/uv.lock
固定執行的 tool 版本
repos.lock.json
鎖住 repo 的 commit
.graphifyignore
降噪過濾器
Makefile
build / setup skill / clone
repos/
要做 Graph 的 repo
docs/
bridge document
skills/graphify/
使用該專案的 skill 定義
重點 一份 repo 架構支援多個 agent 平台(Claude / Copilot / Cursor / Codex…)。
graphify · Knowledge Graph Workshop
32
PART 6 · AGENT-FIRST
graphify · Knowledge Graph Workshop
33
收尾
1
Graph 不是答案機,而是 Context Map
2
最有價值的不是漂亮視覺化,而是 RD / PM 能一起檢查需求、文件、code 連不連得起來
3
Graph 不準通常不是失敗,而是在提醒:有些關係本來就沒被文件化
最後問題
回到你的團隊,哪一塊知識現在最像一桌散落的便利貼,最值得先畫成地圖?
graphify · Knowledge Graph Workshop
34
Q & A
Thanks
graphify · Knowledge Graph Workshop
35