728x90
반응형

코딩을 위해 에이전트를 사용해 본 적이 있다면 그들이 문제에 대한 솔루션을 제공하는 데 능숙하다는 것을 알게 될 것입니다. 불행하게도 그들은 당신이 스스로 할 수 있도록 가르치는 데 능숙하지 않습니다.

솔루션을 제공하기 위해 세밀하게 조정되었지만 복잡한 주제를 가르치는 방법에 대한 올바른 맥락이 부족하고 종종 핵심 사항이 누락되고 일관되지 않은 결과가 제공되며 자신감이 형성되지 않습니다.

[Human]
Create a function which connects to my Neo4j databases and runs a 
Cypher statement.

[AI] 
Sure, here is a new function, run_cypher(driver, datab ase, cypher).

[Human]
How does this work?

[AI]
It runs a cypher statement using the neo4j.GraphDatabase driver 
instance and database name and returns a list of Record objects.

[Human]
But how does it actually work? What are the concepts I need to know? 
How do I do this myself?코드 언어: ()

저는 이것을 바꾸고 코딩 에이전트(VS Code, Cursor 등)에게 Neo4j에 대한 액세스 권한을 제공하고 싶었습니다.그래프아카데미내용과 교수법.

GraphAcademy는 Neo4j의 무료 온라인 교육 플랫폼으로 학습자에게 Neo4j를 사용하여 실제 문제를 해결할 수 있는 지식과 기술을 제공합니다.Neo4j Aura에서 에이전트 구축.

계획

  1. 만들기Neo4j 그래프 데이터베이스 on Aura of 그래프아카데미수업.
  2. 빌드아우라 에이전트수업을 검색하고 검색하고 형식을 지정하는 도구가 있습니다.
  3. 에이전트에 연결할 수 있는 MCP 서버로 에이전트를 노출합니다.

그래프 데이터베이스

GraphAcademy의 수업 콘텐츠는 오픈 소스입니다.Asciidoc로 작성되었습니다.

나는 사용했다무호흡증 감소제속성을 삽입하고 포함 내용을 해결하여 강의를 모든 텍스트, 코드, 예제 및 질문이 포함된 단일 파일로 변환합니다.

각 수업은 여러 섹션으로 나누어졌고 임베딩은 다음을 사용하여 생성되었습니다.OpenAI의 텍스트 임베딩-3-소형 모델, 수업에 대한 관련 메타 데이터(강좌 구조, 슬러그, 이름, URL 등)와 함께 Neo4j Aura에 저장됩니다.

그래프 모델

Neo4j의 데이터를 사용하면 내가 배우고 싶은 내용을 기반으로 한 완전한 강의를 검색할 수 있습니다.$subject) 예를 들어Cypher WHERE 절을 사용한 필터링에 대해 가르쳐 주세요..

WITH ai.text.embed(
  $subject, 
  '오픈AI', 
  { token: $token, : '텍스트 삽입-3-작은' }
) AS userEmbedding

 (c:큰 덩어리)
 c IN (
  VECTOR  chunkText
  FOR userEmbedding
   $k
) SCORE AS score
 score > 0.7

 (c)<-[:HAS_CHUNK]-(l:Lesson)

 
  l.slug as slug, 
  l.title as title, 
  l.url as url, 
  l.text as lesson, 
  avg(score) as score

 BY score DESC코드 언어: SQL(구조적 쿼리 언어) (sql)

Cypher 쿼리:

  1. 임베딩을 생성합니다.$subject사용된 것과 동일한 OpenAI text-embedding-3-small 모델을 사용하여 레슨 청크의 임베딩을 생성합니다.
  2. 검색chunkText유사성을 갖는 벡터 인덱스 및 반환 청크score > 0.7 .
  3. 청크에 대한 레슨과 일치합니다.
  4. 발견된 레슨 청크의 평균 점수를 기준으로 집계된 레슨 데이터를 반환합니다. 점수를 평균화하면 높은 점수를 받은 단일 청크가 쿼리에서 관련성이 낮은 학습을 최상위 일치 항목으로 반환하지 않도록 보장됩니다.
검색 레슨의 암호화 결과

아우라 에이전트

Aura 에이전트를 사용하면 Neo4j Aura 데이터베이스에 연결된 완전한 기능의 GraphRAG 에이전트를 생성할 수 있습니다.

나는아우라 에이전트수업의 시작점을 제공하고 질문과 질문에 대한 응답을 생성합니다.

Aura 에이전트에는 다음이 필요합니다.

  • 이름 — 에이전트가 수행하는 작업을 나타냅니다.
  • 프롬프트—에이전트의 목적, 접근 방식 및 지침을 설명합니다.
  • 질문에 대한 맥락으로 Neo4j에서 데이터를 검색하는 도구 세트.

프롬프트는 목표가 있는지, 오해가 있는지 확인하고 다음 단계에 대한 옵션이 제공되는지 확인하는 것을 포함하여 GraphAcademy 수업을 학습 경험으로 제공하도록 상담원에게 지시합니다.

Find and present Neo4j GraphAcademy lessons and appropriate progression 
to the follow on topics.

Provide lessons that:

- are standalone and meet a learning objective
- include examples and code snippets where relevant
- show outcomes and results of actions
- where there are potential misconceptions pose questions 
  and answers that challenge them
- have recommendations for next steps.
- provide a link to the full lesson to learn more.
- give options to either: continue to the next lesson, explore 
  related topics, or get more information.

Use the tool "get lesson for a chunk" after "search lesson chunks".코드 언어: ()
Neo4j Aura 에이전트 설정

에이전트는 도구를 통해 수업 데이터에 액세스합니다. 도구는 작업에 따라 에이전트가 선택합니다. 에이전트는 작업을 완료하는 데 필요한 만큼 많은 도구를 사용합니다.

상담원은 강의를 검색하고 가져오는 비교적 적은 수의 도구에만 액세스하면 됩니다.

  • — 레슨 청크에 대한 의미 검색
  • 완전한 교훈을 얻다— 완벽한 교훈을 얻습니다
  • 다음 수업을 받아— 순서대로 다음 강의를 듣습니다.
Aura 에이전트 도구

데이터에 대한 액세스를 제공하기 위해 최소한의 도구를 사용하면 종종 더 나은 결과와 도구 사용이 가능해집니다.

에이전트는 도구를 사용하여 Neo4j에 대한 교육 콘텐츠를 찾고 제시합니다.

"How to use WITH in Cypher"와 같은 쿼리가 주어지면 에이전트는 강의를 검색하고 반환된 청크에 대한 전체 강의를 얻은 후 강의를 제공합니다.

수업은 이미 목적에 맞게 구성되어 있으며 프롬프트는 상담원이 좋은 답변을 제공하기에 충분합니다.

상담원은 후속 작업을 제공하고 사용자가 과정의 다음 강의를 진행할 수 있도록 합니다.

MCP 서버

개발자를 만나는 것이 중요하며, 이를 위해서는 내 에이전트에 외부 액세스를 제공해야 합니다.

Aura 에이전트는 HTTPS 엔드포인트를 통해 또는 MCP 서버를 통해 외부적으로 액세스할 수 있습니다.

에이전트 애플리케이션(VS Code, Cursor 등)에는 일반적으로 MCP 서버와 상호 작용하여 작업을 완료하는 기능이 있습니다.

당신은 할 수 있습니다Aura 에이전트를 MCP 서버로 추가에이전트 애플리케이션을 사용하면 에이전트 컨텍스트를 쿼리에 대한 컨텍스트로 사용할 수 있습니다.

VS Code 에이전트에게 요청하는 경우"Neo4j Python 드라이버를 사용하여 Cypher 문을 실행하는 방법을 가르쳐 주세요.",에이전트는 GraphAcademy에서 강의를 찾고 강의 내용과 구조를 사용하여 응답을 생성합니다.

VS Code에 사용되는 Aura 에이전트
[HUMAN]
Teach me how to run a Cypher statement using the Neo4j Python driver

[AI]
I'll quickly pull the official Neo4j learning guidance first, then I'll give 
you a concise, practical Python example you can run immediately.

[TOOL]
Ran Neo4j Learning
Input:
{
  "query": "How to run a Cypher statement using the Neo4j Python driver
}
Output:
Here's a lesson on how to run a Cypher statement using the Neo4j Python driver,
including connection setup and query execution.
...continued...

[AI]
Great use case. Here is the simplest way to run a Cypher statement with the Neo4j 
Python driver.

1. Install the driver
pip install neo4j

2. Use this minimal script:

from neo4j import GraphDatabase

URI = "neo4j+s://<your-instance-id>.databases.neo4j.io"
USER = "neo4j"
PASSWORD = "<your-password>"

def run_query():
    # Create a driver (connection factory)
    driver = GraphDatabase.driver(URI, auth=(USER, PASSWORD))

    try:
        # execute_query is the easiest API in driver v5+
        records, summary, keys = driver.execute_query(
            "RETURN 'Hello, Neo4j!' AS message"
        )

        for record in records:
            print(record["message"])

        print("Query ran successfully.")
        print("Database:", summary.database)
    finally:
        driver.close()

if __name__ == "__main__":
    run_query()

I'll quickly pull the official Neo4j learning guidance first, then I'll give 
you a concise, practical Python example you can run immediately.

3. Run it
python your_script.py

Parameterized Cypher example (recommended):

records, summary, keys = driver.execute_query(
    "RETURN $name AS name",
    name="Martin"
)
print(records[0]["name"])

Why this matters:

1. Use parameters like $name instead of string concatenation for safety and performance.
2. For Neo4j Aura, use neo4j+s in the URI.
3. Close the driver when done.

If you want, I can also give you:

1. A read/write transaction example with session.execute_read and session.execute_write.
2. A small reusable Neo4j client class you can drop into your project.코드 언어: ()

에이전트의 응답은 강의 형식으로 구성되어 있으며, 간단한 예를 통한 좋은 진행, 기능 추가, 사용된 접근 방식 설명, 학습을 계속할 수 있는 옵션 제공 등이 포함됩니다.

모든 코드와 리소스는 저장소에 있습니다.github.com/martinohanlon/ga-mcp-poc.

다음 단계

이 개념 증명은 시작에 불과하며, MCP 서버는 GraphAcademy의 지속적인 개발의 일부입니다. 우리는 개발자가 있는 곳에서 만나고 싶어하며 그들 중 일부는 코드 개발 환경에 있습니다.

GraphAcademy 과정에서 자신만의 그래프, MCP 서버, Aura 에이전트를 만드는 기술을 배울 수 있습니다.벡터 인덱스 및 비정형 데이터 소개, GraphRAG Python MCP 도구 구축, 그리고Neo4j Aura에서 에이전트 구축.

  • 그래프아카데미
  • mcp 서버

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

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

728x90
반응형

+ Recent posts