본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 24. 08:51

LangChain 및 LlamaIndex를 위한 MCP 기반의 즉시 적용 가능한 소유형 메모리

요약

SAIHM은 Model Context Protocol(MCP)을 기반으로 하는 소유형 메모리 프로토콜입니다. LangChain 및 LlamaIndex를 위한 어댑터를 제공하여 에이전트의 세션 간 메모리 문제를 해결하며, 암호화 기술을 통해 데이터 보안과 컴플라이언스를 보장합니다.

핵심 포인트

  • MCP 기반 프로토콜로 모델 및 프레임워크 종속성 탈피
  • LangChain 및 LlamaIndex용 즉시 적용 가능한 어댑터 제공
  • 사용자 지갑 기반 키 파생으로 강력한 데이터 프라이버시 구현
  • 암호학적 파기(crypto-shredding)를 통한 데이터 삭제 및 컴플라이언스 대응

by the Architect · Apache-2.0

에이전트(agents)를 구축한다면, 이미 메모리 문제에 직면했을 것입니다. 모델은 세션(sessions) 사이에서 내용을 잊어버리기 때문에, 매 호출마다 대화 기록(transcript)을 다시 보내야 합니다. 이는 기하급수적으로 증가하여 결국 컨텍스트 윈도우(window)를 초과하게 만드는 항목입니다. 일반적인 해결책들은 하나의 종속성(lock-in)을 다른 종속성으로 교체하는 것에 불과합니다. 즉, 데이터를 보유하는 벤더의 메모리 API를 사용하거나, 다음 모델로 가져갈 수 없는 프레임워크 전용 저장소(framework-specific store)를 사용하는 것입니다.

SAIHM은 모델도 아니고 제품 사일로(product silo)도 아닌 메모리 **프로토콜 (protocol)**입니다. 이는 Model Context Protocol (MCP)을 지원하므로, MCP를 지원하는 모든 것이 이를 사용할 수 있습니다. 또한 LangChain 및 LlamaIndex를 위한 즉시 적용 가능한 어댑터(drop-in adapters)를 제공하여, 이를 도입하기 위해 체인(chain)을 다시 작성할 필요가 없습니다. 키(keys)는 사용자의 지갑(wallet)에서 파생되어 기기를 절대 떠나지 않으며, 서비스는 오직 암호문(ciphertext)만을 보게 됩니다. 또한 단 한 번의 forget 명령으로 래핑된 키를 파괴하여 저장된 바이트(bytes)를 복구 불가능한 노이즈로 만듭니다. 이 마지막 속성이 바로 컴플라이언스(compliance) 팀이 실제로 요구하는 것입니다.

이것은 작동 가능한 통합 가이드입니다. 아래의 모든 코드 스니펫(snippet)은 먼저 번들링된 블라인드 샌드박스(blind sandbox)에서 오프라인으로 실행됩니다 — 키도, 계정도 필요 없습니다 — 따라서 결정을 내리기 전에 전체 과정을 테스트해 볼 수 있습니다.

1. 가장 빠른 경로: MCP 서버

호스트가 이미 MCP를 지원한다면 (Claude Code, Cursor, Claude Desktop 또는 자체 클라이언트), SAIHM을 추가하는 것은 리팩토링(refactor)이 아닌 설정 변경입니다:

npx @saihm/mcp-server

이를 통해 프로토콜의 도구(tools)들이 에이전트에게 노출됩니다 — saihm_remember, saihm_recall, saihm_forget, saihm_status, 그리고 공유 및 거버넌스(governance) 도구들입니다. 에이전트가 언제 기억하고 회상할지를 결정하며, 사용자는 재시작 후에도 유지되고 모델 간에 함께 이동할 수 있는 저장소를 얻게 됩니다.

2. LangChain: 즉시 적용 가능한 BaseChatMessageHistory

Python 체인의 경우, 어댑터 패키지를 설치하고 채팅 메시지 기록(chat-message history)이 필요한 곳 어디에서나 SAIHM을 사용하세요:

from saihm_memory import SaihmChatMessageHistory

history = SaihmChatMessageHistory()      # 기본적으로 로컬 블라인드 샌드박스 사용
...

이것은 LangChain의 BaseChatMessageHistory를 구현하므로, 히스토리 팩토리 (history factory)로서 RunnableWithMessageHistory에 즉시 끼워 넣을 수 있습니다. 전체적인 연결 방식(세션 키 지정 포함)은 어댑터 리포지토리(adapter repo)의 demo.py에 구현되어 있습니다 — 아래의 실행(run-it) 섹션을 참조하세요. 중요한 세부 사항은 다음과 같습니다: clear() 함수는 오직 이 인스턴스가 추가한 메시지만 암호학적으로 파기(crypto-shreds)하므로, 리셋을 하더라도 나머지 메모리가 예기치 않게 삭제되는 일은 없습니다.

3. LlamaIndex: 즉시 적용 가능한 BaseMemory

동일한 저장소를 BaseMemory 구현을 통해 LlamaIndex에서도 사용할 수 있습니다:

from saihm_memory import SaihmMemory
from llama_index.core.llms import ChatMessage, MessageRole

...

memory=...를 통해 채팅 엔진(chat engine)이나 에이전트(agent)에 전달하세요. LangChain에서 작성된 동일한 셀(cells)들을 여기서도 읽을 수 있으며, 코어 클라이언트(core client)로부터도 접근 가능합니다 — 하나의 메모리, 세 개의 소비자(consumers) 구조입니다.

4. 코어 클라이언트 (모든 Python 앱)

프레임워크가 필요하지 않습니다:

from saihm_memory import SaihmMemoryClient

mem = SaihmMemoryClient()                # 기본적으로 로컬 블라인드 샌드박스 사용
...

5. 어댑터 데모 실행 (오프라인, 계정 불필요)

git clone https://github.com/citw2/saihm-langchain
cd saihm-langchain
npm install                              # 모든 셀을 클라이언트 측에서 봉인하는 Node 사이드카(sidecar)
...

Python은 절대 키를 보유하지 않습니다. 작게 번들링된 Node 사이드카가 클라이언트 측에서 봉인(sealing) 작업을 수행하므로, 어댑터는 얇고 감사 가능한(auditable) 레이어로 유지됩니다.

6. 라이브 서비스 적용

샌드박스는 오프라인 대용물이며, 실행 중인 프로세스 외에는 아무것도 저장하지 않습니다. 라이브로 전환하려면 동일한 코드를 호스팅된 블라인드 엔드포인트(blind endpoint)로 지정해야 하며, 유료 멤버십이 필요합니다 (무료 티어는 없습니다). JWT를 받기 위해 온보딩을 진행하고, 기기를 절대 벗어나지 않는 마스터 비밀(master secret)을 생성하면, 엔드포인트는 오직 암호문(ciphertext)만을 받게 됩니다:

export SAIHM_ENDPOINT_URL=https://saihm.coti.global/mcp
export SAIHM_AUTH_HEADER="Bearer <your-onboard-JWT>"
export SAIHM_MASTER_SECRET_HEX=<최소 64자리의 16진수, 사용자가 직접 생성하고 보유해야 함>

결제는 COTI V2 메인넷에서 이루어집니다: 쓰기당 $0.01, 읽기당 $0.005의 종량제(pay-as-you-go) 방식 또는 월 $5부터 시작하는 구독형 방식 중 선택할 수 있습니다. 전체 라이선스는 Apache-2.0을 따르며, 사용자를 종속시키기 위한 독점적인 클라이언트 SDK는 제공하지 않습니다.

실제로 토큰을 절약할 수 있나요?

전체 이력을 다시 보내는 대신 작은 작업 세트(working set)를 회상(Recalling)하는 것이 이 기술의 핵심이며, 이는 측정 가능합니다. 사용자의 대화 기록(transcript)에 대해 직접 실행해 볼 수 있는 공개된 오프라인 벤치마크가 있습니다: citw2/saihm-token-benchmark. 긴 멀티 세션(multi-session) 실행 시 컨텍스트(input) 토큰을 최대 약 80%까지 절감하며, 짧은 세션에서는 그보다 적게 절감됩니다. 출력(Output) 토큰은 두 전략 모두 동일하므로, 이득은 정확히 다시 보낼 필요가 없어진 컨텍스트 토큰 비용만큼입니다.

직접 체험해보고 참여하세요

어댑터를 클론(Clone)하고, 오프라인 데모를 실행한 뒤, 사용 중인 체인에 연결해 보세요. 만약 이 기술이 귀하의 스택(stack)에 자리 잡을 가치가 있다면, **SAIHM에 참여(Join SAIHM)**하여 라이브로 전환하세요: https://saihm.coti.global/join?utm_source=devto&utm_medium=article&utm_campaign=c3

실행 가능한 9가지 데모 전체 보기: [https://citw2.github.io/saihm-demos/]

— Architect

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0