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

วิธีติดตั้ง Recall ให้ Claude Code จำงานบน VPS ได้แม่นยำ

Recall คือปลั๊กอินที่ช่วยให้ Claude Code จดจำสถานะงานข้ามเซสชันผ่านไฟล์ Markdown ในเครื่อง ช่วยลดการอ่านซอร์สโค้ดซ้ำและประหยัดค่า API tokens ได้อย่างมีประสิทธิภาพสูงสุด

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 log) และบทสรุปสั้นๆ ของสถานะงานล่าสุด ทั้งสองไฟล์ถูกสร้างขึ้นบนเครื่องที่คุณกำลังทำงานอยู่โดยตัวสรุปผลภาษา Python ในเครื่อง ดังนั้นหน่วยความจำนี้จึงไม่มีค่าใช้จ่ายเป็น API tokens เลย

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

Recall เวอร์ชัน 0.4.0 เป็นเวอร์ชันปัจจุบัน ณ เดือนกรกฎาคม 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 ทำงานเมื่อเริ่มต้นระบบ, กลับมาทำงานต่อ และล้างข้อมูล โดยจะแสดง context.md เพื่อให้เซสชันเปิดขึ้นมาพร้อมกับสรุปข้อมูลที่คุณมองเห็นได้
  • Stop ทำงานทุกครั้งที่ Claude ตอบกลับเสร็จสิ้น โดยจะผนวกการโต้ตอบนั้นลงใน log
  • SessionEnd ทำงานเมื่อปิดเซสชัน และสามารถสร้างสรุปข้อมูลขึ้นใหม่ได้

ผลลัพธ์ที่ได้จะมีไฟล์ 2 ไฟล์ ซึ่งอยู่ใน .recall/

  • history.md คือบันทึกแบบ append-only: ประกอบด้วย prompt, การตอบกลับ, ไฟล์ที่ถูกแก้ไข และคำสั่งที่รัน
  • context.md คือสรุปข้อมูลที่สร้างขึ้น: ประกอบด้วยเป้าหมาย, บทสรุป, ขั้นตอนถัดไป, ไฟล์ที่ถูกแก้ไข, คำสั่งที่รัน และบริบทของ git

หลังจากใช้งานจริงหนึ่งเซสชัน ให้ตรวจสอบไดเรกทอรีดังกล่าว

ls -la .recall/

คุณควรเห็น 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 โดยทั่วไป: ข้อมูลลับที่ปลอดภัยที่สุดคือข้อมูลที่ agent ไม่เคยเห็นเลย

Recall ช่วยประหยัดโทเค็นได้มากน้อยเพียงใด?

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

ChartTypical cost of resuming work, per session
The data behind this chart
[
  {
    "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 จะตัด prompt ที่ยาวเกินไปที่ความยาวบริบทเริ่มต้นขนาดเล็ก แทนที่จะแจ้งให้คุณทราบว่ามันตัดส่วนท้ายทิ้ง

wc -c .recall/context.md .recall/history.md
echo $(( $(wc -c < .recall/context.md) / 4 ))

ภายในเซสชัน /context จะแสดงสิ่งที่ถูกโหลดเข้าสู่หน้าต่างบริบทในขณะนี้ และ /cost จะรายงานผลรวมของเซสชัน ให้ลองเริ่มเซสชันแบบปกติ (cold start) หนึ่งครั้ง และเริ่มเซสชันถัดไปโดยมีสรุปข้อมูลอยู่ด้วย แล้วนำมาเปรียบเทียบกัน สำหรับภาพรวมทั้งหมดว่าโทเค็นของเซสชันถูกใช้ไปที่ใดบ้าง วิธีที่ 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/ หลังจากจบเซสชัน hook ไม่เคยทำงาน ให้พิมพ์ /recall:show เพื่อยืนยันว่าปลั๊กอินถูกโหลดแล้ว จากนั้นรัน python3 -V คำสั่ง hook จะพยายามใช้ python3 เป็นอันดับแรกและ python เป็นอันดับที่สอง ดังนั้นหากเครื่องไม่มีทั้งสองอย่าง ระบบจะไม่เขียนข้อมูลใดๆ และไม่มีการแจ้งเตือน

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

Recall ไม่ได้ช่วยจัดการภายในเซสชัน ปัญหา context window ที่เต็มระหว่างเซสชันเป็นปัญหาที่ต่างออกไปและมีวิธีแก้ไขที่แตกต่างกัน โดย การจัดการ context window ภายในเซสชันเดียว เป็นเนื้อหาที่ควรอ่านควบคู่ไปกับคู่มือนี้

สรุปผลถูกออกแบบมาให้ถือว่าเป็นข้อมูลที่ไม่น่าเชื่อถือ (untrusted input) โดย context.md จะถูกแทรกเข้ามาในรูปแบบที่มีการกั้นขอบเขตและระบุที่มาไว้อย่างชัดเจน และ Claude จะสอบถามก่อนที่จะนำข้อมูลนั้นไปใช้งาน การออกแบบนี้มีขึ้นเนื่องจากไดเรกทอรี .recall/ ที่ถูก commit ไว้เป็นพื้นที่ที่ทุกคนที่มีสิทธิ์ commit สามารถเขียนข้อความที่เอเจนต์ของคุณจะอ่านได้ ระดับที่เอเจนต์จะหยุดถามเกี่ยวกับสิ่งที่อ่านขึ้นอยู่กับโหมดสิทธิ์ที่เซสชันเริ่มต้น และ โหมด auto จะกลายเป็นค่าเริ่มต้นของ Claude Code ในวันที่ 14 สิงหาคม 2026 คุณต้องตัดสินใจให้แน่ชัดว่า .recall/ เป็นข้อมูลส่วนตัวหรือข้อมูลที่ใช้ร่วมกัน หากเป็นข้อมูลส่วนตัวให้เพิ่มลงใน .gitignore หรือหากต้องการให้เป็นข้อมูลที่ใช้ร่วมกันให้ commit และตรวจสอบเหมือนกับการมีส่วนร่วมอื่นๆ หากเอเจนต์ทำงานโดยไม่มีผู้ดูแล การใช้งาน Claude Code อย่างปลอดภัยบน VPS จะครอบคลุมถึงขอบเขตความปลอดภัยที่กว้างขึ้น

การปกปิดข้อมูล (redaction) เป็นความพยายามในระดับที่ดีที่สุด โดยระบบจะมุ่งเน้นไปที่รูปแบบทั่วไป เช่น API keys, tokens, PEM blocks และการกำหนดค่า .env โปรดอ่าน .recall/ ก่อนที่คุณจะทำการ commit

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

FAQ

Recall ส่งโค้ดหรือบันทึกการสนทนาของฉันไปที่อื่นหรือไม่?

ไม่ ระบบ capture hooks และตัวสรุปผลเป็นสคริปต์ Python ที่ทำงานบนเครื่องของคุณเอง ปลั๊กอินนี้ไม่มี API key และไม่มีการเรียกใช้งานผ่านเครือข่าย การสรุปผลใช้ TF-IDF และ TextRank แทนการใช้โมเดล ดังนั้นขั้นตอนนี้จึงไม่มีค่าใช้จ่ายและทำงานได้แม้เครื่องออฟไลน์ ข้อแลกเปลี่ยนคือการสรุปผลจะเป็นแบบดึงเนื้อหา (extractive): คือการเลือกประโยคจาก log ของคุณแทนที่จะเขียนขึ้นใหม่

ทำไม .recall/context.md ของฉันถึงหายไปหรือไม่อัปเดต?

auto_save_context มีค่าเริ่มต้นเป็น off ดังนั้นสรุปผลจะถูกสร้างใหม่ก็ต่อเมื่อคุณรัน /recall:save เท่านั้น ให้ตั้งค่า "auto_save_context": "on_end" ใน recall.config.json เพื่อให้มีการเขียนสรุปใหม่เมื่อจบแต่ละเซสชัน หาก history.md หายไปด้วย แสดงว่า 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/ ภายในไดเรกทอรีของแต่ละโปรเจกต์ ดังนั้นสองโปรเจกต์บนเซิร์ฟเวอร์เดียวกันจะแยก log และสรุปผลออกจากกัน ให้เริ่มใช้งาน Claude Code จาก root ของโปรเจกต์เสมอ เพราะไฟล์จะอ้างอิงตาม working directory ไม่ใช่บัญชีผู้ใช้