มาอีกแล้ววว สวัสดีค่า

ก่อนหน้านี้เป็น 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