ตั้งค่า Recall ให้ Claude Code จำงานต่อบน VPS
Recall บันทึกทุกเซสชัน Claude Code เป็นไฟล์ Markdown ในเครื่อง แล้วสร้างสรุปสำหรับทำงานต่อบน VPS ตรวจสอบขั้นตอนติดตั้งและวัดการประหยัดโทเค็นด้วยเวอร์ชัน 0.4.0
สิ่งที่ Recall ทำเพื่อหน่วยความจำของ Claude Code
Recall เป็นปลั๊กอินของ Claude Code ที่ช่วยให้แต่ละโปรเจกต์มีหน่วยความจำที่ต่อเนื่องข้ามเซสชัน โดยจะเขียนไฟล์ markdown สองไฟล์ลงในโฟลเดอร์ .recall/ ภายในโปรเจกต์ของคุณ ได้แก่ บันทึกเหตุการณ์แบบ append-only และสรุปสั้นๆ ว่าคุณค้างงานไว้ที่จุดใด ทั้งสองไฟล์ถูกสร้างขึ้นบนเครื่องที่คุณใช้งานโดยตัวสรุปผลภาษา Python ที่ทำงานในเครื่อง ดังนั้นตัวหน่วยความจำเองจึงไม่มีค่าใช้จ่ายเป็น API tokens
ช่องว่างที่ปลั๊กอินนี้เข้ามาเติมเต็มนั้นมีขนาดเล็กและคงที่ หากคุณปิดเซสชันบน VPS ในวันอังคาร เมื่อถึงวันพุธ เซสชันใหม่จะไม่โหลดบทสนทนาของวันอังคารขึ้นมาโดยอัตโนมัติ แม้ว่า Claude Code จะมีหน่วยความจำอัตโนมัติในตัวที่สามารถเก็บโน้ตข้ามเซสชันได้ก็ตาม หากโน้ตเหล่านั้นไม่ได้ครอบคลุมถึงจุดที่คุณหยุดงานไว้ คุณจะต้องอธิบายรายละเอียดโปรเจกต์ใหม่ด้วยตนเอง หรือปล่อยให้โมเดลอ่านซอร์สโค้ดครึ่งหนึ่งของ repository อีกครั้งเพื่อทำความเข้าใจ ซึ่งทั้งสองวิธีมีค่าใช้จ่ายเป็น tokens และวิธีที่สองนั้นมีค่าใช้จ่ายสูงมาก
Recall เวอร์ชัน 0.4.0 ซึ่งปล่อยออกมาเมื่อวันที่ 18 กรกฎาคม 2026 ยังคงเป็นเวอร์ชันล่าสุด ณ เดือนตุลาคม 2026 และโปรเจกต์นี้อยู่ภายใต้สัญญาอนุญาตแบบ MIT โดยเป็นปลั๊กอินที่ไม่มีการเรียกใช้งานเครือข่ายใดๆ ทั้งสิ้น
สิ่งที่จำเป็นต้องมีบน VPS
Hook สำหรับการจับข้อมูลของ Recall คือสคริปต์ Python ที่มาพร้อมกับปลั๊กอิน โดยไม่มีการพึ่งพาซอฟต์แวร์จากภายนอก ดังนั้นความต้องการหลักเพียงอย่างเดียวคือตัวแปลภาษา (interpreter)
python3 -VUbuntu 24.04 ตอบโจทย์ Python 3.12.3 โดย Recall รองรับ Python 3.9 ขึ้นไป อิมเมจคอนเทนเนอร์แบบ Minimal บางตัวอาจไม่มีตัวแปลภาษาติดตั้งมาให้เลย ซึ่งในกรณีนั้นเชลล์จะตอบกลับด้วย python3: command not found โปรดติดตั้งตัวแปลภาษาก่อนดำเนินการในขั้นตอนถัดไป
sudo apt update && sudo apt install -y python3NumPy เป็นตัวเร่งความเร็วทางเลือกสำหรับขั้นตอนหนึ่งของตัวสรุปเนื้อหา (summarizer) ซึ่งคุณไม่จำเป็นต้องใช้งาน
python3 -c "import numpy"ModuleNotFoundError: No module named 'numpy' เป็นคำตอบที่ยอมรับได้ในกรณีนี้ ตัวสรุปเนื้อหามีเส้นทางการทำงานแบบ pure-Python และชุดทดสอบของโปรเจกต์ได้ตรวจสอบแล้วว่าทั้งสองเส้นทางเลือกประโยคเดียวกัน
หน่วยความจำของเซสชันมีความสำคัญบนเซิร์ฟเวอร์มากกว่าบนแล็ปท็อป เนื่องจากงานบนเซิร์ฟเวอร์มักเข้ามาเป็นช่วงสั้นๆ ตลอดหลายวัน หากคุณมี Claude Code ทำงานอยู่ใน tmux บน VPS อยู่แล้ว Recall คือส่วนประกอบที่จะช่วยนำเซสชันของเมื่อวานมาใช้งานต่อในวันนี้
ติดตั้ง Recall จาก plugin marketplace
คำสั่งสองคำสั่งที่พิมพ์ภายในเซสชันของ Claude Code:
/plugin marketplace add raiyanyahya/recall
/plugin install recall@recallคำสั่งที่สองคือ plugin@marketplace ทั้งสองชื่อคือ recall ในที่นี้ ซึ่งดูเหมือนเป็นความผิดพลาดจากการคัดลอกและวาง แต่จริงๆ แล้วไม่ใช่
ตรวจสอบการติดตั้งโดยการรันหนึ่งในคำสั่งของตัว plugin เอง:
/recall:show/recall:show จะแสดงสรุปปัจจุบัน ในโปรเจกต์ที่เพิ่งสร้างใหม่จะยังไม่มีข้อมูลให้แสดง ดังนั้นสิ่งที่คุณกำลังตรวจสอบจริงๆ คือคำสั่งนั้นมีอยู่หรือไม่ หาก Claude Code ไม่รู้จัก /recall:show แสดงว่า plugin ยังไม่ได้โหลด และจะไม่มี hook ใดทำงาน
หากต้องการรันจาก checkout แทน ให้ clone repository และตรวจสอบความถูกต้องก่อน:
git clone https://github.com/raiyanyahya/recall ~/recall
cd ~/recall && claude plugin validate .claude plugin validate . จะอ่าน manifest ใน .claude-plugin/ และรายงานว่า plugin นั้นมีรูปแบบที่ถูกต้องหรือไม่ จากนั้นให้เริ่ม Claude Code จากไดเรกทอรีโปรเจกต์ของคุณด้วย claude --plugin-dir ~/recall
สิ่งที่ hook เขียนและช่วงเวลาที่ทำงาน
Recall ลงทะเบียน hook ของ Claude Code ไว้ 3 ตัว แต่ละตัวจะรันสคริปต์ Python จากไดเรกทอรีของปลั๊กอิน
SessionStartจะทำงานเมื่อเริ่มต้น (startup), กลับมาใช้งานต่อ (resume) และล้างข้อมูล (clear) โดยจะแสดงcontext.mdเพื่อให้เซสชันเปิดขึ้นมาพร้อมกับสรุปข้อมูลของคุณที่มองเห็นได้ทันทีStopจะทำงานทุกครั้งที่ Claude ตอบกลับเสร็จสิ้น โดยจะผนวกการโต้ตอบนั้นลงใน logSessionEndจะทำงานเมื่อปิดเซสชัน และสามารถสร้างสรุปข้อมูลขึ้นใหม่ได้
ไฟล์ที่ได้จากกระบวนการนี้มี 2 ไฟล์ ซึ่งจะอยู่ใน .recall/ ทั้งคู่
history.mdคือบันทึกแบบ append-only ซึ่งประกอบด้วย: คำสั่ง (prompts), การตอบกลับ, ไฟล์ที่ถูกแก้ไข และคำสั่งที่รันไปแล้วcontext.mdคือสรุปข้อมูลที่สร้างขึ้น: เป้าหมาย, บทสรุป, ขั้นตอนถัดไป, ไฟล์ที่ถูกแก้ไข, คำสั่งที่รันไปแล้ว และบริบทของ git
หลังจากจบหนึ่งเซสชันจริง ให้ลองตรวจสอบไดเรกทอรีดังกล่าว
ls -la .recall/เมื่อเปิดใช้งานการบันทึก (capture) โดยไม่มีเครื่องหมายหยุดชั่วคราวและมี transcript อยู่ คุณควรจะเห็น history.md ที่มีเนื้อหาอยู่ภายใน คุณอาจไม่เห็น context.md เลย ซึ่งถือเป็นพฤติกรรมปกติไม่ใช่ข้อผิดพลาด auto_save_context จะเป็น off เว้นแต่คุณจะตั้งค่าไว้ ดังนั้นสรุปข้อมูลจะถูกเขียนขึ้นก็ต่อเมื่อคุณร้องขอเท่านั้น:
/recall:saveคำสั่งนั้นจะรันตัวสรุปข้อมูลภายในเครื่องผ่าน history.md และเขียนทับ context.md อัลกอริทึมที่ใช้คือ TF-IDF (term frequency, inverse document frequency) ซึ่งส่งข้อมูลไปยังการจัดอันดับประโยคแบบ TextRank กระบวนการนี้เป็นแบบกำหนดผลลัพธ์ได้แน่นอน (deterministic) และเป็นการคัดเลือกเนื้อหา (extractive) ซึ่งหมายความว่ามันจะเลือกประโยคที่มีอยู่ใน log ของคุณอยู่แล้ว ไม่มีการเรียกใช้โมเดลใดๆ ดังนั้นขั้นตอนนี้จึงไม่มีค่าใช้จ่ายและทำงานได้แม้เครื่องจะออฟไลน์
การกำหนดค่า Recall สำหรับหนึ่งโปรเจกต์
การกำหนดค่าจะอยู่ในไฟล์ recall.config.json ที่ root ของโปรเจกต์ นี่คือค่าเริ่มต้นที่มาพร้อมกับซอฟต์แวร์:
{
"output_dir": ".recall",
"capture_history": true,
"summary_sentences": 8,
"redact": true,
"include_git": true,
"max_input_chars": 200000
}output_dirกำหนดตำแหน่งที่จัดเก็บไฟล์ทั้งสอง ควรเก็บไว้ภายในโปรเจกต์capture_historyใช้เปิดหรือปิดการทำงานของ loghistory.mdauto_save_contextรองรับค่าoffหรือon_endโดยมีค่าเริ่มต้นเป็นoffsummary_sentencesคือจำนวนประโยคที่จะถูกเก็บไว้ในcontext.mdการเพิ่มค่านี้จะทำให้ได้สรุปที่ยาวขึ้นและใช้เวลาโหลดเพิ่มขึ้นเล็กน้อยเมื่อเริ่มเซสชันredactจะลบรูปแบบข้อมูลลับทั่วไปออกก่อนที่จะมีการเขียนข้อมูลใดๆ ลงดิสก์include_gitจะเพิ่มสถิติของ diff ปัจจุบันและ commit ล่าสุดเข้าไปในสรุปmax_input_charsจำกัดปริมาณของhistory.mdที่ตัวสรุปจะอ่านในการประมวลผลหนึ่งรอบ
สำหรับการใช้งานโปรเจกต์บน VPS การเปลี่ยนแปลงที่มีประโยชน์คือการบันทึกอัตโนมัติ เนื่องจากเซสชันบนเซิร์ฟเวอร์มักจะสิ้นสุดลงเมื่อ terminal ถูกปิด มากกว่าที่จะเกิดจากการที่คุณตัดสินใจหยุดใช้งานเอง
{
"auto_save_context": "on_end",
"summary_sentences": 12
}หากต้องการหยุดการบันทึกชั่วคราวโดยไม่ต้องแก้ไขไฟล์ config ให้สร้างไฟล์ pause marker ขึ้นมา และลบไฟล์ดังกล่าวทิ้งเมื่อต้องการเริ่มบันทึกใหม่อีกครั้ง
touch .recall/.capture-pausedควรดำเนินการตามนี้ก่อนเริ่มเซสชันที่คุณต้องจัดการกับ credential ของระบบ production เนื่องจากระบบการลบข้อมูลลับเป็นเพียงตัวกรอง ไม่ใช่การรับประกันความปลอดภัย เหตุผลเดียวกันนี้เป็นที่มาของการ ป้องกันไม่ให้ข้อมูลลับหลุดไปถึง AI agent โดยทั่วไป: ข้อมูลลับที่ปลอดภัยที่สุดคือข้อมูลที่ AI agent ไม่เคยเห็นเลย
Recall ช่วยประหยัดโทเค็นได้มากน้อยเพียงใด
ขึ้นอยู่กับว่าทางเลือกอื่นคืออะไร การโหลดสรุปข้อมูลเมื่อเริ่มเซสชันนั้นมีราคาถูก สิ่งที่มันเข้ามาแทนที่อาจมีราคาสูง เพราะโมเดลที่ไม่มีความจำเกี่ยวกับโปรเจกต์ของคุณจะต้องเริ่มทำความเข้าใจใหม่ด้วยการอ่านไฟล์ทั้งหมด
ข้อมูลเบื้องหลังแผนภูมินี้
[
{
"label": "Recall context.md",
"char_count": "4,800",
"est_tokens": "1,200"
},
{
"label": "Hand-written CLAUDE.md",
"char_count": "3,200",
"est_tokens": "800"
},
{
"label": "Re-reading the repo",
"char_count": "120,000",
"est_tokens": "30,000"
},
{
"label": "Full transcript replay",
"char_count": "340,000",
"est_tokens": "85,000"
}
]ตัวเลขเหล่านี้เป็นค่าโดยประมาณสำหรับโปรเจกต์ขนาดกลาง ไม่ใช่การวัดผลจากโปรเจกต์ของคุณโดยตรง สรุปข้อมูลของ Recall จะโหลดที่ประมาณ 1,200 โทเค็น ซึ่งสอดคล้องกับที่โปรเจกต์ระบุไว้ว่าใช้หนึ่งถึงสองพันโทเค็นสำหรับการทำ resume การโหลดประวัติการสนทนาก่อนหน้าทั้งหมดซ้ำจะใช้โทเค็นในระดับ 85,000 โทเค็น การปล่อยให้โมเดลทำความเข้าใจโปรเจกต์ใหม่ด้วยการอ่านไฟล์จะมีค่าใช้จ่ายอยู่ระหว่างสองวิธีนี้ คือใกล้เคียงกับ 30,000 โทเค็น และตัวเลขนี้จะเพิ่มขึ้นตามขนาดของ repository แถว CLAUDE.md มีไว้เพื่อเปรียบเทียบขนาด: มันมีราคาถูกกว่าเพราะสั้นและคงที่ อีกทั้งยังบอกกฎพื้นฐานแก่โมเดลแทนที่จะบอกว่าเกิดอะไรขึ้นเมื่อคืนนี้
คุณควรวัดตัวเลขด้วยตนเอง โทเค็นหนึ่งตัวมีค่าประมาณสี่ตัวอักษรสำหรับภาษาอังกฤษ และน้อยกว่านั้นเล็กน้อยสำหรับโค้ด หากคุณส่งสรุปข้อมูลไปยังโมเดลในเครื่องบน VPS เดียวกัน ให้ตรวจสอบขนาดหน้าต่างบริบท (context window) ก่อนที่จะเชื่อถือข้อมูล resume เพราะ ความยาวบริบทเริ่มต้นของ Ollama ขึ้นอยู่กับ VRAM ที่ว่างอยู่
wc -c .recall/context.md .recall/history.md
echo $(( $(wc -c < .recall/context.md) / 4 ))ภายในเซสชัน /context จะแสดงสิ่งที่ถูกโหลดเข้าสู่ context window ในขณะนี้ และ /cost จะรายงานผลรวมของเซสชัน ให้ลองเริ่มเซสชันแบบปกติหนึ่งครั้ง และเริ่มเซสชันถัดไปโดยมีการโหลดสรุปข้อมูลไว้ แล้วจึงเปรียบเทียบกัน สำหรับภาพรวมทั้งหมดว่าโทเค็นของเซสชันถูกใช้ไปกับอะไรบ้าง วิธีที่ Claude Code ใช้โทเค็น จะมีรายละเอียดแยกย่อยให้ดู
มีข้อควรระวังประการหนึ่งเพื่อให้ข้อมูลนี้มีความถูกต้อง สรุปข้อมูลจะถูกโหลดทุกครั้งที่เริ่มเซสชัน ดังนั้นสรุปข้อมูลที่คุณไม่ได้นำไปใช้งานจริงจะเป็นภาระเล็กน้อยมากกว่าจะเป็นการประหยัด ให้คงค่า summary_sentences ไว้ใกล้เคียงกับค่าเริ่มต้น เว้นแต่ว่าเซสชันของคุณจะดำเนินไปอย่างยาวนาน เซสชันที่เงียบกว่าจะช่วยในอีกด้านหนึ่งของบัญชี เพราะ เอเจนต์ที่ถูกผลักดันให้ทำการเปลี่ยนแปลงที่เล็กที่สุดที่ใช้งานได้ จะทิ้งบันทึกที่สั้นกว่าไว้ให้ตัวสรุปข้อมูลนำไปจัดลำดับความสำคัญ
สร้างสรุปใหม่โดยไม่ต้องใช้เซสชัน
หากคุณโคลน repository มา ตัวสรุปผลจะมีจุดเริ่มต้นการทำงานผ่านบรรทัดคำสั่งแยกต่างหาก ซึ่งมีประโยชน์บน VPS ในกรณีที่เซสชันหลุดไปพร้อมกับเทอร์มินัล แต่คุณยังต้องการสรุปผลอยู่
python3 ~/recall/scripts/make_context.py --helpผลลัพธ์จากคำสั่ง help จะแสดงรายการแฟล็กที่รองรับ ได้แก่ --cwd สำหรับ root ของโปรเจกต์, --transcript สำหรับระบุไฟล์ transcript โดยเฉพาะ, --quiet เพื่อระงับการแสดงผล และ --harness เพื่อเลือกระหว่าง claude และ opencode ให้ระบุเส้นทางไปยังโปรเจกต์ดังนี้:
python3 ~/recall/scripts/make_context.py --cwd /srv/projects/apiเครื่องมือจะอ่าน transcript ของเซสชันและ history.md จากนั้นจะเขียนไฟล์ context.md ไว้ภายใต้ไดเรกทอรีที่คุณระบุ หากคุณติดตั้งผ่าน marketplace ปลั๊กอินจะอยู่ในไดเรกทอรีที่ Claude Code จัดการ และ /recall:save คือวิธีที่รองรับในการทำงานเดียวกันนี้
เหตุใดจึงไม่มีการเขียนข้อมูลใดๆ
ไม่มีไดเรกทอรี .recall/ หลังจากจบเซสชันเต็ม ให้ตรวจสอบว่าการบันทึกถูกปิดใช้งานอยู่หรือไม่ ไดเรกทอรีเอาต์พุตถูกกำหนดค่าไว้ที่อื่น หรือไม่พบ transcript ก่อนที่จะสรุปว่า hook ไม่เคยทำงาน ให้พิมพ์ /recall:show เพื่อยืนยันว่าปลั๊กอินถูกโหลดแล้ว จากนั้นรัน python3 -V คำสั่ง hook จะพยายามใช้ python3 เป็นอันดับแรกและ python เป็นอันดับสอง ดังนั้นหากเครื่องไม่มีทั้งสองอย่างจะล้มเหลวพร้อมข้อความ stderr และสถานะการออกเป็น 127 โดย Claude Code จะแสดงการแจ้งเตือนข้อผิดพลาดของ hook แบบไม่บล็อกการทำงานซึ่งมีบรรทัดแรกของ stderr ปรากฏอยู่
history.md มีขนาดเพิ่มขึ้นแต่ context.md ไม่เปลี่ยนแปลงเลย โดยค่าเริ่มต้น auto_save_context จะถูกตั้งเป็น off ให้รัน /recall:save หรือตั้งค่าคีย์เป็น on_end แล้วปล่อยให้ hook SessionEnd จัดการแทน
ไฟล์ปรากฏในโปรเจกต์ที่ไม่ถูกต้อง Recall จะเขียนไฟล์โดยอ้างอิงจากไดเรกทอรีที่เริ่มใช้งาน Claude Code ดังนั้นการเริ่มเซสชันจากโฮมไดเรกทอรีจะทำให้หน่วยความจำถูกเก็บไว้ที่นั่น ให้เริ่มจากรูทของโปรเจกต์ และใช้ ls -la .recall/ เพื่อค้นหาว่าไฟล์ถูกจัดเก็บไว้ที่ใดจริงๆ
การบันทึกหยุดทำงานโดยไม่มีการแจ้งเตือน ให้ตรวจสอบเครื่องหมายหยุดชั่วคราวด้วย ls -a .recall/ ไฟล์ .capture-paused ที่คุณสร้างไว้เมื่อสัปดาห์ที่แล้วอาจยังคงทำงานของมันอยู่
สรุปเนื้อหาดูเบาบางหลังจากเซสชันที่ยาวนาน max_input_chars จำกัดอินพุตของตัวสรุปไว้ที่ 200000 ตัวอักษร ดังนั้น log ที่ยาวมากจะถูกตัดออก ให้ทำการหมุนเวียน (rotate) log แทน
mv .recall/history.md .recall/history-2026-07-30.mdให้รันเซสชันสั้นๆ หนึ่งครั้งหลังจากนั้นแล้วตรวจสอบ ls -la .recall/ อีกครั้งเพื่อยืนยันว่ามี history.md ใหม่ปรากฏขึ้นมา
ขอบเขตการทำงานของ Recall
Recall ทำหน้าที่เป็นบันทึกและเครื่องมือสรุปผล ซึ่งควรทำความเข้าใจให้ชัดเจนว่ามีส่วนใดบ้างที่อยู่นอกเหนือขอบเขตการทำงาน
เครื่องมือสรุปผลใช้วิธีการดึงเนื้อหา (extractive) โดย TextRank จะเลือกประโยคที่มีอยู่แล้วใน history.md ดังนั้นระบบจึงไม่ได้ตัดสินว่าการตัดสินใจนั้นถูกต้องหรือไม่ การตัดสินใจที่ผิดพลาดในวันอังคารจะถูกบันทึกไว้อย่างชัดเจนเหมือนกับการตัดสินใจที่ดีในวันพุธ หากเป็นเรื่องที่มีความสำคัญสูง ให้ตรวจสอบ context.md และแก้ไขด้วยตนเอง เนื่องจากเป็นไฟล์ markdown คุณจึงสามารถแก้ไขได้โดยไม่มีข้อจำกัด
ระบบไม่มีฟังก์ชันการค้นหา คุณจะได้รับสรุปปัจจุบันหนึ่งชุดและบันทึกที่เพิ่มขึ้นเรื่อยๆ ต่อหนึ่งโปรเจกต์ ไม่ใช่หน่วยความจำที่สามารถสืบค้นข้ามโปรเจกต์ได้ หากต้องการทราบว่าคุณตัดสินใจเรื่องฐานข้อมูลไว้อย่างไรเมื่อสามสัปดาห์ก่อน คุณต้องใช้คำสั่ง grep ใน history.md ระบบไม่ได้ออกแบบมาเพื่อการประสานงานแบบเรียลไทม์ แม้ว่าสองเซสชันในโปรเจกต์เดียวกันจะใช้ไฟล์บันทึกร่วมกัน แต่ Recall จะไม่ส่งรายการบันทึกใหม่เข้าไปในบริบทของอีกเซสชันหนึ่ง ดังนั้นเมื่อต้องการทราบว่าอีกฝ่ายกำลังทำอะไร เซสชันสามารถส่งข้อความถึงกันได้โดยตรง ในขณะที่กำลังทำงาน
ระบบไม่ได้ช่วยจัดการภายในเซสชัน การที่หน้าต่างบริบท (context window) เต็มระหว่างเซสชันเป็นปัญหาที่ต่างออกไปและมีวิธีแก้ไขที่ต่างกัน โดย การจัดการหน้าต่างบริบทภายในเซสชันเดียว เป็นเนื้อหาที่ควรอ่านควบคู่ไปกับคู่มือนี้
สรุปผลถูกปฏิบัติเสมือนเป็นข้อมูลที่ไม่น่าเชื่อถือตามการออกแบบ context.md จะถูกแทรกโดยมีการกั้นขอบเขตและระบุป้ายกำกับไว้ และ Claude จะสอบถามก่อนที่จะนำไปใช้งาน การออกแบบนี้มีไว้เพื่อป้องกันกรณีที่ไดเรกทอรี .recall/ ที่ถูก commit ไว้เป็นพื้นที่ที่ใครก็ตามที่มีสิทธิ์ commit สามารถเขียนข้อความที่เอเจนต์ของคุณจะอ่านได้ ระดับที่เอเจนต์จะหยุดถามเกี่ยวกับสิ่งที่อ่านขึ้นอยู่กับโหมดสิทธิ์ที่เซสชันเริ่มต้น สำหรับ Claude Code v2.1.283 หรือใหม่กว่า โหมด auto เป็นโหมดเริ่มต้นในตัว สำหรับเซสชันในเทอร์มินัลแบบโต้ตอบและ VS Code ในทุกแผนและผู้ให้บริการ ดังนั้นตัวจำแนกประเภท (classifier) จะเป็นผู้ตรวจสอบการกระทำส่วนใหญ่แทนคุณ ส่วนองค์กรที่ใช้การตั้งค่า HIPAA จะยังคงเริ่มต้นในโหมด Manual ตัดสินใจให้แน่ชัดว่า .recall/ เป็นข้อมูลส่วนตัวหรือข้อมูลที่ใช้ร่วมกัน: หากเป็นหน่วยความจำส่วนตัวให้เพิ่มลงใน .gitignore หรือหากต้องการ commit ก็ให้ตรวจสอบเช่นเดียวกับการมีส่วนร่วมอื่นๆ หากเอเจนต์ทำงานโดยไม่มีผู้ดูแล การรัน Claude Code อย่างปลอดภัยบน VPS จะครอบคลุมถึงขอบเขตความปลอดภัยที่กว้างขึ้น
การปกปิดข้อมูล (redaction) เป็นเพียงความพยายามในระดับหนึ่งเท่านั้น โดยมุ่งเน้นไปที่รูปแบบทั่วไป เช่น API keys, tokens, PEM blocks และการกำหนดค่า .env โปรดอ่าน .recall/ ก่อนที่คุณจะทำการ commit
หมายเลขเวอร์ชันแสดงถึงความสมบูรณ์ของซอฟต์แวร์ตามความเป็นจริง ณ เวอร์ชัน 0.4.0 ซึ่งยังคงเป็นรุ่นล่าสุดในเดือนตุลาคม 2026 คีย์การตั้งค่าและโครงสร้างไฟล์อาจมีการเปลี่ยนแปลงระหว่างรุ่น ดังนั้นโปรดอ่าน changelog ก่อนที่จะอัปเกรดระบบที่คุณใช้งานอยู่
FAQ
Recall ส่งโค้ดหรือบันทึกการสนทนาของฉันไปที่ใดหรือไม่?
ไม่ การดึงข้อมูลและตัวสรุปผลเป็นสคริปต์ Python ที่ทำงานบนเครื่องของคุณเอง ปลั๊กอินนี้ไม่มี API key และไม่มีการเรียกใช้งานผ่านเครือข่าย การสรุปผลใช้ TF-IDF และ TextRank แทนการใช้โมเดล ดังนั้นขั้นตอนนี้จึงไม่มีค่าใช้จ่ายและทำงานได้ในขณะที่เครื่องออฟไลน์ ข้อแลกเปลี่ยนคือการสรุปผลจะเป็นแบบดึงเนื้อหา (extractive): คือการเลือกประโยคจากบันทึกของคุณแทนการเขียนขึ้นใหม่
ทำไม .recall/context.md ของฉันถึงหายไปหรือไม่อัปเดต?
auto_save_context มีค่าเริ่มต้นเป็น off ดังนั้นสรุปผลจะถูกสร้างใหม่ก็ต่อเมื่อคุณรัน /recall:save เท่านั้น ให้ตั้งค่า "auto_save_context": "on_end" ใน recall.config.json เพื่อให้มีการเขียนสรุปใหม่เมื่อสิ้นสุดแต่ละเซสชัน หาก history.md หายไปเช่นกัน ให้ตรวจสอบ capture_history, เครื่องหมาย .capture-paused และตรวจสอบว่ามีบันทึกของเซสชันนั้นอยู่หรือไม่: การรัน hooks จะข้ามการเขียนประวัติในกรณีเหล่านั้น ยืนยันว่าปลั๊กอินถูกโหลดแล้วด้วย /recall:show จากนั้นยืนยันว่า python3 -V ตอบสนองบนเครื่องนั้น เนื่องจาก hooks เป็นสคริปต์ Python
Recall ประหยัดได้เท่าใดต่อหนึ่งเซสชัน?
การโหลดสรุปผลใช้โทเค็นประมาณ 1,200 เทียบกับ 30,000 โทเค็นสำหรับโมเดลที่ต้องอ่าน repository ของคุณใหม่เพื่อหาตำแหน่งที่ค้างไว้ นี่เป็นตัวเลขโดยประมาณ ให้วัดค่าด้วยตัวคุณเองโดยใช้ wc -c .recall/context.md และคำสั่ง /context ภายในเซสชัน โดยเปรียบเทียบระหว่างการเริ่มใหม่แบบ cold start กับการเริ่มต่อจากสรุปผล
ฉันยังจำเป็นต้องมีไฟล์ CLAUDE.md หรือไม่?
จำเป็น และทั้งสองไฟล์ทำหน้าที่ต่างกัน CLAUDE.md คือสิ่งที่คุณเขียนขึ้นโดยเจตนา: กฎถาวรและคำสั่ง build ส่วน context.md ถูกสร้างขึ้นจากสิ่งที่เกิดขึ้นจริงในเซสชันล่าสุด จึงเก็บข้อมูลการย้ายระบบที่ยังไม่เสร็จสมบูรณ์ซึ่งคุณอาจไม่ได้จดบันทึกไว้ ควรเก็บไว้ทั้งสองไฟล์
VPS หนึ่งเครื่องสามารถเก็บหน่วยความจำสำหรับหลายโปรเจกต์ได้หรือไม่?
ได้ Recall เก็บหน่วยความจำไว้ใน .recall/ ภายในไดเรกทอรีของแต่ละโปรเจกต์ ดังนั้นสองโปรเจกต์บนเซิร์ฟเวอร์เดียวกันจะแยกบันทึกและสรุปผลออกจากกัน ให้เริ่ม Claude Code จาก root ของโปรเจกต์ทุกครั้ง เนื่องจากไฟล์จะอ้างอิงตาม working directory ไม่ใช่บัญชีผู้ใช้