วิธีเชี่ยวชาญ Context Engineering ใน Claude Code: 5 รูปแบบและ 13 ขั้นตอนที่วิศวกรของ Anthropic เลือกใช้

@zodchiii
อังกฤษ1 เดือนที่ผ่านมา · 06 มิ.ย. 2569
104K
202
20
15
443

TL;DR

เรียนรู้วิธีเพิ่มประสิทธิภาพเซสชัน Claude Code ด้วยการใช้ไฟล์ CLAUDE.md แบบแบ่งชั้น การอ้างอิงไฟล์แบบเจาะจง และการแยก Subagent เพื่อลดการใช้ Context ลงสูงสุดถึง 70%

ทุกครั้งที่ใช้ Claude Code ระยะยาวก็จบลงแบบเดียวกัน: คุณเสียเวลาหลายชั่วโมงกับงานที่ทำไว้แล้วต้องเริ่มใหม่ตั้งแต่ต้น

ทางแก้ไม่ใช่โมเดลที่ฉลาดกว่า แต่คือระบบที่ทีม Claude Code ใช้ภายในและไม่เคยเขียนคู่มือเผยแพร่

นักพัฒนาส่วนใหญ่ไม่มี และไม่รู้ว่ามันมีอยู่จริง

นี่คือระบบทั้งหมด 👇

🧠 ก่อนจะลงรายละเอียด ผมแบ่งปันโน้ตประจำวันเกี่ยวกับ AI และ Vibe Coding ใน Telegram Channel ของผม: https://t.me/zodchixquant

darkzodchi - inline image

วิศวกรรมบริบท (Context Engineering) จริงๆ แล้วคืออะไร

Claude อ่านโค้ดหลายพันบรรทัดในทุกเซสชัน ส่วนใหญ่เป็นข้อมูลที่ไม่จำเป็น และ 5% ที่สำคัญก็ถูกกลบหายไปภายในชั่วโมงที่สอง

นั่นคือตอนที่ Claude เริ่มสร้างฟังก์ชันขึ้นมาเอง และแก้บั๊กที่คุณไม่เคยเขียน ทางแก้ไม่ใช่โมเดลที่ใหญ่ขึ้น แต่คือการควบคุมสิ่งที่เข้าสู่เซสชัน

นี่คือ 6 รูปแบบที่ทีม Claude Code ใช้ใน Monorepo ของตัวเอง

darkzodchi - inline image

รูปแบบที่ 1: CLAUDE.md แบบหลายชั้น (ขั้นตอนที่ 1-3)

CLAUDE.md ไฟล์เดียวไม่พอ ทีม Claude Code ใช้สามชั้น แต่ละชั้นเน้นไปที่เรื่องต่างกัน

ขั้นตอนที่ 1: Root CLAUDE.md กับกฎระดับโปรเจกต์

วางไฟล์ CLAUDE.md ไว้ที่ root ของ repo ทำให้ไม่เกิน 100 บรรทัด ควรตอบคำถามสี่ข้อที่ Claude มีทุกครั้งเมื่อได้รับ Prompt:

markdown
1# โปรเจกต์: [ชื่อ]
2
3## Stack (เทคโนโลยีที่ใช้)
4- Runtime: Node 22, TypeScript 5.5
5- Framework: Next.js 15, React 19
6- Database: Postgres 16, Drizzle ORM
7- Testing: Vitest, Playwright
8
9## ข้อปฏิบัติ
10- Imports: ใช้ absolute paths จาก `@/` เท่านั้น
11- Components: ชื่อไฟล์เป็น kebab-case, export เป็น PascalCase
12- Tests: วางไว้ในโฟลเดอร์เดียวกัน ชื่อ `[file].test.ts`
13- Commits: ใช้ conventional commits, ไม่มี co-author footer
14
15## ห้ามแตะ
16- `infra/terraform/` (จัดการโดย ops)
17- `migrations/` (ถูกสร้างอัตโนมัติ ห้ามแก้ด้วยมือ)
18- `vendor/` (dependency ที่ commit ไว้แล้ว)
19
20## ค่าเริ่มต้น
21- รัน `npm test` ก่อนประกาศว่างานเสร็จ
22- Type-check ด้วย `tsc --noEmit` ทุกครั้งที่แก้ไข
23- Format ด้วย Prettier ก่อนบันทึก

ขั้นตอนที่ 2: Subdirectory CLAUDE.md สำหรับบริบทเฉพาะโมดูล

เพิ่มไฟล์ CLAUDE.md ในโฟลเดอร์ใดก็ได้ที่กฎเปลี่ยนไป Claude จะอ่านไฟล์ที่ใกล้ที่สุดเมื่อทำงานในโฟลเดอร์นั้น เพิ่มเติมจาก root

ตัวอย่าง src/auth/CLAUDE.md:

markdown
1# โมดูล Auth
2
3โมดูลนี้ดูแลการจัดการ Session และ OAuth flows
4
5## กฎ
6- ห้าม log token แม้แต่แบบตัดทอน
7- การอ่าน Session ทั้งหมดต้องผ่าน `getSession()` เท่านั้น ห้ามอ่าน cookie โดยตรง
8- Provider ใหม่ต้องผ่านการตรวจสอบความปลอดภัยก่อน merge
9
10## ไฟล์ที่ควรอ่านก่อน
11- `session.ts` สำหรับ contract
12- `providers/index.ts` สำหรับรูปแบบ registry

ขั้นตอนที่ 3: Personal CLAUDE.md ที่ ~/.claude/CLAUDE.md

นี่คือชั้นการตั้งค่าส่วนตัวระดับโลก อยู่ข้างนอก repo ใดๆ และใช้ได้ทุกที่

markdown
1## ความชอบของฉัน - อธิบายสิ่งที่คุณกำลังจะทำก่อนลงมือจริงสำหรับการแก้ไขหลายไฟล์ - ท้วงถ้าคำขอของฉันดูเหมือนจะทำให้อะไรพัง - ชอบ composition มากกว่า inheritance - ฉันใช้ zsh บน macOS

ทั้งสามชั้นซ้อนทับกัน: ค่ากำหนดส่วนตัว + กฎโปรเจกต์ + กฎโมดูล Claude อ่านทั้งสามในทุก Prompt โดยไม่ต้องอัปโหลดซ้ำผ่าน context ของคุณ

รูปแบบที่ 2: การอ้างอิงไฟล์แบบเจาะจง (ขั้นตอนที่ 4-5)

การปล่อยให้ “Claude หาเองว่าไฟล์ไหนสำคัญ” เป็นวิธีใช้ Context ที่ช้าที่สุดและโง่ที่สุด

ขั้นตอนที่ 4:@file reference พร้อม autocomplete

เมื่อคุณพิมพ์ @ ใน Prompt Claude จะเปิดตัวเลือกไฟล์แบบ Fuzzy ใช้มันแทนการอธิบายไฟล์เป็นข้อความ

ไม่ดี: “ดูโค้ด user authentication และ session helper”

ดี: “ดู

@src/auth /session.ts และ

@src/auth /providers/google.ts แก้ไข token refresh”

การอ้างอิงแบบเจาะจงจะโหลดเฉพาะไฟล์เหล่านั้น การอธิบายเป็นข้อความจะบังคับให้ Claude ค้นหา อ่านไฟล์ตัวเลือก 4-5 ไฟล์ และเลือกผิดครึ่งหนึ่ง

ขั้นตอนที่ 5: /focus เพื่อจำกัดขอบเขตทั้ง workflow

สำหรับงานที่ยาวขึ้น ให้จำกัดเซสชันทั้งหมดของ Claude ไปที่โฟลเดอร์เฉพาะ:

text
1/focus src/auth src/api/auth-routes

ตอนนี้ทุกการค้นหา grep และอ่าน จะทำงานภายในสองโฟลเดอร์นั้นเท่านั้น

ลดการใช้ Context ลง 60-80% สำหรับงานที่โฟกัส และ Claude จะหยุด “ช่วยเหลือ” ด้วยการอ่านไฟล์ที่ไม่เกี่ยวข้องเพื่อหาบริบทที่ไม่ต้องการ

ใช้คำสั่ง /focus clear เพื่อรีเซ็ต

รูปแบบที่ 3: ย่อแล้วทำต่อ (Compact-and-Continue) (ขั้นตอนที่ 6-8)

เซสชันยาวๆ จะถึงขีดจำกัด Context และพัง เคล็ดลับไม่ใช่การหลีกเลี่ยงเซสชันยาว แต่คือการจัดการผ่านการย่อแบบควบคุม

ขั้นตอนที่ 6: ดูการใช้งาน Context ด้วย /stats

รัน /stats เป็นระยะ

เมื่อคุณใช้ Context เกิน 70% แสดงว่าคุณอยู่ในเขตอันตราย เกิน 85% Claude จะเริ่มทิ้งข้อความต้นๆ โดยไม่บอกคุณ

ขั้นตอนที่ 7: /compact พร้อมคำสั่งรักษาข้อมูล

/compact เพียงอย่างเดียวจะสรุปบทสนทนา เมื่อมีคำสั่งเพิ่ม คุณจะบอก Claude ให้คงข้อมูลอะไรไว้ตามตัวอักษร:

text
1/compact preserve: แผนงานปัจจุบัน, การตัดสินใจทั้งหมดเกี่ยวกับการ refactor auth, ผลลัพธ์ test ที่ล้มเหลวจากขั้นตอนที่ 3

ขั้นตอนที่ 8: /resume สำหรับเซสชันที่กินเวลาหลายวัน

ถ้างานกินเวลาหลายวัน ให้จบแต่ละเซสชันด้วย /compact preserve: ... และเริ่มเซสชันถัดไปด้วย:

markdown
1claude --resume [session-id]

หรือใช้ claude --continue สำหรับเซสชันล่าสุด ระบบจะเริ่มต่อจากจุดที่ค้างไว้โดยใช้สถานะที่ถูกย่อไว้

รูปแบบที่ 4: อ่านก่อนวางแผน (ขั้นตอนที่ 9-10)

การรั่วไหลของ Context ที่ใหญ่ที่สุดคือ Claude แก้ไขไฟล์ก่อนที่จะเข้าใจมัน โหมด Plan บังคับให้มันอ่านก่อน แล้วค่อยเขียน

ขั้นตอนที่ 9: เปิดโหมด Plan ทุกครั้งที่ทำงานเสี่ยง

กด Shift+Tab เพื่อเข้าสู่โหมด Plan ก่อนทำงานใดๆ ที่แตะมากกว่าหนึ่งไฟล์

ในโหมด Plan Claude จะอ่านได้อย่างเดียวเท่านั้น มันจะอธิบายว่ามันจะทำอะไร แสดงรายการทุกไฟล์ที่มันจะแตะ และแสดงการเปลี่ยนแปลงที่เสนอ ไม่มีอะไรทำงานจนกว่าคุณจะอนุมัติ

การประหยัดนั้นเป็นจริง: อ่านหนึ่งครั้ง แก้ไขหนึ่งครั้ง แทนที่จะอ่าน 8 แก้ผิด 3 ย้อนกลับ อ่านซ้ำ แล้วแก้ใหม่

ขั้นตอนที่ 10: ล็อกโหมด Plan สำหรับ paths ที่ละเอียดอ่อนผ่าน Hooks

ทำให้โหมด Plan เป็นข้อบังคับสำหรับพื้นที่เสี่ยง ในไฟล์ .claude/settings.json:

json
1{
2 "hooks": {
3 "PreToolUse": [
4 {
5 "matcher": "Edit(src/auth/**)|Edit(migrations/**)",
6 "hooks": [
7 {
8 "type": "command",
9 "command": "claude-require-plan-mode"
10 }
11 ]
12 }
13 ]
14 }
15}

ความพยายามแก้ไขใดๆ ใน src/auth/*\ หรือ migrations/\\ * จะกระตุ้นข้อกำหนดโหมด Plan Claude ไม่สามารถข้ามมันได้

รูปแบบที่ 5: การแยกบริบท Subagent (ขั้นตอนที่ 11-13)

Subagent เป็นวิธีที่สะอาดที่สุดในการทำให้ Context หลักของคุณเล็ก แต่ละ Subagent ทำงานในหน้าต่างของตัวเอง ดังนั้นเซสชันหลักจะไม่เห็นข้อมูลรบกวน

ขั้นตอนที่ 11: ออกแบบ Subagent ด้วยพื้นผิวเครื่องมือที่น้อยที่สุด

จำกัดเครื่องมือให้เท่าที่งานต้องการ

code-reviewer ไม่ต้องใช้ Write หรือ Edit

doc-updater ไม่ต้องใช้ Bash ยิ่งพื้นผิวน้อย Context ก็ยิ่งถูกใช้ไปกับเอกสารและคำอธิบายเครื่องมือที่ไม่เกี่ยวข้องน้อยลง

yaml
1---
2name: code-reviewer
3description: ตรวจสอบการเปลี่ยนแปลงโค้ดเพื่อหาบั๊กและปัญหาความปลอดภัย
4tools: Read, Grep, Glob
5model: sonnet
6---

ขั้นตอนที่ 12: ส่งเฉพาะไฟล์ที่ Agent ต้องการเท่านั้น

อย่าพูดว่า "ตรวจสอบการเปลี่ยนแปลงล่าสุด" ให้พูดว่า "ตรวจสอบ @src/auth/session.ts และ @src/auth/providers/google.ts"

Subagent จะอ่านเฉพาะไฟล์เหล่านั้น ไม่ใช่การเดาว่า "ล่าสุด" หมายถึงอะไร

ขั้นตอนที่ 13: ใช้โมเดลที่ถูกกว่าสำหรับ Subagent

กำหนดโมเดลต่อ Agent ตามงาน

Sonnet สำหรับงานตรวจสอบและทดสอบ, Haiku สำหรับอัปเดตเอกสารและ lint, Opus สำหรับสถาปัตยกรรมหรือการตรวจสอบความปลอดภัยที่ต้องใช้การคิดเชิงลึกเท่านั้น

ตั้งค่าระดับโลกถ้าต้องการ:

text
1export CLAUDE_CODE_SUBAGENT_MODEL="claude-sonnet-4-6"

Subagent ที่ถูกกว่า = การเรียก Subagent ต่อดอลลาร์มากขึ้น = การแยกมากขึ้น = Context หลักเล็กลง

30 นาทีเริ่มต้นวิศวกรรมบริบท (Context Engineering)

10 นาที: เขียน Root CLAUDE.md แบบกระชับพร้อม Stack, ข้อปฏิบัติ, รายการห้ามแตะ และค่าเริ่มต้น

5 นาที: เพิ่ม Subdirectory CLAUDE.md ใน 2-3 โมดูลที่คุณแก้ไขบ่อยที่สุด

5 นาที: สร้าง Personal CLAUDE.md ที่ ~/.claude/CLAUDE.md พร้อมความชอบของคุณ

5 นาที: สร้าง Skill หนึ่งอันใน .claude/skills/ สำหรับ Workflow ที่คุณทำบ่อยที่สุด

5 นาที: ผูก Shift+Tab เป็นกล้ามเนื้อความจำ และเริ่มงานหลายไฟล์ทุกครั้งในโหมด Plan

เสร็จ!

เซสชันถัดไปของคุณจะใช้ Context น้อยลง 50-70% สำหรับปริมาณงานเท่าเดิม พอถึงเซสชันที่ 5 รูปแบบเหล่านี้จะกลายเป็นปฏิกิริยาอัตโนมัติ และคุณจะไม่เจอขีดจำกัดอีกเลย

Context ไม่ใช่สิ่งที่ Claude จัดการให้คุณ มันคือสิ่งที่คุณออกแบบ

ตอนนี้คุณมีระบบแล้ว

ขอบคุณที่อ่าน!

ผมแบ่งปันโน้ตประจำวันเกี่ยวกับ AI การเงิน และ Vibe Coding ใน Telegram Channel ของผม: https://t.me/zodchixquant

darkzodchi - inline image
บันทึกในคลิกเดียว

อ่านบทความไวรัลเชิงลึกด้วย AI ใน YouMind

บันทึกแหล่งที่มา ถามคำถามที่ตรงประเด็น สรุปข้อโต้แย้ง และเปลี่ยนบทความไวรัลให้เป็นโน้ตที่นำกลับมาใช้ได้ใน AI เวิร์กสเปซเดียว

สำรวจ YouMind
สำหรับครีเอเตอร์

เปลี่ยน Markdown ของคุณให้เป็นบทความ 𝕏 ที่สะอาดตา

เวลาคุณเผยแพร่งานเขียนยาวของตัวเอง การจัดรูปแบบรูปภาพ ตาราง และบล็อกโค้ดให้เข้ากับ 𝕏 นั้นน่าปวดหัว YouMind เปลี่ยนร่าง Markdown ทั้งฉบับให้เป็นบทความ 𝕏 ที่สะอาดตาและพร้อมโพสต์ทันที

ลอง Markdown เป็น 𝕏

แพตเทิร์นให้ถอดรหัสเพิ่มเติม

บทความไวรัลล่าสุด

สำรวจบทความไวรัลเพิ่มเติม