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

التعلم من المقاطعات: كيف يتذكر ذكاؤنا الاصطناعي تفضيلاتك (بدون أن يكون مخيفاً)

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

في كل مرة توافق أو ترفض إجراء الذكاء الاصطناعي، فإنه يتعلم. بعد 5 موافقات، يتم تنفيذ ذلك الإجراء تلقائياً.

مشكلة الإنسان في الحلقة

يحتاج وكلاء الذكاء الاصطناعي إلى إشراف. قد يقومون بـ:

  • تنفيذ أمر خاطئ
  • اقتراح عمليات غير آمنة
  • إجراء استدعاءات API مكلفة
  • الوصول إلى بيانات حساسة

لذلك نضيف مقاطعات:

الذكاء الاصطناعي: "أريد تنفيذ: rm -rf /data/old-logs"
[موافقة] [رفض] [تعديل]

لكن هذا يخلق احتكاكاً. كل إجراء يحتاج موافقة. يبدو الذكاء الاصطناعي بطيئاً.

الحل؟ التعلم من المقاطعات.

كيف تعمل ذاكرة المقاطعة

الخطوة 1: تسجيل القرار

عندما توافق أو ترفض:

await sessionManager.recordInterruptDecision(
sessionId,
userId,
{
toolName: 'execute',
toolArgs: { command: 'rm -rf /data/old-logs' },
decision: 'approved',
reason: 'Safe cleanup of old logs',
}
);

ينشئ هذا سجل مقاطعة:

interface InterruptRecord {
interruptId: string;
sessionId: string;
userId: string;
toolName: string;
toolArgs: Record<string, unknown>;
decision: 'approved' | 'rejected' | 'modified';
modifiedArgs?: Record<string, unknown>;
reason?: string;
timestamp: Date;
}

الخطوة 2: تحديث تفضيلات الأداة

يحدث كل قرار تفضيل موافقة الأداة:

interface ToolApprovalPreference {
userId: string;
toolName: string;
autoApprove: boolean;
confidence: number;
approvedCount: number;
rejectedCount: number;
lastDecisionAt: Date;
}

خوارزمية التعلم:

// بعد كل قرار
const approvedCount = previous.approvedCount + (decision === 'approved' ? 1 : 0);
const rejectedCount = previous.rejectedCount + (decision === 'rejected' ? 1 : 0);
const total = approvedCount + rejectedCount;
const approvalRate = approvedCount / total;

// تتم الموافقة التلقائية إذا:
// - 5 قرارات على الأقل (حد أدنى لحجم العينة)
// - معدل الموافقة > 80%
const autoApprove = total >= 5 && approvalRate > 0.8;

// الثقة تنمو مع المزيد من البيانات
const confidence = Math.min(0.95, total * 0.1);

الخطوة 3: الموافقة التلقائية على الإجراءات المستقبلية

في المرة القادمة التي يريد الذكاء الاصطناعي استخدام تلك الأداة:

const shouldAutoApprove = await sessionManager.shouldAutoApproveTool(
userId,
'execute'
);

if (shouldAutoApprove) {
// التنفيذ بدون مقاطعة
} else {
// عرض حوار الموافقة
}

مثال واقعي

الأسبوع 1: مستخدم جديد، كل شيء يُقاطَع

الإجراءالقرارالعدد
تنفيذ lsموافقة1/0
تنفيذ cat file.txtموافقة2/0
تنفيذ rm temp.txtموافقة3/0
تنفيذ git statusموافقة4/0
تنفيذ git commitموافقة5/0

الأسبوع 2: يظهر pattern (نمط تكراري)

الإجراءالقرارالإحصائيات
تنفيذ lsموافقة تلقائية6/0 (100%)
تنفيذ catموافقة تلقائية4/0 (100%)
تنفيذ rmمقاطعة3/2 (60%)
تنفيذ npm publishمقاطعة1/3 (25%)

النتيجة:

  • تنفذ الأوامر الآمنة والشائعة فوراً
  • العمليات المدمرة لا تزال تحتاج موافقة
  • الإجراءات عالية المخاطر تُقاطَع دائماً

الخصوصية والتحكم

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

يمكن للمستخدمين:

  • عرض جميع القرارات المسجلة
  • حذف سجل المقاطعات
  • تعطيل الموافقة التلقائية عالمياً
  • طلب الموافقة لأدوات محددة
// تعطيل الموافقة التلقائية للأدوات الخطرة
await memoryManager.updateToolPreference(userId, 'execute', {
autoApprove: false, // السؤال دائماً عن أوامر الصدفة
});

ما نخزنه

نخزن:

  • أسماء الأدوات (execute, persist, call-service)
  • القرار (موافقة/رفض)
  • الطابع الزمني
  • patterns مجهولة الهوية

لا نخزن:

  • قيم المعاملات الحساسة
  • محتويات الملفات
  • استجابات API
  • كلمات المرور أو الأسرار

الشفافية

كل إجراء يُوافَق عليه تلقائياً يُسجَّل:

[2025-04-11 10:23:45] Auto-approved: execute
Reason: 95% approval rate over 20 decisions
User: user_123
Session: sess_456

منحنى التعلم

الأدوات المختلفة تتعلم بسرعات مختلفة:

الأداةسرعة التعلملماذا
read_fileسريعةمخاطر منخفضة، متسقة
write_fileمتوسطةمخاطر متوسطة
executeبطيئةمخاطر عالية، تعتمد على السياق
call_serviceأبداًتحتاج دائماً موافقة

عتبات الثقة

const THRESHOLDS = {
read_file: { minDecisions: 3, minRate: 0.9 },
write_file: { minDecisions: 5, minRate: 0.85 },
execute: { minDecisions: 10, minRate: 0.9 },
call_service: { minDecisions: Infinity, minRate: 1.0 }, // لا موافقة تلقائية أبداً
};

مثال كود: التدفق الكامل

// داخلي: نظام تعلم المقاطعات في المدار
// (هكذا يعمل من الداخل — ليس واجهة برمجية عامة)

const memoryManager = createMemoryManager(db);
const sessionManager = createSessionManager({
memoryManager,
});

// الوكيل يُنشأ مع تفعيل تعلم المقاطعات
const agent = createAgent({
skill: 'kflow-orbitals',
workDir: '/workspace',
userId: 'user_123',
// إعدادات المقاطعة بناءً على التفضيلات المُتعلَّمة
noInterrupt: false,
});

// تشغيل الوكيل
const result = await agent.run({
input: 'Create a User entity',
});

// أثناء التنفيذ، اتخذ المستخدم هذه القرارات:
// - موافقة: execute 'ls'
// - موافقة: execute 'orbital validate'
// - موافقة: execute 'git status'
// - رفض: execute 'rm -rf /'
// - موافقة: execute 'orbital compile'

// تسجيل جميع المقاطعات
for (const interrupt of result.interrupts) {
await sessionManager.recordInterruptDecision(
threadId,
'user_123',
{
toolName: interrupt.toolName,
toolArgs: interrupt.toolArgs,
decision: interrupt.decision,
reason: interrupt.reason,
}
);
}

// التحقق مما تعلمناه
const preferences = await memoryManager.getUserToolPreferences('user_123');
for (const pref of preferences) {
console.log(`${pref.toolName}: ${pref.approvedCount}/${pref.rejectedCount} ` +
`(${Math.round(pref.approvedCount/(pref.approvedCount+pref.rejectedCount)*100)}%) ` +
`- Auto: ${pref.autoApprove}`);
}

// الإخراج:
// execute: 4/1 (80%) - Auto: false (need 5+ at 80%)
// validate: 1/0 (100%) - Auto: false (need 3+ at 90%)
// compile: 1/0 (100%) - Auto: false

تشبيه واقعي: مساعد المنزل الذكي

فكر فيها كمنزل ذكي:

الأسبوع 1:

  • أنت: "أطفئ الأضواء"
  • المساعد: "هل أطفئ جميع الأضواء؟" [نعم] [لا]
  • أنت: [نعم]

الأسبوع 2:

  • أنت: "أطفئ الأضواء"
  • المساعد: يطفئ الأضواء (تعلّم أنك تقول نعم دائماً)

لكن:

  • أنت: "افتح قفل الباب الأمامي"
  • المساعد: "تأكيد فتح القفل؟" [نعم] [لا]
  • يسأل دائماً لأن الأمان > الراحة

يتعلم المساعد الـ patterns لكنه يحترم الحدود.

الفوائد

للمستخدمين

  • احتكاك أقل مع مرور الوقت
  • لا يزالون في السيطرة
  • تعلم شفاف
  • يحترم الخصوصية

لوكلاء الذكاء الاصطناعي

  • تنفيذ أسرع
  • تجربة مستخدم أفضل
  • فهم سياقي
  • إعدادات افتراضية أكثر أماناً

للفرق

  • patterns متسقة عبر المستخدمين
  • سجل تدقيق للقرارات
  • تحديد استخدام الأدوات الخطرة

الخلاصة

لا يجب أن تكون المقاطعات مزعجة. يمكن أن تكون فرص تعلم.

تعلم كل موافقة الذكاء الاصطناعي:

  • ما تعتبره آمناً
  • سير العمل المفضل لديك
  • أي الإجراءات تحتاج تدقيقاً

مع مرور الوقت، يصبح الذكاء الاصطناعي امتداداً لنيتك — سريع عندما يجب أن يكون سريعاً، وحذر عندما يجب أن يكون حذراً.

هذا ليس مجرد أتمتة. هذا تعاون.

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

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