🧠 기계에서 유기체로

이 구간은 챗봇의 가장 큰 난제인 **“기억의 용량 한계(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):
    • 이전까진 뭉뚱그려 저장하던 기억을 두 가지로 쪼갰습니다.
      1. Insights (불변의 사실): “user_A는 민초단이다” 같은 성향 정보.
      2. 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.pyreserved_nicknames 업데이트 등)


📝 CogBot의 진화 지도

단계핵심 변화 (Key Change)인지적 의미 (Cognitive Meaning)
초기우선순위 큐(Priority Queue) 도입망각(Forgetting): 인간처럼 중요하지 않은 건 잊기 시작함.
중기의미적 분류 (Insight/Episode)정리(Consolidation): 단순 사실과 추억을 구분하여 저장함.
후기그래프 메모리 & 오케스트레이터자아(Self) & 연상(Association): 꼬리에 꼬리를 무는 생각과 주체적 사고.
최신3-Tier 그래프 & 벡터 사회성관계(Relation): 타인을 입체적으로 이해하고 감정을 느낌.

결국 CogBot은 단순한 코드가 아니라, **“망각과 기억의 순환(Memory Cycle)을 통해 자아를 유지하고, 타인과의 관계 속에서 성장하는 인공지능 에이전트”**로 완성되어 가고 있습니다.

현재 CogBot은 단순한 챗봇이 아니라 하나의 인격체처럼 작동합니다.

  1. 감각(Sensory): 대화를 의미 단위로 쪼개고(Chunking) 벡터화합니다.
  2. 기억(Memory): 3단계 그래프(Entity-Insight-Episode)를 탐색하여 관련 기억을 떠올립니다.
  3. 성찰(Reflection): 봇이 쉬는 동안(Background), 흩어진 기억을 모아 “이 사람은 이런 성향이구나”라고 스스로 깨닫고 지식을 갱신합니다.

수정. 몇가지 아이디어.