728x90
반응형

AI 에이전트를 위한 그래프 기반 메모리 레이어를 살펴봅니다.

오늘날 구축하는 대부분의 에이전트는 기억 상실제입니다. 그들은 일련의 추론을 실행하고, 답변을 반환하고, 요청이 끝나는 순간 모든 것을 잊어버립니다. 검색할 항목을 결정하기 위해 글루 코드를 사용하여 컨텍스트 창에 기록을 채우는 일반적인 패치는 대화가 길어지고 사실이 서로 모순되기 시작하고 "기억"이 코사인 유사성에 따라 순위가 매겨진 텍스트 덩어리 더미일 뿐이라는 것을 깨닫게 될 때까지 작동합니다.

The Neo4j 에이전트 메모리 서비스(NAMS)관리형 클라우드 서비스로 제공되는 LLM 에이전트를 위한 지속적이고 구조화된 메모리라는 더 나은 기반을 위한 우리의 노력입니다.

당신은 전화REST API 또는 MCP 클라이언트 연결NAMS는 저장, 엔터티 추출, 중복 제거, 임베딩, 백그라운드 압축 및 컨텍스트 검색을 처리합니다. 이 모든 것은 관리되는 방식으로 뒷받침됩니다.Neo4j 아우라기본 벡터 인덱스가 있는 그래프 데이터베이스.

이것은 빅뱅 출시 발표가 아닙니다.NAMS는Neo4j 연구소 프로젝트 (이는 실험적이고 커뮤니티에서 지원됨을 의미함) 에이전트를 구축하는 사람들에게 이를 더 좋게 만드는 가장 빠른 방법을 제공하는 것이기 때문에 일찍 공개합니다. 따라서 기능 목록보다는 NAMS를 둘러보고 이를 사용하여 에이전트를 보다 효율적으로 만드는 방법을 살펴보겠습니다. 잘콘솔을 열어모든 탭을 살펴보세요.

아키텍처 다이어그램: LLM 에이전트는 REST 및 MCP를 통해 NAMS를 호출합니다. NAMS는 작업공간별 Neo4j Aura 데이터베이스의 지원을 받아 API 게이트웨이, MCP 서버 및 상시 작동되는 백그라운드 작업자를 실행합니다.

시스템의 형태: 에이전트가 HTTP 또는 MCP를 통해 NAMS와 통신하고 NAMS는 데이터베이스, 추출 및 임베딩 파이프라인, 백그라운드 압축을 실행합니다. 아래 콘솔에 표시되는 모든 내용은 하나의 작업공간별 그래프에 대한 보기입니다.

둘러보기 전에 Neo4j Agent Memory의 목표를 이해하는 것이 중요합니다. NAMS는 에이전트를 제공합니다세 가지 종류의 기억:단기(대화), 장기(엔티티 및 관계에 대한 지식 그래프) 및 추론(에이전트 자체 단계 및 도구 호출 기록)입니다. 세 가지 유형의 메모리가 모두 하나의 그래프에 연결된 노드로 연결되어 저장됩니다. 콘솔의 각 탭을 해당 그래프의 다른 렌즈로 생각할 수 있습니다.

계기반

후에로그인가장 먼저 시작하는 것은 작업 공간의 운영 뷰입니다. 그것은 한 가지 질문에 답합니다. 모든 것이 건강하고 내 기억이 실제로 처리되고 있습니까?

메모리 처리 서비스의 서비스 상태, 항목 및 대기열 지연 수, 스트림의 메시지 대기열 테이블을 표시하는 NAMS 대시보드입니다.

상단에는 서비스 정상, 그래프의 엔터티, 대기열 지연(비동기 작업자가 얼마나 뒤쳐져 있는지) 등의 필수 요소가 있습니다. 아래에는 NAMS를 구성하는 7가지 서비스가 나열되어 있으며 이들 서비스 간에 작업을 전달하는 스트림(메모리:이벤트, 사용법:이벤트, 추출:작업, 관찰:작업 및 반사:작업)이 나와 있습니다.

대기열 패널은 보기보다 더 흥미롭습니다. 메시지를 저장하면즉시 응답이 돌아옵니다그러나 텍스트에서 엔터티를 가져와 삽입하고 기존 그래프에 대해 중복을 제거한 다음 나중에 대화를 압축하는 실제 작업은 해당 스트림에서 비동기적으로 발생합니다. 지연 시간이 0이라는 것은 그래프가 보낸 모든 내용을 완전히 따라잡았다는 의미입니다. 여기서 메모리는 테이블이나 마크다운 파일의 다른 행에 대한 쓰기가 아닌 살아있는 파이프라인입니다.

메모리 브라우저

원하는 경우 먼저 열리는 탭입니다.feel그래프 네이티브 메모리의 의미 이는 지식 그래프의 대화형 강제 시각화입니다. 모든 엔터티는 유형별로 색상이 지정된 노드이며, 하나를 클릭하면 전체 속성 패널이 열립니다.

항목 유형별로 색상이 지정된 강제 지향 지식 그래프를 보여주는 NAMS 메모리 브라우저.

색상은 사람, 조직, 위치, 개념 등과 같이 서비스가 추출하는 엔터티 유형에 매핑됩니다. 노드를 선택하면 해당 노드의 ID, 이름, 유형, 설명, 신뢰도 점수 및 노드를 생성한 sourceStage(여기서는 llm)가 표시됩니다. 이 중 어느 것도 직접 입력하지 않았습니다. 메시지에서 추출되어 자동으로 그래프로 수집되었습니다.

이는 또한 하나의 구조에 공존하는 세 가지 메모리 유형을 모두 볼 수 있는 가장 좋은 장소이기도 합니다.

녹색 대화 및 메시지 노드, 입력된 관계가 있는 주황색 항목 노드, 보라색 에이전트 단계 및 도구 호출 노드가 모두 하나의 그래프에 상호 연결되어 있는 그래프 다이어그램입니다.

단기 기억(녹색 대화 및 메시지 노드), 장기 기억(주황색 개체,극+O모델 — 사람, 조직, 위치, 이벤트 및 개체 — 입력된 관계로 결합됨) 및 추론 메모리(보라색 에이전트 단계 및 도구 호출 노드)는 세 개의 별도 데이터베이스가 아닙니다. 하나의 연결된 그래프이므로 도구 호출에서 처음 언급한 메시지까지 터치한 엔터티까지 순회할 수 있습니다. 순회는 벡터 저장소가 제공할 수 없는 것입니다.벡터 상점은 당신에게 회상을 제공합니다. 그래프를 보면 이해가 될 것입니다.

인간 참여 루프(HITL) 해결 방법

지저분한 실제 텍스트로 지식 그래프를 구축하면 즉시 문제에 직면하게 됩니다. 동일한 내용이 여러 가지 방법으로 언급됩니다. "J. Smith", "John Smith" 및 "Smith, John"은 세 사람이 아니라 한 사람이어야 합니다. NAMS는 명백한 사례를 자동으로 처리하고 해결 신뢰도가 구성 가능한 임계값보다 낮을 때 사람에게 확인을 요청합니다. 이 탭에는 '사람에게 물어보기' 단계가 있습니다.

대기 중, 확인 및 거부된 개수를 보여주는 HITL 해결 탭과 신뢰도 점수 및 검토 작업이 포함된 후보 중복 쌍 표

뒤에서는 새로 추출된 모든 항목이 유형 엄격한 확인자 캐스케이드를 통해 실행됩니다.정규화된 이름과 별칭을 일치시킨 다음일치(Levenshtein, Jaro-Winkler, 토큰 정렬), 그런 다음임베딩 일치. 신뢰도가 높은 일치 항목은 자동으로 병합됩니다. 일치하지 않는 항목을 지우면 새 노드가 됩니다. 모호한 중간 대역은 보류 중으로 표시된 SAME_AS 에지로 기록되어 여기 검토 대기열에 표시됩니다. 각 행에는 원본과 대상, 신뢰도 및 플래그를 지정한 방법이 표시됩니다(예제 쌍은 퍼지를 통해 92% 일치함). 신뢰도가 높은 항목을 확인, 거부 또는 일괄 확인할 수 있습니다. 이는 모든 쓰기를 관리하지 않고도 그래프를 깨끗하게 유지하는 것과 동일한 인간 참여형 패턴입니다.

엔터티 탐색기

위의 메모리 브라우저는 메모리 그래프를 시각적으로 탐색하는 데 유용하지만 엔터티 탐색기는 항목을 찾는 데 사용됩니다. 작업 공간의 모든 엔터티를 검색하고 정렬할 수 있는 테이블입니다.

이름, 유형, 설명, 신뢰도, 소스 및 마지막 업데이트 열이 포함된 검색 가능한 엔터티 테이블을 표시하는 NAMS 엔터티 탐색기.

각 행에는 다음이 포함됩니다.

  • 항목 유형,
  • 추출된 설명,
  • 신뢰도 점수,
  • 소스 단계 및
  • 마지막으로 업데이트된 날짜

내부적으로 검색은 하이브리드입니다. 벡터 유사성을 먼저 실행하고(엔티티는 임베딩을 그래프의 속성으로 저장) 임베딩을 사용할 수 없는 경우 일반 텍스트 일치로 되돌아가므로 정확한 키워드 히트 없이도 "신장 의사"에 대한 쿼리가 신장 전문의를 검색할 수 있습니다. 특정 사람, 장소, 사물에 대해 상담사가 실제로 알고 있는 내용을 확인하고 싶을 때 사용하는 탭입니다.

Observations

대화는 끝없이 늘어날 수 있으므로 메모리 큐레이션은 실행 가능한 지식을 표면화하는 중요한 기능입니다. 기록을 주기적으로 요약하려면 직접 구축하고 운영하기 귀찮은 일종의 항상 실행되는 백그라운드 작업이 필요합니다. NAMS는 이를 실행하며, 관찰 탭은 에이전트의 기억에 대한 큐레이션의 진화를 검사할 수 있는 타임라인입니다.

피라미드 다이어그램: 베이스의 원시 메시지는 위쪽으로 압축되어 관측값으로 압축된 다음 단일 활성 반사로 압축됩니다. 백그라운드 작업자가 프로세스를 구동하고 컨텍스트 엔드포인트가 세 계층을 모두 반환합니다.

압축 작업자는 원시 메시지를 지속적으로(메시지 창에 대한 짧은 2~4개 문장 요약, 각 메시지의 정확한 출처를 추적할 수 있음) 그런 다음 이를 단일 활성 항목으로 합성합니다.(전체 대화에 대한 현재 최고의 요약) 당신은 그것을 유발하지 않습니다. 메시지에 대한 컨텍스트가 필요한 경우 한 번의 호출로 세 가지 계층이 모두 한 번에 반환됩니다.

curl https://memory.neo4jlabs.com/v1/conversations/{id}/context \
  -H "Authorization: Bearer $NAMS_API_KEY"

활성 리플렉션(가장 압축됨), 최근 관찰(중간 수준) 및 최근 원시 메시지(축어적)를 얻습니다. 즉, 프롬프트에 바로 드롭할 수 있는 미리 만들어진 계층화된 컨텍스트 블록입니다. 짧은 대화에서는 압축 임계값을 넘을 때까지 여기에 빈 배열이 표시됩니다. 대화를 통해 타임라인이 채워집니다. 이는 호스팅된 메모리 서비스의 조용한 사치입니다. 메모리를 컴팩트하게 유지하는 비용이 많이 들고 상태 저장이 완료되지 않은 작업은 에이전트가 아닌 다른 곳에서 발생합니다.

쿼리 콘솔

선별된 탭에서 다루지 않는 모든 내용은 그래프로 직접 연결됩니다. 쿼리 콘솔은 작업 공간 그래프에 대해 실행되는 읽기 전용 Cypher 편집기입니다. 결과를 표나 그래프 형태로 반환할 수 있습니다.

Cypher 쿼리와 항목 ID, 이름, 유형의 결과 테이블이 포함된 NAMS 쿼리 콘솔.

NAMS는 Neo4j 아래에 있기 때문에 메모리는 다음을 사용하여 쿼리할 수 있습니다.완전한 사이퍼 언어. 특정 도구 호출의 영향을 받은 엔터티, 조직을 언급하는 메시지, 그래프에서 가장 많이 연결된 노드를 요청하세요. Cypher로 표현할 수 있다면 여기서 실행할 수 있습니다. 이는 시각적 섹션에 대한 고급 사용자 보완 기능이며 기본 데이터베이스에 액세스할 수 있으므로 메모리를 이식할 수 있다는 점을 상기시켜 줍니다.

온톨로지

NAMS는 기본적으로 합리적인 범용 어휘를 추출합니다. 하지만 법률 보조원, 금융 서비스 대리인, 전자상거래 봇은 세상을 같은 방식으로 보지 않습니다. "엔티티"라는 개념은 다음을 의미합니다.그리고하나와 하나에그리고또 다른. NAMS를 사용하면 각 작업 공간을 자체 작업 공간에 바인딩할 수 있습니다.: 추출을 형성하는 엔터티 및 관계 유형에 대한 선언적 설명입니다.and확인.

NAMS 온톨로지 페이지: 허용 모드의 활성 의료 클론 온톨로지, 엔터티 유형, 관계, 개정 및 보류 유형에 대한 통계 카드 및 도메인 템플릿 라이브러리.

작업공간은 기본 POLE 모델 기반 온톨로지를 사용하여 시작되며 거기에서 다음 중 하나를 복제할 수 있습니다.– 의료, 법률, 금융 서비스, 사이버 보안, 소매, 소프트웨어 엔지니어링 등. 또는 RDF/ttl과 같은 형식에서 기존 온톨로지를 가져옵니다. 템플릿 복제 및 활성화는 MCP 또는 HTTP API를 통해 수행할 수 있습니다.

curl -X POST https://memory.neo4jlabs.com/v1/ontologies/legal/clone \
  -H "Authorization: Bearer $NAMS_API_KEY"
# → {"id": "ov_...", "ontology_id": "ont_...", "revision": 1}


curl -X POST https://memory.neo4jlabs.com/v1/ontologies/active \
  -H "Authorization: Bearer $NAMS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"version_id": "ov_..."}'

활성화되면 온톨로지는유효성 검사 모드추출된 항목에 스키마에 없는 유형이 있을 때 발생하는 상황을 제어합니다.

의사결정 흐름 다이어그램: 활성 온톨로지에 대해 엔터티 쓰기가 확인됩니다. 유형이 선언되지 않은 경우 엄격은 HTTP 422를 사용하여 이를 거부하는 반면, 허용 및 검토는 이를 수락하고 보류 중인 유형 검토 대기열로 보냅니다.

In 모드에서는 쓰기가 거부되고 가장 가까운 선언 유형이 제안으로 사용됩니다. 이 접근 방식은 깨끗하고 예측 가능한 그래프에 적합합니다. ~ 안에모드(기본값) 엔터티가 허용되고 알 수 없는 유형이 다음과 같이 기록됩니다.보류 중.

In 모드에서는 승인되었지만 승인을 위해 플래그가 지정되었습니다. 보류 중인 유형은 이 페이지의 검토 대기열에 바로 표시되며, 여기서 유형을 승격(새 온톨로지 개정 생성)하거나 별칭으로 매핑하거나 거부할 수 있습니다. 이는 스키마 자체에 적용되는 엔터티 해결과 동일한 인간 참여형 아이디어입니다.

편집은 불변적이고 쿼리 가능한 개정을 생성하며 모든 변경 사항은 온톨로지의 추가 전용 감사 추적에 기록됩니다.

Docs

문서 섹션은 귀하의 작업공간을 이미 알고 있는 실시간 콘솔 내 참조입니다. 모든 스니펫에는 API 키가 첨부되어 있으며 '자신의 데이터에 대해 호출을 실행하는 ” 버튼입니다. NAMS에 대한 두 가지 방법을 다룹니다.

REST API, 에이전트 배관 구축을 위한 것입니다. nams_ API 키는 교환 단계 없이 무기명 토큰으로 직접 작동합니다.

# 1. Create a conversation
curl -X POST https://memory.neo4jlabs.com/v1/conversations \
  -H "Authorization: Bearer $NAMS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"userId": "user-1"}'

# 2. Add a message — extraction and embedding happen automatically
curl -X POST https://memory.neo4jlabs.com/v1/conversations/{id}/messages \
  -H "Authorization: Bearer $NAMS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"role": "user", "content": "John works at Acme Corp in Denver"}'

# 3. See what was extracted
curl https://memory.neo4jlabs.com/v1/entities \
  -H "Authorization: Bearer $NAMS_API_KEY"
# → John (person), Acme Corp (organization), Denver (location)

MCP 서버, 에이전트(또는 코딩 보조자)가 메모리를 도구 세트로 사용할 수 있도록 하기 위한 것입니다. 스트리밍 가능한 HTTP를 사용하며 동일한 키가 Bearer 토큰으로 작동합니다.

claude mcp add --transport http --scope project nams \
  https://memory.neo4jlabs.com/mcp \
  --header "Authorization: Bearer ${NAMS_API_KEY}"

그러면 에이전트가 다음과 같이 연결됩니다.12 memory_* 도구

  • 대화를 만들고,
  • 메시지 저장,
  • 엔터티 검색,
  • 계층화된 컨텍스트를 가져오고,
  • 추론 단계를 기록하고,
  • 중복 해결,

문서 탭에는 Claude Desktop, Claude Code, Codex CLI, Gemini CLI, Cursor 및 Windsurf에 대한 복사-붙여넣기 구성이 있습니다. OAuth 검색(DCR)을 지원하는 클라이언트는 정적 API 키를 건너뛰고 대신 브라우저를 통해 로그인할 수 있습니다.

SDKS도 사용할 수 있습니다.파이썬 and 타입스크립트많은 공통 에이전트 프레임워크에 대한 통합을 제공합니다.

데이터 베이스

NAMS는그래프 네이티브부터 끝까지, 이 섹션에서는 이를 문자 그대로 만들어 작업 공간 뒤에 있는 실제 Neo4j 데이터베이스를 노출합니다.

NAMS의 무료 등급은 NAMS가 개발 및 테스트를 위해 프로비저닝하고 운영하는 임시 Neo4j 인스턴스를 사용합니다.

다음으로 뒤집을 수도 있습니다.작업공간을 자신의 Neo4j 인스턴스로 지정하세요. 자체 데이터베이스 가져오기 접근 방식을 사용하면 상주 또는 데이터 보존 요구 사항이 있는 팀의 자체 데이터에 대한 책임이 보장됩니다.

전체 그래프를 Cypher 문으로 내보내고 다시 가져올 수 있으며 원클릭으로 실제 Bolt 자격 증명을 얻을 수 있습니다.Neo4j 브라우저에서 열기, 따라서 Neo4j 데이터베이스에 사용하는 것과 동일한 도구를 사용하여 에이전트의 메모리를 탐색할 수 있습니다. NAMS 내부에는 데이터가 갇히지 않으며 자체 Neo4j 데이터베이스에 있습니다.

설정

마지막 섹션은 작업공간 관리입니다.

  • 작업 공간의 이름을 바꾸고,
  • 액세스 권한이 있는 사람을 관리하고,
  • 위험 지대 — 삭제합니다(관리되는 데이터베이스도 해체되므로 두 번 묻습니다).

구성원은 자신의 역할과 함께 나열되며 팀원을 초대하여 작업 공간의 메모리를 한 개발자에게만 국한시키지 않고 공유할 수 있습니다.

설정과 함께API 키영역은 이 둘러보기 전체에서 전달자 토큰으로 사용되는 nams_ 키를 생성하는 곳입니다. 키는 모든 요청에 ​​대해 검증되고 90일 만료 시 순환되며 액세스 범위가 지정됩니다(메모리:읽기, 엔터티:쓰기, 추론:쓰기, 온톨로지:쓰기 등). 따라서 에이전트에 필요한 권한을 정확하게 전달할 수 있습니다.

API 키는 메모리 관리를 위한 '에이전트' 키와 '관리자' 키로 구분되어 있어 작업공간 관리가 가능하므로 에이전트가 새 작업공간도 만들고 관리할 수 있습니다.

이 내용이 어디로 가는지

AI 인프라의 다음 계층이 바로 AI라는 주목을 받고 있는 논문이 있습니다.— 에이전트가 알고 수행한 모든 것에 대한 지속적이고 구조화된 기록으로, 추론한 데이터와 함께 보관됩니다. NAMS는 이를 현실적이고 유용하게 만들기 위한 접근 방식입니다. 하나의 지식 그래프에 포함된 세 가지 메모리 유형, 지속적인 백그라운드 압축, 작업공간별 온톨로지, 모든 것을 볼 수 있는 콘솔이 클라우드 API 역할을 하므로 가입하자마자 시작할 수 있습니다.

호스팅된 에이전트 메모리 서비스를 구축한 주요 동기 중 하나는 Salesforce Agentforce 플랫폼과 같은 다른 플랫폼과의 통합을 가능하게 하는 것이었습니다. 이에 대한 자세한 내용은 여기를 참조하세요.

Neo4j로 Salesforce Agentforce 내구성 메모리 제공

GCP Gemini Enterprise, AWS AgentCore 및 Microsoft Foundry 에이전트 플랫폼의 경우에도 마찬가지입니다. 블로그 게시물이 곧 공개될 예정입니다.

NAMS는Neo4j 연구소 프로젝트즉, 우리는 지속적으로 반복하고 있으며 사용자의 피드백은 이 프로세스를 안내하고 유용한 기능을 제공하는 데 큰 도움이 됩니다. 에이전트를 구축하는 경우 가장 좋은 방법은 하나를 연결하고 NAMS가 부족한 부분을 알려주는 것입니다. UI에 피드백 버튼을 통합했는데, 이 버튼을 사용하여 팀에 피드백을 보낼 수도 있습니다.

시작하는 데 필요한 몇 가지 리소스는 다음과 같습니다.

둘러보고, 몇 가지 메시지를 저장하고, 그래프 빌드 자체를 살펴보세요.


  • AI 에이전트

에이치시스템즈LogTree는 Neo4j 기반 GraphRAG 플랫폼으로, 데이터를 자동으로 지식그래프화하고 자연어 질의로 즉시 답을 제공합니다.

👉 에이치시스템즈 홈페이지

728x90
반응형

+ Recent posts