Mirobody
Lab results to LOINC codes and UCUM units, symptoms and diagnoses to ICPC-3. Offline, no API key.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Governed memory for coding agents. Trust lifecycle, conflict detection, health scoring.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"agentmem": {
"command": "uvx",
"args": [
"quilmem",
"--db",
"./memory.db",
"--project",
"myproject",
"serve"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add agentmem -- uvx quilmem --db ./memory.db --project myproject serveวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"agentmem": {
"command": "uvx",
"args": [
"quilmem",
"--db",
"./memory.db",
"--project",
"myproject",
"serve"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"agentmem": {
"type": "stdio",
"command": "uvx",
"args": [
"quilmem",
"--db",
"./memory.db",
"--project",
"myproject",
"serve"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub Thezenmonster ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.2.5) เข้า registry 7 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย
ในหมวดเดียวกันมี Mirobody, FHIR MCP Server, Google Health MCP
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Lab results to LOINC codes and UCUM units, symptoms and diagnoses to ICPC-3. Offline, no API key.
MCP server providing seamless access to FHIR APIs for AI tools and healthcare applications
Privacy-first unofficial Google Health API v4 MCP server for health, sleep, activity, HR agents
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Shared memory for Claude Code, Cursor, and Codex that knows what's still true. Save sessions, catch stale and conflicting rules, and stop your agent from repeating old mistakes.
Your AI coding assistant forgets everything between sessions. It repeats old mistakes. It can't tell current rules from outdated ones. Context compresses and recovery is painful.
Most memory tools solve storage. agentmem solves trust.
pip install quilmem[mcp]
agentmem init --tool claude --project myapp
That's it. Restart your editor. Your agent now has 13 memory tools. Run memory_health to confirm.
Python-only?
pip install quilmemworks without the MCP extra. See the Python API below.
from agentmem import Memory
mem = Memory()
mem.add(type="bug", title="loudnorm undoes SFX levels", content="Never apply loudnorm to final mix. It re-normalizes everything.", status="validated")
mem.add(type="decision", title="Use per-line atempo", content="Bake speed into per-line TTS. No global pass.", status="active")
hypothesis = mem.add(type="decision", title="Maybe try 2-second gaps before CTA", content="Hypothesis from last session. Needs testing.", status="hypothesis")
results = mem.search("audio mixing")
context = mem.recall("building a narration track", max_tokens=2000)
mem.promote(hypothesis.id) # hypothesis -> active -> validated mem.deprecate(hypothesis.id, reason="Disproven by data")
replacement = mem.add(type="decision", title="Use 1-second gaps before CTA", content="Confirmed by A/B test.", status="active") mem.supersede(hypothesis.id, replacement.id) # old points to replacement
from agentmem import health_check report = health_check(mem._conn)
Other memory tools store things. agentmem knows what's still true.
| Mem0 | Letta | Mengram | agentmem | |
|---|---|---|---|---|
| Memory storage | Yes | Yes | Yes | Yes |
| Full-text search | Vector | Agent-driven | Knowledge graph | FTS5 |
| Memory lifecycle states | No | Partial | No | hypothesis -> active -> validated -> deprecated -> superseded |
| Conflict detection | No | No | Partial | Built-in |
| Staleness detection | No | No | No | Built-in |
| Health scoring | No | No | No | Built-in |
| Provenance tracking | No | No | No | source_path + source_hash |
| Trust-ranked recall | No | No | No | Validated > active > hypothesis |
| Human-readable source files | No | No | No | Canonical markdown |
| Local-first, zero infrastructure | No | Self-host option | Self-host option | Yes, always |
| MCP server | Separate | Separate | Yes | Built-in |
The core idea: every memory has a status that tracks how much you should trust it.
hypothesis New observation. Not yet confirmed. Lowest trust in recall.
| active Default. Currently believed true. Normal trust. | validated Explicitly confirmed. Highest trust in recall.
deprecated Was true, no longer. Excluded from recall. Kept for history. superseded Replaced by a newer memory. Points to replacement.
Why this matters: Without governance, your agent's memory accumulates stale rules, contradictions, and outdated decisions. It doesn't know that the voice setting from January was overridden in March. It retrieves both and the LLM picks randomly. Governed memory solves this.
from agentmem import detect_conflicts
conflicts = detect_conflicts(mem._conn)
agentmem finds memories that contradict each other:
critical (both active) vs warning (one deprecated)from agentmem import detect_stale
stale = detect_stale(mem._conn, stale_days=30)
Finds outdated memories by:
from agentmem import health_check
report = health_check(mem._conn) print(f"Health: {report.health_score}/100") print(f"Conflicts: {len(report.conflicts)}") print(f"Stale: {len(report.stale)}")
Scores your memory system 0-100 based on: conflicts, stale percentage, orphaned references, deprecated weight, and whether you have any validated memories.
Sync canonical markdown files into the DB with source tracking:
# Each memory tracks where it came from
mem.add(type="bug", title="loudnorm lifts noise", content="...", source_path="/docs/errors.md", source_section="Audio Bugs", source_hash="a1b2c3d4e5f6")
The sync engine:
from agentmem import Memory
mem = Memory("./my-agent.db", project="frontend")
record = mem.add(type="decision", title="Use TypeScript", content="...") mem.get(record.id) mem.update(record.id, content="Updated reasoning.") mem.delete(record.id) mem.list(type="bug", limit=20)
results = mem.search("typescript migration", type="decision") context = mem.recall("setting up the build", max_tokens=3000)
mem.promote(record.id) # hypothesis -> active -> validated mem.deprecate(record.id, reason="No longer relevant") replacement = mem.add(type="decision", title="Use v2 approach", content="...") mem.supersede(record.id, replacement.id) # links old to replacement
mem.save_session("Working on auth refactor. Blocked on token refresh.") mem.load_session() # picks up where last instance left off
mem.stats()
# Get started in 30 seconds
agentmem init --tool claude --project myapp
agentmem doctor
agentmem add --type bug --title "CSS grid issue" "Flexbox fallback needed" agentmem search "grid layout" agentmem recall "frontend styling" --tokens 2000
agentmem promote agentmem deprecate --reason "Fixed in v2.3" agentmem health agentmem conflicts agentmem stale --days 14
agentmem import ./errors.md --type bug agentmem save-session "Finished auth module, starting tests" agentmem load-session
agentmem serve
Built-in Model Context Protocol server for Claude Code, Cursor, and any MCP client.
pip install quilmem[mcp]
Claude Code config (.claude/settings.json):
{
"mcpServers": { "agentmem": { "command": "agentmem", "args": ["--db", "./memory.db", "--project", "myproject", "serve"], "type": "stdio" } } }
MCP tools: add_memory, search_memory, recall_memory, update_memory, delete_memory, list_memories, save_session, load_session, promote_memory, deprecate_memory, supersede_memory, memory_health, memory_conflicts
Tell your agent how to use memory: Copy the agent instructions into your CLAUDE.md, .cursorrules, or AGENTS.md. This teaches your agent the session protocol, trust hierarchy, and when to search vs add.
Seven types that cover real agent workflows:
| Type | What it stores | Example |
|---|---|---|
setting | Configuration, parameters | "Voice speed: atempo 1.08" |
bug | Errors and their fixes | "loudnorm lifts noise floor" |
decision | Rules, policies, choices | "3rd-person narration banned" |
procedure | Workflows, pipelines | "TTS -> speed -> 48kHz -> mix" |
context | Background knowledge | "Project uses FFmpeg + Python 3.11" |
feedback | User corrections | "Always pick, don't ask" |
session | Current work state | "Working on auth. Blocked on tokens." |
recall() doesn't just find relevant memories. It finds the most trustworthy relevant memories:
relevance (25%) + trust status (20%) + provenance (20%) + recency (15%) + frequency (10%) + confidence (10%)frontend = Memory("./shared.db", project="frontend")
backend = Memory("./shared.db", project="backend")
frontend.search("bug") # Only frontend bugs backend.search("bug") # Only backend bugs
This isn't theoretical. agentmem was built under production pressure over 2+ months of daily use:
.db file.MIT