메인 콘텐츠로 건너뛰기

너의 암호화폐 AI 에이전트에 메모리를 추가하는 방법

AI 에이전트가 기억력 없이 초기화되면 매번 같은 질문, 같은 재발견, 같은 잊어버린 설정이 반복돼요. 이 글에서 지난번 봤던 것, 어제 했던 말을 기억하도록 지속성을 더하는 실용적인 방법을

작성자: Pete Darby

개요. Cryptohopper MCP는 상태 비저장(stateless)으로 설계되었습니다. 즉, 각 도구 호출은 독립적이며 서버는 요청 간에 아무것도 유지하지 않습니다. 메모리는 클라이언트 측이나 귀하가 제어하는 저장소에 있습니다. 이 가이드는 해당 계층에 대한 설명입니다.

사전 요구 사항

  • 작동하는 Cryptohopper MCP 연결이 있는 MCP 클라이언트. 설정 개요 참조.

  • 데이터를 저장할 공간. 로컬 파일, SQLite 데이터베이스, 클라우드에 저장된 JSON 블롭 또는 Notion과 같은 도구가 될 수 있습니다. 시작하는 데 별도의 인프라가 필요하지 않습니다.

"메모리"로 간주되는 것

세 가지 계층이 있으며, 각각 다른 이유로 유용합니다:

계층

예시

일반적인 위치

세션 메모리

하나의 대화 내에서 모델이 사용자가 이전에 말한 내용을 기억함

모델의 컨텍스트 창 (내장)

실행 간 메모리

오늘의 에이전트 실행은 지난주 실행에서 관찰한 내용을 기억함

파일, 데이터베이스, Notion 등

사용자 프로필

에이전트가 사용자의 관심 목록, 선호 거래소, 위험 선호도를 알고 있음

실행 간 메모리와 동일; 세션 시작 시 로드됨

세션 메모리는 무료이며 자동으로 작동합니다. 실행 간 메모리와 사용자 프로필 메모리는 저장소를 설정해야 합니다.

설정 — 사용자 프로필

  1. 암호화폐 사용자로서 자신을 설명하는 짧은 마크다운 파일을 작성하세요. 한 페이지 미만으로 유지하세요:


    사용자에 대해
    주로 Binance에서 거래합니다.
    관심 목록: BTC, ETH, SOL, AVAX, ARB, OP, LINK, AAVE, UNI.
    현물 보유; Cryptohopper를 통해 SOL 및 AVAX에 그리드 봇을 실행합니다.
    상승 기회를 놓치는 것보다 하락 위험을 더 신경 씁니다.
    무기한 거래를 하지 않습니다.

    기본값
    거래소: Binance
    페어: USDT
    기술적 분석 타임프레임: 4h (200 봉)
    위험 감수성: moderate

    프롬프트 선호도
    형용사보다 구체적인 숫자를 선호합니다.
    추측을 추측으로 표시합니다.
    티커가 모호한 경우, 추측하기보다는 질문합니다.

  2. 모든 에이전트 대화 시작 시 로드하세요. 두 가지 방법:

    • 수동 붙여넣기: 각 세션에서 첫 번째로 파일을 붙여넣습니다.

    • 클라이언트 통합: 클라이언트의 영구 메모리 기능 (Claude 데스크톱 Projects, Cursor 규칙, Zed 컨텍스트)을 사용하여 자동 주입합니다.

  3. 파일을 작게 유지하세요. 약 300줄 이상은 모델이 건너뛰는 노이즈가 됩니다. 요점은 제약 조건이지 자서전이 아닙니다.

  4. 버전 관리하세요. 관심 목록이나 선호도를 변경할 때 git (또는 Notion 기록)에 변경 사항을 커밋하세요. 프로필에 따라 에이전트의 동작이 변경됩니다. 왜 그랬는지 볼 수 있을 것입니다.

설정 — 실행 간 메모리 (간단)

가장 간단한 실행 간 메모리는 에이전트가 시작 시 읽고 끝에서 추가하는 단일 마크다운 파일입니다:

  1. memory.md 파일을 기본 구조로 생성하세요:

    Agent memory  최근 관찰 기록 (각 실행 후 여기에 항목 추가.)  주목해야 할 항목 (에이전트가 향후 주의를 위해 플래그 지정한 항목.)  과거 결정 (주요 결정 및 그 이유.)

  2. 각 에이전트 실행이 시작될 때 파일 내용을 주입하세요:

    [AGENT MEMORY] {memory.md 파일 내용}  [TASK] 오늘의 작업: 일일 요약 실행.

  3. 각 실행이 끝날 때 새로운 관찰 내용을 추가하세요. 에이전트가 명시적으로 생성하도록 요청하세요:

    작업 완료 후, 다음에 기억할 만한 주목할 만한 내용을 2-4줄로 요약하여 작성하세요. 다음 형식을 사용하세요:  [YYYY-MM-DD] {관찰 내용}  예시: [2026-05-27] SOL 거래량 3일 연속 상승; 대략 83-87 범위 유지. [2026-05-27] 관심 목록: LINK가 조용하지만 7일 후에 확인할 만하다고 표시됨.  이것들을 수동으로 memory.md에 추가하겠습니다.

  4. 정기적으로 검토하고 정리하십시오. 대략 일주일에 한 번, memory.md 파일을 줄이세요. 오래된 항목을 삭제하고 패턴을 통합하세요. 관리되지 않는 메모리 파일은 끊임없이 증가하여 노이즈가 됩니다.

설정 — 실행 간 메모리 (구조화)

쿼리 가능한 기록에서 이점을 얻는 에이전트의 경우, 작은 SQLite 데이터베이스가 잘 작동합니다. 스키마 제안:

sql

CREATE TABLE observations (
id INTEGER PRIMARY KEY,
run_at TEXT NOT NULL, -- ISO-8601
agent_name TEXT NOT NULL, -- 예: "daily-digest"
category TEXT, -- 예: "volume-spike", "trend-change"
token TEXT, -- 예: "SOL"
content TEXT NOT NULL, -- 관찰 내용 텍스트
metadata JSON -- 모든 구조화된 필드
);

CREATE INDEX idx_run_at ON observations(run_at);
CREATE INDEX idx_agent_token ON observations(agent_name, token);

이를 통해 "지난 14일 동안 SOL에 대해 어떤 관찰을 했습니까?"와 같은 쿼리를 실행하고 그 결과를 오늘의 실행에 대한 컨텍스트로 에이전트에게 제공할 수 있습니다.

에이전트는 작은 Python 헬퍼를 통해 이 테이블에 씁니다.

python

def log_observation(agent_name: str, category: str,
token: str, content: str) -> None:
conn.execute(
"INSERT INTO observations (run_at, agent_name, category, token, content) "
"VALUES (?, ?, ?, ?, ?)",
(datetime.utcnow().isoformat(), agent_name, category, token, content),
)
conn.commit()

이를 신중하게 사용하세요. 구조화된 메모리는 실제로 쿼리할 경우에만 설정할 가치가 있습니다. 간단한 요약의 경우 마크다운 파일로 충분합니다.

기억해야 할 것, 기억하지 말아야 할 것

좋은 메모리 후보:

  • "SOL이 5일 동안 83-87 범위에서 횡보세를 보이고 있습니다." — 다음 날 실행 시 단일 양초로는 표시되지 않는 범위 컨텍스트.

  • "어제 LINK에 대해 거래량 이상 징후를 표시했으므로 오늘 후속 조치를 취하세요."

  • "사용자가 2026-05-20에 AVAX에 대한 그리드 봇에 대해 문의했으며, 매개변수는 X, Y, Z였습니다."

좋지 않은 메모리 후보:

  • 원시 시장 데이터. 데이터는 변경됩니다. 오래된 캐시에 의존하는 대신 MCP에서 다시 가져오세요.

  • 전체 대화 녹취록. 신호 대 잡음비가 너무 낮습니다.

  • 모든 실행에 대한 자동 요약. 큐레이션 없이 매우 쓸모없게 됩니다.

좋은 테스트: "이 메모리 항목을 삭제하면 다음 주에 에이전트의 행동이 더 나빠집니까?" 아니오라면 삭제하세요.

문제 해결

에이전트가 현재 데이터와 일치하지 않는 메모리를 인용합니다.

이것은 캐시된 컨텍스트의 근본적인 위험입니다. 에이전트는 SOL이 상승 추세였다고 "기억"하지만, 이후 반전되었습니다. 해결책: 에이전트에게 메모리 주장을 사실로 사용하기 전에 항상 최신 MCP 데이터와 비교하여 확인하도록 지시합니다. "메모리 항목에 의존하기 전에 현재 데이터를 확인하고 메모리가 오래되었으면 명시적으로 표시하십시오."

메모리 파일이 관리하기 어려울 정도로 커집니다.

정리 없이 계속 추가하고 있습니다. 엄격한 규칙을 설정하십시오: 일주일에 한 번, 지난주 항목을 검토하고 삭제/병합합니다. 또는 메모리 파일을 월별로 순환합니다 (memory-2026-04.md, memory-2026-05.md).

에이전트가 메모리 블록을 무시합니다.

프롬프트가 에이전트에게 사용하도록 요구하지 않습니다. 명시적으로 작성하십시오: "답변하기 전에 위의 메모리 블록을 검토하십시오. 관련 있는 경우 특정 항목을 참조하십시오. 항목이 최신 데이터와 상충되면 명시적으로 표시하십시오."

메모리가 자신감 있지만 잘못된 답변을 도입합니다.

에이전트가 메모리를 권위 있는 것으로 취급하고 있습니다. 메모리를 사실이 아닌 힌트로 프레임하십시오: "메모리에는 과거 관찰 기록이 포함되어 있으며, 이를 사실이 아닌 컨텍스트로 취급합니다. 항상 최신 데이터와 비교하여 확인하십시오."

사용자의 개입 없이 에이전트가 메모리를 업데이트하기를 원합니다.
가능하지만 위험합니다. 모니터링되지 않은 쓰기 전용 메모리는 좋은 항목만큼 빠르게 나쁜 항목을 축적합니다. 자동화하는 경우 항상 주간 검토 단계를 함께 사용하십시오. 한 달 동안 메모리를 읽지 않고 그대로 두지 마십시오.

다중 에이전트 메모리가 혼동됩니다.
여러 에이전트가 하나의 메모리 파일을 공유하는 경우 agent_name 필드를 사용하여 항목을 네임스페이스합니다. 각 에이전트는 자신의 항목만 읽거나 전체 파일을 읽지만 어떤 에이전트가 어떤 줄을 썼는지 알고 있습니다.

사용자 프로필 파일이 오래되었습니다. 선호도가 변경됩니다. 에이전트가 더 이상 사용하지 않는 타임프레임이나 거래소로 기본 설정되는 것을 발견하면 프로필을 업데이트하세요. 프롬프트별 오버라이드로 이를 우회하지 마세요.

답변이 도움되었나요?