המדריך המלא ל-Qdrant — זיכרון סמנטי לסוכנים
הבסיס לזכירה לפי משמעות, לא לפי מילים
Qdrant הוא סוג של בסיס נתונים חדש יחסית שמכונה 'בסיס נתונים וקטורי' — כזה שיודע לזכור לפי משמעות ולא לפי מילים. בניגוד לבסיסי נתונים מסורתיים (כמו Postgres או MySQL) שמחפשים התאמה מדויקת של טקסט — 'תמצא לי את כל הלקוחות ששמם דוד' — Qdrant יכול לחפש רעיונות: 'תמצא לי שיחות דומות לזו, גם אם השתמשו במילים אחרות'. זו היכולת שמאפשרת למערכות AI מודרניות (ChatGPT, Claude, Perplexity) לזכור את השיחות הקודמות שלכם ולהחזיר תשובה רלוונטית, גם כשהניסוח שונה לחלוטין. Qdrant בקוד פתוח לחלוטין (גרסה 1.14+ נכון לסוף 2025), כתוב בשפת Rust (אחת השפות המהירות בעולם התוכנה) ורץ כשירות רקע על השרת בשתי יציאות רשת — 6333 ל-HTTP ו-6334 ל-gRPC — בדיוק כמו מסד נתונים רגיל, רק שבמקום טבלאות הוא מאחסן 'טביעות אצבע מתמטיות' של משפטים (embeddings) עם תמיכה של עד 4,096 מימדים לוקטור דחוס, וגם וקטורים דלילים (sparse) לחיפוש היברידי. אצלי (אלעד) Qdrant הוא הלב של כל רשת הסוכנים: הוא מחזיק את הזיכרון של Kami בוואטסאפ, את היומן של Box ואת המאגר של Adopter. אצלכם Qdrant יכול להיות הבסיס של צ'אטבוט שזוכר לקוחות, של חיפוש חכם באתר, של מערכת המלצות, או של כל מקום שצריך 'לזכור לפי רעיון ולא לפי מילה'.
מה המדריך מכסה
מה זה Qdrant? בסיס נתונים שמבין משמעות
בקוד פתוח, כתוב ב-Rust, ומריץ חיפוש סמנטי מהיר יותר מכל מתחרה
Qdrant הוא סוג של בסיס נתונים חדש יחסית שנקרא 'מסד וקטורי' (Vector Database). בניגוד ל-Postgres או MySQL שמחפשים התאמה מדויקת של מילים (למשל 'מצא לי את כל הלקוחות ששמם דוד'), Qdrant מחפש התאמה של *משמעות* — ולכן הוא הפך בשנים האחרונות לאחד הרכיבים החשובים בכל מערכת AI רצינית שצריכה 'לזכור' דברים. הוא כתוב בשפת Rust (אחת השפות המהירות ביותר בעולם התוכנה) ובקוד פתוח לחלוטין.
Embeddings — איך טקסט נהפך למספרים
משפט → 768 מספרים → מיקום בחלל
Embedding היא טביעת אצבע מספרית של משפט, של פסקה או אפילו של תמונה — סדרה של מאות מספרים (בדרך כלל 768 או 1536) שמייצגים את ה*משמעות* של התוכן בתוך 'מפה של משמעויות'. לפני ש-Qdrant יכול לעזור לנו למצוא משהו, צריך להפוך את הטקסט ל-embedding כזה, והעבודה הזו נעשית על ידי מודלים ייעודיים (כמו gemini-embedding-001 של גוגל, או text-embedding-3 של OpenAI). אצלי (אלעד) כל שיחה שנכנסת ל-Kami עוברת קודם דרך Gemini שממיר אותה לטביעת אצבע כזו, ורק אחר כך היא נשמרת ב-Qdrant.
Collections — המבנה של הנתונים
כל collection = 'table' עם מימד קבוע
Collection היא סוג של 'ספריית משמעויות' עצמאית בתוך Qdrant — אוסף של וקטורים שכולם חיים באותה מפה (כלומר, נוצרו על ידי אותו מודל embedding עם אותו מספר מימדים). כל נקודה בתוך ה-collection מורכבת מ-id (מזהה ייחודי), מה-vector עצמו (טביעת האצבע המספרית) ומ-payload (חבילת מטא-דאטה ב-JSON — למשל שם משתמש, תאריך או תגיות לסינון). אצלי (אלעד) יש 10 collections כאלו ברשת — אחד לכל מטרה נפרדת.
חיפוש סמנטי — הכוח של Qdrant
k-NN עם filtering — פשוט ומהיר
חיפוש סמנטי הוא הדרך שבה Qdrant מוצא את הוקטורים הכי דומים במשמעות לשאילתה שלכם — התהליך הזה נקרא k-NN (k-Nearest Neighbors, כלומר 'k השכנים הכי קרובים'). ההיגיון פשוט: אתם שולחים וקטור של שאילתה (שנוצר מאותו מודל embedding כמו ה-collection), ו-Qdrant מחזיר לכם את ה-top-k נקודות הכי קרובות אליו, עם אפשרות להוסיף filter — תנאי סינון רגיל על ה-payload, למשל 'רק מהחודש האחרון' או 'רק של משתמש ספציפי'. אצלי (אלעד) זה קורה אלפי פעמים ביום ברחבי רשת הסוכנים.
6 שימושים אמיתיים ברשת שלי
מה באמת נשמר ב-Qdrant
כדי שהמושגים ירגישו מוחשיים — הנה 6 use cases אמיתיים של collections שאני (אלעד) מריץ בייצור כל יום ברשת הסוכנים. כל אחד מהם פותר בעיה אחרת, וביחד הם מהווים את מערכת הזיכרון הארגונית של הרשת.
טיפים מתקדמים
מה שלמדתי בשנה עם Qdrant
האזור הזה הוא הפרטים הקטנים שעושים את ההבדל בין 'יש לי Qdrant' ל'Qdrant שלי עף, חוסך עלויות ומחזיק שנים'. אלו הדברים שלמדתי (אלעד) בשנה של הרצה ב-production עם רשת סוכנים שלמה שנסמכת על הזיכרון הזה כל שנייה.

