다음 코딩 에이전트는 0에서 시작하면 안 된다

코딩 에이전트를 갈아탈 때 가장 비싼 건 구독료가 아니다. 프로젝트를 다시 설명하느라 쓰는 그 한 시간이다.
어떤 파일이 중요한지, 어떤 접근이 이미 실패했는지, 테스트가 왜 그런 구조인지, 반쯤 만든 브랜치가 뭘 하고 있는지. Claude Code는 아무것도 모른다. Codex도 Cursor도 Gemini CLI도 마찬가지다. 전부 빈 컨텍스트 윈도우와, 친절하게 도와주겠다는 태도로 시작한다.
ai-memory는 이걸 해결하려는 Rust 바이너리인데, 기능 목록보다 설계상의 선택이 더 흥미롭다.
기억은 하나, harness는 여럿
내세우는 건 스무 개 남짓의 에이전트 harness——Claude Code, Codex, Cursor, Gemini CLI, OpenCode, Grok, Devin, Kimi, Kiro 등——가 하나의 공유 메모리 저장소에서 읽는다는 것이다. 하나에서 작업하다 중간에 멈추고, 같은 디렉터리에서 다른 걸 열면, 앞의 것이 하던 데서 이어 간다.
방식은 타입이 붙은 핸드오프다. 에이전트가 요약을 만들어 놓고 맞겠거니 기대하는 게 아니라, owner를 한 번만 선언할 수 있는 명시적 기록이다. 마지막 제약이 핵심인데, 덕분에 두 에이전트가 동시에 자기가 이어서 하는 중이라고 착각할 수 없고, 버려진 핸드오프도 조용히 사라지지 않고 눈에 보인다.
프로젝트를 넘나드는 층도 있다. 패키지 매니저, 테스트 배치, 모듈을 어떻게 묶는지를 좋아하는지 같은 작업 선호가 새 저장소까지 따라오기 때문에, 갓 clone한 곳에서도 어디서나 통하는 것들은 0에서 시작하지 않아도 된다.

Markdown을 진실의 원천으로
여기가 논쟁할 만한 설계 결정이다.
에이전트용 기억 시스템은 보통 임베딩을 뜻한다. 히스토리를 잘라서 임베딩하고, 벡터 데이터베이스에 넣고, 유사도로 검색한다. 돌아가긴 하는데 문제가 셋 있다. 읽을 수 없고, diff를 뜰 수 없고, 검색이 너무 불투명해서 엉뚱한 걸 돌려줬을 때 이유를 알 수가 없다.
ai-memory는 이걸 뒤집는다. 진실의 원천은 평범한 Markdown 위키고, git으로 버전 관리된다. SQLite 인덱스——전문 검색, 엔티티, 임베딩——는 파생물이고 다시 만들 수 있다. 데이터베이스를 지워도 잃는 게 없다.
이 선택 하나가 많은 걸 사준다. 위키를 grep할 수 있다. Obsidian에서 열 수 있다. 잘못된 항목을 손으로 고칠 수 있다. rsync할 수 있다. diff를 열어 보고 화요일에 에이전트의 아키텍처 이해가 바뀌었다는 걸 알 수도 있다. 그리고 날 가두는 벡터 스토어도 없다.
기억을 감사할 수 있다는 뜻이기도 하고, 이건 팀에 중요하다. "에이전트는 왜 우리가 pnpm을 쓴다고 생각하지"라는 질문의 답이 파일 하나로 끝난다.
지우지 않고 늙히기
프로젝트는 기억 노화 시스템을 설명한다. 계층별 감쇠, 접근 가중치 보존, 중복 제거, 모순 표시. 쓰이지 않는 노트는 우선순위가 내려갈 뿐 사라지지 않고, 충돌하는 항목은 조용히 덮어쓰지 않고 표시된다.
중요한 건 하드 삭제가 없다는 점이다. 오래된 페이지는 git에 남고 restore 명령으로 되살린다. 에이전트의 "낡은" 노트가 어떤 결정이 왜 내려졌는지에 대한 유일한 기록인 경우가 얼마나 많은지 생각하면, 이 기본값이 맞다.
dreaming이라는 선택 기능도 있는데, 유휴 시간에 LLM으로 식은 노트 묶음을 다시 쓴다. 기본값은 꺼짐이고, README도 원본 소재는 절대 삭제하지 않는다고 분명히 적어 두었다. 모델로 노트를 고쳐 쓰는 건 기본값 꺼짐이 정답이다.
설치는 진짜 짧다
Linux나 macOS에서는 명령 두 개. SHA-256 체크섬을 검증하는 curl-to-shell 설치 스크립트, 그리고 ai-memory setup. 데이터 디렉터리를 만들고, 사용자 레벨 서비스를 띄우고, 감지한 에이전트를 연결해 준다. Windows용 PowerShell 버전도 있고, AUR, RPM, Nix, Docker, 그리고 Claude Code와 Codex용 플러그인 마켓플레이스 항목도 있다.
일상 사용은 래퍼 하나를 중심으로 돈다. claude 대신 ai-memory run claude. 처음 실행할 때 알맞은 훅과 MCP 서버를 설치하고 세션을 현재 프로젝트로 한정한다. 그다음 ai-memory continue로 가장 최근의 관리 대상 체크아웃을 이어 가고, resume --search auth로 워크플로를 이름으로 골라 쓴다.
기존 프로젝트 히스토리를 한 번에 가져오는 bootstrap 명령도 있다. "실제로 쓰게 되는 도구"와 "언젠가 쓰겠다고 계속 마음먹는 도구"를 가르는 차이다.
좀 불편한 부분
라이프사이클 훅으로 조용히 수집한다는 건, 작업하는 동안 프롬프트와 도구 호출, 세션 경계를 기록한다는 뜻이다. 이게 없으면 작동하지 않는다——손으로 일지를 쓰진 않을 테니까——그래도 눈을 뜨고 볼 필요는 있다. 고객 코드베이스에 대해 친 프롬프트 기록은 민감한 자료이고, 이제 그게 git으로 버전 관리되는 디렉터리에 들어간다.
완화책은 합리적이다. 기본적으로 loopback에만 바인딩하고, setup은 bearer 토큰을 만들어 에이전트 설정이 아니라 owner만 읽을 수 있는 파일에 쓴다. 다만 Docker 퀵스타트는 인증 없이 돌아가고, README도 로컬 용도로만 쓰라고 표시해 두었다. TLS 리버스 프록시 없이 그 포트를 밖에 열면 작업 이력을 공개한 셈이다.
팀 쪽 이야기는 이렇게 어린 프로젝트치고 예상보다 성숙하다. 공유 서버, 프로젝트별 공유, 프라이빗 핸드오프, 다중 사용자 인증, 기여자 표시, 감사 로그까지 전부 유료 티어 밖에 있다. 실제 엔지니어링 조직과 부딪혀 살아남을지를 결정하는 건 이 기능 묶음이다.
서버를 돌리고 싶지 않다면
정당한 반론이 있다. "내 서버"라는 말이 나오는 순간 독자의 절반이 빠져나간다.
서버일 필요는 없다. setup 명령은 같은 머신에 사용자 레벨 서비스를 loopback에 묶어 띄우고, 그게 기본 경로다. 홈랩도 VPS도 DNS도 필요 없다. 머신을 넘나드는 기능과 팀 기능은 원할 때만 의미가 있고, 코어 루프와는 분리돼 있다.
저장소에서 빌드하는 macOS 메뉴 바 앱도 있고, 에디터보다 브라우저에서 위키를 훑고 싶은 사람을 위한 읽기 전용 웹 뷰도 있다. Docker 경로는 원래부터 컨테이너로 생각하는 사람들을 위한 것이다.
그래서 솔직한 도입 사다리는 이렇다. 노트북에 설치하고, 프로젝트 하나를 맡겨 보고, 거기서 나온 위키를 정말 읽고 싶은지 보면 된다. 그렇다면 나머지는 따라온다. 위키가 그냥 소음이라면 팀 기능을 아무리 얹어도 살릴 수 없다.
들리는 것보다 중요한 이유
에이전트 시장은 지금 벤더 단위로 짜여 있고, 벤더에겐 떠나기 쉽게 만들 동기가 없다. 당신의 컨텍스트가 곧 락인이다. 전환 비용이 구독료에서 연상되는 것보다 비싸게 느껴지는 이유다.
그들 모두 아래에 앉아서, 내가 소유한 형식으로 기억을 쥐고 있는 도구는 사용자 쪽의 작은 표준화다. ai-memory가 그 승자가 되는지는 거의 본론이 아니다. 이식 가능한 평문과 재구축 가능한 인덱스라는 해법의 모양은 분명히 옳고, 모든 독점 메모리 기능은 결국 이 모양과 경쟁해야 한다.
게다가 코어 루프에 API 키가 필요 없는 단일 바이너리다. "기억"이 보통 "구독 하나 더"를 뜻하는 카테고리에서 드문 일이다.
관련 글
LLM 에이전트로 세운 트레이딩 회사, 스타 11만7천. 먼저 면책 문구를 읽어야 한다
애널리스트, 강세론자, 약세론자, 트레이더, 리스크 팀, 포트폴리오 매니저. 조직도가 곧 아키텍처이며, 비결정성에 관한 README의 한 문장이 가장 중요하다.
마크다운 한 장에 22만5천 스타, 카파시의 불만은 네 원칙이 됐다
코드도 빌드도 벤치마크도 없다. 네 원칙을 적은 CLAUDE.md가 올해 대부분의 능력 릴리스보다 주목받았다. 그 격차가 기사다.
Cloudflare가 자사 감사 도구를 공개했다, 핵심은 '반박' 구조
여섯 단계, 세 가지 판정, 그리고 가장 중요한 규칙 하나. 발견 사항을 검사하는 에이전트는 결코 발견한 에이전트가 아니며, Cloudflare는 한 번에 절반만 찾는다고 인정한다.
Impeccable, 모델 없이 62개 규칙으로 AI 티를 잡아낸다
온통 Inter, 보라색 그라디언트, 카드 안의 카드 같은 장면을 24개 명령과 62개 결정론적 규칙으로 CI에서 토큰 한 푼 없이 막는 디자인 스킬.