Skip to main content

การดีบักการตั้งค่าของคุณ

วินิจฉัยว่าเหตุใด CLAUDE.md, การตั้งค่า, hooks, MCP servers, หรือ skills ไม่มีผล ใช้ /context, /doctor, /hooks, และ /mcp เพื่อดูว่าอะไรโหลดจริงๆ

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

สำหรับปัญหาการติดตั้ง การพิสูจน์ตัวตน และการเชื่อมต่อ โปรดดู แก้ไขปัญหาการติดตั้งและการเข้าสู่ระบบ แทน

ดูว่าอะไรโหลดเข้า context

คำสั่ง /context แสดงทุกอย่างที่ครอบครอง context window สำหรับเซสชันปัจจุบัน แบ่งตามหมวดหมู่: system prompt, memory files, skills, MCP tools และข้อความสนทนา รันก่อนเพื่อยืนยันว่า CLAUDE.md, rules หรือคำอธิบาย skill ของคุณมีอยู่หรือไม่

สำหรับรายละเอียดในหมวดหมู่เฉพาะ ให้ติดตามด้วยคำสั่งที่เฉพาะเจาะจง:

คำสั่งแสดง
/memoryไฟล์ CLAUDE.md และ rules ที่โหลด รวมถึงรายการ auto-memory
/skillsSkills ที่มีจากแหล่ง project, user และ plugin
/agentsSubagents ที่ตั้งค่าและการตั้งค่าของพวกเขา
/hooksการตั้งค่า hook ที่ใช้งานอยู่
/mcpMCP servers ที่เชื่อมต่อและสถานะ
/permissionsกฎ allow และ deny ที่ใช้งานอยู่ในปัจจุบัน
/doctorการวินิจฉัยการตั้งค่า: keys ที่ไม่ถูกต้อง ข้อผิดพลาด schema สุขภาพการติดตั้ง
/debug [issue]เปิดใช้งานการบันทึก debug สำหรับเซสชันและ prompt ให้ Claude วินิจฉัยโดยใช้ผลลัพธ์บันทึกและ settings paths
/statusแหล่ง settings ที่ใช้งานอยู่ รวมถึงว่า managed settings มีผลอยู่หรือไม่

ตรวจสอบ resolved settings

Settings รวมกันผ่าน managed, user, project และ local scopes Managed settings จะชนะเสมอเมื่อมีอยู่ ในส่วนที่เหลือ scope ที่ใกล้ชิดกว่าจะแทนที่ scope ที่กว้างกว่าตามลำดับ local, project, user

รัน /doctor เพื่อตรวจสอบไฟล์ตั้งค่าของคุณและระบุ keys ที่ไม่ถูกต้องหรือข้อผิดพลาด schema

รัน /status เพื่อดูว่าแหล่ง settings ใดที่ใช้งานอยู่ รวมถึงว่า managed settings มีผลอยู่หรือไม่

ตรวจสอบ MCP servers

รัน /mcp เพื่อดู server ที่ตั้งค่าทุกตัว สถานะการเชื่อมต่อ และว่าคุณได้อนุมัติสำหรับ project ปัจจุบันหรือไม่ Server สามารถกำหนดถูกต้องแต่ยังไม่ให้เครื่องมือได้ด้วยเหตุผลทั่วไปบางประการ:

  • Project-scoped servers ใน .mcp.json ต้องมีการอนุมัติครั้งเดียว หาก prompt ถูกยกเลิก server จะยังคงถูกปิดใช้งานจนกว่าคุณจะอนุมัติจาก /mcp
  • Server ที่ไม่สามารถเริ่มต้นได้จะแสดงว่าล้มเหลวใน /mcp เส้นทางไฟล์ relative ใน command หรือ args เป็นสาเหตุที่พบบ่อย
  • Server ที่แสดงว่าเชื่อมต่อแต่แสดงรายการเครื่องมือเป็นศูนย์ได้เริ่มต้นสำเร็จแต่ไม่ส่งรายการเครื่องมือ เลือก Reconnect จาก /mcp

ตรวจสอบ hooks

รัน /hooks เพื่อแสดงรายการ hook ทุกตัวที่ลงทะเบียนสำหรับเซสชันปัจจุบัน จัดกลุ่มตาม event หาก hook ที่คุณกำหนดไม่ปรากฏ แสดงว่าไม่ได้ถูกอ่าน: hooks อยู่ภายใต้ key "hooks" ในไฟล์ settings ไม่ใช่ในไฟล์แยกต่างหาก

หาก hook ปรากฏแต่ไม่ทำงาน matcher มักเป็นสาเหตุ ฟิลด์ matcher เป็น string เดียวที่ใช้ | เพื่อจับคู่ชื่อเครื่องมือหลายตัว เช่น "Edit|Write" ชื่อเครื่องมือที่สะกดผิดจะล้มเหลวอย่างเงียบๆ

ทดสอบกับการตั้งค่าที่สะอาด

เริ่มต้นด้วย claude --safe-mode ซึ่งเปิดเซสชันโดยปิดการใช้งานการปรับแต่งทั้งหมด รวมถึง CLAUDE.md, skills, plugins, hooks, MCP servers และคำสั่งและ agents แบบกำหนดเอง

cd /tmp && CLAUDE_CONFIG_DIR=/tmp/claude-clean claude

เซสชันที่สะอาดนี้ไม่มีการตั้งค่า user หรือ project, hooks, MCP servers, plugins หรือ memory ใดๆ

ตรวจสอบสาเหตุทั่วไป

ความประหลาดใจในการตั้งค่าส่วนใหญ่สืบย้อนไปยังชุดกฎตำแหน่งและไวยากรณ์ขนาดเล็ก ตรวจสอบสิ่งเหล่านี้ก่อนที่จะสรุปว่าเป็นบั๊ก:

อาการสาเหตุการแก้ไข
Hook ไม่ทำงานmatcher เป็น JSON array แทนที่จะเป็น stringใช้ string เดียวพร้อม | เพื่อจับคู่หลายเครื่องมือ
Hook ไม่ทำงานค่า matcher เป็นตัวพิมพ์เล็ก เช่น "bash"การจับคู่มีความสำคัญตัวพิมพ์ ชื่อเครื่องมือใช้ตัวพิมพ์ใหญ่: Bash, Edit, Write, Read
Hooks กำหนดใน standalone file แทนที่จะเป็น settings.jsonHooks อยู่ในไฟล์แยกต่างหากไม่มีไฟล์ hooks standalone สำหรับ project หรือ user config กำหนด hooks ภายใต้ key "hooks" ใน settings.json
MCP servers ใน .mcp.json ไม่โหลดไฟล์อยู่ภายใต้ .claude/ หรือใช้รูปแบบ config ของ Claude DesktopProject MCP config อยู่ที่ root ของ repository เป็น .mcp.json ไม่ใช่ภายใน .claude/
Skill ปรากฏใน /skills แต่ Claude ไม่เรียกใช้Skill มี disable-model-invocation: true ใน frontmatterตรวจสอบป้ายใน /skills: ป้าย "user-only" หมายความว่า Claude จะไม่เรียกใช้เอง

แหล่งข้อมูลที่เกี่ยวข้อง

สำหรับเอกสารอ้างอิงฉบับเต็มในแต่ละพื้นที่การตั้งค่า โปรดดูหน้าเฉพาะ: