agentcairn
ทางการหน่วยความจำเอเจนต์แบบ Local-first: คลัง Obsidian ในรูปแบบ Markdown ธรรมดาเป็นแหล่งข้อมูลหลัก พร้อมดัชนี DuckDB ที่สามารถสร้างใหม่ได้สำหรับการเรียกค้นแบบผสมผสาน BM25 + เวกเตอร์ + กราฟ
คุณทำอะไรได้บ้างด้วย Agentcairn MCP?
- Recall relevant context across agents — สั่งให้ AI ของคุณดึงข้อเท็จจริงที่คงทนจากคลัง Markdown ที่ใช้ร่วมกันโดยใช้
recallหรือคำสั่ง/agentcairn:recall - Save durable memories — สั่งให้ AI ของคุณเขียนข้อเท็จจริงเป็นบันทึก Markdown พร้อมแหล่งที่มาผ่าน
rememberหรือ/agentcairn:rememberเพื่อให้สามารถเรียกคืนได้ทันที - Import Claude Code memory — เริ่มต้นคลังที่ใช้ร่วมกันจาก
MEMORY.mdที่มีอยู่โดยไม่เปลี่ยนแปลงไฟล์ต้นฉบับ โดยใช้cairn import claude-memory - Capture session history out-of-band — รัน
cairn sweepเพื่อแก้ไข ลดความซ้ำซ้อน และกลั่นกรองพื้นที่จัดเก็บบันทึกการสนทนาที่รองรับลงในคลังเพื่อเป็นข้อมูลสำรอง - Inspect memory in Obsidian — เปิดคลัง Markdown เดียวกันในปลั๊กอินคู่หูเพื่อเรียกดูบันทึกพร้อมข้อมูลแหล่งที่มา ความสำคัญ และข้อมูลการแทนที่
เอกสาร
หนึ่งหน่วยความจำที่คงทนสำหรับเอเจนต์เขียนโค้ดที่รองรับ
คลัง Markdown ของคุณคือข้อมูลหลัก DuckDB คือแคชสำหรับการค้นคืนที่สามารถแทนที่ได้
เว็บไซต์ · PyPI · ส่วนเสริม Obsidian · การวัดประสิทธิภาพ
กองหินนำทางทำเครื่องหมายเส้นทางสำหรับผู้ที่ตามมาทีหลัง agentcairn ทำหน้าที่นั้นให้กับเอเจนต์เขียนโค้ด: มันจับบริบทที่คงทนจากเครื่องมือที่คุณใช้, จัดเก็บเป็น Markdown ที่ตรวจสอบได้พร้อมที่มา, และเรียกคืนเฉพาะส่วนที่เกี่ยวข้องที่สุดเมื่อเอเจนต์อื่นต้องการ
หลักฐานที่คุณตรวจสอบได้
หน่วยความจำไม่ได้ถูกซ่อนอยู่หลังคอนโซลผู้ดูแลหรือฐานข้อมูลที่โฮสต์ ส่วนเสริม agentcairn-obsidian ที่แยกต่างหากอ่านไฟล์ Markdown เดียวกับเอเจนต์และเปิดเผยที่มา, ความทันสมัย, ความสำคัญ, การแทนที่, และลิงก์ related:
คลัง agentcairn จริงใน Obsidian รายการคือมุมมองเหนือไฟล์—ไม่ใช่ที่เก็บหน่วยความจำที่สอง
ภาพรวมการใช้งานจริง · 2026-07-15. จากการเรียกคืนในเครื่อง 417 ครั้ง คลังของผู้ดูแลส่งคืนบริบทเกี่ยวกับ
262× smallerมากกว่าการโหลดคลังทั้งหมดในแต่ละครั้ง—ประมาณ136.6M tokens of full-vault context avoidedโดยรวม จำนวนโทเค็นใช้ประมาณสี่ตัวอักษรต่อโทเค็น นี่ไม่ใช่การประหยัดโทเค็นที่เรียกเก็บเงิน และ agentcairn ไม่ส่งข้อมูลทางไกล
ติดตั้ง
เส้นทางที่สั้นที่สุดคือปลั๊กอินชั้นหนึ่ง มันรวมเซิร์ฟเวอร์ MCP, สกิลหน่วยความจำ, และ hooks สภาพแวดล้อมเฉพาะโฮสต์—ไม่ต้องติดตั้งแพ็คเกจ agentcairn แยกต่างหาก ปลั๊กอินเปิดใช้ผ่าน uvx ดังนั้นติดตั้ง uv ก่อนหาก uvx --version ยังไม่พร้อมใช้งาน
Claude Code
claude plugin marketplace add ccf/agentcairn
claude plugin install agentcairn@agentcairn
Claude Code ได้รับการเรียกคืนตามขอบเขตโปรเจกต์ต่อเทิร์น, การจับเซสชัน/การบีบอัด, และคำสั่ง /agentcairn:recall, /agentcairn:remember, /agentcairn:memory, /agentcairn:savings, และ /agentcairn:ingest
Codex
codex plugin marketplace add ccf/agentcairn
codex plugin add agentcairn@agentcairn
Codex ได้รับเครื่องมือ MCP และสกิลหน่วยความจำที่รวมมา, การเรียกคืน SessionStart ที่ตรวจสอบแบบสด, และการจับ SessionEnd โดยมี cairn sweep เป็นตัวสำรองนอกแบนด์
การตั้งค่าโดยมีเอเจนต์ช่วย
ใช้ skills.sh หรือเวิร์กโฟลว์ find-skills อยู่แล้ว? ติดตั้งผู้ช่วยตั้งค่าสาธารณะ:
npx skills add ccf/agentcairn --skill agentcairn-setup -g
จากนั้นถามเอเจนต์ของคุณ: Use $agentcairn-setup to preview, install, and verify AgentCairn for this coding agent.
นี่ติดตั้งเฉพาะคำแนะนำการตั้งค่า—ไม่ใช่รันไทม์ AgentCairn, เซิร์ฟเวอร์ MCP, ปลั๊กอิน, หรือ hooks ผู้ช่วยมอบหมายการเปลี่ยนแปลงเหล่านั้นให้กับตัวติดตั้งแบบเนทีฟที่แสดงตัวอย่างก่อนของ AgentCairn และตรวจสอบการผสานรวมที่ได้ผล คำสั่งปลั๊กอิน Claude Code และ Codex ด้านบนยังคงเป็นเส้นทางที่สั้นที่สุด
คลังเริ่มต้นคือ ~/agentcairn และถูกสร้างเมื่อใช้งานครั้งแรก คลังใหม่ที่ว่างเปล่ายังไม่มีอะไรที่มีประโยชน์ให้เรียกคืน ดังนั้นพิสูจน์วงจรทั้งหมดอย่างชัดเจน:
You → Remember this durable fact: staging deploys use blue-green.
Agent → written and indexed
You → Recall the staging deploy strategy.
Agent → staging deploys use blue-green. ↳ <memory permalink>
remember เขียนโน้ต Markdown และรายการดัชนีพร้อมกัน ดังนั้นการเรียกคืนทันทีจึงเป็นส่วนหนึ่งของสัญญา การรันในเครื่องครั้งแรกอาจดาวน์โหลดและอุ่นเครื่องโมเดล embedding/reranking ที่กำหนดค่าไว้
สัญญา
| คำมั่นสัญญา | ความหมายในทางปฏิบัติ |
|---|---|
| Markdown เป็นข้อมูลหลัก | โน้ต, frontmatter, และ [[wikilinks]] คือหน่วยความจำที่คงทน แก้ไขข้อเท็จจริงด้วยมือ; การอ่านที่ปรับให้สอดคล้องกันครั้งถัดไปจะยอมรับมัน |
| ดัชนีใช้แล้วทิ้งได้ | DuckDB เป็นแคชที่ได้มา การลบหรือสร้างใหม่จะไม่ลบคลัง Markdown |
| หนึ่งคลังข้ามเอเจนต์ | โฮสต์ที่รองรับใช้คลังที่กำหนดค่าเดียวกันแทนที่จะสร้างหน่วยความจำแยกสำหรับแต่ละเครื่องมือ |
| ประวัติไม่สูญหาย | โน้ตที่ได้มาจะไม่ลบโน้ตที่เก็บไว้อย่างเงียบๆ; ข้อเท็จจริงที่ถูกแทนที่และหมดอายุยังคงตรวจสอบได้และถูกลดระดับแทนที่จะซ่อน |
| ทุกผลลัพธ์มีบริบท | โปรเจกต์, สถานะความถูกต้อง, และลิงก์ถาวรเดินทางไปกับการเรียกคืนเพื่อให้เอเจนต์สามารถแยกแยะหลักฐานท้องถิ่นปัจจุบันจากประวัติข้ามโปรเจกต์ |
วิธีการทำงาน
- การจับ: hooks โฮสต์ปรับปรุงความฉับไว;
cairn sweepอ่านที่เก็บทรานสคริปต์ที่รองรับนอกแบนด์เป็นตัวสำรองที่คงทน AgentCairn ปกปิดข้อมูลรับรองที่รู้จัก, ขจัดรายการซ้ำ, กรองตามความสำคัญ, และกลั่นกรองก่อนการเขียนข้อความธรรมดาอัตโนมัติ - การปรับให้สอดคล้อง: การอ่านครั้งแรกนำดัชนีที่มีขอบเขตคลังให้ซิงค์กับ Markdown แบบทรานแซคชัน การสร้างใหม่ที่ล้มเหลวจะรักษาแคชที่ดีล่าสุดและไฟล์ที่คงทนยังคงไม่ถูกแตะต้อง
- การเรียกคืน: BM25 และเวกเตอร์ความหมายถูกหลอมรวมด้วย Reciprocal Rank Fusion จากนั้นอาจถูกจัดอันดับใหม่ ความล้มเหลวของโมเดล/ผู้ให้บริการจะถอยกลับไปใช้ BM25 พร้อมการวินิจฉัยแทนที่จะส่งคืนเวกเตอร์ที่เข้ากันไม่ได้
- การจดจำ: เครื่องมือ MCP เขียนโน้ต Markdown และอัปเดตดัชนีภายใต้การล็อกผู้เขียนหนึ่งราย ทำให้การบันทึกที่สำเร็จสามารถเรียกคืนได้ทันที
ออกแบบมาเพื่อความไว้วางใจ
- โลคอลโดยค่าเริ่มต้น. FastEmbed รันในเครื่อง, เซิร์ฟเวอร์ MCP ใช้ stdio, ไม่มีดีมอนหรือฐานข้อมูลภายนอกที่จำเป็น, และไม่มีการส่งข้อมูลทางไกล
- ขอบเขตที่ชัดเจน. คลังที่ซิงค์มี Markdown; โดยค่าเริ่มต้น, ดัชนี
.duckdbที่สร้างใหม่ได้จะอยู่นอกคลัง symlink ของคลังที่หลุดออกจากรูทที่กำหนดค่าจะถูกปฏิเสธ - การแก้ไขที่คำนึงถึงเวลา.
valid_from,valid_until, และsuperseded_byทำให้หลักฐานเก่ายังคงมองเห็นได้ในขณะที่ทำให้ข้อเท็จจริงปัจจุบันอยู่ในอันดับแรก - กราฟที่กำหนดได้.
[[wikilinks]]และเพื่อนบ้านcairn linkที่เป็นตัวเลือกสร้างกราฟแบบเนทีฟของ Obsidian โดยไม่ต้องขอให้ LLM สร้างเอนทิตี - การเรียกคืนที่รับรู้โปรเจกต์. โปรเจกต์ปัจจุบันถูกเพิ่มน้ำหนักโดยค่าเริ่มต้น; ผลลัพธ์ข้ามโปรเจกต์ยังคงพร้อมใช้งานและถูกติดป้ายกำกับ การเรียกคืนอัตโนมัติมีขอบเขตโปรเจกต์เว้นแต่คุณจะเลือกใช้ทุกโปรเจกต์อย่างชัดเจน
เอเจนต์ที่รองรับ
ทุกโฮสต์แก้ไขคลังที่กำหนดค่าเดียวกัน cairn install แสดงตัวอย่างโฮสต์ที่ตรวจพบโดยไม่ต้องเขียน การเขียนการกำหนดค่า MCP สำรองข้อมูลก่อนและรักษาเซิร์ฟเวอร์ที่ไม่เกี่ยวข้อง; การติดตั้งปลั๊กอินโฮสต์มอบหมายให้ CLI ของโฮสต์เอง
| โฮสต์ | การผสานรวม | ตั้งค่าด้วย | หน่วยความจำแวดล้อม |
|---|---|---|---|
| Claude Code | ปลั๊กอิน + MCP + สกิล | cairn install claude-code | ✅ ต่อเทิร์น + การเรียกคืน SessionStart; การจับ SessionEnd/PreCompact |
| Codex | ปลั๊กอิน + MCP + สกิล | cairn install codex | ✅ การเรียกคืน SessionStart; การจับ SessionEnd + การกวาด |
| Cursor | MCP + สกิล + การนำเข้า | cairn install cursor | ◐ การกวาดนอกแบนด์ |
| OpenCode | ปลั๊กอิน + MCP + การนำเข้า | cairn install opencode | ✅ การเรียกคืนต่อเทิร์น + การจับเมื่อว่าง/บีบอัด |
| Hermes Agent | MemoryProvider แบบเนทีฟ | integrations/hermes/ | ✅ การเรียกคืนอัตโนมัติ + การจับสิ้นสุดเซสชัน |
| Antigravity | ปลั๊กอิน + การนำเข้า | cairn install antigravity --source <dir> | ◐ การกวาดนอกแบนด์ |
| VS Code (Copilot) | เซิร์ฟเวอร์ MCP | cairn install vscode | — |
| Claude Desktop | เซิร์ฟเวอร์ MCP | cairn install claude-desktop | — |
| โฮสต์ MCP อื่นๆ | เซิร์ฟเวอร์ MCP แบบพกพา | uvx agentcairn | ขึ้นอยู่กับโฮสต์ |
SessionStart ของ Codex ได้รับการตรวจสอบแบบสดตั้งแต่ต้นจนจบด้วย agentcairn 0.24.2 / ปลั๊กอิน 0.1.2 การส่งคำสั่ง SessionEnd ที่ติดตั้งและการกวาดแยกส่วนผ่านการตรวจสอบ handler ที่แน่นอน; cairn sweep ยังคงเป็นตัวสำรองการจับนอกแบนด์ ดู การผสานรวม OpenCode และ การผสานรวม Hermes สำหรับรายละเอียดวงจรชีวิตแบบเนทีฟของพวกมัน
การใช้งานโดยตรง
ปลั๊กอินเป็นเส้นทางที่ง่ายที่สุด แต่ agentcairn ยังเป็น CLI แบบสแตนด์อโลนและเซิร์ฟเวอร์ MCP ตามต้องการ การติดตั้งแบบสแตนด์อโลนต้องการ Python 3.11+
uv tool install agentcairn
cairn init ~/agentcairn
cairn sweep --vault ~/agentcairn
cairn recall "how did we fix the auth bug?" --vault ~/agentcairn
cairn doctor --vault ~/agentcairn
นำหน่วยความจำของ Claude Code ติดตัวไปด้วย
หน่วยความจำอัตโนมัติของ Claude Code สามารถเพาะคลังที่ใช้ร่วมกันได้โดยไม่ต้องเปลี่ยนไฟล์ต้นฉบับ คำสั่งแสดงตัวอย่างเฉพาะที่เก็บปัจจุบันตามค่าเริ่มต้น; เพิ่ม --apply เพื่อเขียนโน้ตที่ปกปิดข้อมูลและรีเฟรชดัชนี
cairn import claude-memory # preview; writes nothing
cairn import claude-memory --apply # import this repository
cairn import claude-memory --project ../other --apply
การนำเข้าทางเดียวอ่าน MEMORY.md และไฟล์ Markdown หัวข้อของมัน—ไม่เคยอ่าน CLAUDE.md หรือ .claude/rules/ โน้ตที่นำเข้ายังคงรักษาที่มา Claude Code, โปรเจกต์, และไฟล์ต้นฉบับ เมื่อแหล่งที่มาเปลี่ยน, เวอร์ชันก่อนหน้ายังคงตรวจสอบได้แต่ถูกแทนที่; เมื่อแหล่งหนึ่งหายไป, เวอร์ชันที่นำเข้าจะหมดอายุ รีจิสทรี .agentcairn/native-memory/ ขนาดเล็กรักษาวงจรชีวิตนั้นโดยไม่ต้องทำดัชนีเนื้อหาต้นฉบับซ้ำ ใช้ --source <dir> สำหรับไดเรกทอรีหน่วยความจำ Claude แบบกำหนดเอง, ที่มีการจัดการ, หรือถูกแทนที่ด้วยเซสชัน, หรือ --no-reindex เมื่อนำเข้าเป็นชุด
เลือกใช้กระบวนการชั่วคราว:
uvx agentcairn # MCP server
uvx --from agentcairn cairn recall "..." # CLI; plain `uvx cairn` is a different package
การบำรุงรักษา CLI และการทำงานอัตโนมัติ
cairn schedule install --vault ~/agentcairn # launchd on macOS / user crontab on Linux
cairn schedule status
cairn link --vault ~/agentcairn # write deterministic related: neighbors
cairn reindex ~/agentcairn # rebuild the disposable cache
cairn savings # local context-efficiency estimate
cairn index-status --vault ~/agentcairn
บนระบบปฏิบัติการอื่น, รัน cairn sweep จากตัวจัดตารางงานที่คุณเลือก
การกำหนดค่าและระดับคลาวด์เสริม
การตั้งค่าอยู่ใน ~/.agentcairn/config.toml; ลำดับความสำคัญคือ แฟล็ก CLI → ตัวแปรสภาพแวดล้อม → ไฟล์กำหนดค่า → ค่าเริ่มต้น
cairn config --init
cairn config
auto_recall = true
auto_recall_k = 3
auto_recall_scope = "project" # use "all" only as an explicit cross-project opt-in
การฝัง nomic-embed-text-v1.5 ในเครื่องเป็นค่าเริ่มต้น Voyage, การฝังที่เข้ากันได้กับ OpenAI, และผู้ตัดสินความคงทนของ Anthropic เป็นการเลือกใช้ เมื่อเปิดใช้งานผู้ให้บริการคลาวด์, ชิ้นส่วนโน้ตที่ปกปิดข้อมูลลับที่เหลือและคำค้นหาจะออกจากเครื่อง; การเปลี่ยนโมเดลการฝังจะฝังคลังใหม่และอาจทำให้เกิดเวลาแฝงจริงหรือค่าใช้จ่าย API
การวัดประสิทธิภาพที่วัดได้
ที่เก็บมาพร้อมกับ ชุดทดสอบ LongMemEval-S + LoCoMo ที่ปักหมุดรุ่นและทำซ้ำได้ ค่าเริ่มต้นคือ nomic-embed-text-v1.5 ในเครื่องพร้อมกับตัวจัดอันดับใหม่แบบข้ามตัวเข้ารหัส
| ชุดข้อมูล / ความละเอียด | เมตริก | BM25 เท่านั้น | Hybrid RRF | Hybrid + ตัวจัดอันดับใหม่ |
|---|---|---|---|---|
| LoCoMo · เทิร์น | recall@5 | 0.527 | 0.562 | 0.662 |
| LongMemEval-S · เซสชัน | recall@5 | 0.920 | 0.954 | 0.969 |
| LongMemEval-S · เทิร์น | recall@5 | 0.680 | 0.640 | 0.788 |
บริบทที่ส่งคืนที่ k=10 เริ่มต้นนั้นเล็กกว่าประวัติที่ทำดัชนีทั้งหมดมาก:
| ชุดข้อมูล | ประวัติทั้งหมดเฉลี่ย | เรียกคืนเฉลี่ย | การลดลง |
|---|---|---|---|
| LoCoMo (3 การสนทนา) | 25,646 โทเค็น | 529 โทเค็น | 51.1× |
| LongMemEval-S (เต็ม 500) | 136,552 โทเค็น | 2,207 โทเค็น | 64.7× |
อ่านตัวเลขอย่างตรงไปตรงมา:
- การเรียกคืนของการค้นคืนไม่ใช่ความแม่นยำของ QA ตารางเหล่านี้เปรียบเทียบ arms การค้นคืนที่ควบคุม ไม่ใช่คุณภาพคำตอบของผู้ใช้ปลายทางหรือคะแนนลีดเดอร์บอร์ดของผลิตภัณฑ์อื่น
- จำนวนโทเค็นใช้ฮิวริสติกประมาณสี่ตัวอักษรต่อโทเค็น การลดลงเปรียบเทียบกองหญ้าที่ทำดัชนีกับชิ้นส่วนที่ส่งคืน; มันไม่ใช่การประหยัดค่าใช้จ่ายที่เรียกเก็บ
- การเพิ่มน้ำหนักกราฟไม่มีผลกับคลังข้อมูลแชทเหล่านี้เพราะไม่มีกราฟ
[[wikilink]]แบบเนทีฟ มันถูกออกแบบมาสำหรับคลังที่เชื่อมโยงกันจริง - ผู้ตัดสิน QA เสริมใช้ Anthropic แทนการตั้งค่า GPT-4o ของเอกสาร ดังนั้นผลลัพธ์ QA เหล่านั้นมีประโยชน์สำหรับการเปรียบเทียบเชิงสัมพัทธ์—ไม่ใช่การเปรียบเทียบกับลีดเดอร์บอร์ดที่เผยแพร่
เมตริกเต็ม, การกวาดการฝัง, การวัดเวลาแฝง, ใบอนุญาต, คำสั่ง, และข้อควรระวังอยู่ใน benchmarks/README.md
ความเป็นส่วนตัวและข้อจำกัด
- คลังข้อมูลถูกออกแบบให้เป็นข้อความธรรมดา ไม่ใช่ที่เก็บข้อมูลแบบเข้ารหัส AgentCairn จะปกปิดรูปแบบข้อมูลประจำตัวที่รู้จักก่อนที่จะเขียนเนื้อหา/ชื่อเรื่อง/แท็กโดยอัตโนมัติ รูปแบบที่ไม่รู้จักและการแก้ไขด้วยมือยังคงเป็นความรับผิดชอบของคุณ
- ฟีเจอร์คลาวด์เป็นการส่งออกข้อมูลอย่างชัดเจน ค่าเริ่มต้นจะทำงานเฉพาะในเครื่อง การเลือกใช้ตัวฝังข้อมูลบนคลาวด์หรือผู้ตัดสิน LLM จะส่งข้อความที่ผ่านการปกปิดที่เหลือไปยังผู้ให้บริการนั้น
- โปรเจกต์นี้อยู่ในช่วงเบต้า การใช้งานแบบสแตนด์อโลนต้องใช้ Python 3.11+ และการโหลดโมเดลภายในเครื่องครั้งแรกอาจใช้เวลา หลักฐานการค้นคืนที่เผยแพร่นั้นแข็งแกร่งที่สุดสำหรับหน่วยความจำเชิงสนทนา ไม่ใช่การอ้างว่าเป็นการค้นหาโค้ดแบบสากล
- พฤติกรรมแวดล้อมจะแตกต่างกันไปตามโฮสต์ เมทริกซ์ด้านบนเป็นไปตามความตั้งใจ: Cursor และ Antigravity อาศัยการจับภาพแบบกวาด โฮสต์ MCP ทั่วไปอาจเปิดเผยเครื่องมือโดยไม่มี hooks วงจรชีวิต
- การทำงานอัตโนมัติจะจำเพาะกับแพลตฟอร์ม การจัดตารางงานที่มีการจัดการจะกำหนดเป้าหมายไปที่ macOS launchd และ Linux user crontab ใช้ตัวจัดตารางงานของคุณเองในที่อื่น
การพัฒนา
agentcairn ใช้ uv เฉพาะสำหรับการจัดการ dependencies และเครื่องมือ
uv sync
uv run pre-commit install
uv run pytest
uv run ruff format .
uv run ruff check --fix .
uv run pre-commit run --all-files
รันการทดสอบเปรียบเทียบแบบออฟไลน์โดยไม่ใช้ API keys:
uv run pytest benchmarks/tests/
ใบอนุญาต
Apache License 2.0 — แบบอนุญาต โดยมีการให้สิทธิ์สิทธิบัตรอย่างชัดเจน ลิขสิทธิ์ © 2026 Charles C. Figueiredo