Memory 도구
Memory 도구 (Memory Tool)
에이전트가 SQLite 기반 영구 키-값 저장소로 세션을 넘어 사실, 선호, 프로젝트 맥락, 과거 결정을 기억하는 방법을 설명해요.
출처: 문서
본문
memory 도구는 SQLite가 백엔드인 영구 키-값 저장소를 제공해요. 데이터가 세션을 넘어 살아남아서, 에이전트가 사실, 사용자 선호, 프로젝트 맥락, 과거 결정을 기억할 수 있어요. 메모리는 범주로 정리하고 키워드로 검색할 수 있어요.
기본적으로 데이터베이스는 ~/.cagent/memory/<profile>/memory.db에 저장돼요. 여기서 <profile>은 로드된 구성(보통 YAML 파일 이름)에서 파생되고, 사용 불가능하면 default로 폴백해요. 에이전트가 OCI 참조(예: docker/my-agent:latest)에서 로드되면 파일시스템 경로에 예약된 문자(예: :)는 <profile> 세그먼트에서 정리돼요 — 에이전트의 다른 곳 표시 이름은 바뀌지 않아요. 같은 구성에서 선언된 에이전트는 기본적으로 이 데이터베이스를 공유해요. 격리하려면 도구셋별로 명시적 path를 설정하세요.
사용 가능한 도구
| 도구 | 설명 |
|---|---|
add_memory |
선택적 범주와 함께 새 메모리 저장 |
get_memories |
저장된 모든 메모리 검색 |
delete_memory |
ID로 특정 메모리 삭제 |
search_memories |
키워드 및/또는 범주로 메모리 검색(get_memories보다 효율적) |
update_memory |
ID로 기존 메모리의 내용 및/또는 범주 갱신 |
구성
toolsets:
- type: memory
옵션
| 속성 | 타입 | 기본값 | 설명 |
|---|---|---|---|
path |
string | ~/.cagent/memory/<profile>/memory.db |
SQLite 데이터베이스 파일 경로 |
커스텀 데이터베이스 경로
toolsets:
- type: memory
path: ./agent_memory.db
범주
메모리는 정리와 필터링을 위한 선택적 category 필드를 지원해요. 흔한 범주:
- preference — 사용자 선호와 설정
- fact — 프로젝트나 사용자에 대한 사실 정보
- project — 프로젝트별 맥락
- decision — 과거 결정과 그 근거
팁 memory는 대화를 넘어 정보를 회상해야 하는 장기 실행 어시스턴트에 특히 유용해요 — 코딩 선호, 프로젝트 관례, 이전 세션에서 발견한 맥락 같은 것들이요.
더 알아보기 (Learn more)
- Session Context 도구로 현재 세션 정보 보기
- Docker Agent 도구 개요에서 다른 도구 살펴보기