본문으로 건너뛰기

© 2026 Molayo

GitHub릴리즈2026. 05. 07. 02:57

AI 코딩 에이전트의 영구 메모리

요약

Engram은 AI 코딩 에이전트가 세션 종료 후 겪는 '기억 상실' 문제를 해결하기 위해 설계된 영구 메모리 시스템입니다. 이 시스템은 단일 Go 바이너리와 SQLite 데이터베이스를 기반으로 하며, MCP(Multi-Channel Protocol)를 지원하는 모든 주요 AI 에이전트와 통합됩니다. Engram은 `mem_save`, `mem_search` 등의 다양한 도구를 제공하여 에이전트가 학습한 지식과 경험을 구조화된 형태로 저장하고 검색할 수 있게 합니다. 또한, 로컬 SQLite를 진실의 원천으로 삼고 선택적 클라우드 동기화를 통해 메모리를 여러 기기와 팀원 간에 공유하는 기능을 제공합니다.

핵심 포인트

  • AI 에이전트의 휘발성 기억 문제를 해결하는 영구 메모리 시스템입니다.
  • 단일 Go 바이너리와 SQLite를 사용하여 모든 환경(Node.js, Python 등) 의존성을 제거했습니다.
  • MCP 표준을 통해 Claude Code, Gemini CLI, Copilot 등 다양한 AI 코딩 에이전트에 통합됩니다.
  • 로컬 SQLite 데이터베이스가 권위 있는 진실의 원천이며, 클라우드 동기화는 선택적 복제/공유 기능입니다.
  • 다양한 명령어(`mem_save`, `mem_search`, `mem_session_summary` 등)를 통해 메모리 저장, 검색, 세션 관리 및 충돌 표면화 기능을 제공합니다.

AI 코딩 에이전트를 위한 영속 메모리

한 뇌. 로컬 또는 클라우드. 에이전트 무관, 단일 바이너리, 제로 의존성.

설치 • Engram Cloud • 에이전트 설정 • 코드베이스 가이드 • 아키텍처 • 플러그인 • 기여 • 전체 문서

engram/ˈen.ɡræm/

—신경과학: 뇌의 물리적 기억 흔적.

AI 코딩 에이전트는 세션이 끝나면 모든 것을 잊어버립니다. Engram 은 그에게 뇌를 줍니다.

CLI, HTTP API, MCP 서버, 인터랙티브 TUI 를 통해 노출된 Go 바이너리와 SQLite + FTS5全文 검색을 제공합니다. MCP 을 지원하는 모든 에이전트와 함께 작동합니다 — Claude Code, OpenCode, Gemini CLI, Codex, VS Code (Copilot), Antigravity, Cursor, Windsurf, 또는 그 외의 것들.

Agent (Claude Code / OpenCode / Gemini CLI / Codex / VS Code / Antigravity / ...)
↓ MCP stdio
Engram (single Go binary)
...

brew install gentleman-programming/tap/engram

Windows, Linux, 기타 설치 방법 → docs/INSTALLATION.md

에이전트한 줄 명령어
Claude Codeclaude plugin marketplace add Gentleman-Programming/engram && claude plugin install engram
...

완전한 에이전트별 설정, 메모리 프로토콜, 컴팩션 생존 → docs/AGENT-SETUP.md

그만. Node.js 없음, Python 없음, Docker 없음. 한 바이너리, 한 SQLite 파일.

1. 에이전트가 중요한 작업을 완료함 (버그 수정, 아키텍처 결정 등)
2. 에이전트가 mem_save 를 호출 → 제목, 유형, 무엇을/왜/어디에서/배운 것
3. Engram 이 FTS5 인덱싱과 함께 SQLite 에 영구 저장
...

세션 라이프사이클, 주제 키, 메모리 위생에 대한 자세한 정보 → docs/ARCHITECTURE.md

카테고리도구
저장 및 업데이트
mem_save, mem_update, mem_delete, mem_suggest_topic_key
검색 및 검색
mem_search, mem_context, mem_timeline, mem_get_observation
세션 라이프사이클
mem_session_start, mem_session_end, mem_session_summary
충돌 표면화
mem_judge, mem_compare
유틸리티
mem_save_prompt, mem_stats, mem_capture_passive, mem_merge_projects, mem_current_project, mem_doctor

파라미터가 있는 전체 도구 참조 → DOCS.md#mcp-tools-19-tools

engram tui

네비게이션: j/k
vim 키, Enter

드릴링을 위해, /

검색을 위해, Esc

뒤로. Catppuccin Mocha 테마.

기계를 넘어 메모리를 공유합니다. 압축된 조각을 사용 — 병합 충돌 없음, 거대한 파일 없음.

로컬 SQLite 는 진실의 원천입니다. 클라우드 통합은 선택적 복제입니다.

engram sync # 새 메모리를 압축된 조각으로 내보내기
git add .engram/ && git commit -m "sync engram memories"
engram sync --import # 다른 기계에서: 새 조각 가져오기
...

완전한 동기화 문서 → DOCS.md

클라우드가 선택적입니다. 로컬 SQLite 는 권위 있는; 클라우드는 복제/공유 액세스 만입니다.

추천 첫 번째 경로 (로컬 스모크):

docker compose -f docker-compose.cloud.yml up -d
engram cloud config --server http://127.0.0.1:18080
engram cloud enroll smoke-project
...

클라우드 모드는 항상 프로젝트 범위 (--project 필수; engram sync --cloud --all 의 의도된 차단).
알려진 복구 가능한 클라우드 동기화/업셋/규격화 실패는 원래 오류를 표시하고 명시적인 doctor
/repair 흐름을 추천합니다; Engram 은 동기화 또는 자동동기화에서 자동으로 복구 적용하지 않습니다.
차단된 클라우드 동기화를 위해, transport_failed, 또는 레거시 세션 디렉터리 복구를 위해 Engram Cloud Troubleshooting 을 참조하세요.
클라우드 동기화가 doctor/repair 후에도 차단되면 구제 도구 다운로드 및 권장 내보내기 행 복구 실행:

tools/repair-missing-session-directory.sh --apply --interactive --fix-exported <project>
ingram sync --cloud --project <project>

--fix-exported

local exported sessions[].directory
and observations[]
required fields that can still break the final push after doctor
reports ready. For sequential legacy sync_mutations
blockers, use tools/repair-missing-session-directory.sh --apply --interactive --all <project>
.

After upgrading engram while an MCP client is already running:

engram setup claude-code
Then restart Claude Code so it reloads the Engram MCP subprocess and refreshed hook/config files. Updating the engram
binary on disk does not replace an already-running stdio MCP process.

Upgrade flow for existing local databases (diagnose → repair → bootstrap → status):

ingram cloud upgrade doctor --project smoke-project # read-only readiness check
engram cloud upgrade repair --project smoke-project --dry-run
engram cloud upgrade repair --project smoke-project --apply
...

See DOCS.md — Cloud upgrade flow for the full state machine.

For authenticated mode, upgrade flow, dashboard behavior, reason codes, and full runtime/env details:

  • Engram Cloud docs landing
  • Engram Cloud quickstart
  • DOCS.md — Cloud CLI reference
  • DOCS.md — Cloud Autosync

Try the new memory-conflict-surfacing features in complete isolation from your existing engram setup. Docker uses non-default ports + a separate data dir + a beta-only token, so your prod cloud and ~/.engram/
are untouched. Cleanup is one command.

What's in the beta:

  • 🔄 Cloud sync of conflict relations cross-machine
  • 🔍
    engram conflicts
    CLI + HTTP API for retroactive audit + scan - 🧠
    --semantic
    scan that usesyour existing Claude Code or OpenCode CLIto judge FTS5 conflict candidates with LLM reasoning —$0 if you're on a Pro/Max/Plus subscription
git clone https://github.com/Gentleman-Programming/engram.git engram-beta-repo
cd engram-beta-repo && git checkout feat/memory-conflict-surfacing-cloud-sync
docker compose -f docker-compose.beta.yml up -d
...

1️⃣ Phase 1 — Conflict detection on save (sanity)

./engram-beta save \
"Use Clean Architecture" \
"Layers: entities, use cases, adapters." \
...

✅ Second save returns candidates[]
with the first memory's id.

2️⃣ Phase 2 — Cloud sync of relations cross-machine

./engram-beta cloud enroll beta-test
./engram-beta sync --cloud --project beta-test
./engram-beta cloud status
...

✅ The "second machine" sees memories synced from the first.

3️⃣ Phase 3 — Admin CLI + HTTP API

./engram-beta conflicts list --project beta-test
./engram-beta conflicts stats --project beta-test
./engram-beta conflicts scan --project beta-test --dry-run
...

✅ List/scan/stats return sensible data.

4️⃣ Phase 4 — Semantic LLM-judge (the killer feature) 🎯

export ENGRAM_AGENT_CLI=claude # or opencode
./engram-beta conflicts scan --project beta-test --semantic --apply \
--max-semantic 5 --concurrency 3 --yes

✅ Your agent's LLM judges semantic similarity. $0 if on a subscription.

5️⃣ The case where FTS5 finds a candidate, then the LLM judges meaning

Lexically related candidate titles with a semantic conflict:

./engram-beta save \
"Use Postgres for the user database" \
"Postgres 15 is our SQL store for users." \
...

✅ FTS5 supplies the candidate pair through shared title terms like user
/ database

LLM 은 supersedes

/ conflicts_with

. --semantic

을 판단합니다.

--semantic

은 본래적으로 완전히 다른 어휘적 쌍을 스스로 발견하지 못합니다.

docker compose -f docker-compose.beta.yml down -v
rm -rf /tmp/engram-beta-data /tmp/engram-beta-data-2 ./engram-beta

프로덕션용 엔그램 (Engram) 은 완전히 무해하게 유지됩니다.

beta-phase-2-3-4 의 문제점 보고:

CommandDescription
engram setup [agent]
Agent 통합 설치
engram serve [port]
HTTP API 시작 (기본값: 7437)
engram mcp [--tools=PROFILE]
MCP 서버 시작 (stdio 전송)
engram tui
터미널 UI 실행
engram search <query>
기억 검색
engram save <title> <msg>
기억 저장
engram timeline <obs_id>
시간순 맥락
engram context [project]
최근 세션 맥락
engram stats
기억 통계
engram export [file]
JSON 로 내보내기
engram import <file>
JSON 에서 가져오기
engram sync
Git 동기화 (내보내기/가져오기)
engram cloud <subcommand>
클라우드 설정/상태/등록 참여 + 클라우드 런타임 (serve)
`engram projects listconsolidate
프로젝트 이름 관리
engram obsidian-export
Obsidian 저장소로 내보내기 (베타)
engram version
버전 표시

Full CLI 와 모든 플래그 → docs/ARCHITECTURE.md#cli-reference

DocDescription
Installation모든 설치 방법 + 플랫폼 지원
...

Dashboard 기여자: internal/cloud/dashboard/

에 있는 .templ

파일을 수정할 경우, 커밋 전에 make templ

을 실행하여 재생성해야 합니다. DOCS.md — Dashboard 템플릿 재생성 참조.

MIT

claude-mem 에서 영감을 받았지만, 에이전트 무관 (agent-agnostic), 단순하고 다르게 구축되었습니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub Trending Go (weekly)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0