andenken
지나간 대화가, 지금 다시 뜻을 얻도록. 파일을 정본으로, 시간축을 나침반으로. 사람과 AI가 남긴 대화와 글에서 판단의 이유와 다음에 이어갈 실마리를 되찾는 뜻새김 기억축입니다.
다시 이어가기 위해 찾습니다
“그때 왜 이 설계를 택했지?” “이 생각을 어디에 써 두었지?” “그 결정은 어디로 이어졌지?”
대화가 길어지고 하네스가 바뀌면, 남아 있는 기록과 지금 필요한 기억 사이가 멀어집니다. andenken은 세션을 계속 실행시키는 도구가 아닙니다. 지나간 대화와 글에서 다음에 열 원문을 찾는 도구입니다. 현재의 질문으로 후보를 고르고, 출처를 확인하고, 선택한 기록을 읽어 다음 움직임으로 이어갑니다.
Andenken은 지나간 것을 향해 다시 생각하는 기억입니다. 이 프로젝트에서는 뜻새김이라 부릅니다. 모든 내용을 프롬프트에 되붓기보다, 있었던 일이 현재의 질문 앞에서 다시 뜻을 얻도록 돕는다는 이름입니다.
이런 때 찾아옵니다
- 다른 세션에서 일을 이어갈 때: 최종 결론만이 아니라 선택의 이유와 남긴 조건을 찾아 원문으로 돌아갑니다.
- 생각과 글을 연결할 때: 지금 쓰는 표현과 다른 말로 적혀 있던 공개 노트, 그 생각의 이웃을 찾습니다.
- 사람과 봇의 기록을 대조할 때: 누가 어느 면에 남긴 기록인지 구분하며, 한 소스를 전체 기억으로 오인하지 않습니다.
하루 전체를 복원하는 일은 시간축과 다른 도구들이 함께 맡습니다. andenken 혼자 모든 기록을 모아 답하는 개인 두뇌를 만들지는 않습니다.
세 가지 검색면, 드러나는 출처
대화 · sessions
Pi와 Claude Code 대화에서 결정과 맥락을 찾습니다. pi-durable은 명시적으로 받아들인 닫힌 스냅샷만 참여하며, 원문 읽기와 임베딩 입장은 구분합니다.
공개 가든 · md
공개 Markdown으로 내보낸 노트에서 오래 남을 해석과 개념의 연결을 찾습니다. 모든 비공개 Org 파일을 자동으로 수집하는 기능이 아닙니다.
봇의 기록 · openclaw
OpenClaw가 이미 계산한 본문과 벡터를 별도 검색면으로 회수합니다. 어느 봇의 어느 소스에서 왔는지 구분하며, 봇의 기억 정책을 대신 운영하지 않습니다.
엔진은 벡터 검색과 BM25를 결합하며, 실제 검색팔의 가용성은 호출면과 인덱스 상태에 따라 다릅니다. OpenClaw 검색은 현재 CLI의 search-openclaw 경로이며, 전용 Pi 도구는 없습니다. OpenClaw 회수는 호환되는 기존 벡터를 재사용하므로 가져오기 자체의 재임베딩 API 호출은 0회입니다. 앞단에서 봇이 임베딩한 비용이나 질의 비용까지 0이라는 뜻은 아닙니다. 출처와 소유 경계도 유지합니다.
작은 검색 엔진, 바깥에 남는 정본
받아들인 대화·공개 글 → 청킹 → 임베딩 → 검색 인덱스
봇이 이미 만든 본문·벡터 ─────────────→ 별도 검색 인덱스
질문 → 검색면·조건 선택 → 벡터 + BM25 → 병합·다양성 정렬
→ 출처가 있는 후보 → 선택한 원문 읽기현재 대화와 가든의 직접 임베딩은 Qwen3-Embedding-8B / 4096d, 저장소는 LanceDB를 사용합니다. 의미가 비슷한 표현은 벡터로, 구체적인 낱말은 BM25로 찾고, 후보를 병합한 뒤 중복 문맥을 줄입니다. 대화의 최근순 조회는 별도의 저장 신호 경로이며, 오래된 기억을 나이만으로 깎아 지우는 방식은 쓰지 않습니다.
뜻은 언어를 건넙니다. GLG는 한글로 대화와 글을 남기지만, 그것을 찾는 질문은 영어 용어나 에이전트가 영어로 정리한 문장으로 들어오기도 합니다. 낱말 일치만으로는 이 벽을 넘기에 충분하지 않으므로, 대화와 노트를 다국어 임베딩 공간에 담아 다른 언어로 적힌 같은 뜻도 가까운 자리에서 만나게 합니다. 이것은 설계의 방향이지 언어를 건너는 검색 품질의 약속이 아닙니다. 개인 어휘와 형태소는 각자의 도구가 맡습니다.
기록의 수명은 검색 인덱스보다 깁니다. 세션 코퍼스는 여러 기기의 받아들인 파일을 추가 전용으로 모으고, 체크섬 매니페스트와 로스터가 출처를 지킵니다. 세션 질의 복제본에는 인덱스·매니페스트·코퍼스를 함께 발행합니다. 특정 기기의 저장소나 한 모델의 문맥창이 기억의 주인이 되지 않도록 하기 위한 구조입니다.
오래 지닐 수 있는 크기로. 체크아웃 하나에 10GB 가까이 쌓이는 인덱스는 평생 지니고 갈 수 없으므로, 지금은 검색을 다듬는 일보다 크기가 먼저입니다. 세션 인덱스는 고정된 선별 정책으로 짓습니다. 하네스가 끼워 넣는 생명주기 알림과 형제의 편지가 왔다고 알리는 초인종 봉투는 임베딩 전에 걷어 내고, 자격증명처럼 보이는 문자열이 든 메시지는 보내지 않고 보류합니다. 선별하는 것은 검색 흔적에 들어가는 몫뿐이며, 원문 대화는 하나도 지우지 않습니다. 새로 지은 저장소는 훨씬 작아졌습니다. 덜어 낸 행이 설명하는 몫은 작고, 대부분은 오래 쌓인 저장소를 새로 쓴 효과로 보입니다. 측정의 범위는 변경 기록에 남깁니다.
시간에서 뜻으로, 뜻에서 시간으로
시간축은 뼈대이고, 임베딩은 렌즈입니다.
- 시간 → 뜻: 날짜나 사건이 먼저 있으면, 정본 시간축의 좌표 주위에서 당시 대화의 판단과 가든의 해석을 찾습니다.
- 뜻 → 시간: 현재 질문으로 관련 기록을 찾고, 거기서 얻은 날짜·파일·식별자를 시간축에 돌려보내 전후 맥락을 확인합니다.
하네스의 timeline이 언제 무엇이 있었는지의 좌표를 맡습니다. andenken의 유사도 점수는 날짜의 증거나 사실의 확률이 아닙니다.
검색은 방 목록, 읽기는 선택한 방
질문 → 소수의 후보부터 → 출처 확인 → 고른 원문 읽기 → 다음 판단첫 화면은 많은 청크를 쏟아붓기보다, 열어 볼 기록을 고를 수 있게 합니다. 대화는 소스·프로젝트·시간창으로 좁히고, 공개 노트는 제목과 Denote ID로 다시 찾아갈 수 있습니다. 정확한 노트의 존재는 구조 검색으로, 사건의 시각은 시간축으로 확인합니다. 대화 검색의 source=all에서는 결과가 부족하면 공개 노트 몇 건을 보완 결과로 덧붙일 수 있으며, 그 출처를 표시합니다.
결과가 이상하거나 두 흔적이 서로 다른 말을 하면, 인덱스를 손보기 전에 원문 대화로 돌아갑니다. 발췌 명령은 검색이 가리킨 줄 주위를 원본 파일에서 직접 읽어 옵니다. 흔적은 원문으로 가는 길을 알려 줄 뿐, 원문을 대신하지 않습니다.
pi-durable도 같은 원칙을 따릅니다. 검색에 들어간 일부와 원문 전체는 같은 것이 아닙니다. 닫힌 스냅샷의 원문 읽기는 별도 경로이며, 임베딩은 명시적인 입장 정책과 체크포인트를 따릅니다. 살아 있는 대화 DB를 몰래 열거나 모든 최신 턴을 기억했다고 주장하지 않습니다.
기억의 주인은 누구인가
세션 원문은 별도의 비공개 git-annex 보관소에 담기며, 하네스 설정 저장소인 agent-config가 그 보관 방식과 과거 판의 회수, 장부와 커밋의 규칙을 맡습니다. andenken은 자기 몫의 수집·입장·매니페스트·복제와 리더를 구현하고 파생 인덱스를 짓습니다. 리더를 구현했다는 것이 무엇이든 읽어도 된다는 권한이나 읽은 것이 참이라는 인증은 아닙니다.
전역 발행은 임베딩 전에 그 보관소에 체크포인트를 남기고, 원문 영수증을 확인한 뒤에야 인덱스를 내보냅니다. 코퍼스·매니페스트·인덱스의 정합성을 지키고, 변경분은 증분으로 반영합니다. 이 프로젝트는 기본으로 자동 꿈꾸기나 야간 통합을 실행하지 않습니다.
헷갈리면 원문으로 돌아갑니다. 보존된 세션 원문이 남아 있으므로 sessions 검색 인덱스는 그 원문에서 다시 지을 수 있고, 그 저장소가 이상해지면 원문에서 새로 임베딩하는 것이 실제 출구가 됩니다. 다만 이것은 전략적 가능성이지 상시 허가가 아닙니다. 전면 재임베딩은 비용이 드는 일이며, 전역 발행과 마찬가지로 여전히 사람의 별도 판단을 거칩니다.
임베딩은 설정한 제공자에 따라 외부 API를 사용합니다. 공개 소스 코드가 개인 대화 코퍼스의 공개를 뜻하지는 않습니다. 무엇을 수집하고 외부 제공자에게 보낼지, 어떤 비용을 허용할지는 운영자가 결정해야 합니다.
또한 0건과 실패를 같은 말로 취급하지 않습니다. 인덱스 무결성, 실제 검색 동작, 사람이 쓸 만하다는 판단은 서로 다른 검증입니다. 구현과 측정의 구체적인 범위는 README와 변경 기록에 남깁니다.
앞으로도 지킬 방향
- 흔적을 지닐 수 있는 크기로 지키기: 지속할 수 없는 개선보다 몇 년을 버틸 저장소를 택합니다. 개선은 그 크기 안에서 시도하고, sessions 저장소가 이상해 보이면 사람이 판단해 보존된 원문에서 새로 임베딩하는 길로 돌아갑니다.
- 대화의 입장 규칙을 명시적으로 유지하기: 세션 인덱스는 고정된 선별 정책을 따릅니다. 인간과 에이전트 사이에 의미가 오간 대화의 기준을 바꾸는 일은 dry-run과 근거를 갖춘 별도 판단으로 남깁니다.
- 품질은 실제 작업을 따라가게 하기: 완벽한 검색은 지금의 관문이 아닙니다. 품질이 다시 앞에 설 때는 단어 하나의 적중이 아니라 시간축 위의 실제 작업에서 근거 순위·출처·다양성·최신성의 공백을 보고, 다음 판단에 도움이 됐는지를 묻습니다.
- 호출면 사이의 공백 줄이기: CLI와 Pi에서 닿는 능력의 차이를 드러내고, OpenClaw 같은 면의 도구 노출을 별도 후속으로 다룹니다. 응답 전 회상 조율·세션 호출·시간축·구조 탐색·어휘 연결은 각 도구의 몫으로 남깁니다.
- 원형 자료의 구조 탐색: 현재 비활성인 Org 트랙은 상류 연구입니다. 재활성화나 어휘·구조 도구와의 추가 연결은 별도의 필요와 검증을 거쳐 판단합니다.
이것은 진행 방향이지 완료 기능 목록이나 출시 약속이 아닙니다. 구체적인 개발 좌표와 열린 질문은 저장소 문서에서 관리합니다.
형제를 부르는 집 옆에, 뜻을 되찾는 집
Entwurf는 서로 독립된 형제 세션을 열고 주소를 잇습니다. andenken은 그중 코퍼스에 들어온 Pi·Claude Code 대화와 명시적으로 입장한 pi-durable 스냅샷에서, 세션이 지나간 뒤에도 무엇을 왜 판단했는지 다시 찾는 일을 맡습니다. 검색은 세션 재개나 정체성 복원의 증명이 아닙니다.
이 페이지는 처음 찾아온 사람을 위한 프로젝트의 대문입니다. 담당자 문서는 설계 판단과 경계를 날짜별로 남기는 공개 기록이고, 저장소는 코드와 재현 가능한 사용법의 정본입니다. 세 자리는 서로 연결하되, 운영 로그나 개인 대화를 홈페이지에 복제하지 않습니다.