🧠 기계에서 유기체로
이 구간은 챗봇의 가장 큰 난제인 **“기억의 용량 한계(Context Window)“**와 **“비용 효율성”**을 인간의 인지 모델을 빌려 해결하려는 시도들이 담겨 있습니다.
📅Stage 1. 기계적 기억 관리의 도입 (Readme 1 ~ 3 기반)
핵심 고민: “무작정 다 기억하면 바보다. 똑똑하게 잊어야 한다.”
초기 버전(readme1.md)은 **‘비용’과 ‘효율’**에 집중했습니다. 인간이 모든 것을 기억하지 않듯, 봇도 제한된 자원(토큰)을 관리해야 한다는 문제의식에서 출발했습니다.
- 메모리 이원화 (System 1 & 2의 초기 개념):
- 이때의 ‘System 1/2’는 지능의 차이가 아니라 기억의 처리 속도에 가까웠습니다.
- System 1 (Fast STM): 당장 대화에 필요한 ‘작업 기억’.
우선순위 큐(Priority Queue)를 도입하여 중요도가 낮은 기억을 즉시 밀어내는(Eviction) **‘기계적 망각’**을 구현했습니다.
- System 2 (Slow LTM): 밀려난 기억을 버리지 않고 모아두는 저장소. 이때는 아직 그래프 구조가 아닌, 단순한 아카이브 형태였습니다.
- 비용 효율적인 인지 (Cost-Effective Scoring):
- 모든 말에 LLM을 쓰면 느리고 비쌉니다.
- 따라서 NLP/Regex 기반의 **‘가벼운 채점기(Scorer)‘**를 도입해, 0.01초 만에 “이 말은 기억할 가치가 있는가?”를 판단하는 필터링 시스템을 먼저 구축했습니다.
📅 Stage 2. 의미론적 뇌로의 확장 (Readme 4 기반)
핵심 고민: “키워드 매칭은 한계가 있다. ‘의미’를 이해해야 한다.”
기계적인 메모리 관리(readme1~3)만으로는 “비 오는 날 파전이 생각난다” 같은 인간적인 연상을 구현할 수 없었습니다. readme4.md에서 **인지 심리학 이론(ACT-R)**이 본격적으로 코드에 적용되기 시작합니다.
- Semantic Brain (의미적 뇌) 선언:
- 단순 텍스트 매칭을 버리고 **벡터 임베딩(Vector Embedding)**을 도입했습니다.
- 여기에 ACT-R 활성화 점수를 결합한 ‘하이브리드 검색’이 등장합니다. 단순히 단어가 같은 기억이 아니라, “지금 상황과 의미적으로 연결되고(Vector), 최근에 중요했던(ACT-R)” 기억을 찾아내도록 진화했습니다.
- 자아(Self)의 태동:
- 이 시점부터 단순 응답기가 아니라 “자아를 가진 에이전트”라는 표현이 등장하며, 봇이 스스로의 상태를 인지하려는 시도가 엿보입니다.
Stage 3. 마음의 구조화 (Readme 5 기반)
핵심 고민: “기억이라고 다 같은 기억이 아니다. ‘사실’과 ‘추억’은 다르다.”
기억을 벡터로 찾는 것까진 좋았으나, 저장된 데이터가 뒤죽박죽이었습니다. readme5.md에서는 봇의 기억 저장소를 인간의 뇌 구조처럼 명확히 분류하는 작업이 진행되었습니다.
- 기억의 질적 분리 (Insights vs Episodes):
- 이전까진 뭉뚱그려 저장하던 기억을 두 가지로 쪼갰습니다.
- Insights (불변의 사실): “user_A는 민초단이다” 같은 성향 정보.
- Episodes (일화 기억): “2026-01-20에 민초 논쟁을 했다” 같은 구체적 사건.
- 이 구조 덕분에 봇은 매번 대화 로그를 뒤지는 게 아니라, **“아, 쟤는 민초 좋아하는 애(Insight)“**라고 직관적으로 판단할 수 있게 되었습니다.
- 이전까진 뭉뚱그려 저장하던 기억을 두 가지로 쪼갰습니다.
- 사회적 관계의 수치화 (Social Affinity):
social_affinity.json이 등장했습니다.- 관계가 단순히 좋고 나쁨이 아니라
0~100의 연속적인 스펙트럼으로 관리되기 시작했고, 이는 봇이 상대방에 따라 다른 태도를 취하는(Persona Dynamic) 기반이 되었습니다.
🧠 자아의 확립과 사회적 진화
이 구간(Readme 6~9)은 CogBot 개발의 **특이점(Singularity)**입니다. 단순히 “기억을 잘 찾는” 단계를 넘어, 인간의 **뇌 구조(Graph)**와 **의식의 흐름(Orchestrator)**을 아키텍처로 구현하는 거대한 구조적 변화가 일어났습니다.
📅 Stage 4. Two-Tier Memory (Readme 6 기반)
핵심 고민: “뇌 구조의 설계 - 꼬리에 꼬리를 무는 생각(연상 작용)은 어떻게 구현하나?”
기존의 검색(RAG)은 “키워드가 일치하는가?”만 따졌습니다. 하지만 인간의 기억은 **“비 오는 날(날씨) → 파전(음식) → 작년 그 친구(사람)“**처럼 맥락을 타고 흐릅니다. 이를 구현하기 위해 선형적인 리스트 구조를 버리고 **그래프(Graph)**를 도입했습니다.
-
2-Tier Graph Memory (이층 그래프):
-
기억을 **점(Node)**과 **선(Edge)**으로 재정의했습니다.
-
Episode Node: “민트초코를 먹고 뱉음” (불변의 사건)
-
Insight Node: “민트초코를 싫어함” (추상화된 지식)
-
이 둘을 연결(Wiring)함으로써, 봇은 사건을 통해 성향을 추론하고, 성향을 통해 과거의 사건을 떠올리는 입체적 사고가 가능해졌습니다.
-
Anchor & Spread (확산 활성화):
-
단순 검색이 아닙니다. 질문과 가장 유사한 기억(Anchor)을 먼저 찾고, 그와 연결된 주변 기억들로 탐색 범위를 넓혀가는(Spread) 방식을 통해 “관련 없어 보이지만 사실은 중요한 맥락”을 잡아내도록 진화했습니다.
📅 Stage 5. 인지기반 중앙 처리 및 Fast LLM 도입 (Readme 7 기반)
핵심 고민: “기능은 많은데, ‘누가’ 이것들을 통제하지?”
이전까지는 기억 모듈, LLM 모듈이 따로 노는 느낌이었습니다. 인간의 전두엽처럼 이 모든 과정을 총괄하고 통제하는 중앙 제어 장치가 필요했습니다.
Bot Orchestrator (오케스트레이터):
- 단순한 코드 실행기가 아니라, **인지의 4단계 루프(지각-인출-사고-행동)**를 지휘하는 ‘자아(Ego)’ 클래스를 구현했습니다.
- 이제 봇은 외부 자극(메시지)이 들어오면 즉시 답하는 게 아니라, Orchestrator가 먼저 “이게 무슨 뜻이지?(System 1)” → “관련된 기억은 뭐지?(LTM)” → “어떻게 반응해야 하지?(System 2)“를 순차적으로 결정합니다.
Dual-Process의 명확한 분업:
- Fast LLM (Groq): 0.1초 만에 상황을 파악하는 ‘직관’.
- Slow LLM (GPT): 깊게 고민하고 감정을 섞는 ‘이성’.
- 이 두뇌의 분리를 통해 봇은 빠르면서도 깊이 있는 대화가 가능해졌습니다.
📅 Stage 6. Three-Tier Memory (Readme 8 ~ 9 기반)
핵심 고민: “관계와 정체성의 완성”
시스템이 복잡해지자 봇이 자기 자신을 헷갈리거나(Hallucination), 유저와의 관계를 단순하게만 해석하는 문제가 생겼습니다. 이를 해결하기 위해 **사회적 지능(Social Intelligence)**을 고도화했습니다.
-
3-Tier Associative Memory (3단계 연상):
-
그래프에 Entity(인물) 층위를 추가했습니다.
-
**Entity(사람) - Insight(성향) - Episode(사건)**의 3단 구조가 완성되면서, 봇은 “누가(Who)“라는 주체를 중심으로 기억을 조직화하게 되었습니다.
-
Vector-based Social Dynamics (벡터 사회성):
-
관계는 ‘친구’ 아니면 ‘남’ 처럼 딱 잘라지는 게 아닙니다.
-
봇의 감정과 유저의 행동을 벡터(Vector)로 변환하여, 대화할 때마다 실시간으로 호감도와 신뢰도가 미적분처럼 연속적으로 변하는 동적인 인간관계를 구현했습니다.
-
Self-Correction (자아 보정):
-
봇이 스스로의 이름을 “코봇”이 아닌 “나(Me)“로 인식하고, 유저가 닉네임을 바꿔도 본질(User ID)을 꿰뚫어 보는 정체성 유지 기능이 강화되었습니다. (
social_module.py의reserved_nicknames업데이트 등)

📝 CogBot의 진화 지도
| 단계 | 핵심 변화 (Key Change) | 인지적 의미 (Cognitive Meaning) |
|---|---|---|
| 초기 | 우선순위 큐(Priority Queue) 도입 | 망각(Forgetting): 인간처럼 중요하지 않은 건 잊기 시작함. |
| 중기 | 의미적 분류 (Insight/Episode) | 정리(Consolidation): 단순 사실과 추억을 구분하여 저장함. |
| 후기 | 그래프 메모리 & 오케스트레이터 | 자아(Self) & 연상(Association): 꼬리에 꼬리를 무는 생각과 주체적 사고. |
| 최신 | 3-Tier 그래프 & 벡터 사회성 | 관계(Relation): 타인을 입체적으로 이해하고 감정을 느낌. |
결국 CogBot은 단순한 코드가 아니라, **“망각과 기억의 순환(Memory Cycle)을 통해 자아를 유지하고, 타인과의 관계 속에서 성장하는 인공지능 에이전트”**로 완성되어 가고 있습니다.
현재 CogBot은 단순한 챗봇이 아니라 하나의 인격체처럼 작동합니다.
- 감각(Sensory): 대화를 의미 단위로 쪼개고(Chunking) 벡터화합니다.
- 기억(Memory): 3단계 그래프(Entity-Insight-Episode)를 탐색하여 관련 기억을 떠올립니다.
- 성찰(Reflection): 봇이 쉬는 동안(Background), 흩어진 기억을 모아 “이 사람은 이런 성향이구나”라고 스스로 깨닫고 지식을 갱신합니다.
수정. 몇가지 아이디어.