SSD Nodes Learn Hosting plans →
คู่มือ Matt Connorโดย Matt Connor · อัปเดตเมื่อ 2026-09-12

วิธี 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 แทน