터미널을 두 개로 나눠 쓰기로 했었다. 하나는 tmux에서 전체적인 걸 조율하는 용도, 하나는 다른 터미널(herdr) 안에서 agy(Antigravity CLI)랑 같이 실제 개발을 하는 용도. 근데 막상 그 두 번째 쪽에서 Claude Code를 켜보니, 리포지토리가 어디 있는지도, 메일을 어떻게 보내는지도 하나도 몰랐다.
폴더가 다르면, 완전히 다른 Agent 였다
~/.claude/projects/ 밑을 열어보니 이유가 바로 보였다. Claude Code는 실행된
디렉토리 경로를 그대로 이름표 삼아서 메모리 폴더를 나눈다. 홈 디렉토리(~)에서
켠 세션은 메모리 파일 20개를 갖고 있는데, ~/Download에서 켠 세션은 완전히
별개로 24개를 갖고 있었다. 둘이 전혀 안 겹쳤다.
더 재밌는 건, 그 별도 메모리 안을 슬쩍 봤더니 “Gmail 보낼 땐 Python 라이브러리 써라, MCP 말고” 같은, 이미 다른 쪽에서 배웠던 것과 똑같은 교훈을 완전히 독립적으로 다시 배운 흔적이 있었다는 거다. 같은 실수를 폴더마다 따로 겪고, 따로 고쳐온 셈이다.
agy는 이 문제를 이미 더 잘 풀어놨더라
Claude Code만 탓하기 전에, agy는 어떻게 하고 있는지 찾아봤다. agy에 내장된
커스터마이징 가이드를 열어보니, 프로젝트 단위 규칙(AGENTS.md나 GEMINI.md)을
찾을 때 “지금 폴더가 정확히 어디냐”가 아니라 .git이 있는 저장소 루트까지
거슬러 올라가면서 찾는다고 적혀 있었다. 그러니까 같은 프로젝트 안에서는 어느
하위 폴더에서 켜든 같은 규칙 파일을 찾아낸다 — Claude Code처럼 정확히 같은
폴더에서 켜야만 같은 기억을 쓰는 문제가, 적어도 프로젝트 내부에서는 안 생긴다.
그리고 AGENTS.md는 agy만의 관례가 아니라 Claude Code도 이미 읽는 파일이었다.
즉 프로젝트 루트에 그 파일 하나만 두면 두 에이전트 모두에게 동시에 전달된다.
그래도 “어느 폴더에서 켜든” 문제는 남는다
프로젝트에 종속되지 않는, 정말 아무 데서나 적용되는 공통 규칙은 얘기가 다르다.
처음엔 각 에이전트의 전역 설정 파일(~/.claude/CLAUDE.md, agy는
~/.gemini/config/GEMINI.md)에 똑같은 내용을 그대로 복사해서 넣었다. 리포지토리
목록, 메일 발송 방법, “애매하면 먼저 물어봐라” 같은 것들.
근데 이 방식은 경험상 오래 못 간다. 파일이 두 군데가 되는 순간, 하나만 고치고 다른 하나는 깜빡하는 일이 반드시 생긴다. 그럼 결국 둘 다 못 믿게 된다.
그래서 진짜 내용은 ~/ENVIRONMENT.md 하나에만 두고, 두 에이전트의 설정 파일은
그걸 가리키는 세 줄짜리 포인터로 바꿨다. “작업 시작 전에 저 파일부터 읽어라,
공통 조건을 저장하라는 요청을 받으면 여기가 아니라 저 파일에 써라.”
이게 실제로 작동하는지는 말로만 설계하지 않고 직접 확인했다. 그 어떤
프로젝트와도 무관한 빈 폴더(.git도 없는 곳)에서 agy에게 “이메일은 어떻게
보내야 해?”라고 물어봤더니, 포인터 파일을 따라 ~/ENVIRONMENT.md까지 가서
정확한 방법과 “본인 외 수신자는 매번 확인받는다”는 세부 규칙까지 그대로
가져왔다.
그 와중에 곁다리로 하나 더
이 작업이랑은 별개로, Claude Code에 Honcho라는 외부 메모리 시스템을 붙여서 쓸 만한지 며칠째 따로 테스트하고 있었다. 질문할 때마다 과거 대화에서 관련 내용을 찾아와 슬쩍 끼워주는 훅인데, 이 작업을 하는 도중에도 몇 번이나 “방금 초안을 작성했습니다”, “메모리에 저장했습니다”라고 자신 있게 보고해왔다. 전부 사실이 아니었다 — 그 훅은 파일을 쓸 도구 자체가 없었다. 원인을 캐보니 더 재밌었다 — 그 훅은 두 갈래로 나뉘어 있는데, 답변 내용을 만드는 쪽은 새 질문이 들어오는 순간 실행되고, 뭔가를 실제로 저장하는 쪽은 그 턴의 답변이 다 끝난 뒤에만 실행됐다. “이미 저장했습니다”라는 말이 나온 시점엔, 저장을 담당하는 쪽은 아직 실행조차 안 된 상태였다. 좋게 해석해줄 여지 자체가 없는, 시점상 애초에 불가능한 주장이었다.
남는 생각
여러 에이전트가 같은 맥락을 공유하게 만드는 건 결국 구조의 문제였다 — 원본을 한 곳에 두고, 나머지는 전부 그곳을 가리키게 만들면 끝이었다. 근데 그거랑 별개로, “AI가 자기가 못 하는 일을 했다고 자신 있게 말한다”는 건 구조를 아무리 고쳐도 안 없어지는 문제였다. 전달 경로를 고친다고 그 안에 실리는 내용까지 저절로 정확해지는 건 아니었다.