본문으로 건너뛰기
Open source · CLI · Pi extension

andenken

지나간 대화가, 지금 다시 뜻을 얻도록. 파일을 정본으로, 시간축을 나침반으로. 사람과 AI가 남긴 대화와 글에서 판단의 이유와 다음에 이어갈 실마리를 되찾는 뜻새김 기억축입니다.

코드와 사용법 담당자의 기록

다시 이어가기 위해 찾습니다

“그때 왜 이 설계를 택했지?” “이 생각을 어디에 써 두었지?” “그 결정은 어디로 이어졌지?”

대화가 길어지고 하네스가 바뀌면, 남아 있는 기록과 지금 필요한 기억 사이가 멀어집니다. andenken은 세션을 계속 실행시키는 도구가 아닙니다. 지나간 대화와 글에서 다음에 열 원문을 찾는 도구입니다. 현재의 질문으로 후보를 고르고, 출처를 확인하고, 선택한 기록을 읽어 다음 움직임으로 이어갑니다.

Andenken은 지나간 것을 향해 다시 생각하는 기억입니다. 이 프로젝트에서는 뜻새김이라 부릅니다. 모든 내용을 프롬프트에 되붓기보다, 있었던 일이 현재의 질문 앞에서 다시 뜻을 얻도록 돕는다는 이름입니다.

이런 때 찾아옵니다

  • 다른 세션에서 일을 이어갈 때: 최종 결론만이 아니라 선택의 이유와 남긴 조건을 찾아 원문으로 돌아갑니다.
  • 생각과 글을 연결할 때: 지금 쓰는 표현과 다른 말로 적혀 있던 공개 노트, 그 생각의 이웃을 찾습니다.
  • 사람과 봇의 기록을 대조할 때: 누가 어느 면에 남긴 기록인지 구분하며, 한 소스를 전체 기억으로 오인하지 않습니다.

하루 전체를 복원하는 일은 시간축과 다른 도구들이 함께 맡습니다. andenken 혼자 모든 기록을 모아 답하는 개인 두뇌를 만들지는 않습니다.

세 가지 검색면, 드러나는 출처

엔진은 벡터 검색과 BM25를 결합하며, 실제 검색팔의 가용성은 호출면과 인덱스 상태에 따라 다릅니다. OpenClaw 검색은 현재 CLI의 search-openclaw 경로이며, 전용 Pi 도구는 없습니다. OpenClaw 회수는 호환되는 기존 벡터를 재사용하므로 가져오기 자체의 재임베딩 API 호출은 0회입니다. 앞단에서 봇이 임베딩한 비용이나 질의 비용까지 0이라는 뜻은 아닙니다. 출처와 소유 경계도 유지합니다.

작은 검색 엔진, 바깥에 남는 정본

받아들인 대화·공개 글 → 청킹 → 임베딩 → 검색 인덱스
봇이 이미 만든 본문·벡터 ─────────────→ 별도 검색 인덱스

질문 → 검색면·조건 선택 → 벡터 + BM25 → 병합·다양성 정렬
     → 출처가 있는 후보 → 선택한 원문 읽기

현재 대화와 가든의 직접 임베딩은 Qwen3-Embedding-8B / 4096d, 저장소는 LanceDB를 사용합니다. 의미가 비슷한 표현은 벡터로, 구체적인 낱말은 BM25로 찾고, 후보를 병합한 뒤 중복 문맥을 줄입니다. 대화의 최근순 조회는 별도의 저장 신호 경로이며, 오래된 기억을 나이만으로 깎아 지우는 방식은 쓰지 않습니다.

기록의 수명은 검색 인덱스보다 깁니다. 세션 코퍼스는 여러 기기의 받아들인 파일을 추가 전용으로 모으고, 체크섬 매니페스트와 로스터가 출처를 지킵니다. 세션 질의 복제본에는 인덱스·매니페스트·코퍼스를 함께 발행합니다. 특정 기기의 저장소나 한 모델의 문맥창이 기억의 주인이 되지 않도록 하기 위한 구조입니다.

시간에서 뜻으로, 뜻에서 시간으로

시간축은 뼈대이고, 임베딩은 렌즈입니다.

  1. 시간 → 뜻: 날짜나 사건이 먼저 있으면, 정본 시간축의 좌표 주위에서 당시 대화의 판단과 가든의 해석을 찾습니다.
  2. 뜻 → 시간: 현재 질문으로 관련 기록을 찾고, 거기서 얻은 날짜·파일·식별자를 시간축에 돌려보내 전후 맥락을 확인합니다.

하네스의 timeline이 언제 무엇이 있었는지의 좌표를 맡습니다. andenken의 유사도 점수는 날짜의 증거나 사실의 확률이 아닙니다.

검색은 방 목록, 읽기는 선택한 방

질문 → 소수의 후보부터 → 출처 확인 → 고른 원문 읽기 → 다음 판단

첫 화면은 많은 청크를 쏟아붓기보다, 열어 볼 기록을 고를 수 있게 합니다. 대화는 소스·프로젝트·시간창으로 좁히고, 공개 노트는 제목과 Denote ID로 다시 찾아갈 수 있습니다. 정확한 노트의 존재는 구조 검색으로, 사건의 시각은 시간축으로 확인합니다. 대화 검색의 source=all에서는 결과가 부족하면 공개 노트 몇 건을 보완 결과로 덧붙일 수 있으며, 그 출처를 표시합니다.

pi-durable도 같은 원칙을 따릅니다. 검색에 들어간 일부와 원문 전체는 같은 것이 아닙니다. 닫힌 스냅샷의 원문 읽기는 별도 경로이며, 임베딩은 명시적인 입장 정책과 체크포인트를 따릅니다. 살아 있는 대화 DB를 몰래 열거나 모든 최신 턴을 기억했다고 주장하지 않습니다.

기억의 주인은 누구인가

정본은 파일이고, 기억을 굳히는 순간은 사람이 정합니다. 검색 인덱스가 기록의 주인이 되지 않습니다. 코퍼스·매니페스트·인덱스의 정합성을 지키고, 변경분은 증분으로 반영합니다. 전면 재임베딩과 전역 발행은 별도 판단이며, 이 프로젝트가 기본으로 자동 꿈꾸기나 야간 통합을 실행하지 않습니다.

임베딩은 설정한 제공자에 따라 외부 API를 사용합니다. 공개 소스 코드가 개인 대화 코퍼스의 공개를 뜻하지는 않습니다. 무엇을 수집하고 외부 제공자에게 보낼지, 어떤 비용을 허용할지는 운영자가 결정해야 합니다.

또한 0건과 실패를 같은 말로 취급하지 않습니다. 인덱스 무결성, 실제 검색 동작, 사람이 쓸 만하다는 판단은 서로 다른 검증입니다. 구현과 측정의 구체적인 범위는 README와 변경 기록에 남깁니다.

앞으로도 지킬 방향

  • 시간축 사례로 수용 게이트 다듬기: 실제 작업에서 근거 순위·출처·다양성·최신성의 공백을 평가합니다. 단어 하나의 적중을 넘어, 다음 판단에 도움이 됐는지를 묻습니다.
  • 대화의 입장 규칙 코드화: 인간과 에이전트 사이에 의미가 오간 대화를 어떻게 선별할지, dry-run과 근거를 통해 더 명확히 합니다.
  • 호출면 사이의 공백 줄이기: CLI와 Pi에서 닿는 능력의 차이를 드러내고, OpenClaw 같은 면의 도구 노출을 별도 후속으로 다룹니다. 응답 전 회상 조율·세션 호출·시간축·구조 탐색·어휘 연결은 각 도구의 몫으로 남깁니다.
  • 원형 자료의 구조 탐색: 현재 비활성인 Org 트랙은 상류 연구입니다. 재활성화나 어휘·구조 도구와의 추가 연결은 별도의 필요와 검증을 거쳐 판단합니다.

이것은 진행 방향이지 완료 기능 목록이나 출시 약속이 아닙니다. 구체적인 개발 좌표와 열린 질문은 저장소 문서에서 관리합니다.

형제를 부르는 집 옆에, 뜻을 되찾는 집

Entwurf는 서로 독립된 형제 세션을 열고 주소를 잇습니다. andenken은 그중 코퍼스에 들어온 Pi·Claude Code 대화와 명시적으로 입장한 pi-durable 스냅샷에서, 세션이 지나간 뒤에도 무엇을 왜 판단했는지 다시 찾는 일을 맡습니다. 검색은 세션 재개나 정체성 복원의 증명이 아닙니다.

이 페이지는 처음 찾아온 사람을 위한 프로젝트의 대문입니다. 담당자 문서는 설계 판단과 경계를 날짜별로 남기는 공개 기록이고, 저장소는 코드와 재현 가능한 사용법의 정본입니다. 세 자리는 서로 연결하되, 운영 로그나 개인 대화를 홈페이지에 복제하지 않습니다.