# กู้คืน Claude Code: Safe Mode, /cd และโมเดลสำรอง

> วินิจฉัย Claude Code ด้วย safe mode คำสั่ง /cd โมเดลสำรอง และการกู้คืนการตั้งค่า ลำดับการตรวจสอบและข้อจำกัดเดิม

Source: https://ailoot.ai/blog/th/claude-code-safe-mode-recovery/
Canonical: https://ailoot.ai/blog/th/claude-code-safe-mode-recovery/
Language: th
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-140
Revision: sha256-25ca1daeedf225cba33edc89cea2a499ea6b3b3ec4993e5d8e062a7da77f7ed2


สื่อเชิงปฏิบัติเกี่ยวกับการทำงานกับเอเจนต์: [เอกสารประกอบ Ailoot](https://ailoot.ai/docs/).



## Claude Code เปลี่ยนแปลงอะไรในเดือนมิถุนายน 2026?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญ">

ประเด็นสำคัญ

เมื่อวันที่ 8 มิถุนายน 2026 ใน Claude Code v2.1.169 Anthropic เพิ่มแฟล็ก `--safe-mode` และคำสั่ง `/cd` สองวันก่อนหน้านั้น v2.1.166 เปิดตัวโมเดลสำรอง ซึ่งกำหนดเป็นสายโซ่ได้สูงสุด 3 โมเดล คุณสมบัติทั้งสามนี้ตอบโจทย์ปัญหาที่นักพัฒนา vibe coding พบมากที่สุด: “ทุกอย่างพังไปหมด ไม่รู้ว่าใครเป็นต้นเหตุ และไม่อยากเสียเวลาหนึ่งชั่วโมงติดตั้งใหม่”

</div>

ก่อนหน้านี้ เมื่อ Claude Code เริ่มทำงานผิดปกติ—ตัวหมุนโหลดไม่หยุด โปรแกรมขัดข้องตอนเริ่มทำงาน เอเจนต์ไม่สนใจกฎใน `CLAUDE.md` หรือ hook ไม่ทำงานโดยไม่มีสัญญาณใด ๆ—มีทางแก้เพียงทางเดียว: ใส่คอมเมนต์ให้บางส่วนของ `.claude/settings.json` ด้วยตนเอง ปิดเซิร์ฟเวอร์ MCP ทีละตัว หรือกรณีเลวร้ายที่สุด ลบ `~/.claude` แล้วติดตั้งใหม่ ในกรณีหนึ่งที่อธิบายไว้ มีการลบ `~/.claude` ทำให้การตั้งค่าเซิร์ฟเวอร์ MCP ซึ่งใช้เวลาประกอบขึ้นมาหนึ่งชั่วโมงครึ่งสูญหาย ภายหลังจึงทราบว่ามีบรรทัดหนึ่งใน `CLAUDE.md` เป็นต้นเหตุ และสามารถค้นพบได้ใน 10 วินาที—แต่กว่าจะรู้ก็ต้องกู้คืนทั้งหมดก่อน

ในเดือนมิถุนายน 2026 Anthropic เปิดตัวกลไกสามอย่างที่เปลี่ยนสถานการณ์นี้ สรุปสิ่งที่เพิ่มเข้ามาและเวลาที่เปิดตัว:

| เวอร์ชัน | วันที่ | สิ่งที่เพิ่มเข้ามา |
|----|----|----|
| **2.1.166** | 6 มิถุนายน 2026 | การตั้งค่า `fallbackModel` + แฟล็ก `--fallback-model` สำหรับเซสชันแบบโต้ตอบ |
| **2.1.169** | 8 มิถุนายน 2026 | แฟล็ก `--safe-mode` และตัวแปรสภาพแวดล้อม `CLAUDE_CODE_SAFE_MODE`, คำสั่ง `/cd` |
| **2.1.176** | 12 มิถุนายน 2026 | แก้ไข: `/cd` และการสลับ worktree ไม่แสดงสาขา git เดิมอีกต่อไป |

ด้านล่างนี้จะอธิบายแต่ละกลไกทีละขั้นตอน พร้อมลำดับการใช้งานเมื่อเซสชัน Claude Code เริ่มผิดเพี้ยน

## อะไรทำให้ Claude Code พังบ่อยที่สุด?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญ">

ประเด็นสำคัญ

จากประสบการณ์ที่อธิบายไว้ โดยทั่วไป Claude Code พังสำหรับนักพัฒนา vibe coding เพราะสี่สาเหตุ: `CLAUDE.md` ที่ยาวเกินไปและมีกฎขัดแย้งกัน, hook ที่ใช้ exit code ไม่ถูกต้อง, เซิร์ฟเวอร์ MCP ที่ล้มเหลวโดยไม่มีข้อความแจ้ง และการตั้งค่า `settings.json` สามระดับที่ทับซ้อนกัน มีต้นเหตุอยู่หนึ่งอย่าง การวินิจฉัยใช้เวลาไม่กี่นาที แต่ความตื่นตระหนกทำให้คนรีบใช้ `rm -rf` ทันที

</div>

ในตัวอย่างที่อธิบายไว้ ตอนแรก `CLAUDE.md` มี 80 บรรทัด—และใช้งานได้อยู่หนึ่งเดือน พอถึงเดือนที่สองก็เริ่มเห็นว่า Claude ละเมิดกฎทั้งหมดที่ตั้งไว้สัปดาห์ละครั้ง: แตะ `.env`, เรียกใช้ `git push --force`, คุ้ยดูใน `node_modules` ไม่ใช่เพราะเจตนาร้าย—แค่ลืม ครั้งหนึ่ง `.gitignore` ถูกลบ และไม่มีใครรู้สาเหตุในทันที สถานการณ์นี้อธิบายละเอียดขึ้นใน[คู่มือ `CLAUDE.md`](https://ailoot.ai/blog/th/claude-md-template/)

เมื่อ `CLAUDE.md` ยาวถึง 400+ บรรทัด ก็เริ่มสร้างปัญหาโดยไม่มีสัญญาณชัดเจน: ใช้พื้นที่ส่วนสำคัญของหน้าต่างบริบทตอนเริ่มเซสชัน และทำให้คำสั่งสำคัญเจือจางไปกับคำสั่งรอง Claude ยังคงอ่านไฟล์นี้ตามปกติ จึงดูจากภายนอกเหมือนว่า “มีกฎอยู่ แต่ใช้ไม่ได้”—เป็นสัญญาณทั่วไปของข้อกำหนดที่ยาวเกินไป

Hooks เป็นสาเหตุที่พบบ่อยอันดับสอง `Claude Code hooks` มีข้อควรรู้ข้อหนึ่งที่ Anthropic ไม่ได้เน้นย้ำ

กล่าวคือ `sys.exit(1)` ใน hook ของ Python (หรือ “ล้มเหลวพร้อมข้อผิดพลาด” ตามธรรมเนียมของ Unix) จะไม่หยุด Claude มีเพียง code `2` เท่านั้นที่บล็อกได้ ในกรณีที่อธิบายไว้ hook ถูกมองว่าเป็น “ข้อห้ามเด็ดขาด” แต่ในทางปฏิบัติมันเพียงบันทึกคำร้องเรียนและปล่อยให้ดำเนินการต่อ

เซิร์ฟเวอร์ MCP เป็นชั้นที่สาม และก็อาจมีปัญหาในแบบของตัวเอง

อาการมักเหมือนกัน: มีคำสั่ง MCP ให้ใช้งาน แต่กลับส่ง `failed` โดยไม่มี traceback ดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่า MCP และเพิ่มเซิร์ฟเวอร์ด้วย `claude mcp add` ได้ใน[คู่มือแยกต่างหาก](https://ailoot.ai/blog/th/mcp-servers-claude-code/)

สาเหตุที่สี่คือโครงสร้างลำดับชั้นสามระดับของ `settings.json` คุณมี `~/.claude/settings.json` (ระดับผู้ใช้), `.claude/settings.json` ที่รากโปรเจกต์ (ระดับโปรเจกต์), `.claude/settings.local.json` (ระดับเฉพาะเครื่อง) และอาจมีการตั้งค่าที่ผู้ดูแลระบบขององค์กรจัดการด้วย ระบบจะรวมการตั้งค่าเหล่านี้ตามกฎลำดับความสำคัญ เมื่อมีคนเพิ่มเซิร์ฟเวอร์ MCP ที่ระดับโปรเจกต์ ขณะที่คุณมีรายการคล้ายกันแต่ตั้งค่าการเปิดใช้งานต่างกันที่ระดับผู้ใช้ ก็จะเกิดข้อขัดแย้งเงียบ ๆ ซึ่งดูเหมือนว่า “Claude Code พัง”

## `--safe-mode` ทำงานอย่างไร และปิดอะไรบ้าง?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญ">

ประเด็นสำคัญ

`claude --safe-mode` เริ่ม Claude Code โดยปิดการปรับแต่งทั้งหมด: `CLAUDE.md`, ปลั๊กอิน, สกิล, hooks, เซิร์ฟเวอร์ MCP, คำสั่งผู้ใช้, เอเจนต์, รูปแบบเอาต์พุต, เวิร์กโฟลว์ และคีย์ลัด การยืนยันตัวตน การเลือกโมเดล เครื่องมือในตัว และสิทธิ์การใช้งานยังคงอยู่ นี่คือเครื่องมือวินิจฉัย: หากปัญหาหายไปใน safe mode แสดงว่าหนึ่งในชั้นที่คุณเพิ่มเข้าไปเป็นต้นเหตุ

</div>

ข้อความต้นฉบับของ Anthropic ในบันทึกการเปลี่ยนแปลง v2.1.169 ระบุว่า:

<figure>
<blockquote>
<p>เพิ่มแฟล็ก <code>--safe-mode</code> (และ <code>CLAUDE_CODE_SAFE_MODE</code>) สำหรับเริ่ม Claude Code โดยปิดการปรับแต่ง (<code>CLAUDE.md</code>, ปลั๊กอิน, สกิล, hooks, เซิร์ฟเวอร์ MCP) เพื่อใช้ในการวินิจฉัย</p>
</blockquote>
<figcaption>— บันทึกการเปลี่ยนแปลง Anthropic Claude Code, https://code.claude.com/docs/en/changelog</figcaption>
</figure>

Anthropic ชี้แจงไว้ในเอกสารการกำหนดค่าโมเดลว่า:

<figure>
<blockquote>
<p>หากต้องการตรวจสอบว่าการปรับแต่งเป็นต้นเหตุหรือไม่ ให้เริ่มเซสชันด้วย <code>claude --safe-mode</code> ซึ่งจะปิด <code>CLAUDE.md</code>, สกิล, เซิร์ฟเวอร์ MCP และ hooks สถานะ Git และชื่อไดเรกทอรีไม่ถือเป็นการปรับแต่ง จึงยังใช้งานได้</p>
</blockquote>
<figcaption>— เอกสาร Anthropic - การกำหนดค่าโมเดล, https://code.claude.com/docs/en/model-config</figcaption>
</figure>

นี่คือ**เครื่องมือวินิจฉัย** ไม่ใช่ “สภาพแวดล้อมสะอาด” safe mode ช่วยตอบคำถามหนึ่งข้อ: ปัญหาเกิดจากพฤติกรรมพื้นฐานของ Claude Code หรือเกิดจากการปรับแต่งที่เพิ่มเข้าไป? เรื่องนี้เป็นส่วนหนึ่งของการจัดการบริบท—การควบคุมสิ่งที่ Claude มองเห็นและไม่เห็นในแต่ละช่วง หากทุกอย่างทำงานใน safe mode ก็ชัดเจนว่าควรตรวจสอบแต่ละชั้นด้วยการค้นหาแบบแบ่งครึ่ง หากยังไม่ทำงาน ปัญหาอยู่ที่ตัวการติดตั้ง การยืนยันตัวตน เครือข่าย หรือโครงสร้างพื้นฐาน และควรตรวจสอบ `claude doctor` กับบันทึกการทำงาน

สิ่งที่ safe mode ปิด (รายการทางการของ Anthropic—5 ชั้นหลัก):

- `CLAUDE.md` ทุกระดับ (ผู้ใช้ / โปรเจกต์)
- ปลั๊กอิน
- สกิล
- Hooks
- เซิร์ฟเวอร์ MCP

สิ่งที่ยังทำงานได้:

- การยืนยันตัวตน (เซสชัน OAuth หรือคีย์ API ของคุณ)
- การเลือกโมเดล (`--model sonnet`, `--model opus`)
- เครื่องมือในตัว (Read, Write, Bash, Grep และอื่น ๆ)
- สิทธิ์การใช้งาน
- สถานะ Git
- ชื่อไดเรกทอรี

รายละเอียดสำคัญ: safe mode ไม่ปิดการตั้งค่าที่ผู้ดูแลระบบองค์กรจัดการหรือนโยบายขององค์กร หากคุณทำงานในทีมที่ใช้ Bedrock GovCloud หรือการตั้งค่า MDM เพื่อกำหนด `availableModels` ข้อจำกัดเหล่านั้นยังคงมีผล—safe mode ปิดเฉพาะการปรับแต่งของคุณ ไม่ใช่นโยบายองค์กร

## จะแยกชั้นและหาต้นเหตุภายใน 60 วินาทีได้อย่างไร?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญ">

ประเด็นสำคัญ

ขั้นที่ 1: เรียกใช้ `claude --safe-mode` ในโฟลเดอร์เดียวกับที่เกิดปัญหา หากใช้ได้ แสดงว่าปัญหาอยู่ในการปรับแต่งของคุณ จากนั้นเปิดใช้ทีละอย่าง: `CLAUDE.md` -\> hooks -\> MCP -\> สกิล หากยังใช้ไม่ได้แม้ใน safe mode ปัญหาอยู่ที่การยืนยันตัวตน เวอร์ชัน เครือข่าย หรือระบบปฏิบัติการ ในกรณีนั้นให้เรียกใช้ `claude doctor` เพื่อวินิจฉัยอัตโนมัติ โดยไม่แตะ `rm -rf`

</div>

ขั้นตอนวินิจฉัยเมื่อ Claude Code “หยุดฟังคำสั่ง” เวอร์ชันขั้นต่ำสำหรับคำสั่งทั้งหมดด้านล่างคือ **Claude Code v2.1.169** หากเวอร์ชันของคุณเก่ากว่านี้ ให้อัปเดตก่อน (`npm update -g @anthropic-ai/claude-code` หรือใช้ตัวติดตั้งดั้งเดิมของ Anthropic)

1.  เปิดโฟลเดอร์เดียวกับที่เกิดปัญหา
2.  เรียกใช้ `claude --safe-mode`
3.  หากเริ่มทำงานได้อย่างเรียบร้อย ให้ตรวจสอบคำขอเดิมของคุณ ใช้งานได้ไหม? ถ้าได้ แสดงว่ามีชั้นหนึ่งเป็นต้นเหตุ ไปขั้นที่ 4
4.  หากยังมีปัญหาใน safe mode อย่าแตะไฟล์การตั้งค่า ให้เรียกใช้ `claude doctor` ก่อน แล้วตรวจสอบการยืนยันตัวตน เวอร์ชัน และการติดตั้งที่ขัดแย้งกัน

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

1.  **`CLAUDE.md`.** เรียกใช้ `claude` โดยไม่ใช้ safe mode แต่เปลี่ยนชื่อไฟล์ชั่วคราว: `mv CLAUDE.md CLAUDE.md.bak` หากใช้งานได้ แสดงว่าไฟล์นี้เป็นต้นเหตุ จากนั้นใช้การค้นหาแบบแบ่งครึ่งได้ โดยเก็บบรรทัดไว้ครึ่งหนึ่งแล้วตรวจสอบ
2.  **Hooks.** เปิด `.claude/settings.json` แล้วตั้งค่า `[]` ชั่วคราวในส่วน `hooks` เริ่ม `claude` ใหม่ ใช้ได้หรือไม่? ถ้าได้ แสดงว่า hook ตัวหนึ่งเป็นต้นเหตุ เปิดใช้งานทีละตัว
3.  **เซิร์ฟเวอร์ MCP.** ในทำนองเดียวกัน ให้ตั้งค่าส่วน `mcpServers` ใน `~/.claude.json` หรือ `.claude/settings.json` เป็นออบเจ็กต์ว่างชั่วคราว แล้วเริ่มใหม่และตรวจสอบ
4.  **สกิล.** ย้าย `.claude/skills/` ไปยังโฟลเดอร์ชั่วคราว แล้วเปิดโปรแกรมและตรวจสอบ

“การเปลี่ยนชื่อชั่วคราว” หมายถึงไม่ได้ลบไฟล์ระหว่างวินิจฉัย `mv` หรือ `git stash` ช่วยให้กู้คืนทุกอย่างได้ด้วยคำสั่งเดียว หากพบว่าชั้นนั้นไม่ใช่ต้นเหตุ



## จะเปลี่ยนโฟลเดอร์ทำงานด้วย `/cd` โดยไม่เสียบริบทได้อย่างไร?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญ">

ประเด็นสำคัญ

คำสั่ง `/cd <path>` ใน Claude Code 2.1.169+ เปลี่ยนโฟลเดอร์ทำงานของเซสชันที่กำลังใช้อยู่โดยไม่ทำให้แคชพรอมป์ต์หาย มีประโยชน์เมื่อการตั้งค่าของโปรเจกต์ปัจจุบันเสีย: คุณสามารถย้ายไปยังโฟลเดอร์สะอาด ตรวจสอบว่า Claude ทำงานได้ แล้วกลับมา ก่อนหน้านี้ต้องปิดเซสชันแล้วเริ่มใหม่

</div>

จากบันทึกการเปลี่ยนแปลง v2.1.169 เมื่อวันที่ 8 มิถุนายน:

<figure>
<blockquote>
<p>เพิ่มคำสั่ง <code>/cd</code> เพื่อเปลี่ยนเซสชันไปยังโฟลเดอร์ทำงานใหม่ โดยไม่รีเซ็ตแคชพรอมป์ต์ระหว่างเซสชัน</p>
</blockquote>
<figcaption>— บันทึกการเปลี่ยนแปลง Anthropic Claude Code, https://code.claude.com/docs/en/changelog</figcaption>
</figure>

ทำไมจึงมีประโยชน์ตอนแก้ปัญหา สมมติว่าคุณอยู่ในโฟลเดอร์โปรเจกต์ `~/work/myapp` และ Claude Code ทำงานผิดปกติ ก่อนหน้านี้วิธีเดียวที่จะตรวจสอบว่า “มันทำงานได้หรือเปล่า?” คือปิดเซสชัน ย้ายไปโฟลเดอร์อื่น แล้วเริ่มใหม่ คุณจะเสียบริบท ประวัติ และแคชพรอมป์ต์ที่เตรียมไว้ ตอนนี้ทำได้ดังนี้:

```bash
# ในเซสชันเดิม:
/cd ~/sandbox/test
```

Claude จะย้ายไปยังโฟลเดอร์ใหม่และอ่าน `CLAUDE.md` ของโฟลเดอร์นั้น (ถ้ามี) ในฐานะข้อความ ไม่ใช่แทนที่ system prompt—หมายความว่าแคชยังคงอยู่ หากทุกอย่างทำงานใน `~/sandbox/test` ก็ชัดเจนว่าปัญหาอยู่ในการตั้งค่าของ `~/work/myapp`

เมื่อวันที่ 12 มิถุนายน v2.1.176 แก้การถดถอยที่น่ารำคาญอย่างหนึ่ง—`/cd` แสดงสาขา git เดิมจนกว่าจะเริ่มระบบใหม่ทั้งหมด หากเวอร์ชันของคุณเก่ากว่านี้ ให้อัปเดต หรือไม่ก็ละเลย `git status` ในข้อความแรก ๆ หลังเปลี่ยนโฟลเดอร์ เพราะเดี๋ยวก็อัปเดตตาม

## จะตั้งค่าโมเดลสำรองสำหรับข้อผิดพลาด 529 ได้อย่างไร?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญ">

ประเด็นสำคัญ

ใน v2.1.166 Anthropic เพิ่ม `fallbackModel` ซึ่งเป็นสายโซ่ของโมเดลสูงสุด 3 ตัว ที่จะลองใช้ตามลำดับเมื่อโมเดลหลักมีโหลดสูงหรือไม่พร้อมใช้งาน สายโซ่นี้จะเริ่มทำงานเฉพาะเมื่อเกิดข้อผิดพลาดจากเซิร์ฟเวอร์ที่มีโหลดสูงและไม่สามารถลองใหม่ได้ ข้อผิดพลาดด้านการยืนยันตัวตน การเรียกเก็บเงิน การจำกัดอัตรา และการขนส่ง จะไม่เรียกใช้สายโซ่สำรอง แต่จะใช้ตรรกะการลองใหม่ตามปกติ

</div>

ในสถานการณ์ที่อธิบายไว้ มีงานยาวที่รันบน Opus ในโปรเจกต์สัปดาห์ละครั้ง หลังผ่านไป 10 นาที API ส่ง 529 Overloaded กลับมาและเซสชันก็ขัดข้อง ก่อนหน้านี้ต้องรอหรือสลับไป Sonnet ด้วยตนเองโดยใช้ `--model sonnet` และเสียบริบททั้งหมดที่เตรียมไว้ ใน `business/` ขนาดใหญ่ที่จัดโครงสร้างแบบ second-brain งานนี้ใช้เวลาประมาณยี่สิบนาที ตอนนี้มีกลไกที่เหมาะสมแล้ว

คำพูดตรงจากเอกสารทางการ:

<figure>
<blockquote>
<p>เมื่อโมเดลหลักมีโหลดสูง ไม่พร้อมใช้งาน หรือส่งข้อผิดพลาดจากเซิร์ฟเวอร์อื่นที่ไม่สามารถลองใหม่ได้ Claude Code สามารถสลับไปใช้โมเดลสำรองแทนที่จะทำให้คำขอล้มเหลว ข้อผิดพลาดด้านการยืนยันตัวตน การเรียกเก็บเงิน การจำกัดอัตรา ขนาดคำขอ และการขนส่ง จะไม่ทำให้เกิดการสลับโมเดล แต่จะดำเนินการตามเส้นทางการลองใหม่และจัดการข้อผิดพลาดตามปกติ</p>
</blockquote>
<figcaption>— เอกสาร Anthropic - การกำหนดค่าโมเดล, https://code.claude.com/docs/en/model-config</figcaption>
</figure>

และอีกส่วนหนึ่ง อธิบายการทำงานของสายโซ่:

<figure>
<blockquote>
<p>กำหนดโมเดลสำรองหนึ่งตัวหรือมากกว่า แล้ว Claude Code จะลองใช้ตามลำดับ พร้อมแสดงการแจ้งเตือนเมื่อสลับโมเดล การสลับมีผลเฉพาะเทิร์นปัจจุบัน—ข้อความถัดไปจะลองใช้โมเดลหลักอีกครั้ง สายโซ่จำกัดไว้ที่สามโมเดลหลังตัดรายการซ้ำ โดยไม่สนใจรายการที่เกินมา</p>
</blockquote>
<figcaption>— เอกสาร Anthropic - การกำหนดค่าโมเดล, https://code.claude.com/docs/en/model-config</figcaption>
</figure>

มีสองวิธีในการตั้งค่า ผ่าน CLI:

```bash
claude --fallback-model sonnet,haiku
```

ผ่าน `~/.claude/settings.json`:

```json
{
  "fallbackModel": ["claude-sonnet-4-6", "claude-haiku-4-5"]
}
```

รายละเอียดอีกข้อเกี่ยวกับการจำกัดอัตรา Anthropic ตั้งใจไม่ส่งข้อผิดพลาด 429 ต่อไปตามสายโซ่ เพื่อไม่ให้ข้ามขีดจำกัดคำขอด้วยการสลับไปโมเดลถัดไป ระบบสำรองทำงานเฉพาะเมื่อโมเดลหลักมีโหลดสูง ไม่พร้อมใช้งาน หรือส่งข้อผิดพลาดจากเซิร์ฟเวอร์ที่ไม่สามารถลองใหม่ได้ (เช่น 529 Overloaded) ส่วนการจำกัดอัตราจะใช้การลองใหม่และการหน่วงเวลาแบบ backoff ตามปกติ

อีกประเด็นหนึ่ง—วันที่ 12 มิถุนายน v2.1.174 แก้การถดถอยที่การบีบอัดบริบทไม่เคารพ `--fallback-model` หากคุณมีเซสชันยาวที่ถูกบีบอัดระหว่างระบบมีโหลดสูง ก่อนการแก้ไขนี้จะไม่มีการเรียกใช้โมเดลสำรอง หากทำงานกับเซสชันยาว (`/compact`, `/loop` ข้ามคืน) ให้อัปเดตเป็น v2.1.174 ขึ้นไป

## ควรแก้อะไรเมื่อ `CLAUDE.md`, hook, MCP หรือสกิลเป็นต้นเหตุ?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญ">

ประเด็นสำคัญ

เมื่อ safe mode ระบุชั้นที่เป็นต้นเหตุได้ วิธีแก้จะแตกต่างกันไปตามชั้นนั้น สำหรับ `CLAUDE.md` ให้ค้นหาแบบแบ่งครึ่งหรือย้อนกลับไปใช้เทมเพลตสำเร็จรูปที่มีน้อยกว่า 200 บรรทัด สำหรับ hook ให้ตรวจสอบ exit code (2 บล็อก แต่ 1 ไม่บล็อก) และตรรกะ สำหรับ MCP ให้ลบเซิร์ฟเวอร์หนึ่งตัวแล้วตรวจสอบ สำหรับสกิล ให้ตรวจดู `SKILL.md` ว่ามีกฎขัดแย้งกับ `CLAUDE.md` หรือไม่

</div>

กลยุทธ์เฉพาะสำหรับแต่ละชั้น

### หาก `CLAUDE.md` เป็นต้นเหตุ

เปิดไฟล์และตรวจสอบขนาด จากประสบการณ์ที่อธิบายไว้ **ให้ `CLAUDE.md` ที่ใช้งานอยู่มีไม่เกิน 200 บรรทัด** ย้ายส่วนที่เหลือไปไว้ในเราเตอร์และเอกสารประกอบข้างโปรเจกต์ (โครงสร้าง second-brain ฉบับเต็มอยู่ใน[คู่มือ second brain](https://ailoot.ai/blog/th/claude-code-second-brain/)) หากมี 400+ บรรทัด เกือบจะแน่นอนว่าเป็นต้นเหตุ ขั้นตอน:

1.  สำรองไฟล์: `cp CLAUDE.md CLAUDE.md.full`.
2.  ย้อนกลับไปใช้เทมเพลตสั้นที่ใช้งานได้ มีเทมเพลตพร้อมใช้ใน[คู่มือ “วิธีกำหนดค่า CLAUDE.md”](https://ailoot.ai/blog/th/claude-md-template/)
3.  เริ่ม Claude Code ใหม่ แล้วตรวจสอบ
4.  หากใช้งานได้ ให้คืนกฎกลับมาทีละบล็อกเล็ก ๆ บล็อกละ 10–20 บรรทัด และตรวจสอบหลังแต่ละบล็อก
5.  หาบล็อกที่ทำให้พฤติกรรมผิดปกติ แล้วเขียนใหม่เป็น hook โดยใช้ exit code ที่ถูกต้อง (อธิบาย exit code ของ hooks ไว้ในหัวข้อย่อยถัดไปของ H2 นี้)

### หาก hook เป็นต้นเหตุ

คำถามหลักคือ exit code ถูกต้องหรือไม่ Claude Code hooks ใช้ค่าเหล่านี้:

- **Exit 0** — ทุกอย่างเรียบร้อย ดำเนินการต่อ
- **Exit 1** — เป็นข้อผิดพลาด แต่**ไม่บล็อก** Claude ทำงานต่อเหมือนไม่มีอะไรเกิดขึ้น
- **Exit 2** — เป็นข้อผิดพลาดแบบ**บล็อก** มีเพียงค่านี้ที่หยุดการทำงานจริง

หากเขียน `sys.exit(1)` หรือ `exit 1` ใน shell hook โดยคิดว่าจะบล็อก โค้ดนี้ใน Claude Code จะทำหน้าที่เหมือนบันทึกคำเตือนโดยไม่หยุดการทำงาน เปลี่ยนเป็น `2` ดูรายละเอียดเกี่ยวกับ hooks และการกำหนดค่าโดยไม่เจอปัญหานี้ได้ใน[คู่มือแยกต่างหาก](https://ailoot.ai/blog/th/claude-code-hooks/)

กรณีที่พบบ่อยเป็นอันดับสองคือ hook ส่ง JSON ที่ไม่ถูกต้องออกทาง stdout Claude Code แยกวิเคราะห์การตอบกลับของ hook เป็น JSON และหากมีข้อมูลอื่นปะปน (บันทึก เครื่องหมายแสดงความคืบหน้า อีโมจิ) hook จะถือว่าล้มเหลวและการทำงานจะดำเนินต่อ กฎคือ **stdout ต้องมีเฉพาะ JSON ส่วนอย่างอื่นส่งไปที่ stderr**

กรณีที่สามคือ hook อ่านข้อมูลจาก `~/.claude/` ที่ safe mode ซ่อนไว้ นี่เป็นสถานการณ์ปกติ วิธีแก้ไม่ใช่การแก้ hook แต่ให้ตรวจสอบ `os.environ.get('CLAUDE_CODE_SAFE_MODE')` ที่จุดเริ่มต้น แล้วออกด้วย 0

### หากเซิร์ฟเวอร์ MCP เป็นต้นเหตุ

อาการ: มีคำสั่ง MCP ให้ใช้ แต่ส่ง `failed` โดยไม่มี traceback ที่ชัดเจน ขั้นตอน:

1.  เรียกใช้ `claude mcp list`—มีเซิร์ฟเวอร์ใดกำหนดไว้บ้าง?
2.  ปิดเซิร์ฟเวอร์ทีละตัวใน `~/.claude.json`: เปลี่ยนชื่อคีย์ `claude-server-A` เป็น `_claude-server-A` (วิธีนี้ปิดใช้งานโดยไม่ลบ)
3.  เริ่ม `claude` ใหม่ แล้วตรวจสอบว่าการเรียกใดทำงาน
4.  เมื่อพบเซิร์ฟเวอร์ต้นเหตุ ให้ตรวจสอบบันทึกของเซิร์ฟเวอร์นั้น: `claude mcp logs <name>`.
5.  หากเป็นเซิร์ฟเวอร์ของบุคคลที่สาม (`@modelcontextprotocol/server-postgres` และอื่น ๆ ที่คล้ายกัน) ให้ตรวจว่ามีรุ่นใหม่ออกมาหรือไม่ ระบบนิเวศ MCP ยังผันผวน เซิร์ฟเวอร์มักพังหลังอัปเดต Claude Code

หากพบว่า “ขัดข้องตอนเริ่มทำงานเฉพาะเมื่อมี MCP สองตัว” ให้เปรียบเทียบการทำงานใน safe mode โดยไม่มี MCP

### หากสกิลเป็นต้นเหตุ

สกิลประกอบด้วย `SKILL.md` และโค้ดใน `.claude/skills/<name>/` อาการ: Claude ไม่สนใจสกิล เรียกใช้ผิดเวลา หรือเรียกใช้แล้วสร้างผลลัพธ์ที่แย่ ขั้นตอน:

1.  เปิด `SKILL.md` ตรวจสอบคำอธิบาย—**ควรยาว 1–2 ประโยค และระบุให้ชัดเจนว่าควรใช้เมื่อใด** หากเขียนว่า “ตัวช่วยอเนกประสงค์สำหรับทุกอย่าง” Claude จะไม่เข้าใจว่าควรเรียกใช้ตอนไหน
2.  ตรวจสอบว่าขัดแย้งกับ `CLAUDE.md` หรือไม่ หาก `CLAUDE.md` ระบุว่า “เขียนเทสต์ทุกครั้ง” แต่คำอธิบายสกิลระบุว่า “ใช้สำหรับทำต้นแบบอย่างรวดเร็วโดยไม่ต้องมีเทสต์” นั่นคือความขัดแย้ง
3.  หากสกิลใช้คำสั่งภายนอก (npm, python, git) ให้ตรวจสอบว่าคำสั่งเหล่านั้นพร้อมใช้งานใน PATH ทั้งระบบหรือไม่ สกิลมีสภาพแวดล้อมขั้นต่ำของตัวเอง

## หาก Safe Mode ไม่ช่วย: วินิจฉัยและเก็บสถานะก่อนซ่อม

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญ">

ประเด็นสำคัญ

หาก safe mode ล้มเหลว ยังอาจเป็นการติดตั้ง การยืนยันตัวตน เครือข่าย หรือโครงสร้างพื้นฐาน รัน `claude doctor` แล้วตรวจหลักฐาน รายงานที่ไม่ชัดไม่ใช่เหตุผลลบค่าหรือเซสชัน ต้องเก็บและตรวจสถานะทั้งหมดก่อน แล้วซ่อมเฉพาะการติดตั้งที่วินิจฉัย

</div>

การลบข้อมูลผู้ใช้ไม่ใช่ทางลัดวินิจฉัย ใช้การตรวจด้านล่างหาสาเหตุ หากยังไม่ชัดให้เก็บหลักฐานและตรวจต่อ การซ่อมเริ่มจากสำรองที่ตรวจแล้วและคงบัญชีกับตัวตน credential store เดิม ลำดับคือ:

1.  **`claude doctor`** — วินิจฉัยอัตโนมัติ Anthropic เขียนไว้ในเอกสารว่า:

<figure>
<blockquote>
<p>หาก `claude --version` ใช้งานได้ แต่มีอย่างอื่นผิดปกติ ให้เรียกใช้ `claude doctor` เพื่อสร้างรายงานวินิจฉัยอัตโนมัติ</p>
</blockquote>
<figcaption>— เอกสาร Anthropic - แก้ไขปัญหาการติดตั้ง, https://code.claude.com/docs/en/troubleshoot-install</figcaption>
</figure>

2.  **ตรวจสอบการติดตั้งที่ขัดแย้งกัน** หลายคนติดตั้งทั้งเวอร์ชัน npm แบบ global และตัวติดตั้งดั้งเดิมพร้อมกัน:

<figure>
<blockquote>
<p>การติดตั้ง Claude Code หลายชุดอาจทำให้เวอร์ชันไม่ตรงกันหรือเกิดพฤติกรรมที่ไม่คาดคิด</p>
</blockquote>
<figcaption>— เอกสาร Anthropic - แก้ไขปัญหาการติดตั้ง, https://code.claude.com/docs/en/troubleshoot-install</figcaption>
</figure>

3.  **ตรวจสอบว่า `ANTHROPIC_API_KEY` กำลังแทรกแซงเซสชัน OAuth หรือไม่** นี่เป็นสาเหตุที่พบบ่อยของอาการ “ไม่มีอะไรทำงาน คีย์หมดอายุแล้ว”:

<figure>
<blockquote>
<p>เมื่อกำหนด `ANTHROPIC_API_KEY` และคุณยืนยันคีย์แล้ว Claude Code จะใช้คีย์นั้นแทนข้อมูลรับรอง OAuth สำหรับสมาชิกของคุณ</p>
</blockquote>
<figcaption>— เอกสาร Anthropic - แก้ไขปัญหาการติดตั้ง, https://code.claude.com/docs/en/troubleshoot-install</figcaption>
</figure>

วิธีแก้: เรียกใช้ `unset ANTHROPIC_API_KEY` ในเซสชัน shell ปัจจุบัน หรือเอาออกจาก `~/.zshrc` / `~/.bashrc`.

4. **ซ่อมเฉพาะการติดตั้งที่การวินิจฉัยระบุ และเก็บข้อมูลผู้ใช้ทั้งหมดก่อน** Safe mode ล้มเหลวหรือ doctor ไม่ได้ข้อสรุปไม่พิสูจน์ว่าต้องลบข้อมูล หยุดเซสชัน Claude และผู้เขียนอื่นทั้งหมดก่อนสำรองให้สอดคล้อง คง Unix account, HOME, credential store ของ OS และบัญชี Anthropic เดิม ห้ามหมุนคีย์หรือสร้างตัวตนทดแทน

ตัวอย่างสำรองนี้สำหรับ **Linux ที่มี GNU tar** บน macOS หรือ Windows ให้ใช้เครื่องมือที่รักษา ACL, extended attributes, links และ metadata ของแพลตฟอร์ม และตรวจการกู้ก่อนทำต่อ อย่าสมมติว่า flags ของ GNU ใช้ได้ที่อื่น archive มี credentials กับ transcript จึงต้องเก็บส่วนตัวนอก repository

```bash
# Run as the same user who owns the Claude state, after stopping writers.
set -eu
umask 077
backup_dir=$(mktemp -d "$HOME/.claude-recovery-XXXXXXXX")
set --
if [ -e "$HOME/.claude" ] || [ -L "$HOME/.claude" ]; then
  set -- "$@" .claude
fi
if [ -e "$HOME/.claude.json" ] || [ -L "$HOME/.claude.json" ]; then
  set -- "$@" .claude.json
fi
[ "$#" -gt 0 ] || exit 1
tar --acls --xattrs --numeric-owner -cpf "$backup_dir/claude-state.tar" -C "$HOME" "$@"
tar --acls --xattrs --compare -f "$backup_dir/claude-state.tar" -C "$HOME"
sha256sum "$backup_dir/claude-state.tar" > "$backup_dir/claude-state.sha256"
(cd "$backup_dir" && sha256sum -c claude-state.sha256)
mkdir "$backup_dir/restore-check"
tar --acls --xattrs -xpf "$backup_dir/claude-state.tar" -C "$backup_dir/restore-check"
tar --acls --xattrs --compare -f "$backup_dir/claude-state.tar" -C "$backup_dir/restore-check"
printf 'Verified recovery directory: %s\n' "$backup_dir"
```

ทุกคำสั่งต้องสำเร็จ archive ครอบคลุม `.claude` ทั้งต้น รวมเซสชัน ignored/untracked กับสถานะ plugin และ `.claude.json` ไม่ใช่แค่ค่าที่ Git ติดตาม หากเป็น symlink หรือข้อมูลอยู่ตำแหน่งตั้งค่าแยก ให้หยุดและรวม target ที่ resolve แล้วในสำรองที่ตรวจเดียวกัน เก็บเพียง link ไม่ได้สำรอง target archive ไม่รวม macOS Keychain หรือ credential store ภายนอก จึงต้องรักษาตัวตนเหล่านั้นไว้

หากการวินิจฉัยระบุชัดว่า **legacy local installation** เป็นสำเนาที่ขัดกัน ให้ย้ายเฉพาะการติดตั้งนั้นไปโฟลเดอร์กู้ส่วนตัว ไม่ลบค่าตั้งหรือเซสชัน:

```bash
# Use the verified backup_dir from the previous block.
if [ -d "$HOME/.claude/local" ]; then
  mv "$HOME/.claude/local" "$backup_dir/legacy-local"
fi
```

ถอดการติดตั้ง npm เฉพาะเมื่อวินิจฉัยว่าเป็นตัวขัดกันและตั้งใจคง native จากนั้นใช้[ตัวติดตั้ง native ตามเอกสาร](https://code.claude.com/docs/en/setup) โดยไม่ลบ `.claude` หรือ `.claude.json`:

```bash
curl -fsSL https://claude.ai/install.sh | bash
claude --version
claude doctor
```

คำสั่งติดตั้ง native บน Windows ยังคือ:

```powershell
irm https://claude.ai/install.ps1 | iex
```

**กู้คืนแยกต่างหาก** หยุดผู้เขียนอีกครั้ง ตรวจ checksum และแตกลงโฟลเดอร์กู้ว่างตามข้างต้น เทียบสำเร็จก่อนใช้ หากต้องคืน legacy installation ให้ยืนยันก่อนว่า `$HOME/.claude/local` ไม่มี แล้วจึงย้าย `$backup_dir/legacy-local` กลับ path นั้นตรงตัว คืนไฟล์ตั้งค่าที่วินิจฉัยจากสำเนาแตกที่ตรวจแล้วหลังเก็บของปัจจุบันก่อน ห้ามทับทั้งต้นโดยไม่ตรวจ เซสชัน MCP และตัวตนเดิมยังถูกเก็บ Git snapshot อย่างเดียวไม่ครอบคลุม transcript ที่ ignore/untracked, credentials หรือ metadata ระบบไฟล์

## ไม่ควรทำอะไรเมื่อ Claude Code พัง?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญ">

ประเด็นสำคัญ

รูปแบบการทำงานที่ไม่ควรทำ 6 อย่างซึ่งพบในกรณีการสนับสนุนที่อธิบายไว้: เปลี่ยนคีย์ก่อนวินิจฉัย รีเซ็ตทั้งหมดเป็นขั้นตอนแรก ตื่นตระหนกเพราะข้อผิดพลาด UI ใน hook เพิ่ม exit code ของ hook ก่อนแก้ตรรกะ แก้ `CLAUDE.md` โดยไม่มีมาตรการป้องกันจาก safe mode และเชื่อว่า “Claude แก้ MCP ของตัวเองได้” แต่ละอย่างทำให้เสียเวลาเป็นชั่วโมง และไม่มีข้อใดจำเป็น

</div>

### อย่าเปลี่ยนคีย์ก่อนวินิจฉัย

“การยืนยันตัวตนใช้งานไม่ได้” ใน 90% ของกรณีหมายถึง `ANTHROPIC_API_KEY` แทรกแซงการสมัครสมาชิก มีบั๊ก UI ของ hook หรือ MCP ล้มเหลว การหมุนเวียนคีย์ไม่ช่วยแก้ปัญหาเหล่านี้ แต่จะทำให้หยุดทำงานเพิ่มอีกหนึ่งชั่วโมง: ต้องเพิกถอนคีย์เก่า ออกคีย์ใหม่ ลงชื่อเข้าใช้ CI ใหม่ด้วยคีย์นั้น และอัปเดตตัวแปรในระบบ production ให้เรียกใช้ `claude --safe-mode` ก่อน ใช้ได้หรือไม่? หากใช้ได้ แสดงว่าปัญหาอยู่ในการปรับแต่ง ไม่จำเป็นต้องแตะคีย์

### อย่ารีเซ็ตทั้งหมดก่อนลอง Safe Mode

safe mode จัดสภาพแวดล้อมแยกให้ได้ใน 1 วินาที การลบ `.claude` ทำลายเซสชัน ค่าตั้ง MCP และสถานะ untracked อื่นได้ วินิจฉัยก่อน ตรวจสำรองส่วนตัว และใช้การย้ายย้อนกลับได้เฉพาะชั้นติดตั้งหรือ config ที่หลักฐานชี้

### อย่าตื่นตระหนกเพราะข้อผิดพลาด UI ใน hook

ก่อนแก้ไขสิ่งใด ให้ตรวจสอบก่อนว่า hook ทำงานจริงหรือไม่ (ดูจากบันทึกใน `stderr` หรือการพิมพ์ข้อความอย่างชัดเจน) แทนการเชื่อสัญญาณที่เห็นบนหน้าจอ

### อย่าเพิ่ม Exit Code ของ Hook ก่อนแก้ตรรกะ

เมื่อ hook ที่ควรบล็อกไม่บล็อก ก็ชวนให้เปลี่ยนเป็น `exit 2` แล้วถือว่าจบ นี่เป็นแพตช์ที่ใช้ได้ แต่ซ่อนปัญหาอีกอย่างไว้: หากการบล็อกใช้ไม่ได้มาหนึ่งเดือน สิ่งที่ hook ควรห้ามก็ผ่านไปทั้งหมด ก่อนอื่นให้ตรวจสอบบันทึก git และค้นหาว่ามีอะไรหลุดผ่านไปบ้าง จากนั้นค่อยเพิ่มการบล็อก มิฉะนั้น การปิดกั้นตอนนี้ก็ไม่ได้ย้อนคืนสิ่งที่เกิดขึ้นไปแล้ว

### อย่าแก้ `CLAUDE.md` ในระบบ production โดยไม่มีมาตรการป้องกันจาก Safe Mode

กรณีที่อธิบายไว้: คุณแก้ `CLAUDE.md` แล้ว Claude เริ่มทำงานแปลก ๆ คุณเรียกใช้ `git diff` และพบว่ามีคนเพิ่มเซิร์ฟเวอร์ MCP กับ hook ลงใน repo ในเย็นวันเดียวกัน คุณโทษการแก้ไขของตัวเอง ย้อนกลับการเปลี่ยนแปลง แต่ Claude ก็ยังทำงานผิดปกติ กฎคือ ก่อน `git revert` ให้เรียกใช้ `claude --safe-mode` หากปัญหายังเกิดใน safe mode การแก้ไขของคุณไม่เกี่ยวข้อง ไม่จำเป็นต้องย้อนกลับ

### อย่าเชื่อว่า “Claude แก้ MCP ของตัวเองได้”

สถานการณ์ที่พบบ่อย: คุณขอให้ Claude “เพิ่มเครื่องมือหนึ่งลงในเซิร์ฟเวอร์ MCP” Claude เขียนการตั้งค่าที่ใช้งานได้ใหม่ ทุกอย่างพัง แล้ว Claude ก็ใช้เวลาหลายเทิร์นแก้ปัญหาความเสียหายที่ตัวเองทำ—พร้อมกับใช้โควตาเซสชันจนหมด เมื่อ MCP มีปัญหา **ให้ดึงการตั้งค่าด้วยตนเอง** อย่าปล่อยให้เอเจนต์จัดการ เครื่องมือส่วนหนึ่งของเอเจนต์ก็ทำงานผ่าน MCP เช่นกัน และ MCP ที่พังก็หมายถึงผู้วินิจฉัยที่พังด้วย

## หลังแก้ไขแล้วควรทำอะไรต่อ?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญ">

ประเด็นสำคัญ

เมื่อกู้คืน Claude Code ได้แล้ว ให้เพิ่มการป้องกันไม่ให้เกิดปัญหาอีก อย่างน้อยควรมี `disableBypassPermissionsMode: "disable"` ในการตั้งค่าผู้ใช้ มี hooks ที่บล็อก `.env` และ `git push --force` และมี sandbox สำหรับการทำงานอัตโนมัติระยะยาว คู่มือป้องกันเป็นคู่กันกับคู่มือนี้

</div>

หลังวิเคราะห์เหตุการณ์แล้ว อย่าเพิ่งกลับไปทำงาน ให้เพิ่มการป้องกันก่อนเพื่อไม่ให้เหตุการณ์เกิดซ้ำ คุณอาจใช้เวลาหลายชั่วโมงสร้าง second brain (โฟลเดอร์ `business/` ที่มีโครงสร้างโปรเจกต์) และ `CLAUDE.md` ซึ่งกู้คืนด้วยตนเองได้ยาก—นี่เป็นเหตุผลที่หนักแน่นพอ ชุดขั้นต่ำมีดังนี้:

1.  **`~/.claude/settings.json`** ที่มี `permissions.disableBypassPermissionsMode: "disable"`—ข้อห้ามเชิงสถาปัตยกรรมต่อโหมดข้ามข้อจำกัด เพื่อให้ `--dangerously-skip-permissions` ที่เปิดใช้โดยไม่ตั้งใจใช้งานไม่ได้
2.  **Hooks สำหรับ `Read(./env*)`, `Bash(git push --force)`, `Write(./node_modules/**)`**—สิ่งที่ต้องบังคับใช้เป็นกฎ ไม่ใช่แค่ความหวัง
3.  **การตั้งค่า sandbox สำหรับการทำงานอัตโนมัติระยะยาว** (`/loop`, `/schedule`)
4.  **`/compact` พร้อมกฎของคุณเอง** สำหรับกำหนดว่าจะทิ้งอะไรจากบริบท เพื่อไม่ให้ Claude ใช้ทรัพยากรจนหมด

แผนป้องกันครบทั้งสี่ชั้นอยู่ใน[คู่มือ “วิธีกำหนดค่า Claude Code ไม่ให้ทำโปรเจกต์พังข้ามคืน”](https://ailoot.ai/blog/th/claude-code-safe-overnight-setup/) คู่มือหนึ่งครอบคลุมการป้องกันก่อนเริ่ม `/loop` อีกคู่มือครอบคลุมการกู้คืนหลัง `/loop` ทำอะไรเสียหายไปแล้ว เป็นคู่มือที่เสริมกันอย่างลงตัว

<div class="section" role="doc-bibliography" aria-label="แหล่งที่มา">

### แหล่งที่มา

- [บันทึกการเปลี่ยนแปลง Anthropic Claude Code](https://code.claude.com/docs/en/changelog) - บันทึกการเปลี่ยนแปลงทางการ อธิบาย v2.1.166 (`fallbackModel`), v2.1.169 (safe mode, /cd), v2.1.174 (การแก้ไขการบีบอัดบริบท), v2.1.176 (การแก้ไขสาขา git ของ /cd)
- [เอกสาร Anthropic - การกำหนดค่าโมเดล](https://code.claude.com/docs/en/model-config) - หัวข้อ “Fallback model chains,” “Check what triggered fallback,” “Setting your model.”
- [เอกสาร Anthropic - แก้ไขปัญหาการติดตั้งและการเข้าสู่ระบบ](https://code.claude.com/docs/en/troubleshoot-install) - การติดตั้งที่ขัดแย้งกัน `claude doctor` และการแทรกแซงของ `ANTHROPIC_API_KEY`

</div>

สื่อเชิงปฏิบัติ: [เอกสารประกอบ Ailoot](https://ailoot.ai/docs/).





สื่อและเครื่องมือเพิ่มเติม: [Ailoot](https://ailoot.ai/).

## คำถามที่พบบ่อย

### Safe mode ล้มเหลวแปลว่าควรลบ ~/.claude หรือไม่?

ไม่ใช่ ยังต้องตรวจการติดตั้ง การยืนยันตัวตน เครือข่าย และโครงสร้างพื้นฐาน doctor ไม่สรุปไม่ใช่หลักฐานว่าต้องลบค่าหรือเซสชัน ซ่อมเฉพาะชั้นที่วินิจฉัย

### ก่อนซ่อมติดตั้งต้องเก็บอะไร?

หยุดผู้เขียนแล้วสำรองสถานะ Claude ทั้งหมด รวมเซสชัน ค่า plugin/MCP ไฟล์ ignore และ metadata ตรวจ checksum กับการแตกก่อนทำต่อ คงบัญชีกับ credential store เดิม และกู้เฉพาะชั้นที่วินิจฉัยโดยไม่ทับสถานะปัจจุบันทั้งหมด


## Ailoot · บริษัทและพอร์ตโฟลิโอโครงการของบริษัท

Ailoot อาศัยประสบการณ์การดำเนินงานที่สั่งสม ฐานลูกค้าขนาดใหญ่ บริการที่เสถียร และการติดตาม KPI อย่างต่อเนื่อง

บริษัทและพอร์ตโฟลิโอโครงการของบริษัท: ลูกค้าหลายล้านราย; ยอดขายระดับหลายพันล้านต่อเดือน.

Ailoot นำประสบการณ์การดำเนินงานนี้มาใช้เพื่อให้เข้าถึงฟังก์ชัน AI ผ่าน API ในผลิตภัณฑ์ของลูกค้า เอเจนต์ แอปพลิเคชัน และระบบอัตโนมัติ
