지식 그래프가 왜 그렇게 'GOATED'(최고)인지 알 만한 이유가 있다
There's a reason why knowledge graphs are so GOATED
핵심 요약
AI 에이전트 메모리에서 평면 리스트의 한계를 지적하며, 지식 그래프를 통한 엔티티 연결의 중요성을 강조함.
- 평면 리스트의 한계 — 동일한 엔티티가 다른 이름으로 저장될 때 메모리가 파편화됨.
- 지식 그래프의 장점 — 엔티티 간의 관계를 명확히 연결하여 정보의 일관성을 유지함.
- 엔티티 해상도 — 텍스트 유사성만으로는 동일한 대상을 식별하기 어려워 그래프가 필수적임.
- 구현의 복잡성 — 그래프 도입 시 잘못된 병합 위험이 있으므로 신중한 설계가 필요함.
대부분 처음에는 그냥 다 때려 박고 나중에 쿼리 날릴 때 유사도 검색으로 알아서 정리하게 두는 게 편해 보여서 플랫 리스트(flat list) 방식으로 시작하거든. 그냥 장난삼아 해보는 거면 상관없어.
근데 같은 대상에 대해 이름이 다르게 붙은 정보들이 들어오기 시작하면 그때부터 개판 나기 시작함. 서로 연결 고리가 없으니까 항목들이 다 따로 놀거든. 결국 기억이 파편화되는데, 검색 결과가 엉망이거나 앞뒤 안 맞는 소리 하기 전까지는 이게 문제인지도 모름.
데이터에 같은 대상을 지칭하는 다른 이름들이 섞여 들어오는 순간부터 이런 구조가 필요해짐. 사실 대부분의 에이전트 메모리가 이런 식이지, 그냥 무작위로 연결 안 된 사실들만 나열된 경우는 거의 없거든.
점들을 이어주는 그래프 하나만 써도 쿼리 속도 안 잡아먹으면서 이 문제를 해결할 수 있음. 그냥 메모리를 타입별로 분류만 잘해두면 됨.
검색할 때 사실(facts)이랑 선호도(preferences)가 타입별로 정리되고, 그 밑에 깔린 그래프는 데이터 저장하기 전에 이게 누구를, 혹은 무엇을 가리키는 건지 파악하는 용도로 쓰는 거지(참고할 만한 걸 찾는다면 Maximem이 이걸 잘함).
내 개인적인 생각으로는 플랫 리스트가 처음엔 간단해 보여도 실제로는 전혀 안 그래. 그냥 나중에 같은 대상이 다른 이름으로 등장할 때 터질 문제를 뒤로 미루는 것뿐임.


