지식과 메모리
AI 에이전트는 모든 것을 기억합니다. 메모리가 어떻게 작동하는지 이해하면 더 나은 결과를 얻고 더 스마트한 시스템을 구축하는 데 도움이 됩니다.
메모리 유형
CapiBot에는 네 가지 유형의 메모리가 있으며, 각각 다른 목적을 제공합니다:
1. 에이전트 메모리 (개인)
각 에이전트는 자신만의 메모와 학습을 가지고 있습니다:
Nova의 메모리
📄 project-preferences.md
- JavaScript보다 TypeScript 선호
- 컴포넌트 기반 아키텍처 선호
- 클라이언트의 API 패턴에 익숙
📄 code-style-guide.md
- 2칸 들여쓰기 사용
- 함수형 컴포넌트 선호
- 항상 PropTypes 추가
📄 helpful-resources.md
- 날짜 설계 시스템 링크
- 클라이언트의 API 문서
- 일반 유틸리티 함수
저장하는 것:
- 상호 작용에서 학습한 선호도
- 프로젝트별 지식
- 스타일 가이드와 표준
- 유용한 리소스와 링크
- 과거 작업의 교훈
접근: 에이전트만 자신의 메모리를 읽고 쓸 수 있음
2. 지식 베이스 (공유)
모든 에이전트가 접근 가능한 정보:
지식 베이스
📁 결정
├── architecture-decisions.md
└── technology-choices.md
📁 교훈
├── what-worked.md
└── what-didnt.md
📁 프로젝트
├── project-alpha-specs.md
└── project-beta-timeline.md
📁 약속
└── deliverables-schedule.md
저장하는 것:
- 결정과 근거
- 학습한 교훈
- 프로젝트 문서
- 약속과 마감일
- 선호도와 표준
접근: 모든 에이전트가 읽을 수 있음; 쓰기 접근은 사용자가 제어
3. 기업 지식 (범위 지정)
AI 기업에 특정한 정보:
Q1 마케팅 기업 지식
📄 임원 요약
미션: 제품 인지도 캠페인 출시
타겟: 엔터프라이즈 고객
타임라인: 4주
예산: $10,000
📄 브랜드 가이드라인
색상: #FF6B35, #004E89
톤: 전문적이지만 친근함
로고 사용 규칙...
📄 캠페인 메시징
핵심 가치 제안...
타겟 페르소나...
경쟁 포지셔닝...
📁 산출물
├── blog-post-1-final.md
├── landing-page-design.png
└── competitor-analysis.pdf
저장하는 것:
- 임원 요약 (모든 에이전트 컨텍스트에 주입)
- 기업별 가이드
- 완료된 산출물
- 프로세스 문서
접근: 해당 기업의 에이전트만
4. 대화 메모리
진행 중인 대화의 컨텍스트:
현재 세션 컨텍스트
사용자: 상위 5개 경쟁사를 조사해줘
Nova: 경쟁사를 조사하겠습니다. 어떤
산업에 집중해야 하나요?
사용자: SaaS 분석 도구
Nova: 알겠습니다. SaaS 분석에 집중하겠습니다.
가격 비교를 포함해야 하나요?
사용자: 네, 가격이 중요해요
저장하는 것:
- 최근 대화 내역
- 현재 스레드의 컨텍스트
- 보류 중인 질문/명확화
접근: 현재 대화의 에이전트
메모리 작동 방식
에이전트가 기억하는 시기
에이전트는 다음 경우에 자동으로 기억합니다:
- ✅ 선호도를 알려줄 때
- ✅ 작업을 성공적으로 완료할 때
- ✅ 실수로부터 배울 때
- ✅ 정보를 명시적으로 저장할 때
- ✅ 파일과 문서를 읽을 때
메모리 주입
각 에이전트 실행 전에 관련 메모리가 주입됩니다:
[에이전트 메모리] + [지식 베이스] + [기업 지식]
↓
에이전트 컨텍스트
↓
응답/작업
이것은 에이전트가 반복하지 않고도 항상 관련 컨텍스트를 갖고 있음을 의미합니다.
메모리 지속성
단기:
- 현재 대화
- 세션 컨텍스트
- 활성 작업 세부 정보
장기:
- 에이전트 개인 메모리 (파일에 저장)
- 지식 베이스 항목
- 기업 지식
- 모두 PostgreSQL에 저장
메모리 브라우저
탐색 레일에서 접근: 메모리
파일 트리 보기
┌─────────────────────────────────────────────────────────┐
│ 메모리 브라우저 [+ 새] │
├─────────────────────────────────────────────────────────┤
│ │
│ 📁 / │
│ ├── 📁 agents/ │
│ │ ├── 📁 nova/ │
│ │ │ ├── 📄 preferences.md │
│ │ │ └── 📄 style-guide.md │
│ │ └── 📁 echo/ │
│ │ └── 📄 brand-voice.md │
│ ├── 📁 knowledge/ │
│ │ ├── 📄 decisions.md │
│ │ └── 📁 projects/ │
│ └── 📁 companies/ │
│ └── 📁 q1-marketing/ │
│ ├── 📄 executive-summary.md │
│ └── 📁 deliverables/ │
│ │
└─────────────────────────────────────────────────────────┘
탐색:
- 폴터를 클릭하여 확장/축소
- 파일을 클릭하여 콘텐츠 보기
- 컨텍스트 메뉴를 위해 마우스 오른쪽 클릭
- 정리를 위해 드래그
파일 뷰어
메모리 파일을 봅니다:
┌─────────────────────────────────────────────────────────┐
│ nova/preferences.md [편집] [삭제] │
├─────────────────────────────────────────────────────────┤
│ │
│ # Nova의 선호도 │
│ │
│ ## 코드 스타일 │
│ - 모든 새 코드에 TypeScript 사용 │
│ - 클래스보다 함수형 컴포넌트 선호 │
│ - 공개 함수에 JSDoc 코멘트 추가 │
│ │
│ ## 아키텍처 │
│ - 컴포넌트 기반 디자인 │
│ - 컴포넌트 작게 유지 (200줄 미만) │
│ - 로직 재사용을 위한 커스텀 훅 사용 │
│ │
│ ## 클라이언트별 │
│ - API는 snake_case 사용 │
│ - 인증은 JWT 기반 │
│ - 속도 제한: 분당 100 요청 │
│ │
└─────────────────────────────────────────────────────────┘
검색
모든 메모리에서 정보 찾기:
검색: "API 인증"
결과:
📄 nova/preferences.md (2번 언급)
📄 api-documentation.md (5번 언급)
📄 project-alpha-specs.md (1번 언급)
검색 모드:
- 하이브리드 — 의미 + 텍스트 검색 (기본값)
- 벡터 — 의미 기반 검색
- 텍스트 — 키워드 매칭
의미 검색
키워드가 아닌 의미로 정보 찾기.
작동 방식
pgvector + Ollama 임베딩으로 구동:
- 콘텐츠가 벡터로 변환 — 의미 포착
- 쿼리가 벡터로 변환 — 검색
- 유사성 매칭 — 가장 가까운 의미 찾기
- 순위 결과 — 가장 관련성 높은 것 먼저
예시
키워드 검색이 놓칠 수 있는 것:
검색: "로그인 보안"
의미가 찾는 것:
- "인증 모범 사례"
- "비밀번호 요구사항"
- "JWT 토큰 처리"
- "세션 관리"
개념 매칭:
검색: "웹사이트 속도를 높이는 방법"
의미가 찾는 것:
- "성능 최적화"
- "캐싱 전략"
- "이미지 압축"
- "지연 로딩"
의미 검색 사용
- 메모리 패널로 이동
- 검색 쿼리 입력
- 검색 모드 선택: 하이브리드 또는 벡터
- 결과 탐색
- 전체 콘텐츠를 볼 클릭
지식 생성
방법 1: 직접 생성
- 메모리 패널로 이동
- "+ 새" 클릭
- 위치 선택:
- 에이전트 메모리
- 지식 베이스
- 기업 지식
- Markdown으로 콘텐츠 작성
- 저장
방법 2: 작업에서
작업이 완료될 때:
- 산출물이 기업 지식에 자동 저장
- 에이전트 메모에 에이전트 노트 추가
- 결정이 지식 베이스에 기록
방법 3: 메시지를 통해
사용자: @Atlas 항상 기본 버튼에는
파란색을 사용한다는 것을 기억해줘
Atlas: 메모했습니다! 기업 지식 베이스에
저장하겠습니다.
방법 4: 기업 지식 탭
모든 AI 기업에서:
- 지식 탭으로 이동
- "+ 항목 추가" 클릭
- 가이드, 링크 또는 참조 작성
- 분류 (링크, 참조, 가이드)
- 저장
모범 사례
에이전트 메모리의 경우
- 에이전트가 자체 문서화하도록 허용 — 유용한 정보 저장
- 주기적으로 검토 — 오래된 정보 정리
- 관련성 유지 — 오래된 프로젝트 메모리 삭제
- 스타일 가이드 선별 — 일관성 보장
지식 베이스의 경우
- 결정 문서화 — X를 Y보다 선택한 이유
- 교훈 기록 — 효과가 있었던 것과 없었던 것
- 카테고리별로 조직 — 찾기 쉬움
- 업데이트 유지 — 오래된 정보는 혼란스러움
기업 지식의 경우
- 임원 요약 작성 — 모든 에이전트를 위한 컨텍스트
- 산출물 저장 — 완료된 작업 참조
- 프로세스 문서화 — 기업의 작동 방식
- 완료 시 보관 — 현재 기업을 깔끔하게 유지
메모리 관리
정리
시스템이 자동으로 오래된 데이터를 정리:
- 활동: 30일
- 통신: 15일
- 알림: 7일
- 감사 로그: 90일
수동 정리
오래된 프로젝트 보관:
- 메모리 브라우저로 이동
- 오래된 프로젝트 폴터 찾기
- 마우스 오른쪽 클릭 → 보관
- 보존되지만 검색 불가
미사용 항목 삭제:
- 에이전트 메모리 검토
- 오래된 선호도 삭제
- 오래된 스타일 가이드 제거
문제 해결
에이전트가 선호도를 잊음:
- 에이전트 메모리가 존재하는지 확인
- 파일 형식이 유효한 Markdown인지 확인
- 선호도를 다시 명시해야 할 수 있음
검색이 찾지 못함:
- 다른 키워드 시도
- 의미 검색 사용
- 파일이 인덱싱되었는지 확인 (최근 변경)
메모리가 너무 많음:
- 에이전트 응답이 느려짐
- 오래된 메모리 정리
- 완료된 프로젝트 보관
- 관련 정보에 집중