وكيل الذكاء الاصطناعي يجب أن يسأل المستند ثلاثة أشياء قبل أن يقوم بعرض صفحة واحدة: عدد الصفحات التي يحتويها، حجم كل صفحة، وما إذا كان يحتاج إلى كلمة مرور. يجيب خادم GroupDocs.Viewer.Mcp على السؤالين الأولين باستدعاء واحد بسيط (get_view_info)، يُنفَّذ محليًا على جهازك، ويتم حل سؤال كلمة المرور في الموجه. بعد ذلك يقوم الوكيل بعرض الصفحات التي تهم فقط:

ما هو ملف contract.docx — كم عدد صفحاته، وما حجم الصفحة؟

الإصدار خطوة بخطوة مع الإعدادات واستكشاف الأخطاء موجود في الوثائق: كيفية فحص صفحات المستند قبل عرضها.

لماذا الفحص أولاً؟

كل صفحة ينتجها أداة render_page تعود إلى الوكيل كصورة PNG مضمنة، غالبًا ما تكون بضع مئات من الكيلوبايت. وكيل يقوم بعرض ملف مكوّن من 60 صفحة للعثور على جدول واحد يدفع ثمن 59 صورة لم يكن بحاجة إليها، سواء من حيث الوقت أو نافذة السياق. أداة الفحص، get_view_info، لا تعرض شيئًا. إنها تُعيد كائن JSON صغير، لذا يُتخذ القرار بشأن ما يجب عرضه بناءً على حقائق وليس تخمينات.

النمط قابل لإعادة الاستخدام في أي عميل: Claude Desktop، Claude Code، Cursor، VS Code مع GitHub Copilot أو Windsurf. إنه عادة تُدرجها في الموجه، وليس ميزة تُكوّنها.

السؤال 1: كم عدد الصفحات؟

get_view_info تُعيد pageCount. هذا هو الحارس الوحيد ضد حافة حادة موثقة: render_page لا تتحقق من رقم الصفحة مقابل المستند. اطلب الصفحة 40 من ملف مكوّن من 12 صفحة وستتلقى صورة، محفوظة باسم <name>_page40.png، لصفحة ليست الصفحة 40.

موجه يبني الحارس داخلًا:

كم عدد صفحات التقرير؟ ثم أرني الأخيرة.

بالنسبة لجداول البيانات، العد مهم أكثر. المحرك يقسم الورقة إلى صفحات، ويمكن أن يكون العدد أكبر بكثير مما تبدو عليه الورقة. معرفته مسبقًا تمنع الوكيل من عرض جميعها.

السؤال 2: ما حجم كل صفحة؟

ما حجم الصفحات في هذا PDF — Letter أم A4؟

الاستجابة تُدرج number وwidth وheight لكل صفحة، بالنقاط. 612 × 792 هي US Letter؛ حوالي 595 × 842 هي A4. مستند يحتوي على صفحة أفقية واحدة بين صفحات عمودية يُظهر ذلك في الأحجام، وغالبًا ما تكون تلك الصفحة هي الجدول أو الرسم الذي يُسأل عنه أحدهم.

حقلان آخران، name وvisible، يُملآن حيث يتوفران في التنسيق، مثل أسماء أوراق العمل والشرائح أو الأوراق المخفية. وإلا فهما null وtrue على التوالي.

السؤال 3: هل يحتاج الملف إلى كلمة مرور؟

get_view_info لا يحتوي على حقل حماية، لذا لا يخبرك نوع الملف وعدد الصفحات ما إذا كانت كلمة مرور مطلوبة. ملف محمي بكلمة مرور يحتاج كلمة المرور في كل استدعاء، لأي من الأداتين. قدمها مقدمًا في الموجه:

كلمة المرور لملف contract.pdf موجودة في رسالتي. تحقق من عدد الصفحات، ثم أرني الصفحة 2.

بدون كلمة المرور يفشل الاستدعاء، ويمكن للوكيل أن يطلبها منك بدلاً من التخمين. إذا فشل الاستدعاء، تُعيد get_view_info نصًا يبدأ بـ View-info lookup failed for متبوعًا بنوع الاستثناء والرسالة، بحيث يستطيع الوكيل قراءة السبب وطلب كلمة المرور أو اسم الملف الصحيح.

موجه فحص-ثم-عرض قابل لإعادة الاستخدام

قبل عرض أي شيء من الملف المذكور أدناه، تحقق من نوع الملف، عدد الصفحات، وأحجام الصفحات. أخبرني بما وجدته، ثم اعرض فقط الصفحات اللازمة للإجابة على سؤالي. الملف: contract.docx. السؤال: أين بند الإنهاء؟

يقوم الوكيل باستدعاء get_view_info، يبلّغ عن نوع الملف وعدد الصفحات، يختار الصفحات، ثم يستدعي render_page لكل منها. أداة get_license_status هي الأداة الثالثة على الخادم؛ استخدمها عندما تحتاج إلى معرفة ما إذا كانت الصفحات المعروضة ستحمل علامة مائية.

جلسة مثال

توضيح مبني على شكل الاستجابة الموثقة، وليس لقطة شاشة مُلتقطة.

You:   Inspect report.pdf before rendering anything.

Agent: [calls get_view_info on report.pdf]
       report.pdf: Portable Document Format File (.pdf), 2 pages.
       Page 1: 612 x 792 points (US Letter). Page 2: 612 x 792 points.
       Which page would you like me to render?

ماذا يقرر الوكيل، وماذا يفعل المحرك؟

الخطوة الوكيل المحرك
اختيار الملف يأخذ اسم الملف من الموجه الخاص بك يحلّه في مجلد التخزين، يسرد الملفات المتاحة إذا لم يتطابق الاسم
الفحص يقرر أي الأسئلة مهمة يُعيد نوع الملف، عدد الصفحات، وأحجام الصفحات
اختيار الصفحات يطابق سؤالك بأرقام الصفحات لا شيء
العرض يستدعي render_page لكل صفحة مختارة ينتج صورة PNG

حدود صريحة

  • وضع التقييم. الصفحات المعروضة تحمل علامة مائية للتقييم وتفتح عملية الخادم بحد أقصى 15 مستندًا. اسأل “هل خادم المشاهد مرخص؟” حتى يستدعي الوكيل get_license_status قبل الاعتماد على النتيجة.
  • عدد الصفحات لا يختار الصفحات لك. get_view_info يذكر الصفحات الموجودة، ليس أي منها يحتوي على الجواب. لهذا، اعرض صفحة الفهرس أو بعض المرشحين.
  • PNG فقط. لا يوجد خيار لتحديد صيغة في render_page.

الأسئلة المتكررة

كيف يمكن لوكيل الذكاء الاصطناعي الحصول على عدد صفحات PDF؟ إذا كان خادم Viewer متصلًا، يمكن لـ Claude استدعاء get_view_info وقراءة pageCount دون عرض أي شيء. الجواب يأتي من المستند، لا من تخمين.

هل يمكن لأداة معلومات المستند MCP إخبار الوكيل بأي الصفحات يجب عرضها؟ نعم. أعطه عدد الصفحات والأحجام أولاً، ثم أخبره بما تبحث عنه. سيعرض الصفحات التي تجيب على السؤال.

هل يرفع الفحص المستند إلى أي مكان؟ لا. يقرأ الخادم الملف من المجلد الذي تُعدّه ويُعيد كائن JSON صغير إلى عميلك.

تعمق أكثر