1. סקירה כללית
ב-codelab הזה תבנו מערכת מתוחכמת למחקר השקעות מרובה-סוכנים, שמשלבת את היכולות של Agent Development Kit (ADK) של Google, מסד הנתונים הגרפי Neo4j וערכת הכלים Model Context Protocol (MCP). במדריך המעשי הזה נסביר איך ליצור סוכנים חכמים שמבינים את הקשר הנתונים באמצעות קשרים גרפיים, ומספקים תשובות מדויקות מאוד לשאילתות.
למה GraphRAG + מערכות מרובות סוכנים?
GraphRAG (יצירה מוגברת באחזור מבוסס-גרף) משפרת את הגישות המסורתיות של RAG באמצעות המבנה העשיר של הקשרים בתרשימי ידע. במקום רק לחפש מסמכים דומים, סוכני GraphRAG יכולים:
- מעבר בין קשרים מורכבים בין ישויות
- הבנת ההקשר באמצעות מבנה הגרף
- הצגת תוצאות מוסברות על סמך נתונים מחוברים
- ביצוע חשיבה רב-שלבית ב-Knowledge Graph
מערכות מרובות סוכנים מאפשרות לכם:
- פירוק בעיות מורכבות למשימות משנה מיוחדות
- פיתוח אפליקציות מודולריות של AI שקל לתחזק
- הפעלת עיבוד מקביל ושימוש יעיל במשאבים
- יצירת דפוסי חשיבה היררכיים באמצעות תזמור
מה תפַתחו
תצרו מערכת מחקר השקעות מלאה עם התכונות הבאות:
- Graph Database Agent: סוכן מסד נתונים גרפי: מריץ שאילתות Cypher ומבין את הסכימה של Neo4j
- סוכן מחקר משקיעים: גילוי קשרים עם משקיעים ותיקי השקעות
- סוכן מחקר השקעות: ניגש לתרשימי ידע מקיפים באמצעות כלי MCP
- סוכן ראשי: מתאם בין כל סוכני המשנה בצורה חכמה
המערכת תענה על שאלות מורכבות כמו:
- "מי המתחרים העיקריים של YouTube?"
- "אילו חברות מוזכרות בהקשר חיובי בינואר 2023?"
- "מי השקיע ב-ByteDance ובאילו חברות נוספות הם השקיעו?"
סקירה כללית של הארכיטקטורה

בשיעור הזה תלמדו את היסודות התיאורטיים ואת היישום המעשי של בניית סוכני GraphRAG ברמה ארגונית.
מה תלמדו
- איך בונים מערכות מרובות סוכנים באמצעות ערכת פיתוח הסוכנים (ADK) של Google
- איך משלבים מסד נתונים גרפי של Neo4j עם ADK לאפליקציות GraphRAG
- איך מטמיעים את ערכת הכלים Model Context Protocol (MCP) לשאילתות במסד נתונים שעברו אימות מראש
- איך יוצרים כלים ופונקציות מותאמים אישית לסוכנים חכמים
- איך מעצבים היררכיות של סוכנים ודפוסי תזמור
- איך כדאי לנסח את ההוראות לסוכן כדי להשיג ביצועים אופטימליים
- איך מנפים באגים באינטראקציות בין כמה סוכנים בצורה יעילה
מה תצטרכו
- דפדפן האינטרנט Chrome
- חשבון Gmail
- פרויקט ב-Google Cloud שהחיוב בו מופעל
- היכרות בסיסית עם פקודות טרמינל ועם Python (מועיל אבל לא חובה)
ב-codelab הזה, שמיועד למפתחים בכל הרמות (כולל מתחילים), נעשה שימוש ב-Python וב-Neo4j באפליקציית הדוגמה. היכרות בסיסית עם Python ומסדי נתונים של גרפים יכולה לעזור, אבל לא נדרש ניסיון קודם כדי להבין את המושגים או לעקוב אחרי ההסברים.
2. הסבר על GraphRAG ועל מערכות מרובות סוכנים
לפני שמתחילים בהטמעה, חשוב להבין את המושגים העיקריים שמפעילים את המערכת הזו.
Neo4j הוא מסד נתונים גרפי מקורי מוביל שמאחסן נתונים כרשת של צמתים (ישויות) וקשרים (חיבורים בין ישויות). לכן הוא אידיאלי לתרחישי שימוש שבהם חשוב להבין את הקשרים – כמו המלצות, זיהוי הונאות, גרפי ידע ועוד. בניגוד למסדי נתונים יחסיים או כאלה שמבוססים על מסמכים, שמסתמכים על טבלאות נוקשות או על מבנים היררכיים, מודל הגרף הגמיש של Neo4j מאפשר ייצוג אינטואיטיבי ויעיל של נתונים מורכבים ומקושרים.
במקום לארגן את הנתונים בשורות ובטבלאות כמו במסדי נתונים יחסיים, Neo4j משתמש במודל גרף, שבו המידע מיוצג כצמתים (ישויות) וקשרים (חיבורים בין הישויות האלה). המודל הזה מאפשר עבודה אינטואיטיבית במיוחד עם נתונים שמקושרים באופן מובנה – כמו אנשים, מקומות, מוצרים או, במקרה שלנו, סרטים, שחקנים וז'אנרים.
לדוגמה, בקבוצת נתונים של סרטים:
- צומת יכול לייצג
Movie,ActorאוDirector - הקשר יכול להיות
ACTED_INאוDIRECTED

המבנה הזה מאפשר לכם לשאול בקלות שאלות כמו:
- באילו סרטים השחקן הזה הופיע?
- מי עבד עם כריסטופר נולאן?
- מהם סרטים דומים שמבוססים על שחקנים או ז'אנרים משותפים?
מה זה GraphRAG?
טכנולוגיית RAG (שליפה משופרת של מידע) משפרת את התשובות של מודלים מסוג LLM על ידי שליפת מידע רלוונטי ממקורות חיצוניים. בדרך כלל, מערכות RAG מסורתיות:
- הטמעת מסמכים בווקטורים
- חיפושים של וקטורים דומים
- העברת המסמכים שאוחזרו אל ה-LLM
GraphRAG מרחיב את זה באמצעות תרשימי ידע:
- הטמעה של ישויות וקשרים
- מעבר בין קשרים בגרף
- אחזור מידע לפי הקשר על כמה קפיצות
- הצגת תוצאות מובְנות וברורות
למה כדאי להשתמש בתרשימים לסוכני AI?
לדוגמה, אפשר לשאול: "מי המתחרים של YouTube, ואילו משקיעים מימנו גם את YouTube וגם את המתחרים שלה?"
מה קורה בגישה מסורתית של RAG:
- חיפושים של מסמכים על מתחרים של YouTube
- חיפוש נפרד של מידע על משקיעים
- מתקשה לקשר בין שני חלקי המידע האלה
- יכול להיות שלא יזוהו קשרים מרומזים
מה קורה בגישת GraphRAG:
MATCH (youtube:Company {name: "YouTube"})-[:COMPETES_WITH]->(competitor:Company)
MATCH (investor:Investor)-[:INVESTED_IN]->(youtube)
MATCH (investor)-[:INVESTED_IN]->(competitor)
RETURN youtube, competitor, investor
הגרף מייצג קשרים באופן טבעי, ולכן קל ויעיל לבצע שאילתות מורכבות.
מערכות מרובות סוכנים ב-ADK
Agent Development Kit (ADK) הוא מסגרת קוד פתוח של Google ליצירה ולפריסה של סוכני AI ברמת ייצור. הספרייה מספקת פרימיטיבים אינטואיטיביים לתיאום בין סוכנים, לשילוב כלים ולניהול תהליכי עבודה, כך שקל להרכיב סוכנים מיוחדים למערכות מתוחכמות. ערכת ה-ADK פועלת בצורה חלקה עם Gemini ותומכת בפריסה ב-Cloud Run, ב-Kubernetes או בכל תשתית אחרת.
ערכת פיתוח סוכנים (ADK) מספקת פרימיטיבים לבניית מערכות מרובות סוכנים:
- היררכיית הנציגים:
# Root agent coordinates specialized agents
root_agent = LlmAgent(
name="RootAgent",
sub_agents=[
graph_db_agent,
investor_agent,
investment_agent
]
)
- נציגים מומחים: לכל נציג יש
- כלים ספציפיים: פונקציות שהיא יכולה להפעיל
- הוראות ברורות: התפקיד והיכולות שלו
- מומחיות בתחום: ידע בתחום
- תבניות תזמור:
- רציף: הפעלת סוכנים לפי הסדר
- מקבילי: הפעלת כמה סוכנים בו-זמנית
- מותנה: ניתוב על סמך סוג השאילתה
ערכת הכלים של MCP למסדי נתונים
פרוטוקול הקשר של המודל (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 יוצר מערכת עוצמתית:
- הסוכן הראשי מקבל שאילתת משתמש
- ניתוב לנציג מומחה על סמך סוג השאילתה
- הסוכן משתמש בכלי MCP כדי לאחזר נתונים בצורה בטוחה
- מבנה הגרף מספק הקשר עשיר
- מודל שפה גדול (LLM) יוצר תשובה מבוססת ומנומקת
עכשיו, אחרי שהבנו את הארכיטקטורה, נתחיל לבנות!
3. הגדרת פרויקט ב-Google Cloud
יצירת פרויקט
- ב-Google Cloud Console, בדף לבחירת הפרויקט, בוחרים או יוצרים פרויקט ב-Google Cloud.
- הקפידו לוודא שהחיוב מופעל בפרויקט שלכם ב-Cloud. כך בודקים אם החיוב מופעל בפרויקט
- תשתמשו ב-Cloud Shell, סביבת שורת פקודה שפועלת ב-Google Cloud. לוחצים על 'הפעלת Cloud Shell' בחלק העליון של מסוף Google Cloud. אפשר לעבור בין Cloud Shell Terminal (כדי להפעיל פקודות בענן) לבין Editor (כדי ליצור פרויקטים) בלחיצה על הכפתור המתאים ב-Cloud Shell.

- אחרי שמתחברים ל-Cloud Shell, אפשר לבדוק שכבר בוצע אימות ושהפרויקט מוגדר למזהה הפרויקט שלכם באמצעות הפקודה הבאה:
gcloud auth list
- מריצים את הפקודה הבאה ב-Cloud Shell כדי לוודא שפקודת gcloud מכירה את הפרויקט.
gcloud config list project
- אם הפרויקט לא מוגדר, משתמשים בפקודה הבאה כדי להגדיר אותו:
gcloud config set project <YOUR_PROJECT_ID>
אפשר לעיין במאמרי העזרה בנושא פקודות gcloud ושימוש בהן.
מעולה! עכשיו אפשר לעבור לשלב הבא – הבנת מערך הנתונים.
4. הסבר על מערך הנתונים 'חברות'
ב-codelab הזה אנחנו משתמשים במסד נתונים של Neo4j לקריאה בלבד שאוכלס מראש בנתוני השקעות ונתוני חברות מגרף הידע של Diffbot.
מערך הנתונים מכיל:
- 237,358 צמתים שמייצגים:
- ארגונים (חברות)
- אנשים (מנהלים, עובדים)
- מאמרים (חדשות ואזכורים)
- תחומים
- טכנולוגיות
- משקיעים
- קשרים, כולל:
INVESTED_IN– חיבורים להשקעותCOMPETES_WITH– יחסים תחרותיים-
MENTIONS– הפניות למאמרים -
WORKS_AT- יחסי עבודה -
IN_INDUSTRY– סיווגים של תחומי פעילות

גישה למסד הנתונים לדוגמה
ב-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 (o:Organization)-[:HAS_COMPETITOR]->(competitor:Organization)
RETURN o.name, competitor.name
LIMIT 10
הדמיה של מבנה הגרף
כדי לראות דפוסי קשר, אפשר לנסות את השאילתה הזו בדפדפן Neo4j:
// Find investors and their portfolio companies
MATCH (investor:Organization)-[:HAS_INVESTOR]->(company:Organization)
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 כי:
- קשרים עשירים: קשרים מורכבים בין ישויות
- נתונים מהעולם האמיתי: חברות, אנשים וכתבות חדשותיים אמיתיים
- שאילתות עם כמה קפיצות: נדרש מעבר בין כמה סוגים של קשרים
- נתונים זמניים: מאמרים עם חותמות זמן לניתוח מבוסס-זמן
- ניתוח סנטימנטים: ציוני סנטימנטים שחושבו מראש עבור מאמרים
אחרי שהבנתם את מבנה הנתונים, הגיע הזמן להגדיר את סביבת הפיתוח.
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
יוצרים ומפעילים סביבה וירטואלית של Python באמצעות 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
בין התלויות העיקריות:
google-adk>=1.21.0 # Agent Development Kit
neo4j>=6.0.3 # Neo4j Python driver
python-dotenv>=1.0.0 # Environment variables
הגדרת משתני סביבה
- יוצרים את הקובץ
.env:
cp example.env .env
- עורכים את הקובץ
.env:
אם משתמשים ב-Cloud Shell, לוחצים על Open Editor (פתיחת העורך) בסרגל הכלים, עוברים אל .env ומעדכנים:
# Neo4j Configuration (Demo Database)
NEO4J_URI=neo4j+ssc://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-pro-preview # or gemini-3-flash-preview
# MCP Toolbox Configuration
MCP_TOOLBOX_URL=https://toolbox-990868019953.us-central1.run.app/mcp/sse
- הגדרת MCP Toolbox (מוגדר מראש – אין צורך להריץ אותו):
בשיעור Lab הזה, ערכת הכלים של MCP כבר מתארחת ומוגדרת מראש, כך שלא צריך ליצור או לנהל קובץ tools.yaml באופן מקומי.
בדרך כלל, מריצים את הפקודה הבאה כדי ליצור את הקובץ tools.yaml ממשתני סביבה אחרי שמעדכנים את investment_agent/.adk/tools.yaml.template לפי הצורך:
python setup_tools_yaml.py
הפעולה הזו יוצרת את investment_agent/.adk/tools.yaml עם פרטי הכניסה של Neo4j שמוגדרים בצורה תקינה עבור MCP Toolbox.
מריצים את הסקריפט שלמעלה רק אם:
- אתם מארחים את ארגז הכלים של MCP בעצמכם
- אתם מתחברים למסד נתונים או למערך נתונים אחר של Neo4j
- אתם רוצים להגדיר כלים או פרטי כניסה מותאמים אישית
במקרים כאלה, צריך לעדכן את כתובת ה-URL של MCP Toolbox ואת ההגדרה של tools.yaml בהתאם.
אימות ההגדרה
בודקים שהכל מוגדר בצורה נכונה:
# 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. הסבר על ארכיטקטורת Multi-Agent
מערכת ארבעת הסוכנים
מערכת מחקר ההשקעות שלנו משתמשת בארכיטקטורה היררכית מרובת סוכנים עם ארבעה סוכנים מומחים שעובדים יחד כדי לענות על שאילתות מורכבות לגבי חברות, משקיעים ומודיעין שוק.
┌──────────────┐
│ Root Agent │ ◄── User Query
└──────┬───────┘
│
┌────────────────┼────────────────┐
│ │ │
┌─────▼─────┐ ┌────▼─────┐ ┌────▼──────────┐
│ Graph DB │ │ Investor │ │ Investment │
│ Agent │ │ Research │ │ Research │
└───────────┘ │ Agent │ │ Agent │
└──────────┘ └───────────────┘
- סוכן ראשי (מנהל):
הסוכן הראשי משמש כמתאם חכם של המערכת כולה. הוא מקבל שאילתות ממשתמשים, מנתח את הכוונה שלהם ומנתב את הבקשות לסוכן המומחה המתאים ביותר. אפשר לחשוב על זה כמו על מנהל פרויקט שמבין מי מחברי הצוות הכי מתאים לכל משימה. הוא גם מטפל בצבירת התגובות, מעצב את התוצאות כטבלאות או כתרשימים לפי בקשה, ושומר על ההקשר של השיחה בכמה שאילתות. הסוכן הראשי תמיד מעדיף סוכנים מומחים על פני סוכן מסד הנתונים הכללי, וכך מבטיח שהשאילתות יטופלו על ידי הרכיב המומחה ביותר שזמין.
- Graph Database Agent:
הסוכן של מסד הנתונים הגרפי הוא החיבור הישיר שלכם ליכולות הגרפיות המתקדמות של Neo4j. הוא מבין את סכימת מסד הנתונים, יוצר שאילתות Cypher משפה טבעית ומבצע מעברים מורכבים בגרף. הסוכן הזה מתמחה בשאלות מבניות, בצבירה ובהסקת מסקנות מורכבות בתרשים הידע. הוא מומחה לגיבוי כששאילתות דורשות לוגיקה מותאמת אישית שכלים מוגדרים מראש לא יכולים לטפל בה, ולכן הוא חיוני לניתוח גישוש ולשאילתות אנליטיות מורכבות שלא נצפו בתכנון המערכת.
- סוכן מחקר למשקיעים:
הנציג 'מחקר השקעות' מתמקד אך ורק בקשרי השקעות ובניתוח תיק השקעות. הוא יכול לגלות מי השקיע בחברות ספציפיות באמצעות התאמה מדויקת של שמות, לאחזר תיקי השקעות מלאים שמציגים את כל ההשקעות ולנתח דפוסי השקעה בתעשיות שונות. ההתמחות הזו מאפשרת לו לענות ביעילות רבה על שאלות כמו "מי השקיע ב-ByteDance?" או "מה עוד השקיעה Sequoia Capital?" הסוכן משתמש בפונקציות Python מותאמות אישית שמבצעות שאילתות ישירות במסד הנתונים של Neo4j כדי למצוא קשרים שקשורים למשקיעים.
- סוכן מחקר השקעות:
סוכן מחקר ההשקעות משתמש בערכת הכלים Model Context Protocol (MCP) כדי לגשת לשאילתות שאומתו מראש ונכתבו על ידי מומחים. הוא יכול לאחזר את כל התעשיות הזמינות, לאחזר חברות בתעשיות ספציפיות, למצוא מאמרים עם ניתוח סנטימנט, לגלות אזכורים של ארגונים בחדשות ולקבל מידע על אנשים שעובדים בחברות. בניגוד לסוכן של מסד הנתונים הגרפי שמייצר שאילתות באופן דינמי, הסוכן הזה משתמש בשאילתות בטוחות, מותאמות ומוגדרות מראש שמנוהלות ומאומתות באופן מרכזי. כך הוא מאובטח וגם מספק ביצועים טובים בתהליכי עבודה נפוצים במחקר.
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)
אחרי שרואים שהשרת מתחיל לפעול בהצלחה, פותחים את הדפדפן ועוברים אל http://127.0.0.1:8000 כדי לגשת לאפליקציה.
שאילתות לבדיקה והתנהגות צפויה
נבדוק את היכולות של המערכת באמצעות שאילתות מורכבות יותר ויותר:
שאילתות בסיסיות (נציג יחיד)
שאילתה 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") - מחזירה משקיעים עם הסוגים שלהם (אדם/ארגון)
מה השלבים הבאים:
- רשימה של משקיעים שקשורים ל-ByteDance
- כל משקיע מוחזר עם השם וסוג הישות שלו (אדם או ארגון)
- סיכום קצר וקריא של התוצאות
- הנחיה למעקב שמציעה לחקור השקעות קשורות או תיקי השקעות (יכול להיות)
שאילתה 3: חברות לפי תחום
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 46,088 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: סוכן הבסיס צובר ומעצב נתונים
מה השלבים הבאים:
- רשימה של משקיעים שהשקיעו ב-ByteDance
- לכל משקיע:
- השם וסוג הישות (אדם או ארגון)
- רשימה של חברות אחרות שהם השקיעו בהן, על סמך נתונים זמינים
- סיכום מובנה וקל לקריאה, שמקובץ לפי משקיע
מה צריך לבדוק:
- כמה קריאות לכלים ברצף
- הקשר נשמר בין השלבים
- תוצאות מצטברות בצורה חכמה
שאילתה 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: סוכן הבסיס מעצב את התשובה
מה השלבים הבאים:
- רשימה של חמש חברות בתחום הבינה המלאכותית
- רק חברות שמופיעות במאמרים עם ציון חיובי
- לכל חברה:
- שם החברה
- תחום
- שם המנכ"ל
- ציון סנטימנט מצטבר או מייצג
מה צריך לבדוק:
- כמה קריאות לכלים אצל סוכנים שונים
- הלוגיקה של סינון ושילוב נתונים
שאילתה 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 ולכל מתחרה
- זיהוי משקיעים שמופיעים בכמה חברות
מה השלבים הבאים:
- המערכת משתמשת בהקשר הקיים של השיחה (YouTube והמתחרים שלה)
- רשימת משקיעים שהשקיעו ביותר מחברה אחת בסביבה התחרותית הזו
- לכל משקיע:
- שם המשקיע
- רשימה מקובצת של חברות רלוונטיות שהם השקיעו בהן
- סיכום קצר של הפרשנות, עם דגש על חפיפה או דפוסים אסטרטגיים (אולי)
שאילתה 10: סיכום מחקר
Summarize our research findings so far
התנהגות צפויה:
- נציג עם הרשאת Root יכול לעיין בהיסטוריית השיחות
- מסכם את הממצאים העיקריים משאילתות קודמות
- מספק סיכום עקבי
מה השלבים הבאים:
- סיכום תמציתי ומובנה של תובנות שנאספו משאילתות קודמות
- ממצאים עיקריים שמקובצים לפי נושאים (סקירה כללית של הענף, ניתוח החברה, סנטימנט, תחרות, מנהיגות)
- כדי להסיר את ההדגשה של התבליטים:
- תחומים שנבדקו
- חברות ומשקיעים בולטים
- דפוסי השקעה חוצי-חברות
- מגמות בדעת הקהל לגבי השוק
- נרטיב עקבי שמשקף סינתזה מודעת-הקשר לאורך הסשן
הסבר על אינטראקציות עם נציג בתצוגת ניפוי הבאגים
ממשק האינטרנט של ADK מספק תצוגה מפורטת של הביצועים. מה צריך לחפש:
- ציר זמן של אירועים
הצגת רצף כרונולוגי:
[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
- פרטים על הפעלת הכלי
לוחצים על קריאה לכלי כדי לראות:
- שם פונקציה
- פרמטרים של קלט
- הערך שמוחזר
- זמן הביצוע
- כל השגיאות
- קבלת החלטות על ידי נציגים
בודקים את הנימוק של ה-LLM:
- למה נבחר סוכן ספציפי
- איך המערכת פירשה את השאילתה
- אילו כלים נלקחו בחשבון
- למה התוצאות עוצבו בצורה מסוימת
תובנות וקריטריונים נפוצים לבדיקה
דפוסי ניתוב של שאילתות:
- מילות מפתח כמו investor (משקיע), invested (השקעה) ← סוכן מחקר משקיעים
- מילות מפתח כמו 'תעשייה', 'חברות', 'מאמרים' ← סוכן מחקר השקעות
- צבירות, ספירות, לוגיקה מורכבת ← Graph Database Agent
הערות לגבי הביצועים:
- הכלים של MCP בדרך כלל מהירים יותר (שאילתות שעברו אופטימיזציה מראש)
- יצירת Cypher מורכב אורכת זמן רב יותר (זמן החשיבה של ה-LLM)
- שימוש בכמה קריאות לכלים מוסיף זמן אחזור אבל מספק תוצאות עשירות יותר
טיפול בשגיאות:
אם שאילתה נכשלת:
- הסוכן מסביר מה השתבש
- הצעת תיקונים (למשל, "לא נמצא שם חברה, צריך לבדוק את האיות")
- יכול להיות שננסה גישות חלופיות
טיפים לבדיקות יעילות
- מתחילים בפשוט: בודקים את הפונקציונליות הבסיסית של כל סוכן לפני שמנסים שאילתות מורכבות
- שימוש בהמשך טיפול: בדיקת שימור ההקשר באמצעות שאלות המשך
- מעקב אחר ניתוב: מעקב אחר הסוכן שמטפל בכל שאילתה כדי להבין את הלוגיקה
- בדיקת קריאות לכלים: מוודאים שהפרמטרים מחולצים בצורה נכונה משפה טבעית
- בדיקת מקרי קצה: כדאי לנסות שאילתות מעורפלות, שגיאות כתיב או בקשות לא רגילות
עכשיו יש לכם מערכת GraphRAG רב-סוכנים שפועלת באופן מלא. כדי להכיר את היכולות של Gemini, אתם יכולים לנסות לשאול שאלות משלכם.
8. הסרת המשאבים
כדי לא לצבור חיובים לחשבון Google Cloud על המשאבים שבהם השתמשתם במאמר הזה:
- במסוף Google Cloud, עוברים לדף Manage resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
9. מזל טוב
🎉 מזל טוב! יצרתם בהצלחה מערכת GraphRAG מרובת סוכנים באיכות ייצור באמצעות Agent Development Kit של Google, Neo4j ו-MCP Toolbox.
שילוב היכולות החכמות של ADK עם מודל הנתונים העשיר בקשרים של Neo4j והבטיחות של שאילתות MCP שאומתו מראש, מאפשר ליצור מערכת מתוחכמת שהיא מעבר לשאילתות פשוטות במסד נתונים – היא מבינה את ההקשר, מסיקה מסקנות על סמך קשרים מורכבים ומתאמת בין סוכנים מיוחדים כדי לספק תובנות מקיפות ומדויקות.
ב-codelab הזה השלמתם את הפעולות הבאות:
✅ בניית מערכת מרובת סוכנים באמצעות ערכת פיתוח הסוכנים (ADK) של Google עם תזמור היררכי
✅ Integrated Neo4j graph database to leverage relationship-aware queries and multi-hop reasoning
✅ Implemented MCP Toolbox for secure, pre-validated database queries as reusable tools
✅ יצירת סוכנים ייעודיים למחקר משקיעים, לניתוח השקעות ולפעולות במסד נתונים של גרפים
✅ Designed intelligent routing that automatically delegates queries to the most appropriate expert agent
✅ טיפל בסוגי נתונים מורכבים באמצעות סריאליזציה מתאימה של סוגי Neo4j לשילוב חלק של Python
✅ הוחלו שיטות מומלצות לייצור על עיצוב הסוכן, טיפול בשגיאות וניפוי שגיאות במערכת
מה השלב הבא?
ארכיטקטורת GraphRAG מרובת הסוכנים הזו לא מוגבלת למחקר השקעות – אפשר להרחיב אותה ל:
- שירותים פיננסיים: אופטימיזציה של תיק השקעות, הערכת סיכונים, זיהוי הונאות
- שירותי בריאות: תיאום טיפול במטופלים, ניתוח אינטראקציות בין תרופות, מחקר קליני
- מסחר אלקטרוני: המלצות בהתאמה אישית, אופטימיזציה של שרשרת האספקה, תובנות לגבי לקוחות
- משפטי וציות: ניתוח חוזים, מעקב אחר תקנות, מחקר של פסקי דין
- מחקר אקדמי: סקירת ספרות, גילוי שיתופי פעולה, ניתוח ציטוטים
- בינה עסקית: ניתוח תחרותי, מחקר שוק, תרשימי ידע ארגוניים
בכל מקום שבו יש נתונים מורכבים ומקושרים + מומחיות בתחום + ממשקי שפה טבעית, השילוב הזה של מערכות מרובות סוכנים של ADK + גרפי ידע של Neo4j + שאילתות שאומתו על ידי MCP יכול להפעיל את הדור הבא של אפליקציות חכמות לארגונים.
ככל שערכת פיתוח הסוכנים של Google ומודלי Gemini ימשיכו להתפתח, תוכלו לשלב דפוסי חשיבה מתוחכמים יותר, שילוב נתונים בזמן אמת ויכולות מולטי-מודאליות כדי לבנות מערכות חכמות באמת שמודעות להקשר.
ממשיכים לחקור, ממשיכים לפתח ומשדרגים את האפליקציות של הסוכנים החכמים!
באתר Neo4j GraphAcademy אפשר למצוא עוד מדריכים מעשיים בנושא תרשים ידע, ובמאגר הדוגמאות של ADK אפשר למצוא עוד דפוסי סוכנים.
🚀 רוצים לבנות את מערכת הסוכנים החכמה הבאה שלכם?