มาอีกแล้ววว สวัสดีค่า
ก่อนหน้านี้เป็น foundation พื้นฐานเนอะ ตอนนี้จะเป็น Tier 2 — Automation แล้วค่ะ
Tier 2 คือที่ที่ความสามารถของ Claude Code เริ่มทวีคูณ แบบมันจะเริ่มโหดแล้ว
EP นี้พูดถึงปัญหาที่ทุกคนเจอแต่ไม่รู้ว่ามีทางแก้ — โปรเจคใหญ่ขึ้น แล้ว Claude เริ่มผลาญเงิน 5555
ทำไมโปรเจคใหญ่แล้ว Claude เริ่มผลาญเงิน?
ลองนึกภาพว่าเราจ้างพนักงานใหม่ (Claude) มาทำงาน และวันแรกเราให้มันอ่านเอกสารทุกอย่างในบริษัท
วันที่โปรเจคมี 5 ไฟล์ → อ่านนิดเดียว เข้าใจทั้งหมด วันที่โปรเจคมี 500 ไฟล์ → ต้องอ่านทุกครั้ง เปลือง และ overwhelmed
นั่นแหละคือสิ่งที่เกิดขึ้น เวลาเราขอให้ Claude แก้ bug ใน function นึง มันต้องทำความเข้าใจโครงสร้างทั้งโปรเจคก่อน
สแกน 40 ไฟล์เพื่อหาว่าไฟล์ไหนเกี่ยวข้อง
↓
อ่านเนื้อหาของไฟล์ที่น่าจะเกี่ยวข้อง
↓
ทำความเข้าใจว่า function เชื่อมต่อกันยังไง
↓
ถึงค่อยเริ่มแก้จริงๆ
การสแกนนี้กิน ~20,000 tokens ต่อ session สำหรับโปรเจค 40 ไฟล์ และ token == เงินด้วยนะ จะโนสนโนแคร์ก็ได้ ถ้าเป็นดันเกิดมาเป็นสุรต่าน 😅
Knowledge Graph คืออะไร?
แทนที่จะให้ Claude อ่านซอร์สโค้ดทุกบรรทัด เราสร้าง แผนที่ ของโปรเจคแทน
แบบเดิม (ไม่มี graph):
Claude อ่านทุกบรรทัดของทุกไฟล์ → เข้าใจโครงสร้าง
ใช้: ~20,000 tokens ต่อ session
แบบใหม่ (มี graph):
Claude อ่านแผนที่ 9KB → รู้ว่าไฟล์ไหนเชื่อมกับอะไร
ใช้: ~280 tokens ต่อ session
ลดลง: 71 เท่า 🤯
graph นี้สร้างด้วย tool อย่าง Graphify ที่ใช้ Tree-sitter parse code แล้วสร้าง graph ของความสัมพันธ์ระหว่างไฟล์, function, และ class
Tree-sitter ทำงานยังไง?
Tree-sitter คือ parser ที่อ่าน code แล้วสร้าง Abstract Syntax Tree (AST) คือ แผนผังโครงสร้างของ code
ถ้าไม่รู้จัก AST ก็นึกภาพแบบนี้:
Code ธรรมดา:
function getUserById(id) {
return db.users.findOne({ id })
}
AST (แผนผัง):
FunctionDeclaration
└─ name: "getUserById"
└─ params: ["id"]
└─ body:
└─ ReturnStatement
└─ CallExpression
└─ callee: "db.users.findOne"
└─ args: [{ id }]
จาก AST ของทุกไฟล์ Graphify สร้าง knowledge graph ว่า:
getUserByIdอยู่ในuser.service.tsถูกเรียกใช้โดย
getUserในuser.controller.tsใช้
dbที่ import มาจากdatabase.ts
วิธีตั้งค่า Graphify
# ติดตั้ง
pip install graphifyy
# ไปที่โปรเจค
cd ~/projects/my-app
# ตั้งค่าให้ Claude Code รู้จัก
graphify install
# สร้าง graph ครั้งแรก
graphify .
# ตั้งค่าให้ auto-rebuild ทุก git commit
graphify hook install
หลังจากนั้น ทุก session Claude Code จะอ่าน graph summary (~9KB) แทนการสแกน source code ทั้งหมด
Graph เก่าแล้ว เราต้อง rebuild บ่อยแค่ไหน?
นี่คือสิ่งที่ต้องระวัง ถ้าแก้ code แต่ไม่ rebuild graph
Claude จะเห็นโครงสร้างที่ outdated
วิธีแก้:
ใช้
graphify hook installเพื่อให้ auto-rebuild ทุกgit commitใช้
graphify --watchระหว่าง refactor ใหญ่ๆ (rebuild อัตโนมัติทุกครั้งที่บันทึกไฟล์)รัน
graphify .เองทุกเช้าถ้าไม่อยากใช้ auto
ควรติดตั้งตอนไหน?
ไม่ต้องทำตั้งแต่วันแรกก็ได้ แต่ถ้าเจอสัญญาณพวกนี้แสดงว่าถึงเวลาแล้วแหละ
โปรเจคมีมากกว่า 20 ไฟล์
Claude มักถามว่า "ไฟล์นี้อยู่ที่ไหน" หรือ import ผิดๆ บ่อย
session เริ่มช้าลงเพราะ Claude ต้องสแกนนาน
ค่า token ต่อวันเริ่มสูงขึ้นเรื่อยๆ โดยไม่รู้สาเหตุ
สรุป
Codebase Knowledge Graph แก้ปัญหาเวลาโปรเจคเริ่ม scale เพื่อประหยัด token
ตั้งค่าครั้งเดียว แลกกับ token ที่ลดลง 71 เท่า คุ้มมว้ากกกกก 5555
EP ถัดไป: Hooks — วิธีสร้างกฎที่ Claude ต้องทำตาม 100% ทุกครั้ง ไม่ใช่แค่ "แนะนำ" แต่ "บังคับ"
ขอบคุณที่แวะเข้ามาอ่านค่ะ ขอให้วันนี้เป็นวันที่ดีน้าาา
Tags: Claude Code, AI, Knowledge Graph, Tree-sitter, Token Optimization, Developer Tools