Microsoft Agent Framework, Neo4j 및 neo4j-agent-memory 라이브러리를 사용하여 영구 메모리가 있는 대화형 AI 에이전트를 구축하는 방법입니다.
AI 에이전트는 기억할 때 더 유용합니다. 홈 스테이션을 불러오고 계단 없는 접근이 필요하다는 것을 알고 세 번의 대화 전에 제안한 경로를 참조할 수 있는 교통 보조원은 매번 새롭게 시작하는 경로와 근본적으로 다릅니다. 그러나 에이전트에 그러한 종류의 메모리를 구축하는 것은 어렵습니다. 응답 스트림을 차단하지 않고 단기 대화 컨텍스트, 장기 엔터티 및 선호도 저장, 추론 추적 검색이 모두 필요합니다.
이번 포스팅에서는 우리가 어떻게 구축했는지 살펴보겠습니다.TfL 탐색기, 런던 교통 보조원Microsoft 에이전트 프레임워크(MAF)와 함께Neo4j 에이전트 메모리전송 그래프를 탐색하고, 실시간 API를 호출하고, 세션 전반에 걸쳐 지속적인 컨텍스트 그래프를 유지하는 에이전트를 생성합니다. 모두 Neo4j에 저장됩니다.
아키텍처 개요
이 다이어그램에 표시된 것처럼 애플리케이션에는 세 개의 레이어가 있습니다.
전송 데이터(역, 노선, 경로)와 에이전트의 메모리(대화, 엔터티, 선호도, 추론 추적)는 모두 동일한 Neo4j 인스턴스에 있습니다.
전송 그래프는 다음을 사용합니다.컨텍스트 그래프가 사용하는 동안 지리 공간 쿼리의 경우그래프 탐색의 진입점으로 의미론적 검색을 수행합니다.
Microsoft 에이전트 프레임워크
Microsoft 에이전트 프레임워크 (MAF) 2026년 4월에 v1.0에 도달했습니다.— 엔터프라이즈용 Semantic Kernel 기반을 AutoGen의 다중 에이전트 오케스트레이션 패턴과 통합하는 프로덕션용 오픈 소스 SDK입니다. Python 및 .NET에서 AI 에이전트를 구축, 조정, 배포하기 위한 장기적인 지원과 함께 안정적인 API를 제공합니다.
프레임워크에는 모델 공급자(Microsoft Foundry, Azure OpenAI, OpenAI, Anthropic Claude, Amazon Bedrock, Google Gemini, Ollama)와 메모리 백엔드 모두를 위한 플러그형 아키텍처가 있습니다.
Neo4j는 다음 중 하나입니다.지원되는 에이전트 메모리 및 컨텍스트 공급자출시 시 Mem0, Redis 및 Foundry Agent 서비스와 함께 제공됩니다.
MAF의 주요 추상화:
- — 시스템 프롬프트, 도구 및 컨텍스트 제공자를 갖춘 LLM 지원 에이전트
- — 역할과 내용이 포함된 대화 메시지
- / @tool — 에이전트가 호출할 수 있는 입력된 도구 정의
- OpenAIChat클라이언트— LLM 어댑터(OpenAI, Azure OpenAI 또는 호환 API)
- — 각 회전 전에 동적 컨텍스트를 주입하고 회전 후 상태를 유지하는 플러그형 후크
TfL Explorer가 에이전트를 만드는 방법은 다음과 같습니다.
from agent_framework import Agent, Message, tool
from agent_framework.openai import OpenAIChatClient
from neo4j_agent_memory.integrations.microsoft_agent import (
Neo4jMicrosoftMemory,
create_memory_tools,
record_agent_trace,
)
async def create_agent(
memory: Neo4jMicrosoftMemory,
tfl_client: TfLClient | None = None,
) -> Agent:
chat_client = OpenAIChatClient(
api_key=settings.openai_api_key,
model_id="gpt-4o",
)
# Memory tools: search, preferences, knowledge, traces, GDS graph algorithms
memory_tools = create_memory_tools(memory, include_gds_tools=True)
# Transport tools: spatial queries, routing, live status
transport_tools = get_transport_tools(memory, tfl_client=tfl_client)
agent = chat_client.as_agent(
name="TfLExplorer",
instructions=SYSTEM_PROMPT,
tools=memory_tools + transport_tools,
context_providers=[memory.context_provider],
)
return agent
에이전트는 Neo4j 에이전트 메모리(GDS 그래프 알고리즘 도구 3개 포함)에서 9개, 사용자 정의 전송 도구 10개 등 총 19개의 도구를 얻습니다. context_provider는플러그형 메모리 아키텍처— 도구 호출을 사용하지 않고도 매 턴마다 에이전트의 프롬프트에 관련 메모리 컨텍스트(최근 메시지, 알려진 항목, 사용자 기본 설정)를 자동으로 삽입합니다.
Neo4j 에이전트 메모리: Microsoft Agent Framework 통합
The neo4j-에이전트-메모리라이브러리는 지식 그래프로 지원되는 Agent Framework 에이전트 영구 메모리를 제공합니다. 초기 작품 중 하나로 소개되었습니다.에이전트 메모리 및 컨텍스트 제공자Agent Framework v1.0 출시 시 - 영구 에이전트 상태에 대한 '백엔드 선택'을 가능하게 하는 프레임워크의 플러그형 메모리 아키텍처의 일부입니다.
Neo4j는 실제로두 가지 통합MAF 의 경우 - 각각은 컨텍스트 제공자이지만 서로 다른 목적으로 사용됩니다.
- Neo4j 메모리 공급자(neo4j-agent-memory) — 영구 메모리대화를 통해 배운다. 상호작용을 저장하고, 다단계 파이프라인을 통해 엔터티를 추출하고, 선호도를 추론하고, 추론 추적을 기록합니다. 양방향: 각 호출 전에 관련 컨텍스트를 자동으로 검색하고 응답 후 새로운 메모리를 저장합니다.
- Neo4j GraphRAG 컨텍스트 제공자(agent-framework-neo4j) — RAG지식 그래프. 관련 엔터티로 결과를 풍부하게 하기 위해 사용자 지정 Cypher 쿼리를 통한 선택적 그래프 탐색을 통해 벡터, 전체 텍스트 및 하이브리드 검색 모드를 지원합니다. Python과 .NET 모두에서 사용할 수 있습니다.
그들은 함께 에이전트 인텔리전스의 "대화를 통한 학습"과 "도메인 지식 기반" 측면을 모두 다룹니다. TfL Explorer는 RAG 검색이 아닌 Cypher 도구를 통해 전송 그래프에 직접 액세스하므로 메모리 공급자를 사용합니다.
메모리 클라이언트 설정
메모리 시스템은 Neo4j 연결, 임베딩 모델, 엔터티 추출, 엔터티 확인, 지오코딩 및 강화 서비스 옵션에 대한 합리적인 기본값을 포함하여 여러 플러그형 옵션으로 구성됩니다.
from neo4j_agent_memory import MemoryClient, MemorySettings
from neo4j_agent_memory.config.settings import (
ExtractionConfig,
ExtractorType,
SchemaConfig,
)
def get_memory_settings() -> MemorySettings:
return MemorySettings(
neo4j={
"uri": "bolt://localhost:7687",
"user": "neo4j",
"password": SecretStr("password"),
},
embedding={
"provider": "openai",
"model": "text-embedding-3-small",
"api_key": SecretStr(os.environ["OPENAI_API_KEY"]),
},
extraction=ExtractionConfig(
extractor_type=ExtractorType.LLM,
),
# POLE+O entity schema: Location for stations, Organization for TfL
schema_config=SchemaConfig(
enable_subtypes=True,
),
# + entity resolution, geocoding, enrichment configs (see "Additional Capabilities" below)
)
# Initialize once at application startup
memory_client = MemoryClient(get_memory_settings())
await memory_client.connect()
ExtractorType.LLM 구성은 OpenAI를 사용하여 추출합니다.대화에서— 언급된 방송국, 논의된 노선, 참조된 장소. 이는 메모리 그래프의 노드가 되며 이를 언급한 메시지에 연결됩니다. LLM 기반 추출은 대화 차례마다 OpenAI API 호출을 추가합니다. 비용에 민감한 애플리케이션의 경우 neo4j-agent-memory는 API 호출 없이 로컬로 실행되는 spaCy 및 GLiNER 추출기를 지원하지만 도메인별 엔터티에 대한 추출 품질은 낮습니다.
SchemaConfig는 POLE+O 모델(사람, 개체, 위치, 이벤트, 조직)을 사용합니다. 이는 스테이션이 위치이고, TfL이 조직이고, 서비스 중단이 이벤트인 전송 애플리케이션에 자연스럽게 적합합니다.
세 가지 유형의 메모리
Neo4j 에이전트 메모리에는 단기, 장기, 추론 메모리라는 세 가지 유형의 에이전트 메모리에 대한 추상화가 있습니다.
현재 세션의 대화 메시지를 저장합니다. 각 메시지는 Neo4j에서 순서대로 연결된:Message 노드가 됩니다. MAF 컨텍스트 공급자는 수명 주기 후크를 통해 메시지 지속성을 자동으로 처리합니다. before_run()은 대화 기록을 로드하여 컨텍스트로 주입하고 after_run()은 사용자 입력과 보조 응답을 모두 저장합니다. 즉, 현재 메시지만 상담사에게 전달하면 됩니다.
# Pass only the current message — context provider handles history injection
async for update in agent.run([Message("user", [message])], stream=True):
yield update
컨텍스트 제공자는 Neo4j에서 최근 메시지를 검색하여 MAF 메시지 객체로 변환하고 에이전트의 컨텍스트에 자동으로 주입합니다. 수동 save_message() 호출이 없고 명시적인 기록 검색이 없습니다. 수명 주기 후크가 전체 왕복을 처리합니다.
로 구성된다LLM을 사용하여 대화에서 자동으로 추출하고 POLE+O 스키마로 분류할 수 있습니다. 사용자가 "I'm Going to King's Cross"라고 말하면 추출 파이프라인은 "King's Cross"를 위치 항목으로 식별하고 해결 파이프라인은 중복 항목을 확인하며 해당 항목은 이를 참조한 메시지에 대한 :MENTIONSrelationships가 포함된 노드로 저장됩니다. 위치 엔터티는 다음을 통해 좌표로 자동으로 지오코딩됩니다., Wikimedia 공급자를 통해 Wikipedia 설명이 풍부해졌습니다. 여러 세션에 걸쳐 사용자가 논의한 모든 내용에 대한 지식 그래프가 구축됩니다.
각 작업에 대한 도구 호출 순서와 결과를 기록합니다. 에이전트가 나중에 유사한 질문에 직면하면 find_similar_tasks는 벡터 유사성을 통해 관련 추적을 검색하여 이전에 유사한 문제를 해결한 방법에 대한 컨텍스트 내 예를 에이전트에 제공합니다.에이전트 그래프 기반 추론앞으로 추론 단계에서 상담사의 효율성을 높이기 위해
컨텍스트 제공자
컨텍스트 제공자는 통합이 흥미로운 곳입니다. 에이전트 프레임워크에서플러그형 아키텍처, 컨텍스트 공급자가 실행됩니다.약각 호출 —before_run은 실행 전에 컨텍스트를 추가하고 after_run은 실행 후 상태를 처리하고 유지합니다. Neo4j 메모리 공급자는 다음과 같습니다.: 호출하기 전에 관련 컨텍스트를 자동으로 검색하고 응답 후 새로운 메모리를 저장합니다. 에이전트가 메모리를 검색하기 위해 도구를 명시적으로 호출하도록 요구하는 대신 자동으로 컨텍스트를 주입합니다.
agent = chat_client.as_agent(
name="TfLExplorer",
instructions=SYSTEM_PROMPT,
tools=all_tools,
context_providers=[memory.context_provider],
)
각 에이전트 호출에서 컨텍스트 제공자는 Neo4j에 다음을 쿼리합니다.
- 현재 세션의 최근 메시지(최대 max_recent_messages)
- GDS가 활성화된 경우 선택적으로 PageRank에 의해 순위가 매겨지는 장기 메모리의 관련 항목(최대 max_context_items)
- 관련성이 있을 수 있는 사용자 환경설정
- 유사한 추론 추적
이 컨텍스트는 에이전트의 프롬프트에 자동으로 주입됩니다. 즉, 도구 호출 오버헤드도 없고 왕복 결정으로 인한 추가 지연 시간도 없습니다.
max_recent_messages 및 max_context_items 매개변수는 주입되는 컨텍스트의 양과 이에 따라 소비되는 토큰의 양을 제어합니다. 10개의 최근 메시지와 15개의 컨텍스트 항목이 있는 메모리 컨텍스트는 일반적으로 각 호출에 2,000~4,000개의 토큰을 추가합니다. 긴 대화나 대규모 항목 그래프가 포함된 애플리케이션의 경우 유용한 재현율을 제공하는 동시에 모델 컨텍스트 제한 내에서 유지하려면 이러한 값을 조정하는 것이 중요합니다.
전송 그래프를 사용하여 사용자 정의 도구 만들기
전송 도구는 neo4j-agent-memory와 잘 작동하는 패턴을 보여줍니다. 즉, 메모리 클라이언트의 Neo4j 연결을 사용하여 자체 도메인 그래프에 대해 Cypher 쿼리를 실행하는 것입니다.
각 도구는 MAF의 @tool 데코레이터로 정의되며 Annotated를 통해 유형화된 매개변수를 사용합니다.
from agent_framework import FunctionTool, tool
from typing import Annotated
def get_transport_tools(memory: Neo4jMicrosoftMemory) -> list[FunctionTool]:
client = memory.memory_client # Access the underlying MemoryClient
@tool(
name="find_nearest_stations",
description="Find stations near a geographic coordinate.",
)
async def find_nearest_stations(
lat: Annotated[float, "Latitude"],
lon: Annotated[float, "Longitude"],
radius_meters: Annotated[int, "Search radius in meters"] = 1000,
) -> str:
cypher = """
WITH point({latitude: $lat, longitude: $lon}) AS location
MATCH (s:Station)
WHERE point.distance(s.location, location) < $radius
WITH s, round(point.distance(s.location, location)) AS distance
ORDER BY distance LIMIT 10
OPTIONAL MATCH (s)-[:ON_LINE]->(l:Line)
RETURN s.naptanId AS id, s.name AS name,
s.lat AS lat, s.lon AS lon,
collect({name: l.name, color: l.color}) AS lines
"""
result = await client.graph.execute_read(
cypher, {"lat": lat, "lon": lon, "radius": radius_meters}
)
stations = [dict(r) for r in result]
return json.dumps({
"stations": stations,
"graph_data": {"nodes": [...], "relationships": [...]},
"map_markers": [{"lat": s["lat"], "lon": s["lon"], ...} for s in stations],
})
return [find_nearest_stations, ...]
여기서 핵심 패턴은 다음과 같습니다.memory.memory_client.graph.execute_read()Neo4j 인스턴스에 대한 직접적인 Cypher 실행을 제공합니다. 도메인 데이터와 컨텍스트 그래프는 동일한 클라이언트를 통해 액세스되는 동일한 데이터베이스에 공존합니다. 별도의 연결 풀이나 두 번째 드라이버 인스턴스가 없습니다.
각 도구는 세 가지 섹션이 있는 JSON 구조를 반환합니다.
이 구조를 통해 채팅 패널은 공유 Zustand 스토어를 통해 지도 및 그래프 패널에 대한 업데이트를 구동할 수 있습니다.
전체 도구 세트
TfL Explorer에는 Neo4j의 그래프 기능을 활용하는 10개의 전송 도구가 있습니다.
- find_nearest_stations– 공간 인덱스가 있는 공간 point.distance()
- – 텍스트 일치(대소문자 구분 CONTAINS)
- get_station_details– 멀티홉 순회 : 역 → 노선, BikePoint, Zone
- find_routes– :NEXT_STOP 관계에 대한 shortestPath()
- get_line_stations– ORDER BY 시퀀스를 사용한 패턴 일치
- find_bike_points– BikePoint 노드에 대한 공간 쿼리
- get_line_status– 그래프 조회 + 실시간 TfL API 호출
- get_disruptions– 실시간 TfL API 호출
- 실행_사이퍼– 읽기 전용 Cypher 실행(검증 포함)
- get_graph_schema– 스키마 내부 검사
find_route 도구는 Cypher 그래프 쿼리 언어의 표현력을 사용한 그래프 기반 계산의 좋은 예입니다.
MATCH (start:Station)
WHERE toLower(start.name) CONTAINS toLower($from)
WITH start LIMIT 1
MATCH (end:Station)
WHERE toLower(end.name) CONTAINS toLower($to)
WITH start, end LIMIT 1
MATCH path = shortestPath((start)-[:NEXT_STOP*..50]-(end))
UNWIND range(0, size(nodes(path))-1) AS i
WITH nodes(path)[i] AS stop, i
OPTIONAL MATCH (stop)-[:ON_LINE]->(l:Line)
RETURN collect({
name: stop.name, lat: stop.lat, lon: stop.lon,
lines: collect(DISTINCT l.name), sequence: i
}) AS route
이는 Neo4j에 내장된 :NEXT_STOP 관계에 대한 ShortestPath 알고리즘을 사용하여 전송 네트워크를 통해 최단 경로를 계산한 다음 노선 정보로 각 정류장을 강화합니다. *..50 상한은 폭주 횡단을 방지합니다(가장 긴 런던 지하철 노선에는 27개의 정류장이 있습니다).
Neo4j의 컨텍스트 그래프

여러 번의 대화 끝에 Neo4j 인스턴스에는 두 개의 인터리브 그래프 모델이 포함되었습니다 —도메인 데이터(전송 네트워크)그리고 에이전트의컨텍스트 그래프(메모리).
이것이 핵심 아키텍처 통찰력입니다. 컨텍스트 그래프는 사후에 추가되는 별도의 시스템이 아닙니다. 이는 동일한 드라이버를 통해 액세스되고 동일한 엔진으로 인덱싱된 도메인 그래프와 동일한 데이터베이스에 있습니다. 에이전트의 기억사용자가 논의한 내용와 공존하다그 이유가 되는 운송 데이터.
운송 데이터는TfL 통합 API공간 인덱스가 있는 그래프로 Neo4j에 로드됩니다.
데이터 파이프라인(scripts/download_tfl_data.py + scripts/load_graph.py)은 정류장, 노선, 경로 및 자전거 지점 데이터를 다운로드한 다음 지점() 좌표, 경로 시퀀스의 NEXT_STOP 체인 및 정류장 500m 내의 자전거 지점에 대한 NEAR_STATION 관계를 사용하여 그래프를 생성합니다.
프런트엔드: 상담사 도구 호출에서 시각화 유도
프런트엔드는 Next.js, Chakra UI 및 두 개의 시각화 라이브러리로 구축된 3패널 레이아웃입니다.
채팅 메시지와 세션 ID는 sessionStorage에 유지되므로 동일한 탭 내에서 페이지를 새로 고쳐도 대화가 유지됩니다. sessionStorage가 지워지면(예: 브라우저 충돌) 프런트엔드는 마운트 시 백엔드의 /chat/history 엔드포인트에서 메시지를 백필합니다. 헤더의 '새 채팅' 버튼은 백엔드 세션을 지우고 새로운 세션 ID를 생성하며 UI를 재설정합니다.
사용자가 메모리 그래프 탭에서 메모리 위치를 로드할 때 지도에는 메모리 위치 마커(보라색으로 표시)도 표시됩니다. 이는 에이전트가 대화에서 추출한 지오코딩된 엔터티를 나타내며 전송 지도 위에 "에이전트가 기억하는 것"에 대한 시각적 계층을 제공합니다.
주요 시사점
도메인 데이터와 메모리에 동일한 데이터베이스를 사용하면 이점이 있습니다.동일한 Neo4j 인스턴스에 전송 그래프와 에이전트의 컨텍스트 그래프가 있으면 아키텍처가 단순화되고 연결 오버헤드가 줄어들며 메모리 엔터티를 도메인 노드에 연결하는 것과 같은 가능성이 열립니다("사용자가 질문한 모든 스테이션 표시").
기억은 '단순한 기록이 아닌' 연결된 개체로 저장되기 때문에 에이전트는 자신이 기억하는 것 간의 관계를 추론할 수 있습니다. 기본 설정, 사실 및 추론 추적은 세션 전체에 걸쳐 유지되고 컨텍스트 제공자를 통해 자동으로 표면화되므로 명시적인 검색 논리 없이 에이전트에 세션 간 호출을 제공합니다.
이것이 가능하지 않은 경우에는 메모리와 도메인(그래프) 데이터베이스를 분리하여 독립적으로 확장하고 작동할 수도 있습니다.
MAF 통합은 상용구를 제거합니다.create_memory_tools()는 에이전트가 호출할 수 있는 유형화되고 문서화된 도구를 생성합니다. 컨텍스트 제공자는 before_run()을 통해 기록 로드, 메시지 저장, after_run()을 통한 엔터티 추출 트리거 등 전체 메시지 수명 주기를 처리합니다. 현재 메시지만 에이전트에 전달합니다. 다른 모든 것은 자동입니다.
메모리 작업을 비차단으로 만듭니다.엔터티 추출, 지오코딩, 강화 및 추론 추적 기록은 계산 비용이 많이 듭니다. 컨텍스트 공급자의 after_run() 후크는 메시지 지속성과 엔터티 추출을 자동으로 처리하는 반면 추론 추적은 asyncio.create_task() 실행 후 잊어버리는 작업으로 기록됩니다. 사용자는 메모리 작업으로 인한 대기 시간을 볼 수 없습니다.
도구에서 구조화된 데이터를 반환합니다.graph_data + map_markers 패턴을 사용하면 에이전트가 UI에 대해 알 필요 없이 모든 도구 호출이 프런트엔드에서 시각적 업데이트를 구동할 수 있습니다. 에이전트는 데이터만 반환합니다. 프런트엔드에서 렌더링 방법을 결정합니다.
엔터티 확인은 지식 그래프 팽창을 방지합니다.중복 제거가 없으면 사용자가 다르게 참조하므로 동일한 스테이션이 메모리 그래프에 여러 번 표시됩니다. 복합 해상도(정확함 + 퍼지 + 의미 체계)는 이러한 중복 항목을 자동으로 포착합니다.
GDS 폴백을 사용하면 그래프 알고리즘을 이식할 수 있습니다.fallback_to_basic=True로 설정하면 GDS 도구는 Aura Free부터 GDS가 설치된 자체 관리형 Neo4j Enterprise까지 모든 Neo4j 배포에서 작동합니다. 대체에서는 PageRank(중심도 정도), 최단 경로(Cypher shortestPath) 및 노드 유사성(공유 이웃 계산)을 근사화하는 기본 Cypher 쿼리를 사용합니다.
자원
소스 코드 및 라이브러리
- TfL 탐색기 소스 코드: github.com/johnymontana/transport-for-maf
- Neo4j 에이전트 메모리: github.com/neo4j-labs/agent-memory— 이 프로젝트에 사용된 그래프 네이티브 메모리 라이브러리(PyPI)
- Neo4j GraphRAG 컨텍스트 제공자: github.com/neo4j-labs/neo4j-maf-provider— 기존 지식 그래프의 GraphRAG(PyPI · NuGet)
- : github.com/microsoft/agent-framework— 에이전트 SDK(Python + .NET)
- : github.com/microsoft/Agent-Framework-Samples— 공식 예시 프로젝트
- : github.com/neo4j-labs/create-context-graph— 22개 산업 도메인에 대한 전체 스택 컨텍스트 그래프 앱을 생성하는 CLI 스캐폴딩 도구
- 샘플: 소매점 도우미: neo4j-labs/에이전트 메모리/예제/microsoft_agent_retail_assistant— Neo4j 메모리가 포함된 MAF 에이전트 예
Microsoft Learn 설명서
- 에이전트 프레임워크 개요— 아키텍처 및 핵심 개념
- 컨텍스트 제공자— before_run/after_runlifecycle 후크 작동 방식
- 메모리 및 지속성(4단계)— 에이전트 메모리 시작하기
- 에이전트 프레임워크 통합— 지원되는 모든 컨텍스트 제공자 및 메모리 백엔드
- Neo4j 메모리 공급자— MAF 에이전트를 위한 지속적인 지식 그래프 메모리(Python)
- Neo4j GraphRAG 컨텍스트 제공자— 벡터, 전체 텍스트 및 하이브리드 검색(Python + .NET)을 갖춘 그래프 강화 RAG
- 에이전트 프레임워크 v1.0 발표— 프로덕션 릴리스 블로그 게시물
컨텍스트 그래프 및 에이전트 메모리
- 컨텍스트 그래프 및 에이전트 결정— Andreas Kollegger가 그래프가 '당신이 알고 있는 것, 추론하는 방법, 가치 있게 여기는 것'을 포착하는 이유에 대해 설명합니다.
- 컨텍스트 그래프 및 Neo4j 실습— 결정 이면의 '이유'를 기억하는 AI 시스템 구축
- Lenny의 기억을 만나보세요: AI 에이전트를 위한 컨텍스트 그래프 구축— 300개 이상의 팟캐스트 에피소드와 3개의 메모리 유형 아키텍처를 갖춘 데모 앱
- Neo4j 에이전트 메모리 문서— 튜토리얼과 API 참조가 포함된 Neo4j Labs 프로젝트 페이지
- 워크숍: 에이전트 프레임워크용 Neo4j 컨텍스트 제공자— 메모리 및 GraphRAG 제공업체 모두를 위한 실습 랩
하부 구조
- Neo4j 아우라(무료 등급):console.neo4j.io
- TfL 통합 API: api.tfl.gov.uk
행동하는 커뮤니티의 힘

Agent Memory를 통해 생태계 전반에 걸쳐 의미 있는 협업을 추진하고 옹호해 주신 Microsoft MVP와 Ninjas에게 진심으로 감사드립니다. 귀하의 기여, 통찰력 및 기술 리더십은 Neo4j 및 Microsoft Agent Framework와 같은 플랫폼을 연결하는 데 중요한 역할을 합니다.
- 에이전트 AI
- Microsoft 에이전트 프레임워크
에이치시스템즈의 LogTree는 Neo4j 기반 GraphRAG 플랫폼으로, 데이터를 자동으로 지식그래프화하고 자연어 질의로 즉시 답을 제공합니다.
'Agent AI' 카테고리의 다른 글
| Neo4j와 Unstructured.io로 기술 문서 기반 GenAI 챗봇 구축하기 (0) | 2026.04.10 |
|---|---|
| Graphiti: 에이전트 시대를 위한 Knowledge Graph 메모리 (0) | 2026.04.10 |
| GenAI 스택 완전 해부: Docker 환경에서 Neo4j, LangChain, Ollama의 숨겨진 이야기 (3) | 2026.04.09 |
| 에이전트 워크플로우에서 Function Calling 활용하기 (0) | 2026.04.09 |
| MCP Agentic 시스템에서 Graph 검색 성능 평가하기 (0) | 2026.04.09 |
