OmniMem

ทางการ

เซิร์ฟเวอร์ MCP ที่โฮสต์เอง ซึ่งช่วยให้ AI Agents มีหน่วยความจำถาวรข้ามเซสชัน โปรเจกต์ และเครื่องจักร

คุณทำอะไรได้บ้างด้วย OmniMem MCP?

มอบความทรงจำแบบถาวรและโฮสต์เองให้กับเอเจนต์ AI ของคุณ ข้ามเซสชัน โปรเจกต์ และเครื่องจักร — ขอให้มัน "ตรวจสอบสุสานก่อนที่จะแนะนำไลบรารีที่เคยล้มเหลวไปแล้ว"

  • สรุปเซสชัน — ขอ briefing เพื่อรับบริบทของโปรเจกต์ สถิติประสบการณ์ ความทรงจำที่เก่าเกินไป บทความใหม่ และคำแนะนำทักษะในการเรียกครั้งเดียว
  • หลีกเลี่ยงทางตันในอดีต — ให้เอเจนต์ตรวจสอบสุสานก่อนที่จะแนะนำไลบรารีหรือรูปแบบที่เคยล้มเหลวมาก่อน
  • เรียกคืนการตัดสินใจในอดีต — ใช้ recall เพื่อแสดงการตัดสินใจ การแก้ไข และรูปแบบจากเซสชันก่อนหน้าในหลายโปรเจกต์
  • บันทึกประสบการณ์ที่ได้มาอย่างยากลำบาก — บันทึกการแก้ไขด้วย record_experience เพื่อให้บทเรียนที่ต้องใช้ความพยายามจริงปรากฏขึ้นได้ง่ายขึ้นในครั้งถัดไป
  • ลบความทรงจำที่ซ้ำกัน — รัน find_duplicates เพื่อระบุและล้างความทรงจำที่เก็บไว้เกือบเหมือนกันเป็นกลุ่ม
  • สำรองความทรงจำของคุณ — ส่งออกทุกอย่างไปยังไฟล์ JSON ที่คุณเป็นเจ้าของด้วย dump_to_file

เอกสาร

Self-hosted semantic memory สำหรับ AI Agents. เซสชันแบบถาวร การให้คะแนนประสบการณ์ และสุสานสำหรับทางตัน ทั้งหมด backed by ความรู้ที่ได้จาก RSS ที่คุณอ่านและเก็บไว้ใน Valkey vector search จากนั้นเปิดเผยเป็น MCP server. https://omnimem.org

Ric Harvey 50fde316a1

Security Scans / Bandit SAST (push) สำเร็จใน 7 วินาที

รายละเอียด

Security Scans / Dependency Audit (mcp_server) (push) สำเร็จใน 40 วินาที

รายละเอียด

Security Scans / Dependency Audit (rss_worker) (push) สำเร็จใน 30 วินาที

รายละเอียด

Security Scans / Dependency Audit (web_ui) (push) สำเร็จใน 27 วินาที

รายละเอียด

Security Scans / Test Coverage (push) สำเร็จใน 1 นาที 23 วินาที

รายละเอียด

Security Scans / Secret Scan (push) สำเร็จใน 4 วินาที

รายละเอียด

Docker Build & Push / Build mcp_server (push) สำเร็จใน 17 นาที 57 วินาที

รายละเอียด

Docker Build & Push / Build web_ui (push) สำเร็จใน 15 นาที 23 วินาที

รายละเอียด

Docker Build & Push / Build rss_worker (push) สำเร็จใน 2 นาที 5 วินาที

รายละเอียด

Merge pull request 'v6.4.x' (#25) จาก v6.4.x เข้าสู่ main
2026-07-20 01:19:39 +02:00
.forgejo/workflowsci: pin buildx builds to the multiarch builder2026-07-17 15:08:57 +00:00
claude_configfeat: auto skill scan proposes drafts from cross-project lesson patterns2026-07-19 17:50:40 +00:00
docsfeat: auto skill scan proposes drafts from cross-project lesson patterns2026-07-19 17:50:40 +00:00
guideschore: drop the executable bit from the deployment guides2026-07-17 12:09:52 +00:00
mcp_serverci: silence bandit B104 on deliberate 0.0.0.0 test fixtures2026-07-19 23:15:31 +00:00
rss_workerci: silence bandit B104 on deliberate 0.0.0.0 test fixtures2026-07-19 23:15:31 +00:00
scriptsdocs: skill demo playbook — load, compile, demo, and clean up the moo-reports skill2026-07-17 12:28:05 +00:00
web_uici: silence bandit B104 on deliberate 0.0.0.0 test fixtures2026-07-19 23:15:31 +00:00
.env.exampledocs: 6.3.1 — web UI login across changelog, README, env example, dev guide2026-07-13 20:44:03 +00:00
.gitignoretest: push coverage to 99.9% across the whole codebase2026-07-19 19:20:36 +00:00
.gitleaks.tomlci: allowlist gitleaks false positive on valkey test string2026-07-19 23:17:59 +00:00
CHANGELOG.mdchore: bump version to 6.4.2, changelog for the 6.4.2 line2026-07-19 22:38:45 +00:00
CLAUDE.mdchore: bump version to 6.4.2, changelog for the 6.4.2 line2026-07-19 22:38:45 +00:00
docker-compose.hub.ymlfeat: one-line installer script using Docker Hub images2026-07-16 21:29:09 +00:00
docker-compose.test.ymlfeat: add comprehensive test suite with Docker-based test runner2026-03-12 16:44:58 +00:00
docker-compose.ymlfix(oauth+security): refresh-token grace window + harden server surface2026-07-08 10:40:53 +01:00
install.shfix: stop install.sh hanging under curl|bash and add step-by-step progress [skip ci]2026-07-17 16:13:10 +00:00
LICENSEchore: add MIT license2026-03-10 19:42:51 +00:00
OMNIMEM_BUILD_PROMPT.mdfeat: initial project scaffold2026-03-09 22:13:35 +00:00
README.mddocs: repeat the Codeberg development notice in the contributing section2026-07-17 12:10:22 +00:00
TODO.mddocs: add TODO.md with future feature ideas2026-03-17 17:46:16 +00:00

<OmniMem>omnimem.org

Security Scans Docker Build Coverage

การพัฒนาดำเนินการบน Codeberg — กรุณาแจ้งปัญหาและ PR ที่นั่น

หยุดใช้ชีวิตในเซสชันเดิมซ้ำสอง

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

คุณจึงต้องอธิบายโปรเจกต์อีกครั้ง Claude ก็แนะนำไลบรารีที่พังเหมือนเดิมอีกครั้ง สัญญาณเตือนเดิม เพลงเดิม คุณคือ Bill Murray และ Claude คือ Punxsutawney

OmniMem แก้ปัญหานั้น มันคือ MCP server แบบ self-hosted ที่ให้หน่วยความจำถาวรแก่ AI agent ของคุณข้ามเซสชัน โปรเจกต์ และเครื่องจักร มันรันบนฮาร์ดแวร์ของคุณเองและฟรีตลอดไป

claude> use onnxruntime for the embeddings

⚠ WARNING: previously abandoned approach

  onnxruntime — SIGILL crash on Alpine musl libc (effort: 4/5)
  → switched to sentence-transformers instead

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


เริ่มต้นอย่างรวดเร็ว

เคล็ดลับ

คำสั่งเดียวก็ได้ทั้งสแตกทำงานจาก Docker Hub images ที่ build ไว้แล้ว:

curl -fsSL https://codeberg.org/ric_harvey/omnimem/raw/branch/main/install.sh | bash

จากนั้นชี้ agent ของคุณไปที่มัน — quick start อธิบายส่วนที่เหลือ หรือข้ามไปที่ ส่วน quick start ที่ละเอียดกว่าด้านล่าง


สิ่งที่มันจำได้

ความทรงจำห้าประเภท ทั้งหมดถูกค้นหาร่วมกันเมื่อต้องการเรียกคืน:

  • Episodic — การตัดสินใจที่คุณทำ บั๊กที่คุณแก้ รูปแบบที่คุณค้นพบ สิ่งที่ต้องใช้ความพยายามจริง ๆ ในการเรียนรู้และไม่ควรต้องเรียนรู้ใหม่ทุกเช้า
  • Project context — สแตก เป้าหมาย และสถานะปัจจุบันของคุณ Agent มาถึงทุกเซสชันพร้อมข้อมูลสรุปแล้วแทนที่จะเริ่มจากศูนย์
  • Knowledge — RSS feeds ที่คุณกำหนดค่า ถูกดึงตามกำหนดเวลา สรุปโดย Claude Haiku ฝัง และจัดเก็บ เมื่อบทความที่เกี่ยวข้องตีพิมพ์เมื่อสัปดาห์ที่แล้ว มันจะปรากฏเป็นจุดเริ่มต้นที่ควรอ่าน
  • Preferences — กฎเชิงบรรทัดฐานเกี่ยวกับวิธีที่คุณต้องการทำงาน ("อัปเดต README เสมอหลังจากฟีเจอร์เสร็จ") ถูกดึงออกมาจากบทสนทนาของคุณโดยอัตโนมัติและแสดงเมื่อเกี่ยวข้อง
  • Skills — เอกสาร SKILL.md ที่คอมไพล์จากประสบการณ์สะสมของคุณในโดเมนหนึ่ง เพื่อให้ agent ทำงานแบบเดียวกับคุณตั้งแต่พรอมพ์แรก มาจาก namespace อื่น ไม่เคยแก้ด้วยมือ และทุกการเปลี่ยนแปลงต้องผ่านการตรวจสอบของคุณ ดู skill compiler ผลการค้นคืนอันดับต้นอาจเป็นการตัดสินใจจากหกเดือนก่อนในโปรเจกต์อื่น วิธีแก้ปัญหาจากเมื่อวาน หรือบทความที่ลงเมื่อคืนวันอังคาร ไม่สำคัญว่ามันมาจากไหน ขอเพียงแค่มันมีประโยชน์

อะไรที่ทำให้แตกต่าง

ไม่ใช่แค่คีย์-วอลล์สโตร์ที่ห่อด้วย MCP wrapper เท่านั้น OmniMem จำลองวิธีการทำงานของความจำจริง ๆ: สิ่งต่าง ๆ จางหายไปตามกาลเวลา บางครั้งก็ขัดแย้งกันเอง และสิ่งที่ได้มาอย่างยากลำบากก็สมควรได้ที่ยืนของมัน

  • สุสาน — ทุกทางตันจะถูกบันทึกพร้อมกับสิ่งที่ลองแล้ว ทำไมมันถึงล้มเหลว และเสียเวลาไปเท่าไร เอเจนต์จะตรวจสอบสิ่งนี้ก่อนที่จะแนะนำไลบรารีหรือแพตเทิร์น
  • การให้คะแนนตามประสบการณ์ — สิ่งที่ต้องลองสี่ครั้งและใช้วิธีเลี่ยงบนแพลตฟอร์มที่แปลกประหลาดเพื่อแก้ได้คือทองคำ ยิ่งยากเท่าไร ก็ยิ่งถูกดึงขึ้นมาได้ง่ายขึ้นในครั้งหน้า
  • วงจรชีวิตของความจำ — ACTIVE → DEPRIORITISED → ARCHIVED → DELETED "ลืมเรื่อง X" โดยปกติหมายถึงหยุดพูดถึงมัน ไม่ใช่ลบมันออกจากการมีอยู่ ความจำที่ถูกลดความสำคัญสามารถกลับมามีค่าอีกครั้งได้
  • การตรวจจับความขัดแย้ง — หากความจำใหม่ไม่เห็นด้วยกับสิ่งที่เก็บไว้ OmniMem จะจับได้ ฮิวริสติกแบบเร็วในการเขียนทุกครั้ง และการวิเคราะห์เชิงลึกเพิ่มเติมผ่าน Claude Haiku
  • การตัดซ้ำเชิงความหมาย — ความจำที่เกือบเหมือนกันจะถูกทำเครื่องหมายตอนเขียน และทำความสะอาดเป็นกลุ่มด้วย find_duplicates()
  • การสรุปด้วยการเรียกครั้งเดียว — briefing() เดียวจะคืนบริบทโปรเจกต์ สถิติประสบการณ์ ความจำที่เก่า บทความใหม่ คำเตือนความขัดแย้ง และคำแนะนำทักษะ ไม่ต้องวอร์มอัพสามขั้นตอน
  • ตัวคอมไพล์ทักษะ — กลั่นบทเรียนที่ถูกเสริมแรงและทางตันให้เป็นทักษะที่โหลดได้ ภายใต้เกตเสนอแล้วยอมรับ เพื่อให้บทเรียนที่ไม่ดีไม่กลายเป็นนโยบายอย่างเงียบ ๆ
  • การบำรุงรักษาอัตโนมัติ — เก็บถาวรรายการซ้ำ ทำเครื่องหมายความขัดแย้ง ทำความสะอาดความรู้ที่หมดอายุ ทั้งหมดในเบื้องหลัง
  • เว็บ UI — เรียกดู ค้นหา และจัดการทุกอย่างจากแดชบอร์ด htmx พร้อมเทเลเมทรีและ Prometheus /metrics เอนด์พอยต์

สูตรการจัดอันดับเบื้องหลังการค้นคืนทุกครั้ง:

score = similarity x surface_score x recency x experience_weight

สี่ปัจจัยตัดสินว่าอะไรจะกลับมา ความคล้ายคลึงเชิงความหมายอย่างเดียวไม่พอ — สถานะวงจรชีวิต อายุ และความยากในการเรียนรู้บทเรียน ล้วนมีบทบาท


ทำงานกับเอเจนต์ MCP ใดก็ได้

เลเยอร์ความจำเดียวสำหรับทั้งหมด: claude.ai, Claude Code, Claude Desktop, Cursor, GitHub Copilot, GitLab Duo, AWS Kiro, OpenCode, OpenAI Codex CLI, และ Open Design


สถาปัตยกรรม

สี่คอนเทนเนอร์ ไม่มีอะไรออกจากเครื่องของคุณ เอ็มเบดดิ้งในเครื่องผ่าน sentence-transformers จัดเก็บใน Valkey พร้อมการค้นหาเวกเตอร์ และประตูหน้าทั้งสองใช้เอนจินความจำเดียวกัน

flowchart TB
    agent["AI agent<br/>Claude Code · claude.ai · Cursor · Copilot · ..."]
    browser["Browser"]

    agent -- "MCP · Streamable HTTP / SSE · :8765" --> mcp
    browser -- "HTTP · :8080" --> webui

    subgraph stack["Docker Compose stack"]
        mcp["MCP server<br/>Python · FastMCP<br/><i>remember · recall · briefing<br/>compile_skill · record_experience</i>"]
        webui["Web UI<br/>Starlette · htmx · Jinja2<br/><i>dashboard · search · skills<br/>projects · backups · /metrics</i>"]
        rss["RSS worker<br/>feedparser · APScheduler<br/>Claude Haiku summaries"]
        valkey[("Valkey + valkey-search<br/>HNSW vector indexes<br/><i>idx:episodic · idx:project · idx:knowledge<br/>idx:preference · idx:skill</i>")]

        mcp <--> valkey
        webui <--> valkey
        rss --> valkey
    end

ภาพรวมทั้งหมด — ไพพ์ไลน์การค้นคืน โมเดลการจัดเก็บ และการตัดสินใจออกแบบ — อยู่ใน docs/architecture.md


โฮสต์เอง โอเพนซอร์ส เป็นของคุณ

ไม่มี SaaS ไม่มีการล็อกอินกับผู้ขาย ไม่ส่งบริบทไปยังเซิร์ฟเวอร์ของคนอื่น

  • Valkey คือฟอร์กโอเพนซอร์สของ Redis ข้อมูลทั้งหมดของคุณอยู่ในวอลุ่ม Docker ที่มีชื่อบนเครื่องของคุณเอง
  • อิมเมจ Docker หลายสถาปัตยกรรม สำหรับ amd64 และ arm64 มันรันบน Raspberry Pi, AWS Graviton หรือ Apple Silicon ได้ดีเท่ากับ x86
  • sentence-transformers รันเอ็มเบดดิ้งในเครื่องโดยไม่มีการเรียก API
  • สัญญาอนุญาต MIT หมายถึงฟอร์ก ขยาย และรันได้ทุกที่ที่ต้องการ
  • คำสั่งสำรองหนึ่งคำสั่ง เรียก dump_to_file() และส่งออกทุกอย่างเป็นไฟล์ JSON ที่คุณเป็นเจ้าของ

เปิดพอร์ต MCP ผ่านรีเวิร์สพร็อกซีของคุณ แล้วทุกเครื่องที่คุณทำงานจะแชร์ความจำเดียวกัน หนึ่งการติดตั้ง ใช้ได้ทุกที่ — ดู docs/remote-access.md


เริ่มต้นอย่างรวดเร็ว

ตัวติดตั้งจะตรวจสอบว่า Docker ติดตั้งแล้ว สร้างรหัสผ่านที่ปลอดภัย เขียน .env ที่เหมาะสม และเริ่มทุกอย่างจากอิมเมจ Docker Hub ที่สร้างไว้ล่วงหน้า:

curl -fsSL https://codeberg.org/ric_harvey/omnimem/raw/branch/main/install.sh | bash

หรือสร้างจากซอร์ส:

git clone https://codeberg.org/ric_harvey/omnimem.git && cd omnimem
cp .env.example .env
# Set VALKEY_PASSWORD and ANTHROPIC_API_KEY in .env
docker compose up -d

จากนั้นชี้เอเจนต์ของคุณไปที่มัน — Claude Code (~/.claude.json):

{
  "mcpServers": {
    "omnimem": {
      "type": "sse",
      "url": "http://localhost:8765/sse"
    }
  }
}

เซิร์ฟเวอร์จะส่งคู่มือการใช้งานไปยังเอเจนต์ที่เชื่อมต่อโดยอัตโนมัติผ่านฟิลด์ MCP instructions — ไม่ต้องใช้ไฟล์คอนฟิกูเรชัน แดชบอร์ดเว็บอยู่ที่ http://localhost:8080

คำแนะนำแบบเต็ม รวมถึงโทเค็นการรับรองความถูกต้อง การตั้งค่าสิทธิ์ และเอเจนต์อื่น ๆ อยู่ใน docs/quick-start.md


เอกสารประกอบ

เริ่มต้นอย่างรวดเร็วตัวติดตั้ง สร้างจากซอร์ส เชื่อมต่อเอเจนต์ของคุณ
ฟีเจอร์เชิงลึกวงจรชีวิต สุสาน การให้คะแนนประสบการณ์ การตัดซ้ำ ความขัดแย้ง การสรุป
ตัวคอมไพล์ทักษะคอมไพล์ประสบการณ์เป็นทักษะที่โหลดได้
เอกสารอ้างอิงเครื่องมือ MCPเครื่องมือทั้งหมด 30+ รายการ
เอกสารอ้างอิงคอนฟิกูเรชันตัวแปรสภาพแวดล้อมทุกตัว
RSS และความรู้การรับความรู้แบบพาสซีฟและการเลื่อนระดับ
หลายเครื่องรีเวิร์สพร็อกซี OAuth 2.1 สำหรับ claude.ai การแก้ไขปัญหา
เว็บ UIแดชบอร์ดการจัดการและเมตริก Prometheus
สถาปัตยกรรมคอนเทนเนอร์ ไพพ์ไลน์การค้นคืน การตัดสินใจออกแบบ
สเปกประเภทความจำโมเดลการจัดเก็บ ทีละฟิลด์
คู่มือการเชื่อมต่อการตั้งค่าต่อเอเจนต์
คู่มือการติดตั้งmacOS · Raspberry Pi · AWS · GCP · Linux + Tailscale Funnel

สเปกการจัดเก็บต่อเนมสเปซ หากคุณต้องการรู้แน่ชัดว่าอะไรถูกเขียนลง Valkey และโดยใคร: ภาพรวม · episodic · project · knowledge · preference · skill


การมีส่วนร่วม

ยินดีรับ Issues และ PR การพัฒนาอยู่บน Codeberg — กรุณาส่ง issues และ PR ที่นั่น OmniMem ออกแบบมาให้ขยายได้ และไพพ์ไลน์การให้คะแนนถูกจัดโครงสร้างเพื่อให้เพิ่มตัวคูณใหม่ได้โดยไม่แตะแกนหลัก เครื่องมือ MCP ใหม่ ประเภทเนมสเปซเพิ่มเติม และแบ็กเอนด์เอ็มเบดดิ้งทางเลือก ล้วนเป็นทิศทางที่สมเหตุสมผล


สัญญาอนุญาต

MIT ใช้ ฟอร์ก และแก้ไขได้ฟรี ไม่มีระดับองค์กร ไม่มีเวอร์ชันโฮสต์ ไม่มีเงื่อนไขผูกมัด


สร้างโดย Ric Harvey @ SquareCows Ltd บริษัทที่ปรึกษาด้าน AI และระบบอัตโนมัติสำหรับคนที่อยากเป็นเจ้าของเครื่องมือของตัวเอง