إنتقل إلى المحتوى الرئيسي

البحث الوكيلي: تعليم الذكاء الاصطناعي التذكر كالإنسان

· 6 دقائق قراءة
أسامة الغانمي
المؤسس المشارك والقائد التقني

البحث الوكيلي: تعليم الذكاء الاصطناعي التذكر كالإنسان

البحث المتجهي يعثر على نص مشابه. البحث الوكيلي يعثر على سياق ذي صلة. الفرق هو الاستدلال.

مشكلة البحث

يسأل البحث التقليدي: "أي المستندات تحتوي على هذه الكلمات؟"

لكن البشر يسألون: "ماذا قصدت عندما قلت ذلك؟"

مثال على استعلام: "كيف تعاملت مع مصادقة المستخدم؟"

نهج البحث المتجهي:

  • يعثر على مستندات تحتوي "مستخدم" و"مصادقة"
  • يفوّت: جلسات عن "auth"، "login"، "sign-in"
  • يفوّت: سياق لماذا اخترت JWT مقابل sessions
  • يفوّت: سلسلة الخطأ ← الإصلاح ← النجاح

نهج الذاكرة البشرية:

  • "أتذكر أنني عملت على ذلك الشهر الماضي"
  • "كان ذلك لمشروع التجارة الإلكترونية"
  • "جربت OAuth أولاً، ثم انتقلت إلى JWT"
  • "المشكلة كانت في تجديد الرمز"

يبحث البشر بـ الاستدلال، وليس بـ التشابه.

البحث الوكيلي

يجمع البحث الوكيلي:

  1. الفهم الدلالي — ماذا يعني الاستعلام؟
  2. التنقل الزمني — متى حدث هذا؟
  3. التعرف على الـ patterns (أنماط تكرارية في البيانات أو السلوك) — أي نوع من الحلول؟
  4. الاستدلال السببي — ما الذي أدى إلى النجاح؟
const response = await searchEngine.search({
userId: 'user_123',
query: "How did I handle user authentication?",
strategy: 'hybrid', // temporal + semantic + pattern
depth: 3,
limit: 10,
});

// يُرجع:
response.insights.summary
// "Found 3 authentication implementations across 2 projects"

response.insights.patterns
// ["jwt-auth", "oauth-integration", "session-management"]

response.insights.suggestions
// ["Consider reusing the JWT pattern from Project A"]

response.results[0].reasoning
// "Session from March 2025 implemented JWT authentication
// with refresh tokens for the e-commerce project"

أربع استراتيجيات بحث

1. البحث الزمني

"ماذا فعلت الأسبوع الماضي؟"

const response = await searchEngine.search({
userId: 'user_123',
query: "Show me recent authentication work",
strategy: 'temporal',
});

كيف يعمل:

  1. تحليل العلامات الزمنية ("حديث"، "الأسبوع الماضي"، "الثلاثاء")
  2. الترجيح بالحداثة (انحلال أسي)
  3. تعزيز المطابقات من الفترة الزمنية المطلوبة
// تسجيل الصلة
const daysAgo = (Date.now() - session.createdAt) / (1000 * 60 * 60 * 24);
const recencyBoost = Math.max(0.1, 1 - daysAgo / 30);

2. البحث الدلالي

"كيف تعاملت مع أدوار المستخدمين؟"

const response = await searchEngine.search({
userId: 'user_123',
query: "Find my role-based access control implementation",
strategy: 'semantic',
});

كيف يعمل:

  1. استخراج المفاهيم الدلالية ("أدوار"، "وصول"، "صلاحيات")
  2. المطابقة مع التفضيلات وسياق المشروع
  3. الربط المتقاطع مع محتوى الجلسة
const concepts = extractConcepts(query);
// { entities: ['Role', 'User'], patterns: ['guard'], actions: ['authorize'] }

// المطابقة مع الجلسات
const matches = sessions.filter(s =>
s.entities.some(e => concepts.entities.includes(e)) ||
s.patterns.some(p => concepts.patterns.includes(p))
);

3. البحث بالـ patterns

"أرني جميع عروض القوائم التي بنيتها"

const response = await searchEngine.search({
userId: 'user_123',
query: "Find all my list views",
strategy: 'pattern',
});

كيف يعمل:

  1. استخراج مصطلحات الـ patterns ("قائمة"، "جدول"، "شبكة"، "بطاقات")
  2. البحث في سجلات تقارب الـ patterns
  3. إرجاع الجلسات التي تستخدم تلك الـ patterns
const patternTerms = ['list', 'table', 'grid', 'cards'];
const userPatterns = await memoryManager.getUserPatterns(userId);

// إيجاد الـ patterns عالية النجاح
const goodPatterns = userPatterns.filter(p =>
p.successCount / p.usageCount > 0.8
);

4. البحث الهجين

"ما الذي نجح مع النماذج؟" (يجمع جميع الاستراتيجيات)

const response = await searchEngine.search({
userId: 'user_123',
query: "What worked well for forms?",
strategy: 'hybrid',
depth: 3,
limit: 10,
});

يجمع نتائج البحث الزمني والدلالي والـ patterns مع إزالة التكرار.

محرك الاستدلال

البحث الوكيلي لا يُرجع مطابقات فحسب — بل يشرح لماذا تطابقت:

interface SearchResult {
type: 'preference' | 'session' | 'project' | 'pattern';
data: unknown;
relevance: number; // 0-1
reasoning: string; // تفسير مقروء للبشر
source: string; // من أين أتت
}

// مثال على نتيجة
{
type: 'session',
data: { /* سجل الجلسة */ },
relevance: 0.87,
reasoning: "Session from March 2025 contains 'User' entity with
'role' field and uses 'guard-clause' pattern.
User previously marked this pattern as successful.",
source: 'generation_history'
}

توليد الرؤى

بعيداً عن النتائج الفردية، يولّد البحث الوكيلي رؤى:

interface Insights {
summary: string; // ما تم إيجاده
patterns: string[]; // الـ patterns الشائعة
trends: string[]; // الاتجاهات الزمنية
suggestions: string[]; // الخطوات التالية القابلة للتنفيذ
}

// مثال
{
summary: "Found 12 sessions involving forms across 3 projects",
patterns: ["form-section", "validation-rules", "wizard-flow"],
trends: [
"High success rate (92%) with form-section pattern",
"Validation errors decreased after adopting std/validate"
],
suggestions: [
"Consider reusing the wizard-flow pattern for complex forms",
"Add entity-form to your preferred patterns"
]
}

مثال واقعي

استعلام المستخدم: "كيف بنيت تدفق الدفع؟"

عملية البحث الوكيلي:

  1. استخراج المفاهيم

    concepts = {
    entities: ['Order', 'Payment', 'Cart'],
    patterns: ['wizard', 'form', 'validation'],
    actions: ['checkout', 'purchase', 'pay']
    }
  2. البحث الزمني

    • وجد 5 جلسات من آخر 3 أشهر
    • مُرجَّحة بالحداثة
  3. البحث الدلالي

    • طابق "checkout" في الطلبات
    • وجد entities ذات صلة (Order, Cart)
  4. البحث بالـ patterns

    • وجد استخدام pattern الـ wizard-flow
    • معدل نجاح 90%
  5. توليد الرؤى

    {
    summary: "Found checkout implementation using 3-step wizard",
    patterns: ["wizard-flow", "form-section", "validation-rules"],
    trends: [
    "Most successful: 3-step wizard (92% completion)",
    "Less successful: single-page checkout (67%)"
    ],
    suggestions: [
    "Reuse wizard-flow for future checkout flows",
    "Consider adding progress indicator pattern"
    ]
    }

مثال كود: استخدام البحث الوكيلي

// داخلي: محرك البحث الوكيلي في المدار
// (هكذا يعمل من الداخل — ليس واجهة برمجية عامة)
const searchEngine = createSearchEngine(memoryManager);

// البحث عن أنماط المصادقة
const response = await searchEngine.search({
userId: 'user_123',
query: "How did I handle authentication in the e-commerce project?",
strategy: 'hybrid',
depth: 3,
limit: 10,
});

// عرض الملخص
console.log(response.insights.summary);
// "Found 4 authentication implementations across 2 projects"

// عرض الـ patterns المستخدمة
response.insights.patterns.forEach(pattern => {
console.log(`- ${pattern}`);
});
// - jwt-auth
// - oauth-integration
// - session-management

// عرض أعلى النتائج مع الاستدلال
response.results.slice(0, 3).forEach(result => {
console.log(`${result.type}: ${result.reasoning} (${result.relevance})`);
});

// session: Session from March 2025 implemented JWT authentication
// with refresh tokens for the e-commerce project (0.92)
//
// pattern: Pattern 'jwt-auth' has 95% success rate across 12 uses (0.88)
//
// preference: User prefers JWT over session-based auth (0.85)

// تنفيذ إجراء بناءً على الاقتراحات
if (response.insights.suggestions.length > 0) {
console.log("\nSuggested actions:");
response.insights.suggestions.forEach(s => console.log(`- ${s}`));
}
// - Consider reusing the JWT pattern from E-Commerce project
// - Add 'jwt-auth' to your preferred patterns

المقارنة: المتجهي مقابل الوكيلي

الجانبالبحث المتجهيالبحث الوكيلي
الاستعلام"authentication""كيف تعاملت مع المصادقة؟"
الطريقةتشابه التضميناتاستدلال + تنقل
النتائجنص مشابهسياق ذو صلة
الزمنيطابع زمني فقطstate transitions
السببيلا يوجدسلاسل خطأ ← إصلاح
التفسيردرجة تشابهاستدلال مقروء للبشر
الرؤىلا يوجدpatterns، اتجاهات، اقتراحات

تشبيه واقعي: أمين المكتبة مقابل مساعد البحث

البحث المتجهي = أمين المكتبة:

  • أنت: "كتب عن الفضاء"
  • أمين المكتبة: "إليك كل شيء يحتوي 'فضاء' في العنوان"
  • النتيجة: 500 كتاب، معظمها غير ذي صلة

البحث الوكيلي = مساعد البحث:

  • أنت: "ما الذي استنتجناه عن مهمات المريخ؟"
  • المساعد: "قرأت 'Red Mars' في 2023، واستنتجت أننا نحتاج حماية أفضل من الإشعاع. ذو صلة: ملاحظاتك في 2024 عن أنظمة دعم الحياة في SpaceX Starship. اقتراح: تحقق من تقرير ناسا الجديد عن تخفيف الإشعاع."
  • النتيجة: ذات صلة بدقة، مع سياق واقتراحات

الخلاصة

يجيب البحث المتجهي: "ما الذي يشبه هذا النص؟"

يجيب البحث الوكيلي: "ما الذي أحتاج معرفته الآن؟"

الفرق هو الاستدلال:

  • فهم نية الاستعلام
  • التنقل في السياق الزمني
  • التعرف على الـ patterns
  • رسم الـ bindings (الروابط بين البيانات)
  • اقتراح الخطوات التالية

هكذا يتذكر البشر. وهكذا يتذكر ذكاؤنا الاصطناعي أيضاً.

تعلم المزيد عن الذاكرة المدارية.

أحدث المنشورات