Codelab - Building GraphRAG Agents with ADK

1. סקירה כללית

בשיעור Codelab הזה תלמדו איך ליצור מערכת מתוחכמת למחקר השקעות מרובת-סוכנים, שמשלבת את היכולות של ערכת פיתוח הסוכנים (ADK) של Google, מסד הנתונים של Neo4j Graph ו-Model Context Protocol (MCP) Toolbox. במדריך המעשי הזה נסביר איך ליצור סוכנים חכמים שמבינים את הקשר הנתונים באמצעות קשרים גרפיים, ומספקים תשובות מדויקות מאוד לשאילתות.

למה GraphRAG + מערכות מרובות סוכנים?

‫GraphRAG (יצירה משולבת-אחזור מבוססת-גרף) משפרת את הגישות המסורתיות ל-RAG באמצעות מינוף המבנה העשיר של קשרי הגומלין בגרפים של ידע. במקום רק לחפש מסמכים דומים, סוכני GraphRAG יכולים:

  • מעבר בין קשרים מורכבים בין ישויות
  • הבנת ההקשר באמצעות מבנה הגרף
  • לספק תוצאות שניתן להסביר אותן על סמך נתונים מקושרים
  • ביצוע חשיבה רב-שלבית ב-Knowledge Graph

מערכות מרובות סוכנים מאפשרות לכם:

  • פירוק בעיות מורכבות למשימות משנה מיוחדות
  • פיתוח אפליקציות AI מודולריות שקל לתחזק
  • הפעלת עיבוד מקביל ושימוש יעיל במשאבים
  • יצירת דפוסי חשיבה היררכיים באמצעות תזמור

מה תפַתחו

תצרו מערכת מחקר השקעות מלאה עם התכונות הבאות:

  1. סוכן מסד נתונים של גרפים: מריץ שאילתות Cypher ומבין את הסכימה של Neo4j
  2. סוכן מחקר משקיעים: גילוי קשרים עם משקיעים ותיקי השקעות
  3. סוכן מחקר השקעות: ניגש לתרשימי ידע מקיפים באמצעות כלי MCP
  4. סוכן ראשי: מתאם בין כל הסוכנים המשניים בצורה חכמה

המערכת תענה על שאלות מורכבות כמו:

  • "מי המתחרים העיקריים של YouTube?"
  • אילו חברות מוזכרות בהקשר חיובי בינואר 2023?
  • "מי השקיע ב-ByteDance ובאילו חברות נוספות הוא השקיע?"

סקירה כללית של הארכיטקטורה

26c67ab72ef077a4.jpeg

בשיעור ה-Codelab הזה תלמדו את היסודות התיאורטיים והיישום המעשי של בניית סוכני GraphRAG ברמה ארגונית.

מה תלמדו

  • איך ליצור מערכות מרובות סוכנים באמצעות הערכה לפיתוח סוכנים (ADK) של Google
  • איך משלבים מסד נתונים גרפי של Neo4j עם ADK לאפליקציות GraphRAG
  • איך מטמיעים את Model Context Protocol (MCP) Toolbox for pre-validated database queries
  • איך יוצרים כלים ופונקציות מותאמים אישית לסוכנים חכמים
  • איך מעצבים היררכיות של סוכנים ודפוסי תזמור
  • איך כדאי לנסח את ההוראות לסוכן כדי להשיג ביצועים אופטימליים
  • איך מנפים באגים באינטראקציות בין כמה סוכנים בצורה יעילה

מה תצטרכו

  • דפדפן האינטרנט Chrome
  • חשבון Gmail
  • פרויקט ב-Google Cloud שהחיוב בו מופעל
  • היכרות בסיסית עם פקודות טרמינל ו-Python (מועיל אבל לא חובה)

בשיעור Codelab הזה, שמיועד למפתחים בכל הרמות (כולל מתחילים), נעשה שימוש ב-Python וב-Neo4j באפליקציית הדוגמה. ידע בסיסי ב-Python ובמסדי נתונים של גרפים יכול לעזור, אבל לא נדרש ניסיון קודם כדי להבין את המושגים או לעקוב אחרי ההסברים.

2. הסבר על GraphRAG ומערכות מרובות סוכנים

לפני שמתחילים בהטמעה, חשוב להבין את מושגי המפתח שמפעילים את המערכת הזו.

Neo4j הוא מסד נתונים גרפי מקורי מוביל שמאחסן נתונים כרשת של צמתים (ישויות) וקשרים (חיבורים בין ישויות). לכן הוא אידיאלי לתרחישי שימוש שבהם חשוב להבין את הקשרים – כמו המלצות, זיהוי הונאות, גרפי ידע ועוד. בניגוד למסדי נתונים יחסיים או כאלה שמבוססים על מסמכים, שמסתמכים על טבלאות נוקשות או על מבנים היררכיים, מודל הגרף הגמיש של Neo4j מאפשר ייצוג אינטואיטיבי ויעיל של נתונים מורכבים ומקושרים.

במקום לארגן את הנתונים בשורות ובטבלאות כמו במסדי נתונים יחסיים, מערכת Neo4j משתמשת במודל גרף, שבו המידע מיוצג כצמתים (ישויות) וקשרים (קשרים בין הישויות האלה). המודל הזה מאפשר עבודה אינטואיטיבית במיוחד עם נתונים שמקושרים באופן מובנה – כמו אנשים, מקומות, מוצרים או, במקרה שלנו, סרטים, שחקנים וז'אנרים.

לדוגמה, בקבוצת נתונים של סרטים:

  • צומת יכול לייצג Movie, Actor או Director
  • הקשר יכול להיות ACTED_IN או DIRECTED

b340d5e06fac5f47.jpeg

המבנה הזה מאפשר לכם לשאול בקלות שאלות כמו:

  • באילו סרטים השחקן הזה הופיע?
  • מי עבד עם כריסטופר נולאן?
  • מהם סרטים דומים שמבוססים על שחקנים או ז'אנרים משותפים?

מה זה GraphRAG?

Retrieval-Augmented Generation (יצירה משולבת-אחזור, RAG) משפרת את התשובות של מודלים גדולים של שפה (LLM) על ידי אחזור מידע רלוונטי ממקורות חיצוניים. בדרך כלל, RAG מסורתי:

  1. הטמעת מסמכים בווקטורים
  2. חיפושים של וקטורים דומים
  3. העברת המסמכים שאוחזרו אל ה-LLM

‫GraphRAG מרחיב את זה באמצעות תרשימי ידע:

  1. הטמעה של ישויות וקשרים
  2. מעבר בין קשרים בגרף
  3. אחזור מידע לפי הקשר על כמה קפיצות
  4. הצגת תוצאות מובְנות וברורות

למה כדאי להשתמש בתרשימים לסוכני AI?

לדוגמה, אפשר לשאול: "מי המתחרים של YouTube, ואילו משקיעים מימנו גם את YouTube וגם את המתחרים שלה?"

מה קורה בגישה מסורתית של RAG:

  • חיפושים של מסמכים על מתחרים של YouTube
  • חיפוש נפרד של מידע על משקיעים
  • מתקשה לקשר בין שני חלקי המידע האלה
  • יכול להיות שלא יזוהו קשרים מרומזים

מה קורה בגישת GraphRAG:

MATCH (org:Organization {name: "OpenAI"})-[:HAS_COMPETITOR]-(competitor:Organization)
MATCH (org)-[:HAS_INVESTOR]->(investor:Person)
MATCH (competitor)-[:HAS_INVESTOR]->(investor)
RETURN org, competitor, investor

הגרף מייצג קשרים באופן טבעי, ולכן קל ויעיל לבצע שאילתות מורכבות.

מערכות מרובות סוכנים ב-ADK

הערכה לפיתוח סוכנים (ADK) היא מסגרת קוד פתוח של Google ליצירה ולפריסה של סוכני AI ברמת ייצור. הספרייה מספקת פרימיטיבים אינטואיטיביים לתזמור של כמה סוכנים, לשילוב של כלים ולניהול של תהליכי עבודה, כך שקל להרכיב סוכנים מיוחדים למערכות מתוחכמות. ערכת ה-ADK פועלת בצורה חלקה עם Gemini ותומכת בפריסה ב-Cloud Run, ב-Kubernetes או בכל תשתית אחרת.

הערכה לפיתוח סוכנים (ADK) מספקת פרימיטיבים ליצירת מערכות מרובות סוכנים:

  1. היררכיית הנציגים:
# Root agent coordinates specialized agents
root_agent = LlmAgent(
    name="RootAgent",
    sub_agents=[
        graph_db_agent,
        investor_agent,
        investment_agent
    ]
)
  1. נציגים מומחים: לכל נציג יש
  • כלים ספציפיים: פונקציות שאפשר להפעיל
  • הוראות ברורות: התפקיד והיכולות שלו
  • מומחיות בתחום: ידע בתחום
  1. Orchestration Patterns:
  • רציף: הפעלת סוכנים לפי הסדר
  • מקבילי: הפעלת כמה סוכנים בו-זמנית
  • מותנה: ניתוב על סמך סוג השאילתה

‫MCP Toolbox for Databases

‫Model Context Protocol‏ (MCP) הוא תקן פתוח לחיבור מערכות AI למקורות נתונים ולכלים חיצוניים. ‫MCP Toolbox for Databases הוא הטמעה של Google שמאפשרת ניהול הצהרות של שאילתות במסד נתונים, כך שאפשר להגדיר שאילתות שאומתו מראש ונכתבו על ידי מומחים ככלים לשימוש חוזר. במקום לאפשר למודלים גדולים של שפה (LLM) ליצור שאילתות שעלולות להיות לא בטוחות, ערכת הכלים של MCP מציגה שאילתות שאושרו מראש עם אימות פרמטרים, כדי להבטיח אבטחה, ביצועים ומהימנות, תוך שמירה על גמישות לסוכני AI.

גישה מסורתית:

# LLM generates query (may be incorrect/unsafe)
query = llm.generate("SELECT * FROM users WHERE...")
db.execute(query)  # Risk of errors/SQL injection

גישת ה-MCP:

# Pre-validated query definition
- name: get_industries
  description: Fetch all industries from database
  query: |
    MATCH (i:Industry)
    RETURN i.name, i.id

יתרונות:

  • עברו אימות מראש על ידי מומחים
  • הגנה מפני מתקפות הזרקה
  • אופטימיזציה של הביצועים
  • ניהול מרכזי
  • אפשר להשתמש בהם שוב אצל נציגים שונים

סיכום של כל המידע

השילוב של GraphRAG + Multi-Agent Framework by ADK + MCP יוצר מערכת עוצמתית:

  1. הסוכן הראשי מקבל שאילתת משתמש
  2. ניתוב לנציג מומחה על סמך סוג השאילתה
  3. הסוכן משתמש בכלי MCP כדי לאחזר נתונים בצורה בטוחה
  4. מבנה הגרף מספק הקשר עשיר
  5. מודל LLM יוצר תשובה שמבוססת על מקורות וכוללת הסבר

עכשיו, אחרי שהבנו את הארכיטקטורה, אפשר להתחיל לבנות!

3. הגדרת פרויקט ב-Google Cloud

יצירת פרויקט

  1. ב-מסוף Google Cloud, בדף לבחירת הפרויקט, בוחרים או יוצרים פרויקט ב-Google Cloud.
  2. הקפידו לוודא שהחיוב מופעל בפרויקט שלכם ב-Cloud. כך בודקים אם החיוב מופעל בפרויקט
  3. תשתמשו ב-Cloud Shell, סביבת שורת פקודה שפועלת ב-Google Cloud. לוחצים על 'הפעלת Cloud Shell' בחלק העליון של מסוף Google Cloud. אפשר לעבור בין Cloud Shell Terminal (כדי להפעיל פקודות בענן) לבין Editor (כדי ליצור פרויקטים) בלחיצה על הכפתור המתאים ב-Cloud Shell.

תמונה של לחצן ההפעלה של Cloud Shell

  1. אחרי שמתחברים ל-Cloud Shell, אפשר לבדוק שכבר בוצע אימות ושהפרויקט מוגדר לפי מזהה הפרויקט באמצעות הפקודה הבאה:
gcloud auth list
  1. מריצים את הפקודה הבאה ב-Cloud Shell כדי לוודא שפקודת gcloud מכירה את הפרויקט.
gcloud config list project
  1. אם הפרויקט לא מוגדר, משתמשים בפקודה הבאה כדי להגדיר אותו:
gcloud config set project <YOUR_PROJECT_ID>

אפשר לעיין במאמרי העזרה בנושא פקודות gcloud ושימוש בהן.

מעולה! עכשיו אפשר לעבור לשלב הבא – הבנת מערך הנתונים.

4. הסבר על מערך הנתונים 'חברות'

בסדנת הקוד הזו אנחנו משתמשים במסד נתונים של Neo4j לקריאה בלבד שאוכלס מראש בנתוני השקעות ונתוני חברות מגרף הידע של Diffbot.

מערך הנתונים מכיל:

  • ‫237,358 צמתים שמייצגים:
  • ארגונים (חברות)
  • אנשים (מנהלים, עובדים)
  • מאמרים (חדשות ואזכורים)
  • תחומים
  • טכנולוגיות
  • משקיעים
  • קשרים, כולל:
  • HAS_INVESTOR – חיבורים להשקעות
  • HAS_COMPETITOR – יחסים תחרותיים
  • MENTIONS – הפניות למאמרים
  • HAS_CEO - יחסי עבודה
  • HAS_CATEGORY – סיווגים של ענפים

5c5fee2a9823601f.jpeg

גישה למסד הנתונים לדוגמה

ב-codelab הזה נשתמש במופע הדגמה מתארח. מוסיפים את פרטי הכניסה האלה להערות:

URI: neo4j+s://demo.neo4jlabs.com
Username: companies
Password: companies
Database: companies

גישה לדפדפן:

אפשר לעיין בנתונים באופן ויזואלי בכתובת: https://demo.neo4jlabs.com:7473

מתחברים עם אותם פרטי כניסה ומנסים להריץ את הפקודה:

// Sample query to explore the graph
MATCH (c:Organization)-[:HAS_COMPETITOR]-(competitor:Organization)
RETURN c.name, competitor.name
LIMIT 10

הדמיה של מבנה הגרף

כדי לראות דפוסי קשר, אפשר לנסות את השאילתה הזו בדפדפן Neo4j:

// Find investors and their portfolio companies
MATCH (company:Organization)-[:HAS_INVESTOR]->(investor:Person)
WITH investor, collect(company.name) as portfolio
RETURN investor.name, size(portfolio) as num_investments, portfolio
ORDER BY num_investments DESC
LIMIT 5

השאילתה הזו מחזירה את 5 המשקיעים הפעילים ביותר ואת תיקי ההשקעות שלהם.

למה כדאי להשתמש במסד הנתונים הזה ל-GraphRAG?

מערך הנתונים הזה מושלם להדגמה של GraphRAG כי:

  1. קשרים עשירים: קשרים מורכבים בין ישויות
  2. נתונים מהעולם האמיתי: חברות, אנשים וכתבות חדשותיים אמיתיים
  3. שאילתות עם כמה קפיצות: נדרשת מעבר בין כמה סוגים של קשרים
  4. נתונים זמניים: מאמרים עם חותמות זמן לניתוח מבוסס-זמן
  5. ניתוח סנטימנטים: ציוני סנטימנטים שחושבו מראש למאמרים

אחרי שהבנתם את מבנה הנתונים, הגיע הזמן להגדיר את סביבת הפיתוח.

5. שכפול המאגר והגדרת הסביבה

שכפול המאגר

בטרמינל של Cloud Shell, מריצים את הפקודה:

# Clone the repository
git clone https://github.com/sidagarwal04/neo4j-adk-multiagents.git

# Navigate into the directory
cd neo4j-adk-multiagents

עיון במבנה המאגר

כדאי להקדיש רגע כדי להבין את פריסת הפרויקט:

neo4j-adk-multiagents/
├── investment_agent/       # Main agent code
   ├── agent.py           # Agent definitions
   ├── tools.py           # Custom tool functions
   └── .adk/              # ADK configuration
       └── tools.yaml     # MCP tool definitions
├── main.py                # Application entry point
├── setup_tools_yaml.py    # Configuration generator
├── requirements.txt       # Python dependencies
├── example.env           # Environment template
└── README.md             # Project documentation

הגדרת סביבה וירטואלית

יוצרים ומפעילים סביבה וירטואלית של Python באמצעות uv:

# Install uv if not already installed
pip install uv

# Create virtual environment
uv venv

# Activate the environment
source .venv/bin/activate  # On macOS/Linux
# or
.venv\Scripts\activate  # On Windows

הסימן (.venv) אמור להופיע לפני ההנחיה במסוף.

התקנת יחסי תלות

מתקינים את כל החבילות הנדרשות:

uv pip install -r requirements.txt

בין התלויות העיקריות:

txtgoogle-adk>=1.21.0          # Agent Development Kit
neo4j>=6.0.3               # Neo4j Python driver
python-dotenv>=1.0.0       # Environment variables
google-cloud-aiplatform>=1.30.0  # Vertex AI

הגדרת משתני סביבה

  1. יוצרים קובץ **.env** **משלכם:**
cp example.env .env
  1. עריכת **.env** **הקובץ:**

אם משתמשים ב-Cloud Shell, לוחצים על Open Editor (פתיחת העורך) בסרגל הכלים, עוברים אל .env ומעדכנים:

כדי להציג את הקובץ המוסתר .env:

לוחצים על View > Toggle Hidden files ב-Google Cloud Shell Editor.

# Neo4j Configuration (Demo Database)
NEO4J_URI=neo4j+s://demo.neo4jlabs.com
NEO4J_USERNAME=companies
NEO4J_PASSWORD=companies
NEO4J_DATABASE=companies

# Google AI Configuration
# Choose ONE of the following options:

# Option 1: Google AI API (Recommended)
GOOGLE_GENAI_USE_VERTEXAI=0
GOOGLE_API_KEY=your_api_key_here  # Get from https://aistudio.google.com/app/apikey

# Option 2: Vertex AI (If using GCP)
# GOOGLE_GENAI_USE_VERTEXAI=1
# GOOGLE_CLOUD_PROJECT=your-project-id
# GOOGLE_CLOUD_LOCATION=us-central1

# ADK Configuration
GOOGLE_ADK_MODEL=gemini-3.1-flash-lite-preview # or gemini-3-flash-preview

# MCP Toolbox Configuration
MCP_TOOLBOX_URL=https://toolbox-990868019953.us-central1.run.app/mcp/sse
  1. יצירת הגדרה של MCP Toolbox:

מריצים את סקריפט ההגדרה כדי ליצור את הקובץ tools.yaml ממשתני הסביבה:

python setup_tools_yaml.py

הפעולה הזו יוצרת את investment_agent/.adk/tools.yaml עם פרטי הכניסה של Neo4j שמוגדרים בצורה נכונה לשימוש בכלי MCP.

אימות ההגדרה

בודקים שהכל מוגדר בצורה נכונה:

# Verify .env file exists
ls -la .env

# Verify tools.yaml was generated
ls -la investment_agent/.adk/tools.yaml

# Test Python environment
python -c "import google.adk; print('ADK installed successfully')"

# Test Neo4j connection
python -c "from neo4j import GraphDatabase; print('Neo4j driver installed')"

סביבת הפיתוח מוגדרת עכשיו במלואה. בהמשך נתעמק בארכיטקטורה של כמה סוכנים.

6. הסבר על ארכיטקטורה של כמה סוכנים

מערכת ארבעת הסוכנים

מערכת מחקר ההשקעות שלנו משתמשת בארכיטקטורה היררכית מרובת סוכנים עם ארבעה סוכנים מומחים שעובדים יחד כדי לענות על שאילתות מורכבות לגבי חברות, משקיעים ומודיעין שוק.

                ┌──────────────┐
                  Root Agent   ◄── User Query
                └──────┬───────┘
                       
      ┌────────────────┼────────────────┐
                                      
┌─────▼─────┐    ┌────▼─────┐    ┌────▼──────────┐
 Graph DB       Investor       Investment   
  Agent         Research       Research     
└───────────┘      Agent         Agent        
                 └──────────┘    └───────────────┘
  1. סוכן הבסיס (המתזמר):

הסוכן הראשי משמש כמתאם חכם של המערכת כולה. הוא מקבל שאילתות ממשתמשים, מנתח את הכוונה שלהם ומנתב את הבקשות לסוכן המומחה המתאים ביותר. אפשר לחשוב על זה כמו על מנהל פרויקט שמבין מי מחברי הצוות הכי מתאים לכל משימה. הוא גם מטפל בצבירת התגובות, מעצב את התוצאות כטבלאות או כתרשימים לפי בקשה, ושומר על ההקשר של השיחה בכמה שאילתות. הסוכן ברמה הבסיסית (root) תמיד מעדיף סוכנים עם התמחויות שונות על פני סוכן מסד הנתונים הכללי, וכך מבטיח שהשאילתות יטופלו על ידי הרכיב המומחה ביותר שזמין.

  1. סוכן מסד נתונים של גרפים:

הסוכן של מסד הנתונים הגרפי הוא החיבור הישיר שלכם ליכולות הגרפיות המתקדמות של Neo4j. הוא מבין את סכימת מסד הנתונים, יוצר שאילתות Cypher משפה טבעית ומבצע מעברים מורכבים בגרף. הסוכן הזה מתמחה בשאלות מבניות, בצבירות ובהסקת מסקנות מורכבות בגרף הידע. הוא מומחה לגיבוי כששאילתות דורשות לוגיקה מותאמת אישית שכלים מוגדרים מראש לא יכולים לטפל בה, ולכן הוא חיוני לניתוח גישוש ולשאילתות אנליטיות מורכבות שלא נצפו בתכנון המערכת.

  1. סוכן מחקר למשקיעים:

הנציג לניתוח השקעות מתמקד אך ורק בקשרי השקעות ובניתוח תיק השקעות. הוא יכול לגלות מי השקיע בחברות ספציפיות באמצעות התאמה מדויקת של שמות, לאחזר תיקי השקעות מלאים שמציגים את כל ההשקעות ולנתח דפוסי השקעה בתעשיות שונות. ההתמחות הזו מאפשרת לו לענות ביעילות רבה על שאלות כמו "מי השקיע ב-ByteDance?" או "מה עוד השקיעה Sequoia Capital?" הסוכן משתמש בפונקציות Python מותאמות אישית ששולחות שאילתות ישירות למסד הנתונים של Neo4j כדי למצוא קשרים שקשורים למשקיעים.

  1. סוכן מחקר השקעות:

סוכן מחקר ההשקעות משתמש ב-Model Context Protocol (MCP) Toolbox כדי לגשת לשאילתות שאומתו מראש ונכתבו על ידי מומחים. הוא יכול לאחזר את כל התעשיות שזמינות, לאחזר חברות בתעשיות ספציפיות, למצוא מאמרים עם ניתוח סנטימנט, לגלות אזכורים של ארגונים בחדשות ולקבל מידע על אנשים שעובדים בחברות. בניגוד לסוכן של מסד הנתונים הגרפי שמייצר שאילתות באופן דינמי, הסוכן הזה משתמש בשאילתות בטוחות, מותאמות ומוגדרות מראש שמנוהלות ומאומתות באופן מרכזי. כך הוא מאובטח וגם יעיל לזרימות עבודה נפוצות במחקר.

7. הפעלה ובדיקה של מערכת מרובת סוכנים

הפעלת האפליקציה

עכשיו, אחרי שהבנתם את הארכיטקטורה, נריץ את המערכת המלאה וניצור איתה אינטראקציה.

מפעילים את ממשק האינטרנט של ADK:

# Make sure you're in the project directory with activated virtual environment
cd ~/neo4j-adk-multiagents
source .venv/bin/activate  # If not already activated
# Launch the application
uv run adk web

הפלט אמור להיראות כך:

INFO:     Started server process [2542]
INFO:     Waiting for application startup.

+----------------------------------------------------------------+
| ADK Web Server started                                         |
|                                                                |
| For local testing, access at http://127.0.0.1:8000.            |
+----------------------------------------------------------------+

INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)

בדיקת שאילתות והתנהגות צפויה

נבדוק את היכולות של המערכת באמצעות שאילתות מורכבות יותר ויותר:

שאילתות בסיסיות (סוכן יחיד)

שאילתה 1: גילוי תחומים

What industries are available in the database?

התנהגות צפויה:

  • סוכן השורש מעביר את הפנייה לסוכן מחקר ההשקעות
  • נעשה שימוש בכלי MCP: get_industries()
  • החזרת רשימה מעוצבת של כל התחומים

מה צריך לבדוק:

בממשק המשתמש של ADK, מרחיבים את פרטי ההרצה כדי לראות:

  • החלטה לגבי בחירת נציג
  • קריאה לכלי: get_industries()
  • תוצאות גולמיות מ-Neo4j
  • תשובה בפורמט

שאילתה 2: איתור משקיעים

Who invested in ByteDance?

התנהגות צפויה:

  • Root Agent identifies this as investor-related query
  • דרכים להגיע לסוכן מחקר המשקיעים
  • השתמשת בכלי: find_investor_by_name("ByteDance")
  • מחזירה משקיעים עם הסוגים שלהם (אדם/ארגון)

התשובה הצפויה:

I found 2 investors in ByteDance:

1. Rong Yue (Person)
2. Wendi Murdoch (Person)

Would you like to know more about their investment portfolios?

שאילתה 3: חברות לפי תחום**

I found 2 investors in ByteDance:

1. Rong Yue (Person)
2. Wendi Murdoch (Person)

Would you like to know more about their investment portfolios?
"Show me companies in the Artificial Intelligence industry"

התנהגות צפויה:

  • סוכן השורש מעביר את הפנייה לסוכן מחקר ההשקעות
  • נעשה שימוש בכלי MCP: get_companies_in_industry("Artificial Intelligence")
  • הפונקציה מחזירה רשימה של חברות AI עם מזהים ותאריכי הקמה

מה צריך לבדוק:

  • שימו לב איך הסוכן משתמש בהתאמה מדויקת של שם התחום
  • התוצאות מוגבלות כדי למנוע עומס יתר של פלט
  • הנתונים מפורמטים בצורה ברורה כדי שיהיה קל לקרוא אותם

שאילתות ביניים (כמה שלבים בסוכן אחד)

שאילתה 4: ניתוח סנטימנטים

Find articles with positive sentiment from January 2023

התנהגות צפויה:

  • דרכים להגיע לסוכן מחקר השקעות
  • נעשה שימוש בכלי MCP: get_articles_with_sentiment(0.7, 2023, 1)
  • הפונקציה מחזירה מאמרים עם שמות, ציוני סנטימנט ותאריכי פרסום

טיפ לניפוי באגים:

בודקים את הפרמטרים של הפעלת הכלי:

  • min_sentiment: 0.7 (הסוכן מפרש את המילה 'חיובי' כערך של ‎>= 0.7)
  • year: 2023
  • month: 1

שאילתה 5: שאילתת מסד נתונים מורכבת

How many companies are in the database?

התנהגות צפויה:

  • סוכן הבסיס מפנה לסוכן מסד נתונים גרפי
  • נציג התמיכה מתקשר קודם כדי להבין את המבנהget_neo4j_schema()
  • יצירת Cypher: MATCH (c:Company) RETURN count(c)
  • מריץ שאילתה ומחזיר את הספירה

התשובה הצפויה:

There are 8,064 companies in the database.

שאילתות מתקדמות (תיאום בין סוכנים)

שאילתה 6: ניתוח שיטות כוללות

Who invested in ByteDance and what else have they invested in?

התנהגות צפויה:

זו שאילתה שמורכבת משני חלקים ודורשת תיאום בין נציגים:

  • שלב 1: סוכן ראשי ← סוכן מחקר משקיעים
  • שיחות find_investor_by_name("ByteDance")
  • קבלת רשימת משקיעים: [Rong Yue, Wendi Murdoch]
  • שלב 2: לכל משקיע → סוכן מחקר משקיעים
  • שיחות find_investor_by_id(investor_id)
  • אחזור תיק השקעות מלא
  • שלב 3: סוכן הבסיס צובר ומעצב נתונים

התשובה הצפויה:

I found 2 investors in ByteDance. Here are their portfolios:

1. Rong Yue (Person)
   - ByteDance
   - Inspur
   
2. Wendi Murdoch (Person)
   - ByteDance
   - (No other investments in database)

מה צריך לבדוק:

  • כמה קריאות לכלים ברצף
  • הקשר נשמר בין השלבים
  • תוצאות מצטברות בצורה חכמה

שאילתה 7: מחקר בכמה דומיינים

What are 5 AI companies mentioned in positive articles, and who are their CEOs?

התנהגות צפויה:

השאילתה המורכבת הזו דורשת כמה סוכנים וכלים:

  • שלב 1: סוכן מחקר השקעות
  • get_companies_in_industry("Artificial Intelligence")
  • מחזירה רשימה של חברות AI
  • שלב 2: סוכן מחקר השקעות
  • get_articles_with_sentiment(0.8)
  • החזרת מאמרים חיוביים
  • שלב 3: פילטרים של סוכן הבסיס
  • זיהוי חברות AI שמופיעות במאמרים חיוביים
  • בחירה של 5 המובילים
  • שלב 4: סוכן מחקר השקעות
  • get_people_in_organizations([company_names], "CEO")
  • החזרת פרטי המנכ"ל
  • שלב 5: עיצוב של סוכן הבסיס כטבלה

התשובה הצפויה:

Here are 5 AI companies with positive news and their CEOs:

| Company | Industry | CEO | Avg Sentiment |
|---------|----------|-----|---------------|
| OpenAI | Artificial Intelligence | Sam Altman | 0.92 |
| Anthropic | Artificial Intelligence | Dario Amodei | 0.89 |
| ... | ... | ... | ... |

מה צריך לבדוק:

  • כמה קריאות לכלים אצל סוכנים שונים
  • הלוגיקה של סינון ושילוב נתונים
  • עיצוב טבלה מקצועי

שאילתה 8: ניתוח תחרותי

Who are YouTube's main competitors?

התנהגות צפויה:

  • סוכן הבסיס מנתב לסוכן מסד הנתונים הגרפי (שאילתת קשר)
  • הסוכן יוצר Cypher משופר באמצעות GraphRAG:
MATCH (c:Company {name: "YouTube"})-[:COMPETES_WITH]->(competitor)
RETURN competitor.name as competitor_name
  • החזרת רשימה של חברות מתחרות

התשובה הצפויה:

YouTube's main competitors are:

- TikTok (ByteDance)
- Dailymotion
- Twitter
- BuzzFeed
- Mixer
- OpenAI (for video content)

שאילתות המשך מבוססות-הקשר

שאילתה 9: שאלת המשך (אחרי שאילתה 8)

Which investors funded both YouTube and its competitors?

התנהגות צפויה:

  • הסוכן הראשי זוכר את ההקשר הקודם (YouTube והמתחרים שלה)
  • דרכים להגיע לסוכן מחקר המשקיעים
  • למצוא משקיעים ל-YouTube ולכל מתחרה
  • זיהוי משקיעים שמופיעים בכמה חברות

התשובה הצפויה:

Based on our previous analysis of YouTube's competitors, I found these 
investors who funded multiple companies in this competitive landscape:

Sequoia Capital invested in:
- YouTube
- TikTok (ByteDance)
- Twitter

Accel Partners invested in:
- YouTube  
- BuzzFeed

This suggests these investors have strategic positions across the video content platform ecosystem.

שאילתה 10: סיכום מחקר

Summarize our research findings so far

התנהגות צפויה:

  • הנציג הראשי בודק את היסטוריית השיחות
  • מסכם את הממצאים העיקריים משאילתות קודמות
  • מספק סיכום עקבי

התשובה הצפויה:

Here's a summary of our investment research session:

1. Industry Overview: We explored the Artificial Intelligence industry 
   with 150+ companies in the database.

2. ByteDance Analysis: 
   - Investors: Rong Yue, Wendi Murdoch
   - Rong Yue also invested in Inspur

3. Market Sentiment: We analyzed articles from January 2023, finding 
   strong positive sentiment (avg 0.85) for tech companies.

4. Competitive Landscape: YouTube faces competition from TikTok, 
   Dailymotion, and others, with some investors (Sequoia, Accel) holding 
   positions across competing platforms.

5. Key Players: Identified CEOs of major AI companies with positive media coverage.

הסבר על אינטראקציות עם סוכנים בתצוגת ניפוי הבאגים

ממשק האינטרנט של ADK מספק תצוגה מפורטת של הביצוע. מה צריך לחפש:

  1. ציר זמן של אירועים

הצגת רצף כרונולוגי:

[USER] Query received
[ROOT_AGENT] Analyzing query intent
[ROOT_AGENT] Routing to investment_research_agent
[INVESTMENT_RESEARCH_AGENT] Tool call: get_companies_in_industry
[TOOL] Executing with params: {"industry_name": "Artificial Intelligence"}
[TOOL] Returned 47 results
[INVESTMENT_RESEARCH_AGENT] Formatting response
[ROOT_AGENT] Presenting to user
  1. פרטים על הפעלת הכלי

לוחצים על קריאה לכלי כדי לראות:

  • שם פונקציה
  • פרמטרים של קלט
  • הערך המוחזר
  • זמן הביצוע
  • כל השגיאות
  1. קבלת החלטות על ידי סוכנים

בודקים את הנימוק של ה-LLM:

    • למה הוא בחר סוכן ספציפי
    • איך המערכת פירשה את השאילתה
    • אילו כלים נלקחו בחשבון
    • למה התוצאות עוצבו בצורה מסוימת

תובנות וקריטריונים נפוצים לבדיקה

  • דפוסי ניתוב של שאילתות:
  • מילות מפתח כמו investor (משקיע), invested (השקעה) ← סוכן מחקר משקיעים
  • מילות מפתח כמו 'תעשייה', 'חברות', 'מאמרים' ← סוכן מחקר השקעות
  • צבירות, ספירות, לוגיקה מורכבת ← סוכן מסד נתונים של גרפים
  • הערות לגבי הביצועים:
  • הכלים של MCP בדרך כלל מהירים יותר (שאילתות שעברו אופטימיזציה מראש)
  • יצירת שאילתות Cypher מורכבות אורכת יותר זמן (זמן החשיבה של ה-LLM)
  • שימוש בכמה קריאות לכלים מוסיף זמן אחזור אבל מספק תוצאות עשירות יותר
  • טיפול בשגיאות:
  • אם שאילתה נכשלת:
  • הסוכן מסביר מה השתבש
  • מציע תיקונים (למשל, 'לא נמצא שם חברה, כדאי לבדוק את האיות')
  • יכול להיות שננסה גישות חלופיות

טיפים לבדיקות יעילות

  1. מתחילים בפשוט: בודקים את הפונקציונליות הבסיסית של כל סוכן לפני שמנסים שאילתות מורכבות
  2. שימוש בהמשך טיפול: בדיקת שימור ההקשר באמצעות שאלות המשך
  3. התבוננות בהפניה: צפייה בסוכן שמטפל בכל שאילתה כדי להבין את הלוגיקה
  4. בדיקת קריאות לכלים: מוודאים שהפרמטרים מחולצים בצורה נכונה משפה טבעית
  5. בדיקת מקרים חריגים: כדאי לנסות שאילתות דו-משמעיות, שגיאות כתיב או בקשות לא רגילות

עכשיו יש לכם מערכת GraphRAG רב-סוכנית שפועלת באופן מלא. כדי להכיר את היכולות של Gemini, אתם יכולים לנסות לשאול שאלות משלכם.

8. הסרת המשאבים

כדי לא לצבור חיובים לחשבון Google Cloud על המשאבים שבהם השתמשתם במאמר הזה:

  1. במסוף Google Cloud, עוברים לדף Manage resources.
  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.

9. מזל טוב

‫🎉 מזל טוב! יצרתם בהצלחה מערכת GraphRAG מרובת סוכנים באיכות ייצור באמצעות ערכה לפיתוח סוכנים של Google,‏ Neo4j ו-MCP Toolbox!

שילוב יכולות התזמור החכמות של ADK עם מודל הנתונים העשיר בקשרים של Neo4j והבטיחות של שאילתות MCP שעברו אימות מראש, מאפשר ליצור מערכת מתוחכמת שחורגת משאילתות פשוטות במסד נתונים – המערכת מבינה את ההקשר, מסיקה מסקנות על סמך קשרים מורכבים ומתאמת בין סוכנים מיוחדים כדי לספק תובנות מקיפות ומדויקות.

ב-codelab הזה השלמתם את הפעולות הבאות:

‫✅ יצירת מערכת מרובת סוכנים באמצעות הערכה לפיתוח סוכנים (ADK) של Google עם תזמור היררכי

‫✅ Integrated Neo4j graph database to leverage relationship-aware queries and multi-hop reasoning

‫✅ הטמעתם את MCP Toolbox לביצוע שאילתות מאובטחות ומאומתות מראש במסד נתונים ככלים לשימוש חוזר

‫✅ יצירת סוכנים מיוחדים למחקר משקיעים, לניתוח השקעות ולפעולות במסד נתונים של גרפים

‫✅ ניתוב חכם מתוכנן שמעביר באופן אוטומטי שאילתות לסוכן המומחה המתאים ביותר

‫✅ טיפל בסוגי נתונים מורכבים באמצעות סריאליזציה מתאימה של סוגי Neo4j לשילוב חלק של Python

‫✅ יישום שיטות מומלצות לייצור בתכנון הסוכן, בטיפול בשגיאות ובניפוי באגים במערכת

מה השלב הבא?

ארכיטקטורת GraphRAG מרובת הסוכנים הזו לא מוגבלת למחקר השקעות – אפשר להרחיב אותה גם ל:

  • שירותים פיננסיים: אופטימיזציה של תיק השקעות, הערכת סיכונים, זיהוי הונאות
  • שירותי בריאות: תיאום טיפול במטופלים, ניתוח אינטראקציות בין תרופות, מחקר קליני
  • מסחר אלקטרוני: המלצות בהתאמה אישית, אופטימיזציה של שרשרת האספקה, תובנות לגבי לקוחות
  • עניינים משפטיים ועמידה בדרישות: ניתוח חוזים, מעקב אחר תקנות, מחקר של פסקי דין
  • מחקר אקדמי: סקירת ספרות, גילוי שיתופי פעולה, ניתוח ציטוטים
  • בינה עסקית: ניתוח מתחרים, מחקר שוק, תרשימי ידע ארגוניים

בכל מקום שבו יש נתונים מורכבים ומקושרים + מומחיות בתחום + ממשקי שפה טבעית, השילוב הזה של מערכות מרובות סוכנים של ADK + גרפי ידע של Neo4j + שאילתות שאומתו על ידי MCP יכול להפעיל את הדור הבא של אפליקציות חכמות לארגונים.

ככל שערכת פיתוח הסוכנים של Google ומודלי Gemini ימשיכו להתפתח, תוכלו לשלב דפוסי חשיבה מתוחכמים יותר, שילוב נתונים בזמן אמת ויכולות מולטי-מודאליות כדי לבנות מערכות חכמות באמת שמודעות להקשר.

ממשיכים לחקור, ממשיכים לפתח ומשדרגים את האפליקציות של הסוכנים החכמים!

ב-Neo4j GraphAcademy אפשר למצוא עולם תוכן מורחב של מדריכים מעשיים בנושא תרשים ידע, וב-ADK Samples Repository אפשר למצוא עוד דפוסי סוכנים.

🚀 רוצים לבנות את מערכת הסוכנים החכמה הבאה שלכם?

מסמכי עזר