SSD Nodes Learn Hosting plans →
คู่มือ Matt Connorโดย Matt Connor

ตั้งค่า Recall ให้ Claude Code จำงานต่อบน VPS

Recall บันทึกทุกเซสชัน Claude Code เป็นไฟล์ Markdown ในเครื่อง แล้วสร้างสรุปสำหรับทำงานต่อบน VPS ตรวจสอบขั้นตอนติดตั้งและวัดการประหยัดโทเค็นด้วยเวอร์ชัน 0.4.0

Verified Every command ran end-to-end on a fresh Ubuntu 24.04 server, July 30, 2026.

สิ่งที่ 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 -V

Ubuntu 24.04 ตอบโจทย์ Python 3.12.3 โดย Recall รองรับ Python 3.9 ขึ้นไป อิมเมจคอนเทนเนอร์แบบ Minimal บางตัวอาจไม่มีตัวแปลภาษาติดตั้งมาให้เลย ซึ่งในกรณีนั้นเชลล์จะตอบกลับด้วย python3: command not found โปรดติดตั้งตัวแปลภาษาก่อนดำเนินการในขั้นตอนถัดไป

sudo apt update && sudo apt install -y python3

NumPy เป็นตัวเร่งความเร็วทางเลือกสำหรับขั้นตอนหนึ่งของตัวสรุปเนื้อหา (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 ตอบกลับเสร็จสิ้น โดยจะผนวกการโต้ตอบนั้นลงใน log
  • SessionEnd จะทำงานเมื่อปิดเซสชัน และสามารถสร้างสรุปข้อมูลขึ้นใหม่ได้

ไฟล์ที่ได้จากกระบวนการนี้มี 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 ใช้เปิดหรือปิดการทำงานของ log history.md
  • auto_save_context รองรับค่า off หรือ on_end โดยมีค่าเริ่มต้นเป็น off
  • summary_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 ช่วยประหยัดโทเค็นได้มากน้อยเพียงใด

ขึ้นอยู่กับว่าทางเลือกอื่นคืออะไร การโหลดสรุปข้อมูลเมื่อเริ่มเซสชันนั้นมีราคาถูก สิ่งที่มันเข้ามาแทนที่อาจมีราคาสูง เพราะโมเดลที่ไม่มีความจำเกี่ยวกับโปรเจกต์ของคุณจะต้องเริ่มทำความเข้าใจใหม่ด้วยการอ่านไฟล์ทั้งหมด

แผนภูมิTypical cost of resuming work, per session
ข้อมูลเบื้องหลังแผนภูมินี้
[
  {
    "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 ไม่ใช่บัญชีผู้ใช้

บทความนี้มีประโยชน์หรือไม่