這篇延續上一個 CodeGraph 的深度解析數據庫

59431-s247m5gr8fn.png

在上一篇文章CodeGraph 安裝與使用教學:整合 Claude Code、Cursor、Codex 的程式碼圖譜工具中資料如下:

(py3.10) D:\Git\mitagent>codegraph status                                                                                                                                                                                                                                   
CodeGraph Status                                                                                                                                                                                                                                                            
Project: D:\Git\mitagent                                                                                                                                                                                                                                                    
Index Statistics:                                                                                                                                                                                                                                                           
  Files:     25                                                                                                                                                                                                                                                             
  Nodes:     423                                                                                                                                                                                                                                                            
  Edges:     982                                                                                                                                                                                                                                                            
  DB Size:   1.26 MB                                                                                                                                                                                                                                                        
  Backend:   node:sqlite - built-in (full WAL)                                                                                                                                                                                                                              
  Journal:   wal                  

其中,Nodes(423)代表程式碼裡的「實體」

每個 node 是一個可識別的程式碼符號:

Kind 數量 意思
function 127 獨立函式(def foo() / function bar()
import 81 import 語句本身(被視為一個節點)
method 58 類別裡的方法(class.method()
constant 57 常數定義(const X = ... / UPPER_CASE
variable 34 模組層級的變數
file 25 每個原始碼檔案本身
class 23 類別定義
interface 9 TypeScript interface
route 9 HTTP 路由端點(自動偵測到了!)

Edges(982條)= 節點之間的「關係」

邊代表符號之間的連結,例如:

  • A 呼叫 B(call edge)
  • A import 了 B(import edge)
  • A 繼承自 B(extends edge)
  • 檔案 A 包含函式 B(contains edge)

使用 codegraph init 後生成 codegraph.db,在 D:\Git\mitagent\.codegraph\ 目錄,下讀取 sqlite db 如下

67772-d5xpt2n9yfv.png

結構解釋

這個 codegraph.db 裡面分成四類:

資料表(13個)— 核心數據

表名 存什麼
nodes 所有程式碼符號(函式、類別、變數等),就是那 423 個 node
edges 符號之間的關係(呼叫、import、繼承等),就是那 982 條 edge
files 索引的 25 個原始碼檔案(路徑、語言、hash)
nodes_fts 虛擬表,FTS5 全文搜尋引擎,讓 AI 可以模糊查符號名稱
nodes_fts_* FTS5 的內部輔助表(config/data/docsize/idx),不用管
unresolved_refs 解析失敗的參照(例如 import 了找不到的模組)
project_metadata 專案設定(版本、最後更新時間)
schema_versions DB schema 版本管理
sqlite_sequence / sqlite_statl SQLite 內建系統表

索引(18個)— 加速查詢

都是幫核心表建的查詢加速索引,例如:

  • idx_nodes_kind — 快速找所有 function/class/method
  • idx_nodes_lower_name — 大小寫不敏感搜尋符號名
  • idx_edges_source_kind / idx_edges_target_kind — 快速走訪關係圖

觸發器(3個)— 自動同步 FTS

Trigger 時機
nodes_ad 刪除 node 時,自動更新全文搜尋索引
nodes_ai 插入 node 時,自動更新全文搜尋索引
nodes_au 更新 node 時,自動更新全文搜尋索引

傳統的 IP 封鎖和 Rate Limit 正在失效。當對手能無限旋轉 IP、偽裝 Header, 你真正的防線藏在一個沒人注意的地方——U+2019,那個「右彎引號」。

97551-q5ecttejsed.png


問題在哪

假設你花了幾年訓練一個垂直領域的 LLM,或者你的 API 輸出本身就是有價值的資產。 現在有人開始大量抓取你的輸出,用來微調(fine-tune)他們自己的模型。 傳統反爬蟲?封 IP——對方換 Proxy;加 Rate Limit——對方放慢速度; 要求登入——對方批量買帳號。

- 閱讀剩餘部分 -

賦予 AI 智能體記憶:遊戲開發中的自組織知識庫

為什麼我不再讓我的 AI 助理每天早上重新學習整個程式碼庫,而是為它建立了一個能夠自我管理的記憶庫。

需要服的問題

在游戲開發項目中整合 AI 助理最困難的部分不是模型本身,而是上下文。每次啟動,助手都要從零開始:重新閱讀程式碼庫,重新推導出某個功能的工作原理,最終得到的答案往往與昨天略有不同。與此同時,實際的知識分散在三個彼此矛盾的地方——每日提交記錄、代碼審查筆記和問題描述——而不懂 C# 的遊戲設計師仍然需要知道“這個功能涉及哪些方面,以及這個需求是否可行?”

- 閱讀剩餘部分 -