วิธี Resume เซสชัน Claude Code และดูประวัติการสนทนา
เรียนรู้วิธีกลับไปใช้งาน Claude Code ต่อด้วยคำสั่ง resume หรือเลือกจากรายการ พร้อมวิธีเข้าถึงไฟล์ประวัติการสนทนาแบบ plaintext ที่บันทึกไว้ในเครื่องของคุณ เพื่อตรวจสอบการทำงานย้อนหลัง
วิธีการกลับไปใช้งานเซสชัน Claude Code ต่อ
หากต้องการกลับไปใช้งานเซสชัน Claude Code ต่อ ให้รัน claude --continue เพื่อเข้าสู่บทสนทนาล่าสุดในไดเรกทอรีปัจจุบัน หรือรัน claude --resume เพื่อเลือกบทสนทนาเก่าจากรายการ สำหรับการใช้งานภายในเซสชันที่เปิดอยู่แล้ว คำสั่ง /resume จะช่วยให้คุณสลับไปยังบทสนทนาอื่นได้โดยไม่ต้องออกจากโปรแกรม โดยมีคำสั่งแบบย่อคือ -c และ -r
claude --continue
claude --resume
claude --resume auth-refactorหากคุณทราบชื่อเซสชันหรือ ID ของเซสชันนั้นอยู่แล้ว คุณสามารถระบุเป็นอาร์กิวเมนต์เพื่อให้ Claude Code เข้าสู่เซสชันดังกล่าวได้ทันทีโดยไม่ต้องแสดงรายการให้เลือก
เนื้อหาทั้งหมดด้านล่างนี้สอดคล้องกับ เอกสารประกอบเกี่ยวกับเซสชันอย่างเป็นทางการ ณ เดือนสิงหาคม 2026 เนื่องจาก Claude Code มีการออกเวอร์ชันใหม่บ่อยครั้ง และชื่อแฟล็กหรือคีย์ลัดอาจมีการเปลี่ยนแปลงในแต่ละเวอร์ชัน ดังนั้นหากพบว่าข้อมูลในนี้ไม่ตรงกับสิ่งที่ปรากฏในเทอร์มินัลของคุณ ให้ยึดถือ claude --help และหน้าเอกสารดังกล่าวเป็นหลัก
เซสชันคืออะไร
เซสชันคือบทสนทนาที่ถูกบันทึกไว้หนึ่งรายการซึ่งผูกกับไดเรกทอรีของโปรเจกต์ โดยจะเก็บประวัติข้อความทั้งหมด รวมถึงการเรียกใช้เครื่องมือที่ Claude ทำและผลลัพธ์ที่การเรียกเหล่านั้นส่งกลับมา Claude Code จะเขียนข้อมูลลงดิสก์อย่างต่อเนื่องในขณะที่คุณทำงาน ไม่ใช่แค่เพียงครั้งเดียวเมื่อจบงาน ดังนั้นบทสนทนาจึงยังคงอยู่แม้จะปิดเทอร์มินัลหรือขาดการเชื่อมต่อ SSH ไปแล้วก็ตาม
การกลับมาใช้งานต่อ (resuming) จะกู้คืนข้อมูลมากกว่าแค่ตัวข้อความ ประวัติบทสนทนาจะกลับมาทั้งหมด รวมถึงโมเดลที่เซสชันนั้นกำลังใช้งานอยู่และซับเอเจนต์ที่เริ่มใช้งานตั้งแต่ต้นหากคุณใช้ --agent โหมดการอนุญาต (permission mode) ก็จะกลับมาเช่นกัน ยกเว้นบางกรณีที่มีไว้เพื่อความปลอดภัย ได้แก่ plan mode และ bypass-permissions mode จะไม่ถูกกู้คืน ดังนั้นเซสชันที่เคยอยู่ในโหมดเหล่านี้จะกลับมาทำงานในโหมดเริ่มต้นเหมือนกับการเริ่มเซสชันใหม่
บางอย่างจะไม่กลับมา เนื่องจากเป็น flag ที่ใช้ตอนเริ่มทำงาน ไม่ใช่สถานะที่บันทึกไว้ ไดเรกทอรีที่เพิ่มด้วย --add-dir และตัวเลือกอย่าง --mcp-config, --settings และ --plugin-dir ต้องระบุอีกครั้งเมื่อ resume
ไฟล์การตั้งค่าอย่าง settings.json จะถูกอ่านใหม่ตอนเริ่มทำงาน ดังนั้นค่าที่อยู่ในไฟล์เหล่านี้ไม่ต้องระบุซ้ำ Credential ก็อยู่ในกลุ่มเดียวกัน: Claude Code จะตรวจสอบวิธี authenticate ตอนเริ่มทำงานจากการเข้าสู่ระบบและ environment ของคุณ แทนที่จะกู้คืนพร้อม conversation ดังนั้น session ที่ resume บน VPS ซึ่งมี ANTHROPIC_API_KEY ที่ไม่ถูกต้องหลุดเข้าไปใน shell จะพบ ข้อผิดพลาด invalid API key แม้ครั้งก่อนจะทำงานได้ตามปกติก็ตาม
เหตุผลที่ประวัติเซสชันมีความสำคัญมากกว่าบน VPS
นี่คือข้อเท็จจริงที่ทำให้หลายคนประหลาดใจ ประวัติการสนทนาจะถูกเขียนลงบนเครื่องที่เอเจนต์ทำงานอยู่ ไม่ได้ถูกเก็บไว้ในบัญชีของคุณและไม่ได้ซิงค์ไปยังคลาวด์ แต่มันเป็นไฟล์ที่อยู่บนดิสก์ของเครื่องนั้นๆ
ดังนั้น เซสชันที่คุณทิ้งไว้ในหน้าต่าง tmux บน VPS ของคุณจะไม่ปรากฏในตัวเลือกบนแล็ปท็อป และเซสชันจากแล็ปท็อปก็จะไม่ปรากฏบน VPS ไม่มีการย้ายข้อมูลระหว่างกัน หากคุณทำงานในแบบที่คนส่วนใหญ่ทำเมื่อ ใช้งาน Claude Code ใน tmux บน VPS เซิร์ฟเวอร์จะเป็นที่ที่ประวัติการสนทนาจริงของคุณสะสมอยู่ และตัวเลือกที่คุณเห็นในเครื่องจะแสดงชุดข้อมูลที่แตกต่างและมีขนาดเล็กกว่ามาก
การแยกส่วนนี้ยังใช้กับอินเทอร์เฟซต่างๆ ด้วย แอปเดสก์ท็อปและส่วนขยาย VS Code ต่างก็เก็บประวัติเซสชันของตนเอง และไม่มีรายการใดที่เป็นประวัติของ CLI ส่วน Claude Code บนเว็บก็เก็บประวัติของตัวเองเช่นกัน ในขณะที่ Cowork จะแยกออกไปอีก โดยทำงานภายในแซนด์บ็อกซ์ของ Anthropic แทนที่จะเป็นฮาร์ดแวร์ที่คุณเป็นเจ้าของ ดังนั้นหากคุณกำลัง เปรียบเทียบ Cowork กับ Claude Code ตำแหน่งที่ประวัติการสนทนาถูกจัดเก็บจึงเป็นส่วนหนึ่งของการตัดสินใจ
ภายในเครื่องเดียวกัน การค้นหาจะครอบคลุมกว้างกว่าที่คุณคาดไว้ claude --resume <session-id> จะค้นหาในไดเรกทอรีโปรเจกต์ปัจจุบันและ git worktrees ของโปรเจกต์นั้นก่อน จากนั้นจึงค้นหาในโปรเจกต์อื่นๆ ทั้งหมดบนเครื่องนั้น วลีที่ต้องจำไว้คือ "บนเครื่องนั้น" (on that machine) รหัสเซสชันจากโฮสต์อื่นจะไม่สามารถระบุผลลัพธ์ได้ และ Claude Code จะแจ้งให้คุณทราบด้วย No conversation found with session ID: <session-id>
Claude Code จัดเก็บประวัติเซสชันไว้ที่ใด
โดยค่าเริ่มต้น ทรานสคริปต์จะถูกเก็บไว้ภายใต้ไดเรกทอรีการตั้งค่าของ Claude Code ที่พาธรูปแบบ ~/.claude/projects/<project>/<session-id>.jsonl
<project> คือพาธของไดเรกทอรีการทำงานของคุณ โดยที่อักขระที่ไม่ใช่ตัวอักษรหรือตัวเลขทั้งหมดจะถูกแทนที่ด้วยเครื่องหมายยัติภังค์ ดังนั้นเซสชันที่เริ่มใน /home/deploy/apps/api จะถูกจัดเก็บไว้ภายใต้ไดเรกทอรีชื่อ -home-deploy-apps-api หากชื่อที่แปลงแล้วมีความยาวเกิน 200 อักขระ Claude Code จะตัดทอนชื่อนั้นและต่อท้ายด้วยค่าแฮชของพาธเต็ม เพื่อให้ชื่อไดเรกทอรียังคงอยู่ภายใต้ขีดจำกัดของระบบไฟล์
ไฟล์ดังกล่าวเป็นรูปแบบ JSONL คือมีวัตถุ JSON หนึ่งรายการต่อหนึ่งบรรทัด แต่ละบรรทัดคือข้อความ การเรียกใช้เครื่องมือ หรือรายการข้อมูลเมตา ซึ่งเป็นข้อความที่อ่านได้และสามารถเปิดอ่านได้ตามปกติ
การเขียนโปรแกรมเพื่อแยกวิเคราะห์ (parser) ข้อมูลจากไฟล์เหล่านี้ไม่ควรทำ รูปแบบรายการข้อมูลเป็นส่วนหนึ่งของการทำงานภายในของ Claude Code และมีการเปลี่ยนแปลงระหว่างเวอร์ชัน ดังนั้นสคริปต์ที่อ่านไฟล์เหล่านี้โดยตรงอาจใช้งานไม่ได้เมื่อมีการอัปเดต เอกสารของ Anthropic ระบุให้ใช้ /export หรืออินเทอร์เฟซสคริปต์ที่จัดเตรียมไว้ให้แทน ซึ่งเป็นคำแนะนำที่ดีด้วยเหตุผลดังกล่าว
การตั้งค่าสองรายการสามารถเปลี่ยนตำแหน่งการจัดเก็บได้ CLAUDE_CONFIG_DIR จะย้ายไดเรกทอรีการตั้งค่าทั้งหมด ซึ่งเป็นวิธีที่คุณจะใช้จัดเก็บทรานสคริปต์ไว้บนโวลุ่มแยกต่างหากหรือโวลุ่มที่เข้ารหัสไว้ ส่วน cleanupPeriodDays ใน settings.json จะควบคุมระยะเวลาในการเก็บรักษาข้อมูล โดยมีค่าเริ่มต้นที่ 30 วันและกำหนดขั้นต่ำไว้ที่ 1 วัน
เนื้อหาที่แท้จริงภายในไฟล์บันทึกการทำงาน (transcript)
ผลลัพธ์จากเครื่องมือทุกอย่างจะถูกบันทึกไว้ ซึ่งหมายความว่าไฟล์ transcript จะเก็บเนื้อหาของไฟล์ที่ Claude อ่านและผลลัพธ์ของคำสั่งที่ Claude เรียกใช้งาน หน้าการใช้งานข้อมูล ของ Anthropic ระบุไว้อย่างชัดเจนว่า Claude Code จะจัดเก็บ transcript ของเซสชันไว้ในเครื่องในรูปแบบข้อความธรรมดา (plaintext) ภายใต้ ~/.claude/projects/
ลองพิจารณาว่าสิ่งนี้หมายความว่าอย่างไรบนเซิร์ฟเวอร์ หาก Claude อ่านไฟล์ .env เพื่อหาสาเหตุว่าทำไมบริการถึงไม่เริ่มทำงาน เนื้อหาของไฟล์นั้นจะถูกเก็บอยู่ในไฟล์ JSONL ในโฮมไดเรกทอรีของคุณ หากคำสั่งใดแสดงผล connection string ออกมา สตริงนั้นก็จะถูกบันทึกไว้ด้วย ไม่มีการรั่วไหลเกิดขึ้น แต่ transcript ได้บันทึกสิ่งที่เกิดขึ้นจริง ซึ่งนั่นคือจุดประสงค์หลักของมัน และเป็นเหตุผลว่าทำไมคุณจึงควรนำเรื่องนี้ไปรวมอยู่ในแบบจำลองภัยคุกคาม (threat model) ของคุณ
- การสำรองข้อมูล: การสำรองข้อมูลแบบปกติของ
/homeหรือ/rootจะคัดลอก transcript ของคุณไปยังที่จัดเก็บข้อมูลสำรอง ให้เพิ่มข้อยกเว้น หรือยอมรับว่าสำเนาของพรอมต์และเนื้อหาไฟล์ของคุณจะไปอยู่ในที่จัดเก็บข้อมูลสำรองนั้น - สแนปชอตและอิมเมจ: สแนปชอตของ VPS ที่สร้างขึ้นไม่ว่าด้วยเหตุผลใดก็ตามจะรวมไดเรกทอรีทั้งหมดไว้ด้วย เช่นเดียวกับอิมเมจที่คุณโคลนเพื่อสร้างเซิร์ฟเวอร์เครื่องที่สอง
- บัญชีผู้ใช้อื่นบนเครื่อง: ตรวจสอบโหมดการเข้าถึงด้วยตนเองโดยใช้
ls -ld ~/.claude ~/.claude/projectsแทนที่จะสันนิษฐานว่ามีการตั้งค่าที่รัดกุมแล้ว - การอัปโหลดโดยเจตนา: คำสั่ง
/feedbackจะส่งประวัติการสนทนาไปยัง Anthropic โดยเจตนา และ/bugกับ/shareก็รายงานผ่านช่องทางเดียวกัน สิ่งเหล่านี้คือสิ่งที่คุณเลือกทำ ดังนั้นควรทราบว่าคุณกำลังตกลงกับเงื่อนไขใดก่อนที่จะยืนยัน
หากคุณไม่ต้องการให้มีการสร้าง transcript ขึ้นมา CLAUDE_CODE_SKIP_PROMPT_HISTORY จะช่วยระงับการเขียน transcript และ --no-session-persistence จะระงับการเขียนสำหรับคำสั่ง claude -p แบบไม่โต้ตอบเพียงครั้งเดียว โปรดทำความเข้าใจผลกระทบก่อนตั้งค่าใดๆ เนื่องจาก transcript คือสิ่งที่ฟังก์ชัน resume ใช้ในการทำงาน ดังนั้นการไม่มี transcript จึงหมายความว่าคุณจะไม่สามารถใช้งานฟังก์ชัน resume ได้
วิธีการค้นหาบทสนทนาเก่า
เปิดตัวเลือกด้วย claude --resume หรือใช้ /resume จากภายในเซสชันที่กำลังทำงานอยู่ แต่ละแถวจะแสดงชื่อเซสชันหากคุณได้ตั้งค่าไว้ หรือแสดงชื่อที่สร้างขึ้นโดยอัตโนมัติหากคุณไม่ได้ตั้งค่า พร้อมทั้งระบุเวลาที่ผ่านไปนับจากกิจกรรมล่าสุด, git branch และขนาดไฟล์
ตัวเลือกนี้รองรับการค้นหา กด / หรือเริ่มพิมพ์เพื่อกรองรายการ ทางลัดที่ควรเรียนรู้คือทางลัดที่ช่วยขยายขอบเขตการค้นหา: Ctrl+A จะแสดงเซสชันจากทุกโปรเจกต์บนเครื่องนี้, Ctrl+W จะแสดงทุก worktree ของ repository ปัจจุบัน และ Ctrl+B จะกรองให้เหลือเฉพาะ git branch ปัจจุบัน กด Space เพื่อดูตัวอย่างเนื้อหาของเซสชันก่อนที่จะเลือกใช้งาน และกด Ctrl+R เพื่อเปลี่ยนชื่อเซสชันที่เลือกอยู่
การตั้งชื่อเซสชันช่วยให้การจัดการทั้งหมดนี้ง่ายขึ้นมาก เริ่มต้นเซสชันด้วย claude -n auth-refactor หรือรัน /rename auth-refactor ในระหว่างการทำงาน ณ จุดที่คุณตระหนักว่าบทสนทนานั้นได้กลายเป็นงานจริงจังแล้ว เซสชันที่มีชื่อสามารถเรียกใช้งานต่อได้โดยระบุชื่อจาก shell ได้โดยตรง
เซสชันที่ไม่มีชื่อจะยังคงได้รับชื่อที่สร้างขึ้นโดยอัตโนมัติ ซึ่งเขียนขึ้นโดยการส่งคำขอเบื้องหลังไปยังโมเดลขนาดเล็กที่รวดเร็วเพื่อสรุป prompt แรกของคุณ ชื่อดังกล่าวช่วยให้คุณจดจำแถวในตัวเลือกได้ แต่ไม่ใช่ชื่อสำหรับเรียกใช้งานต่อ claude --resume <name> จะจับคู่เฉพาะชื่อที่คุณตั้งขึ้นเองเท่านั้น
การค้นหา transcript เพื่อระบุ session ที่ต้องการ
บางครั้งคุณอาจจำได้เพียงวลีบางอย่างเท่านั้น เนื่องจาก transcript อยู่ในรูปแบบข้อความ คุณจึงสามารถค้นหาข้อมูลจากไฟล์เหล่านั้นได้
grep -rl "nftables" ~/.claude/projects/คำสั่งดังกล่าวจะแสดงพาธของไฟล์ transcript ที่มีข้อความตรงกับที่ค้นหา ชื่อไฟล์ที่ไม่มีนามสกุล .jsonl คือ session ID ซึ่งสามารถนำไปใช้กับ claude --resume <session-id> ได้ ให้ใช้ grep เพื่อระบุว่าคุณต้องการ session ใด จากนั้นจึงค่อย resume หรือ export เพื่ออ่านเนื้อหาจริง
มีข้อควรระวังสองประการที่ต้องทราบ ประการแรก เนื้อหาถูกทำ JSON-escaped ไว้ ดังนั้นวลีที่มีเครื่องหมายคำพูดหรือวลีที่ถูกตัดแบ่งบรรทัดอาจไม่ตรงกับสตริงที่คุณค้นหาแบบตรงตัว ประการที่สอง หากพบข้อความที่ตรงกันภายในผลลัพธ์ของเครื่องมือ นั่นหมายความว่า Claude เห็นข้อความนั้น ไม่ได้หมายความว่ามีผู้ใดพิมพ์ข้อความดังกล่าวเข้ามา
การอ่านและการส่งออกบทสนทนา
/export จะแสดงผลบทสนทนาปัจจุบันเป็นข้อความธรรมดา โดยเขียนข้อความและผลลัพธ์จากเครื่องมือออกมาให้อ่านง่ายแทนการใช้รูปแบบ JSON หากไม่มีการระบุอาร์กิวเมนต์ ระบบจะเปิดเมนูให้เลือกระหว่างการคัดลอกลงคลิปบอร์ดหรือบันทึกลงไฟล์ หากระบุชื่อไฟล์ /export handover.txt จะเขียนข้อมูลลงในพาธนั้นโดยตรง นี่เป็นวิธีที่ถูกต้องในการย้ายบทสนทนาจากเซิร์ฟเวอร์ไปยังแล็ปท็อปของคุณ หรือเพื่อแนบบทสนทนาไปกับตั๋วแจ้งปัญหา
สำหรับการทำงานอัตโนมัติ ให้ใช้อินเทอร์เฟซที่ออกแบบมาให้มีความเสถียร Hooks และคำสั่งใน status line จะได้รับฟิลด์ transcript_path เป็นอินพุต ดังนั้น hook ประเภท SessionEnd จึงสามารถจัดเก็บสำเนาบทสนทนาเมื่อเซสชันสิ้นสุดลงได้ นอกจากนี้ คุณยังสามารถสอบถามเซสชันที่จัดเก็บไว้ได้โดยไม่ต้องเปิดเซสชันนั้นขึ้นมา:
claude -p --resume <session-id> --output-format json "summarize what we changed" | jq -r '.result'คำสั่งดังกล่าวจะส่ง prompt ติดตามผลเข้าไปยังบทสนทนาเดิมและส่งกลับมาเป็น JSON ที่มีโครงสร้าง ซึ่งเป็นพื้นฐานที่ดีกว่าการพยายามแยกวิเคราะห์รูปแบบ JSONL ที่อาจมีการเปลี่ยนแปลงได้ในรุ่นถัดไป
เมื่อการเริ่มต้นใหม่ดีกว่าการทำต่อ
การทำต่อจากเดิมจะนำประวัติทั้งหมดกลับมา และประวัติทั้งหมดนั้นคือสิ่งที่ทุกคำขอในภายหลังต้องแบกรับ บทสนทนาที่ดำเนินมาสี่ชั่วโมงเมื่อวานนี้มีค่าใช้จ่ายสูงหากจะทำต่อในวันนี้ และ วิธีการที่การใช้โทเค็นสะสมตลอดเซสชันที่ยาวนาน จะอธิบายว่าต้นทุนดังกล่าวมาจากไหน
บางครั้ง Claude Code จะเสนอทางเลือกสายกลาง สำหรับแผน Pro หรือ Max หากคุณทำต่อจากเซสชันที่ไม่ได้ใช้งานมาประมาณหนึ่งชั่วโมงและมีโทเค็นมากกว่า 100,000 โทเค็น ระบบจะเปิดกล่องโต้ตอบขึ้นมาก่อนที่คุณจะส่งข้อความแรก เนื่องจาก prompt cache ได้หมดอายุลงแล้ว คำขอถัดไปจึงต้องประมวลผลประวัติทั้งหมดใหม่หนึ่งครั้งไม่ว่าคุณจะเลือกตัวเลือกใดก็ตาม
- การทำต่อจากสรุป (Resume from summary) จะทำการบีบอัดข้อมูลทันที เพื่อให้คำขอในภายหลังใช้สรุปแทนประวัติทั้งหมด วิธีนี้มีค่าใช้จ่ายต่อคำขอน้อยกว่า แต่ข้อมูลใดก็ตามที่ถูกตัดออกในสรุปจะไม่สามารถเรียกดูได้อีก
- การทำต่อจากเซสชันเต็ม (Resume full session as-is) จะโหลดบทสนทนาโดยไม่มีการเปลี่ยนแปลง โดยเก็บรายละเอียดทุกอย่างไว้ด้วยต้นทุนต่อคำขอที่เพิ่มขึ้นตามขนาดของบทสนทนา
ตัวเลือกที่สามคือการทำต่อแบบเต็มรูปแบบและปิดไม่ให้กล่องโต้ตอบปรากฏขึ้นในการทำต่อครั้งถัดไป
การตัดสินใจนั้นง่ายกว่าที่คิด ให้ทำต่อจากเดิมเมื่อสิ่งที่คุณกำลังจะพิมพ์ต่อไปนั้นขึ้นอยู่กับสิ่งที่ได้พูดไปแล้ว และให้เริ่มต้นใหม่เมื่อไม่จำเป็นต้องใช้ข้อมูลเดิม การหลงประเด็นสังเกตได้ง่ายหากคุณคอยเฝ้าระวัง เช่น Claude อ้างถึงไฟล์ที่คุณลบไปเมื่อชั่วโมงที่แล้ว หรือกลับมาโต้เถียงเรื่องการตัดสินใจที่คุณสรุปไปแล้วตั้งแต่ช่วงต้นของเซสชัน นั่นคือบริบทที่ล้าสมัย และการนำมันติดตัวไปด้วยจะทำให้คุณเสียทั้งโทเค็นและความแม่นยำไปพร้อมกัน
หากส่วนที่มีประโยชน์ของบทสนทนาเก่าคือการตัดสินใจหรือข้อเท็จจริงที่คุณจะต้องใช้อีก อย่าพึ่งพาการทำต่อจากเดิมเพื่อเก็บข้อมูลนั้นไว้ ให้จดบันทึกไว้ในที่ที่ทุกเซสชันสามารถเข้าถึงได้ ซึ่งนั่นคือสิ่งที่ ไฟล์หน่วยความจำของ Claude Code มีไว้สำหรับงานนี้
/branch เป็นสิ่งที่ควรทราบเช่นกัน มันจะคัดลอกบทสนทนาจนถึงจุดปัจจุบันและสลับคุณไปยังสำเนาใหม่ โดยที่ต้นฉบับยังคงอยู่ครบถ้วนและอยู่ในตัวเลือกให้เลือกใช้ ให้ใช้ฟีเจอร์นี้เพื่อลองแนวทางที่สองโดยไม่สูญเสียแนวทางแรกไป
ความแตกต่างระหว่างการ resume, compaction และ memory
เรื่องเหล่านี้มักถูกสับสนอยู่บ่อยครั้ง ทั้งที่แต่ละอย่างแก้ปัญหาคนละส่วนกัน
Resume คือการดึงบทสนทนากลับมาใช้งานต่อหลังจากที่คุณออกจากโปรแกรม รีบูตเครื่อง หรือเปลี่ยนไปทำภารกิจอื่น ส่วน compaction คือการจัดการ context window ภายในบทสนทนาที่กำลังดำเนินอยู่ โดย /compact จะทำการแทนที่ข้อมูลที่ Claude ถืออยู่ด้วยบทสรุป เพื่อให้คำขอในภายหลังใช้จำนวน token น้อยลง หากปัญหาของคุณคือ context window เต็ม compaction คือเครื่องมือที่เหมาะสม ซึ่ง การจัดการ context window ของ Claude Code ได้อธิบายเรื่องนี้ไว้อย่างละเอียดแล้ว
Memory นั้นแตกต่างออกไป ไฟล์ CLAUDE.md และระบบ auto memory จะเก็บคำสั่งและข้อเท็จจริงที่จะถูกโหลดขึ้นมาตั้งแต่เริ่มต้นทุกเซสชัน ดังนั้นมันจึงไม่ใช่บทสนทนาที่คุณต้องกลับไปใช้งานต่อ แต่เป็นสิ่งที่คุณบันทึกไว้เพื่อให้คุณไม่ต้องกลับไปจัดการกับบทสนทนาเดิมอีก
หากสิ่งที่คุณต้องการคือการรันสองบทสนทนาไปพร้อมกันและให้ทำงานประสานกัน นั่นเป็นกลไกที่แยกต่างหาก Claude Code sessions สามารถส่งข้อความถึงกันได้ ในขณะที่ทั้งสองเซสชันยังคงทำงานอยู่ ซึ่งเป็นปัญหาคนละเรื่องกับการดึงเซสชันของเมื่อวานกลับมาจากดิสก์
FAQ
Claude Code จัดเก็บประวัติเซสชันของฉันไว้ที่ไหน?
โดยค่าเริ่มต้นจะจัดเก็บไว้ภายใต้ไดเรกทอรีการตั้งค่าของคุณที่ ~/.claude/projects/<project>/<session-id>.jsonl โดยที่ <project> คือพาธของไดเรกทอรีทำงานที่ถูกแทนที่อักขระที่ไม่ใช่ตัวอักษรหรือตัวเลขด้วยเครื่องหมายขีด แต่ละไฟล์จะเป็นรูปแบบ JSONL คือมีวัตถุ JSON หนึ่งรายการต่อหนึ่งบรรทัดสำหรับข้อความ การเรียกใช้เครื่องมือ หรือรายการข้อมูลเมตา CLAUDE_CONFIG_DIR สามารถใช้ย้ายไดเรกทอรีการตั้งค่าไปยังตำแหน่งอื่นได้ และ cleanupPeriodDays ใน settings.json จะเป็นตัวกำหนดระยะเวลาในการเก็บรักษาบันทึกการสนทนา โดยค่าเริ่มต้นคือ 30 วันและกำหนดขั้นต่ำได้ที่ 1 วัน
ทำไมฉันถึงไม่เห็นเซสชัน VPS ของฉันในตัวเลือกบนแล็ปท็อป?
เนื่องจากบันทึกการสนทนาจะถูกเขียนลงบนดิสก์ของเครื่องที่เอเจนต์ทำงานอยู่ และไม่มีการซิงค์ข้อมูลระหว่างเครื่อง การสนทนาที่คุณทำภายใน tmux บน VPS ของคุณจะมีอยู่เฉพาะบน VPS นั้นเท่านั้น ให้กลับมาใช้งานต่อที่นั่นผ่าน SSH หรือรัน /export ภายในนั้นแล้วคัดลอกไฟล์ข้อความออกมาหากคุณต้องการเก็บเป็นบันทึกในเครื่อง
ฉันสามารถกลับมาใช้งานเซสชันที่เริ่มในไดเรกทอรีอื่นได้หรือไม่?
ได้ หากคุณมี ID ของเซสชันนั้น claude --resume <session-id> จะค้นหาในไดเรกทอรีโปรเจกต์ปัจจุบันและ git worktrees ของโปรเจกต์นั้นก่อน จากนั้นจึงค้นหาในโปรเจกต์อื่นๆ ทั้งหมดบนเครื่องเดียวกัน ภายในตัวเลือกการเลือก Ctrl+A จะขยายรายการไปยังทุกโปรเจกต์บนเครื่อง และ Ctrl+W จะขยายรายการไปยังทุก worktree ของที่เก็บข้อมูลปัจจุบัน หากไม่พบข้อมูลที่ตรงกัน Claude Code จะรายงาน No conversation found with session ID: <session-id>
ฉันควรกลับมาใช้งานเซสชันเก่าหรือเริ่มเซสชันใหม่ดี?
ให้กลับมาใช้งานเซสชันเดิมเมื่อข้อความถัดไปของคุณต้องอ้างอิงสิ่งที่เคยพูดไปแล้วในการสนทนานั้น ให้เริ่มใหม่เมื่อไม่จำเป็นต้องอ้างอิง เพราะการกลับมาใช้งานเซสชันเดิมจะโหลดประวัติทั้งหมดขึ้นมาใหม่ และคำขอในภายหลังทุกรายการจะนำประวัตินั้นติดไปด้วย ให้ระวังเรื่องความคลาดเคลื่อน (drift): เซสชันที่ยังคงอ้างอิงถึงไฟล์ที่คุณลบไปแล้วกำลังเก็บบริบทที่ล้าสมัยไว้ ซึ่งบริบทนั้นจะทำให้คุณเสียค่าใช้จ่ายด้านโทเค็นและลดความแม่นยำในทุกรอบการสนทนา
ฉันสามารถหยุดไม่ให้ Claude Code เขียนบันทึกการสนทนาลงดิสก์ได้หรือไม่?
ได้ CLAUDE_CODE_SKIP_PROMPT_HISTORY จะระงับการเขียนบันทึกการสนทนา และ --no-session-persistence จะระงับการเขียนสำหรับคำสั่ง claude -p แบบไม่โต้ตอบเพียงครั้งเดียว โปรดทำความเข้าใจผลกระทบก่อน เนื่องจากบันทึกการสนทนาคือสิ่งที่ฟังก์ชันการกลับมาใช้งานต่ออ่าน ดังนั้นการปิดการทำงานนี้หมายความว่า --continue และ --resume จะไม่มีข้อมูลให้โหลด หากความกังวลของคุณคือตำแหน่งที่จัดเก็บไฟล์แทนที่จะเป็นเรื่องการมีอยู่ของไฟล์ ให้ชี้ CLAUDE_CONFIG_DIR ไปยังโวลุ่มที่เข้ารหัสและลดค่า cleanupPeriodDays แทน