프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

agentmem

제작자: oxgeneral버전 0.3.0i★ –i–
레지스트리 이름io.github.oxgeneral/agentmem

설치

개요

제작자가 쓴 설명(영어 원문)

Lightweight persistent memory for AI agents. Hybrid search. 16 tools. One SQLite file.

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: –
  • 전송 방식:
  • 카테고리: 검색 및 AI 기억

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

  • 기본 점검: 1개 중 1개 통과
  • 내 컴퓨터에서 내 사용자 계정의 권한(파일, 네트워크, 앱)으로 실행돼요.
  • 레지스트리에 입력해야 할 키가 나와 있지 않아요.

제작자가 레지스트리에 설치 정보를 올리지 않았어요. 아래 제작자의 README를 확인하세요.

할 수 있는 일

내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 GitHub 계정 oxgeneral 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • – 해당 없음

    엔드포인트 응답

    내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요

  • – 해당 없음

    OAuth로 로그인

    내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요

검색 및 AI 기억 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 7233개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 7233개 중 3%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 7233개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

agentmem, 안전한가요?

해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.3.0)은 9개월 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: Context7, Codebase Memory, Exa

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

Context7

제작자: upstash

Up-to-date docs for AI agents

컴퓨터 또는 클라우드★ 64,224MIT3일 전 업데이트
설치

Codebase Memory

제작자: DeusData

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

내 컴퓨터에서 실행★ 48,148MIT20일 전 업데이트
설치

Exa

제작자: exa-labs

Connect AI agents to Exa for web search, content fetching, and multi-step research.

클라우드에서 실행★ 5,213MIT44일 전 업데이트
설치

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

agentmem

mcp-name: io.github.oxgeneral/agentmem

Lightweight persistent memory for AI agents. One SQLite file. Hybrid search (keywords + semantics). Zero to 12MB install.

No PyTorch. No cloud. No server. Just memory.

206 unit tests. 107 quality tests on real data. Typed API (16 TypedDict). Production-ready.

Built by an AI agent that wakes up with no memory every session — and needed a way to remember.

Why

Every AI agent session starts from zero. Context windows compress, conversations end, memory vanishes. agentmem gives agents persistent memory that survives across sessions — in a single SQLite file.

  • Hybrid search: FTS5 full-text keywords + vector semantic search, fused with adaptive ranking
  • 4 operational modes: from zero dependencies (stdlib only) to best quality (12MB)
  • 16 MCP tools: recall, remember, save_state, compact, consolidate, entities, and more
  • HTTP REST API: 14 endpoints, zero-dependency server, CORS-ready
  • 5 memory tiers: core, learned, episodic, working (auto-expires), procedural (behavioral rules)
  • Namespaces: multi-user, multi-agent memory isolation
  • Temporal versioning: fact evolution chains with supersedes tracking
  • Entity extraction: auto-extracts @mentions, URLs, IPs, env vars, money amounts
  • Conversation extraction: auto-extracts facts, decisions, TODOs from chat history
  • Importance scoring: auto-scores memories by tier, length, specificity, structure
  • Memory consolidation: finds and merges near-duplicate memories
  • Recency boost: newer memories rank higher with configurable decay
  • Multilingual: Russian keywords via FTS5, English semantics via embeddings
  • Fast: <1ms/query hybrid search, <5ms cold start, <0.2ms/chunk import

Install

# Best quality (sqlite-vec + model2vec, 12MB total)

pip install agentmem-lite[all]

Minimal (sqlite-vec + hash embeddings, 151KB)

pip install agentmem-lite

Zero dependencies (pure Python, stdlib only)

pip install agentmem-lite --no-deps

From source

git clone https://github.com/oxgeneral/agentmem && cd agentmem pip install -e ".[all]"

Quick Start

Python API
from agentmem import MemoryStore, get_embedding_model

Auto-selects best available backend

embed = get_embedding_model() store = MemoryStore("memory.db", embedding_dim=embed.dim) store.set_embed_fn(embed)

Store memories with namespaces

store.remember("Server costs $50/month", tier="core", namespace="infra") store.remember("API returns 403 without auth", tier="learned", namespace="api") store.remember("Deployed v2.1 at 15:30", tier="episodic")

Search — hybrid keyword + semantic, with recency boost

results = store.recall("server costs", recency_weight=0.15)

Namespace isolation

results = store.recall("server", namespace="infra")

Save working state before context compression

store.save_state("Working on auth fix, step 3/5, blocked by CORS")

Add behavioral rules (procedural memory)

store.add_procedure("Always use HTTPS in production") store.add_procedure("Never expose debug endpoints") rules = store.get_procedures() # → formatted for system prompt

Update facts with version chain

store.update_memory(old_id=1, new_content="Server costs $75/month") history = store.history(memory_id=2) # → trace fact evolution

Find related memories by entity

related = store.related("10.0.0.1") # → all memories mentioning this IP entities = store.entities(entity_type="ip") # → list all known IPs

Auto-extract from conversations

messages = [ {"role": "user", "content": "Set API_KEY to sk-abc123. Always validate input."}, {"role": "assistant", "content": "Noted. I decided to use pydantic for validation."}, ] result = store.process_conversation(messages, namespace="project")

→ extracts config, preferences, decisions automatically

Maintenance

store.compact(max_age_days=90) # archive old low-value memories store.consolidate(similarity_threshold=0.85) # merge near-duplicates

Import markdown files

store.import_markdown("MEMORY.md", tier="core")

CLI
# Initialize database

agentmem init --db memory.db

Import markdown files

agentmem import MEMORY.md --tier core -n my-agent agentmem import-dir ./daily-logs/ --tier episodic

Search with namespace filter

agentmem search "deployment process" --limit 5 -n infra

Manage procedures

agentmem add-procedure "Always use markdown formatting" agentmem procedures

View entities and relations

agentmem entities --type ip agentmem related 10.0.0.1

Maintenance

agentmem compact --max-age-days 90 --dry-run agentmem consolidate --threshold 0.85

Process conversation

agentmem process chat.json -n project

Stats and export

agentmem stats agentmem export --tier core

MCP Server (stdio)
python -m agentmem --db memory.db

Add to your MCP client config:

{

"mcpServers": { "memory": { "command": "python", "args": ["-m", "agentmem", "--db", "/path/to/memory.db"] } } }

HTTP REST API
# Start HTTP server

agentmem serve-http --port 8422

Or directly

agentmem-http --port 8422 --db memory.db

# Store a memory

curl -X POST http://localhost:8422/remember \ -H "Content-Type: application/json" \ -d '{"content": "Server IP is 10.0.0.1", "tier": "core", "namespace": "infra"}'

Search

curl "http://localhost:8422/recall?query=server+IP&namespace=infra"

Health check

curl http://localhost:8422/health

16 MCP tools / 14 HTTP endpoints:

ToolHTTPDescription
recallGET /recallHybrid keyword + semantic search
rememberPOST /rememberStore a new memory
save_statePOST /save_stateEmergency save before context compression
todayGET /todayGet all memories from today
forgetPOST /forgetArchive a memory (soft delete)
unarchivePOST /unarchiveRestore an archived memory
statsGET /statsMemory statistics and health
compactPOST /compactArchive low-value memories
consolidatePOST /consolidateMerge near-duplicate memories
update_memoryPOST /update_memoryReplace a memory with version chain
historyGET /historyTrace fact version history
relatedGET /relatedFind memories by entity
entitiesGET /entitiesList all extracted entities
get_procedures—Get behavioral rules for system prompt
add_procedure—Add a behavioral rule
process_conversation—Auto-extract from chat history

Memory Tiers

TierPurposeAuto-compactedExample
corePermanent factsNever"Server IP is 10.0.0.1"
proceduralBehavioral rulesNever"Always use HTTPS"
learnedDiscovered knowledgeAfter 90 days"API returns 403 without auth"
episodicEventsAfter 90 days"Deployed v2.1 at 15:30"
workingCurrent task stateAfter 24 hours"Working on step 3/5"

Namespaces

Isolate memories per user, agent, or project:

# Store in namespaces

store.remember("Alice's API key", namespace="user/alice") store.remember("Bob's config", namespace="user/bob") store.remember("Shared fact", namespace="team")

Search within namespace (prefix matching)

store.recall("API", namespace="user/alice") # only Alice's memories store.recall("API", namespace="user") # Alice + Bob (prefix match) store.recall("API") # everything

Temporal Versioning

Track how facts evolve over time:

# Initial fact

r1 = store.remember("Server costs $50/month", tier="core")

Fact changes — old version archived, linked via supersedes

r2 = store.update_memory(r1["id"], "Server costs $75/month")

Trace the history

history = store.history(r2["id"])

→ [{"id": 2, "content": "...$75..."}, {"id": 1, "content": "...$50..."}]

Entity Extraction

Automatic regex-based NER on every remember() call:

TypePatternExample
mention@username@alice
urlhttps://...https://api.example.com
ipN.N.N.N10.0.0.1
port:NNNN:8080
emailuser@domainadmin@example.com
env_varALL_CAPSOPENAI_API_KEY
money$NNN$50
path/unix/path/etc/nginx/conf.d
hashtag#tag#deployment
# Find all memories mentioning an entity

store.related("10.0.0.1") store.related("@alice", entity_type="mention")

List all known entities

store.entities() # sorted by memory count store.entities(entity_type="ip")

Conversation Auto-Extraction

Auto-extract memories from chat history (regex-only, no LLM):

messages = [

{"role": "user", "content": "Set DATABASE_URL to postgres://localhost/mydb"}, {"role": "assistant", "content": "I decided to use connection pooling. Important: max 20 connections."}, {"role": "user", "content": "Always validate input. TODO: add rate limiting."}, ] result = store.process_conversation(messages)

Extracts: config→core, decisions→episodic, preferences→procedural, todos→working, important→core

Operational Modes

agentmem automatically selects the best available mode:

ModeInstall SizeInit TimeQuery TimeDependencies
sqlite-vec + model2vec12 MB~5ms*~1mssqlite-vec, model2vec, numpy
sqlite-vec + hash151 KB~5ms~0.8mssqlite-vec
pure Python + hash0 KB~3ms~1.8msnone (stdlib only)
pure + int8 quantize0 KB~3ms~3msnone (stdlib only)

*\*With lazy loading — model2vec loads on first query, not on init*

Architecture

┌──────────────────────────────────────────────┐

│ MemoryStore │ │ ┌──────────┐ ┌──────────┐ ┌────────────┐ │ │ │ FTS5 │ │ Vector │ │ Entity │ │ │ │ keywords │ │ Index │ │ Index │ │ │ │ + BM25 │ │ cosine │ │ regex NER │ │ │ └────┬─────┘ └────┬─────┘ └─────┬──────┘ │ │ └──────┬───────┘ │ │ │ Adaptive Hybrid Scorer │ │ │ (query classify + recency + │ │ │ importance boost) │ │ │ ┌──────────────────────────────────┴───────┐ │ │ │ SQLite + WAL │ │ │ │ memories │ memories_fts │ vecs │ entities│ │ │ └──────────────────────────────────────────┘ │ │ One file: memory.db │ └───────────────────────────────────────────────┘

Comparison

FeatureagentmemChromaDBLanceDBmem0Zep
Install size0-12 MB400+ MB100+ MB500+ MBCloud
Cold start3-5 mssecondssecondssecondsN/A
PyTorch requiredNoYesNoYesN/A
Cloud requiredNoNoNoYesYes
Zero-dep modeYesNoNoNoNo
Keyword searchFTS5 (BM25)NoNoNoYes
MCP server16 toolsNoNoYesNo
HTTP APIBuilt-inYesNoYesYes
Single file DBYesNoYesNoNo
NamespacesYesYesYesYesYes
Temporal versioningYesNoYesNoYes
Entity extractionAuto (regex)NoNoNoNo
Procedural memoryYesNoNoNoNo
Importance scoringAutoNoNoNoNo
Conversation extractionAuto (regex)NoNoYes (LLM)Yes (LLM)
Memory consolidationYesNoNoYes (LLM)No

Tested

  • 206 unit tests covering core CRUD, namespaces, temporal versioning, entity extraction, consolidation, WAL management, HTTP server, error handling
  • 107 quality tests against real-world agent memory data (100 search queries across 10 categories, all passing)
  • Benchmark suite with reproducible numbers: <1ms hybrid query, 10K+ inserts/sec, ~835 bytes/memor

앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요

PopNx에게 묻기