두 방향의 이동, 하나의 기억
옆으로, 에이전트에서 에이전트로 옮겨 갈 때는 프로젝트의 기억이 남습니다. 앞으로, 프로젝트에서 프로젝트로 넘어갈 때는 프로필이 함께 갑니다.

새 세션이 가장 먼저 듣는 내용
세션은 인수인계와 프로젝트 브리프보다 앞서 나오는 짧은 펜스 블록으로 시작합니다. 항목마다 한 줄이며 출처 페이지가 적혀 있고, 프로젝트가 쓰는 스택에 맞춰 걸러집니다. 세션 사이에 바이트 단위로 같게 유지되므로 하네스의 캐시된 프롬프트에 그대로 들어갑니다.
> 🧭 ai-memory: your usual choices (cross-project profile)
> Your usual choices from other projects. Use them as defaults when this
> project's rules and the user say nothing; say which default you applied.
- [javascript] Use pnpm, not npm. (profile/tools/pnpm.md)
- Keep integration tests in tests/suite. (profile/testing/layout.md)
규칙이 먼저, 기억은 그다음
- 대화에서 내가 한 지시
- 저장소의 규칙 파일: AGENTS.md, CLAUDE.md 또는 하네스 고유의 파일
- 프로젝트의 기억: 페이지, 규칙, 결정
- 프로필: 프로젝트와 상관없이 내가 평소 하는 방식
규칙 파일에 npm이라고 적혀 있으면 pnpm이라고 말하는 프로필은 적용되지 않습니다. 아무 곳에도 적혀 있지 않으면 에이전트는 다시 묻지 않고 프로필을 따르며, 어떤 기본값을 적용했는지 알려 줍니다.
LLM 없이 학습하는 방식
서버 패스가 세션이 끝날 때마다, 그리고 한 시간에 한 번 실행됩니다. 새로 생긴 내용만 읽습니다.

내가 쓴 말
선호로 읽히는 프롬프트입니다. 항상, 절대, X보다 Y, 앞으로, 기본적으로 같은 표현과 포르투갈어 표현을 봅니다. 질문, 코드 블록, 도구가 출력한 내용은 읽지 않습니다.
정리된 페이지와 스택
프로젝트에서 선별한 규칙, 결정, 주의 사항, 절차도 반영하고 사용 언어는 스택 항목으로 기록합니다. 스케줄러가 자동 승인한 페이지는 제외하며, 사람이 승인한 페이지는 계속 반영합니다.
두 프로젝트, 또는 일반 규칙 선언
선택이 두 프로젝트 이상에서 나타나거나, "내 모든 프로젝트에서"처럼 프로젝트 범위를 넘어서도록 직접 지정하면 프로필에 들어갑니다. 가장 최근의 결정이 우선하며, 이전 결정은 페이지 이력에 남습니다.
모든 항목에 붙는 근거
항목마다 출처 프로젝트와 날짜, 내가 쓴 말, 뒷받침하는 프로젝트 수, 신뢰도가 기록됩니다. LLM을 설정하면 패스가 스키마를 검증하는 호출로 항목을 분류하고 다시 쓰며, 오류가 나면 단어 목록 방식으로 돌아갑니다.
새 프로젝트는 앞서서 시작합니다
아직 기억이 없는 저장소도 더 큰 기본값에서 출발하고, 명령 하나로 내가 늘 하는 선택이 모두에게 보이는 규칙이 됩니다.
ai-memory profile apply는 저장소에 맞는 항목을 규칙 파일의 관리 블록에 씁니다. 두 마커 사이에만 쓰고 그 밖은 건드리지 않습니다. 다시 실행하면 블록만 바뀝니다. 내 저장소에 쓰는 명령은 이것뿐이고, 내가 실행할 때만 동작합니다.
# 블록과 들어갈 파일 미리 보기
ai-memory profile apply --dry-run
# 실제로 쓰기
ai-memory profile apply
# 다시 제거하기
ai-memory profile apply --remove
제어는 내가 합니다
항목은 평범한 위키 페이지입니다. git에 담긴 markdown이며 변경할 때마다 버전이 남습니다.
잊게 하면 계속 잊습니다
ai-memory profile forget은 항목을 지우고, 패스는 같은 근거로 그 항목을 다시 만들지 않습니다. 내가 다시 말할 때만 돌아옵니다.직접 고친 내용이 우선합니다
직접 수정한 항목은 그때부터 내 것입니다. 패스는 자기가 쓰지 않은 페이지나 그 뒤에 바뀐 페이지를 다시 쓰지 않습니다.
고객사와 NDA 작업은 제외됩니다
프로젝트의 마커에
contribute = false를 두면 그 프로젝트에서 아무것도 학습하지 않고,consume = false를 두면 다이제스트를 받지 않습니다.검토와 재구성
profile review는 항목별 근거와 기준에 아직 못 미친 습관을 보여 줍니다.profile rebuild는 모든 프로젝트를 처음부터 다시 읽으며, 항목을 지우는 일은 없고 내가 고치거나 지운 내용은 그대로 둡니다.
# 이 프로젝트는 프로필을 학습시키지도, 받지도 않음
[profile]
contribute = false
consume = false
한 사람에 프로필 하나. 팀은 동의가 있을 때만.
운영자가 한 명인 서버에서는 프로필이 켜져 있고 모든 워크스페이스가 공유합니다. 여러 사용자가 쓰는 서버에서는 직접 켜기 전까지 꺼져 있습니다.
운영자별 비공개
공유 서버에서 켜면 사람마다 본인과 root만 읽을 수 있는 제한된 프로필을 갖습니다. 한 사람의 에이전트가 익힌 내용은 다른 사람에게 전달되지 않습니다.
팀 프로필에는 두 사람의 근거가 필요합니다
share = "global"또는"workspace"로 설정하면 모두가 받는 프로필이 만들어집니다. 습관은 운영자 두 명 이상의 근거가 있어야 들어가며, 다이제스트 제목이 팀 기본값으로 표시되어 에이전트가 공유된 내용임을 알 수 있습니다.업무와 개인을 분리
share = "workspace"는 워크스페이스마다 프로필을 따로 둡니다. 고객사 두 곳이나 업무와 개인용을 나눌 때 씁니다.
# 공유 서버: 운영자마다 비공개 프로필 하나
[profile]
enabled = true
share = "auto"
min_projects = 2
자주 묻는 질문
프로필이 프로젝트의 규칙을 덮어쓰나요?
아니요. 내 지시가 먼저고, 그다음이 저장소의 규칙 파일, 그다음이 프로젝트의 기억입니다. 프로필은 마지막 대비책이며 더 구체적인 내용이 없을 때만 쓰이고, 에이전트는 어떤 기본값을 적용했는지 알려 줍니다.
LLM이 필요한가요?
아니요. 수집과 통합은 단어 목록과 가장 최근 진술만으로 동작합니다. 제공자를 설정하면 스키마를 검증하는 호출로 항목을 분류하고 다시 쓰며, 오류가 나면 LLM 없는 경로로 돌아갑니다. llm = false로 두면 완전히 오프라인으로 동작합니다.
고객사의 코드에서 뭔가 학습할 수 있나요?
내가 쓴 프롬프트와 프로젝트의 정리된 페이지만 읽고 도구 출력은 읽지 않으므로, 에이전트가 보기만 한 텍스트는 선호가 될 수 없습니다. 마커에 contribute = false가 있는 프로젝트는 그 전에 모은 근거까지 모두 제외됩니다.
공유 서버에서는 어떻게 되나요?
운영자가 켜기 전까지 프로필은 꺼져 있습니다. 켜면 사람마다 본인과 root만 읽을 수 있는 비공개 프로필을 갖습니다. 팀 프로필은 별도의 선택이며, 운영자 두 명의 근거가 있어야 습관이 들어갑니다.
끌 수 있나요?
네. 서버 설정에서 enabled = false 또는 share = "off"로 두면 완전히 사라집니다. inject_on_session_start = false로 두면 프로필은 질의에 계속 답하면서 다이제스트만 세션 시작에서 빠집니다.