كيف تعمل قاعدة المعرفة
الملاحظات والملفات وصفحات الويب التي يستخدمها الذكاء الاصطناعي حين يقترح الردود ويكتب مسودات الرسائل ويجيب في المساعد، محفوظة لمساحة العمل كلها أو لنطاق واحد أو لعنوان واحد.
ما هي
تحتفظ قاعدة المعرفة بما ينبغي أن يعرفه الذكاء الاصطناعي عن عملك ولا يمكنه تعلّمه من البريد نفسه: الأسعار والسياسات وساعات العمل وحقائق المنتجات والطريقة التي يجيب بها فريقك. تضيف ملاحظات وملفات وصفحات ويب، فيقرأ الذكاء الاصطناعي الأجزاء المهمة كلما كتب نيابةً عنك.
لكل مساحة عمل مخزن واحد بثلاثة مستويات، فيبقى الجواب الذي يخص علامة تجارية واحدة أو فريقًا واحدًا معه. تُقرأ وتُغيَّر في التطبيق من مساحة العمل ← قاعدة المعرفة، وعبر REST API، ومن حزم SDK وCLI، وعبر المساعد وعملاء MCP.
ثلاثة مستويات
يقع كل عنصر في مستوى واحد هو scope الخاص به. يقرأ الذكاء الاصطناعي الذي يكتب لعنوان ذلك العنوان، ثم نطاقه، ثم مساحة العمل كلها، وحين يتعارض عنصران يغلب الأكثر تحديدًا.
| المستوى | `scope` | يُقرأ لـ |
|---|---|---|
| مساحة العمل كلها | فارغ | كل عنوان في مساحة العمل |
| النطاق | @acme.com | كل عنوان على ذلك النطاق، بما في ذلك العناوين المضافة لاحقًا |
| العنوان | [email protected] | ذلك العنوان وحده |
- عنوان علامة الجمع يقرأ عنوانه الأساسي أيضًا، فيستخدم
[email protected]ما هو محفوظ لـ[email protected]. - يعرض
GET /knowledge/levelsكل مستوى يمكنك رؤيته، وعدد العناصر في كل منها، وهل يمكنك تغيير العناصر هناك. - نقل نطاق إلى مساحة عمل أخرى ينقل معه العناصر المحفوظة له ولعناوينه.
الملاحظات والملفات وصفحات الويب
- الملاحظة نص تكتبه في مكانه، حتى 20,000 حرف، وبصيغة Markdown إن شئت. وغالبًا ما تكون جاهزة للذكاء الاصطناعي خلال ثانية أو ثانيتين.
- يُقرأ الملف نصًا في الخلفية: ملفات PDF ومستندات Word وجداول البيانات (Excel وOpenDocument وNumbers وCSV) ونصوص OpenDocument وHTML وXML وMarkdown والنص العادي وJSON والصور (JPEG وPNG وWebP وSVG). يمكن أن يصل المستند إلى 20 MB والصورة إلى 10 MB.
- تُجلب صفحة الويب من عنوان
httpأوhttpsعام وتُقرأ في الخلفية، حتى 5 MB منها. يحتفظ المستوى بالصفحة مرة واحدة، وتحديثها يجلبها من جديد بعد أن تتغير. - يُحتفظ بما يصل إلى 1,000,000 حرف من نص العنصر الواحد، ويُقسَّم النص إلى مقاطع تحت عناوينه للبحث.
يكون العنصر queued ثم processing أثناء قراءته، وready حين يستطيع الذكاء الاصطناعي استخدامه، وfailed مع failure يذكر السبب حين تتعذّر قراءته. يعود العنصر المعدّل إلى queued، ويواصل الذكاء الاصطناعي استخدام نصه السابق حتى يجهز الجديد. تحديث العنصر يقرؤه من جديد ويمحو الإخفاق.
| الخطة | العناصر | أحرف النص |
|---|---|---|
| Free | 50 | 1,000,000 |
| Starter | 500 | 10,000,000 |
| Business | 2,000 | 50,000,000 |
| Enterprise | 10,000 | 200,000,000 |
يُحتسب العنصر ضمن المخصص بمجرد إضافته، وأحرفه بمجرد قراءة نصه. تُرفض الإضافة التي تتجاوز المخصص، ويُحتفظ بالملف أو الصفحة الذي سيتجاوز نصه المخصص على أنه مخفق. يقرأ GET /knowledge/usage كلا الرقمين.
كيف يستخدمها الذكاء الاصطناعي
- اقتراحات الرد تحت آخر رسالة في المحادثة تقرأ مستويات العنوان الذي وصلت إليه الرسالة.
- المسودة المكتوبة من وصف، في المحرر أو بـ
POST /emails/compose، تقرأ مستويات العنوان الذي تخرج منه. ويذكر الرد فيsourcesالعناصر التي اعتمد عليها. - يقرأ المساعد مستويات المحادثة المفتوحة لديك، أو كل مستوى يمكنك رؤيته حين لا تكون أي محادثة مفتوحة، ويمكنه البحث في قاعدة المعرفة بنفسه بأداته
searchKnowledge. - يسرد رد
GET /threads/{id}/reply-suggestionsفيsourcesالعناصر التي استندت إليها الاقتراحات.
تدخل الملاحظات المثبّتة في كل موجّه في مستواها، حتى 2,000 حرف من كل مستوى، سواء طابقت ما يُكتب أم لا. ويذهب باقي المساحة، نحو 6,000 حرف إجمالًا، إلى المقاطع الأكثر مطابقة للطلب، والتي يُعثر عليها بالمعنى وبالكلمات. وإن لم يستجب الفهرس خلال لحظة، يكتب الذكاء الاصطناعي من دونه بدل أن يجعلك تنتظر.
يُطلب من الذكاء الاصطناعي أن يعامل ما تقوله قاعدة المعرفة كبيانات مرجعية لا كتعليمات أبدًا، وأن يترك ما لا ينطبق، وألا يذكر قاعدة المعرفة فيما يكتبه.
كيف تنمو
أضف العناصر في التطبيق من مساحة العمل ← قاعدة المعرفة، أو من الشيفرة عبر API وحزم SDK وCLI. يستطيع المساعد وعملاء MCP حفظ ملاحظة أو إضافة رابط حين تطلب منهم تذكّر شيء ما، ويمكنهم أيضًا تغيير العناصر وتحديثها وحذفها. في محادثة التطبيق، تسأل إضافة عنصر وتغييره وتحديثه أولًا ما لم تطلب ذلك بنفسك، ويسأل الحذف أولًا دائمًا.
يسجّل كل عنصر مصدره في origin: app أو api أو assistant أو mcp، ومن أضافه في createdBy.
وهي تنمو من تلقاء نفسها أيضًا. يقترح الذكاء الاصطناعي ملاحظات من الردود التي يرسلها فريقك ويدوّن الأسئلة التي لا يجيب عنها شيء بعد، وتُبقي الموصّلات مواقع كاملة وخرائط مواقع وخلاصات ومراكز مساعدة محدّثة، ويمكن إعادة قراءة الروابط وفق جدول. تشرح الأقسام التالية كلًّا منها.
اقتراحات مستفادة من ردودك
حين يرد شخص من مساحة العمل في محادثة، يقرأ الذكاء الاصطناعي الرد والرسالة التي يجيب عنها، ويقترح منه حتى ثلاث معلومات تصلح لغيره من الناس أيضًا، مثل سعر أو سياسة أو مدة توصيل. كل اقتراح ملاحظة تنتظر المراجعة، في مستوى النطاق الذي أُرسل منه الرد، أو في مساحة العمل كلها حين لا يكون ذلك النطاق من نطاقاتها. تُستبعد المعلومات الموجودة في قاعدة المعرفة أصلًا، ويُقرأ حتى 100 رد في اليوم.
راجعها في التطبيق أو عبر GET /knowledge/suggestions. اقبل اقتراحًا لحفظه كملاحظة، مع تغيير عنوانه أو نصه أو مستواه أو تثبيته في الطريق، أو ارفضه. المعلومة نفسها إذا اقتُرحت مجددًا تزيد occurrences بدل إضافة اقتراح ثانٍ، والاقتراح المرفوض لا يُقترح مرة أخرى.
أسئلة لا يجيب عنها شيء بعد
حين يقترح الذكاء الاصطناعي ردودًا على رسالة واردة، يدوّن أيضًا حتى ثلاثة أشياء سأل عنها المرسل بشأن النشاط التجاري ولا تجيب عنها المحادثة ولا قاعدة المعرفة، مثل ما إذا كنت تشحن إلى بلده. يصبح كل منها سؤالًا في مستوى النطاق الذي وصلت إليه الرسالة، أو في مساحة العمل كلها حين لا يكون ذلك النطاق من نطاقاتها، والسؤال نفسه إذا طُرح مجددًا يزيد occurrences، فترى أيها يتكرر أكثر.
أجب عن سؤال فيصبح ملاحظة: اقبله مع الإجابة نصًّا له، ويبقى عنوانه هو السؤال ما لم تغيّره. ومن ذلك الحين يستخدم الذكاء الاصطناعي الإجابة كلما طُرح السؤال. ارفض سؤالًا لا يحتاج إلى إجابة، فلا يُدوَّن مرة أخرى.
التكرارات والتعارضات
يُقارن كل عنصر بأقرب العناصر في كل المستويات حين تتم فهرسته، ثم مجددًا كلما تغيّر. العنصران اللذان يقولان الشيء نفسه تقريبًا يُعلَّمان بـduplicate. والعنصران الوثيقا الصلة اللذان يختلفان في معلومة، مثل سعر أو موعد نهائي، يُعلَّمان بـconflict مع جملة واحدة عمّا يختلفان فيه. يفحص الذكاء الاصطناعي التعارضات حتى 200 مرة في اليوم.
- يعدّ كل عنصر في
flagsالتنبيهات المفتوحة التي تذكره، ويسردهاGET /knowledge/flagsبدءًا من الأحدث. - غيّر أحد العنصرين أو احذفه لحسم التنبيه. ويُقارن العنصر المعدّل مجددًا بعد فهرسته.
- ارفض التنبيه حين يكون العنصران سليمين كما هما، فلا يُعلَّم الزوج نفسه للسبب نفسه مرة أخرى.
- لا يرى التنبيه إلا من يستطيع رؤية العنصرين كليهما.
الموصّلات
يحفظ الموصّل في قاعدة المعرفة صفحات كثيرة من مصدر واحد، كل صفحة عنصرَ رابط في مستوى الموصّل، ويُبقيها محدّثة حين يتغيّر المصدر.
| النوع | ما يقرؤه |
|---|---|
| site | الصفحة التي تحددها والصفحات التي تربط إليها على المضيف نفسه وتحت المسار نفسه، باستثناء ما يمنعه ملف robots.txt للموقع |
| sitemap | كل صفحة تسردها خريطة موقع، أو فهرس خرائط مواقع وحتى 5 من خرائطه |
| feed | إدخالات خلاصة RSS أو Atom |
| zendesk | المقالات المنشورة في مركز مساعدة Zendesk، انطلاقًا من عنوانه مثل https://example.zendesk.com |
- تبدأ المزامنة الأولى خلال دقيقة. وبعدها يزامن مجددًا كل 7 أيام، أو كل يوم أو 30 يومًا، أو فقط حين تطلب مزامنة، وهي تبدأ أيضًا خلال دقيقة.
- يحتفظ بما يصل إلى 25 صفحة، أو بالعدد الذي تحدده حتى 200، وتُحتسب عناصره ضمن حصة الخطة. وتتوقف المزامنة عن إضافة الصفحات حين تُبلغ الحصة.
- تضيف كل مزامنة الصفحات الجديدة، وتعيد قراءة ما تغيّر، وتزيل عناصر الصفحات التي اختفت من المصدر.
- الصفحة التي أضفتها بنفسك كرابط في المستوى نفسه تبقى مع ذلك العنصر، وحذف الموصّل لا يزيل إلا العناصر التي أضافها.
- نقل الموصّل إلى مستوى آخر ينقل عناصره معه.
روابط تبقى محدّثة
يمكن إعادة قراءة الرابط تلقائيًا كل يوم أو 7 أيام أو 30 يومًا: اضبط refreshDays حين تضيفه أو لاحقًا. وحين تتغيّر الصفحة يحل نصها الجديد محل القديم فور قراءته، ويواصل الذكاء الاصطناعي استخدام النص القديم حتى ذلك الحين. يبيّن nextRefreshAt موعد القراءة التالية، والصفحة التي يتعذّر جلبها تُعاد محاولتها في اليوم التالي.
حفظ ملاحظة من محادثة
يستطيع الذكاء الاصطناعي قراءة محادثة وصياغة ملاحظة واحدة من المعلومات التي سيحتاجها الفريق مجددًا، مع استبعاد البيانات الشخصية وما يخص تلك المحادثة وحدها. لا يُحفظ شيء حتى تقرر الاحتفاظ به: اقرأ المسودة وغيّرها كما تشاء ثم احفظها كملاحظة، تسجّل في threadId المحادثة التي جاءت منها.
تقترح المسودة مستوى: النطاق الذي وصلت إليه المحادثة إن كان يحق لك إضافة عناصر فيه، وإلا فمساحة العمل كلها أو العنوان. كل مسودة إجراء ذكاء اصطناعي واحد. ومن الشيفرة، صُغ المسودة عبر POST /knowledge/drafts الذي يحتاج threads:read إضافة إلى knowledge:write، واحفظها عبر POST /knowledge/notes مع threadId نفسه.
إعادة ترتيب نتائج البحث
يجد البحث المقاطع بالمعنى وبالكلمات. أرسل rerank: true مع POST /knowledge/search فيقرأ الذكاء الاصطناعي أيضًا أفضل 25 مقطعًا ويرتبها بالترتيب الذي يجيب عن السؤال على أفضل وجه، ويستبعد ما لا يفيد. يضيف ذلك ثانية أو ثانيتين ويُحتسب إجراء ذكاء اصطناعي واحدًا، لذا لا يجري إلا حين تطلبه. يبيّن reranked في الرد ما إذا حدث ذلك، وحين لا ينتهي في الوقت المناسب تحتفظ المقاطع بترتيبها المعتاد.
إحصاءات الاستخدام
يعرض GET /knowledge/stats كيف استخدم الذكاء الاصطناعي قاعدة المعرفة خلال آخر 30 يومًا، أو حتى 90 يومًا حين تطلب ذلك.
- كم مرة وجد اقتراح رد أو مسودة أو المساعد أو بحث شيئًا، وكم مرة بحث ولم يجد شيئًا، ونسبة ما وُجد فيه شيء، يومًا بيوم.
- أين حدثت هذه الاستخدامات:
composeوreplyوchatوtoolوsearch. - العناصر الأكثر استخدامًا، وعدد العناصر الجاهزة التي لم تُستخدم قط. يحمل كل عنصر عدّاده الخاص في
uses، معlastUsedAtلآخر استخدام. - عدد الاقتراحات والأسئلة التي تنتظر المراجعة، وعدد التنبيهات المفتوحة.
إيقاف التعلّم
إعداد مساحة العمل knowledgeLearning مفعّل افتراضيًا. أوقفه عبر PATCH /settings و{ "knowledgeLearning": false } فيتوقف الذكاء الاصطناعي عن قراءة الردود المرسلة بحثًا عن معلومات يقترحها، وعن تدوين الأسئلة من البريد الوارد، وعن فحص العناصر بحثًا عن تعارضات. وتظل التكرارات تُعلَّم، ويبقى ما اقتُرح من قبل لتقبله أو ترفضه.
من يمكنه قراءتها وتغييرها
- القراءة تتطلب
knowledge:readوالتغيير يتطلبknowledge:write، وهو يشمل القراءة. يمكن للأدوار المدمجة Admin وMember وDeveloper تغيير العناصر، ويمكن لـViewer قراءتها، ولا يصل إليها Billing. - تغيير عنصر يتطلب الوصول إلى كل عنوان يغطيه مستواه: مساحة العمل كلها تتطلب كل عنوان، والنطاق يتطلب النطاق كله، والعنوان يتطلب ذلك العنوان. المفتاح أو التطبيق المقصور على عناوين معيّنة لا يستطيع تغيير العناصر إلا في تلك العناوين، أو في النطاقات التي يملكها كاملة.
- من يقتصر على عناوين معيّنة يقرأ عناصر مساحة العمل كلها وعناصر عناوينه ونطاقات تلك العناوين. ولا يضيف المساعد وأدوات MCP التي تعمل نيابةً عنه العناصر أو يغيّرانها إلا في العناوين التي يمكنه الإرسال منها.
الخصوصية
- نص كل عنصر مشفّر أثناء التخزين: محتوى الملاحظة، والنص المقروء من ملف أو صفحة، وكل مقطع. وتُخزَّن الكلمات التي يطابقها البحث بالكلمات كتجزئات بمفتاح، لا ككلمات.
- تُحوَّل الملفات إلى نص ويقرأ OpenEmail صفحات الويب. تذكر سياسة الخصوصية كل خدمة تعالج بياناتك.
- للبحث بالمعنى، يُحوَّل كل مقطع وكل سؤال إلى متجه: قائمة أرقام تصف موضوعه. تُخزَّن المتجهات غير مشفرة بجانب النص المشفر، كما في البحث بالمعنى في البريد.
- تذهب المقاطع التي يستخدمها الموجّه إلى نموذج الذكاء الاصطناعي الذي يكتب الرد أو المسودة أو الإجابة، كما يذهب باقي الموجّه.
- حذف عنصر يزيل ملفه ونصه ومقاطعه دفعة واحدة. قاعدة المعرفة جزء من تصدير مساحة العمل، وحذف مساحة العمل يحذفها.
- ما دام التعلّم مفعّلًا، يقرأ نموذج الذكاء الاصطناعي كل رد يُرسل في محادثة مع الرسالة التي يجيب عنها ليقترح ملاحظات، ويقرأ عنصرين وثيقي الصلة ليفحص ما إذا كانا متعارضين. والإعداد
knowledgeLearningيوقف الأمرين كليهما.
من الشيفرة والطرفية والوكلاء
كل ما سبق موجود في REST API تحت /knowledge، وفي حزم SDK باسم openemail.knowledge (TypeScript) وclient.knowledge (Python وRuby وPHP)، وفي CLI باسم openemail knowledge، وفي أدوات MCP. يحتاج المفتاح إلى knowledge:read للقراءة وإلى knowledge:write لتغيير العناصر.