Loading blog posts...
Loading blog posts...
جاري التحميل...

لنكن صرحاء، نصف ما يُسمى "ترقيات الذكاء الاصطناعي" هذه الأيام ليس سوى تعديلات في الأسعار وواجهة مستخدم جديدة. لقد رأيت الكثير من ذلك.
لكن نموذج Gemini 3.1 Pro مختلف: إنه معاينة تعطي الأولوية للمنطق (reasoning-first) - (تاريخ الإصدار 19 فبراير 2026) - مع عمق تفكير قابل للتحكم، وسياق متعدد الوسائط بحجم مليون رمز (token)، ومخرجات ضخمة تكفي لإنشاء منتجات برمجية حقيقية. إليك الأمر ببساطة: إذا تعاملت الفرق معه على أنه مجرد "Chatbot" أكثر ذكاءً، فسوف تفوتهم الفائدة الحقيقية: سير عمل يعتمد على الأدوات (tool-driven) ويتصرف مثل مهندس مبتدئ يمتلك آلة حاسبة، ونظام ملفات، وكاميرا.
gemini-3.1-pro-preview مع تفكير ديناميكيحاجة شائعة جداً في عام 2026 هي التبديل بين "إجابة سريعة" و"إجابة متأنية ودقيقة" دون الحاجة لتغيير النموذج المستخدم.
bashpip install -U google-genai export GEMINI_API_KEY="[YOUR_API_KEY]"
pythonfrom google import genai client = genai.Client(api_key=os.environ["GEMINI_API_KEY"]) resp = client.models.generate_content( model="gemini-3.1-pro-preview", contents="Summarize the risk trade-offs of using long-context LLMs for legal review.", config={ "thinking_level": "medium", # low | medium | high | max "temperature": 0.2, "max_output_tokens": 1500, }, ) print(resp.text)
المعلمة thinking_level هي "مقبض التحكم" الجديد الذي يهم فعلياً في بيئة الإنتاج. من واقع تجربتي، المستوى "medium" هو أفضل نقطة للبدء لأنه يتجنب مشكلتين كلاسيكيتين: المستوى "low" قد يتجاهل القيود متعددة الخطوات، بينما المستوى "max" قد يرفع زمن الاستجابة (latency) والتكلفة دون تحسين صحة الإجابة في المهام المباشرة. ما أراه عادةً هو أن الفرق تقوم بتوجيه الطلبات: low للتصنيف والاستخراج، medium للتخطيط والتلخيص، وhigh/max للمنطق المعقد، وحلقات الأدوات، ومطابقة السياقات الطويلة.
Important
[!IMPORTANT]
تعامل مع thinking_level كجزء من عقد الـ API الخاص بك. إذا قمت بتغييره، فقد غيرت السلوك. قم بإدارته كإصدارات (Versioning) تماماً كما تفعل مع الـ Prompts.
thinking_level)إذا كانت معايير أداء Gemini 3.1 Pro (حوالي 77.1% في ARC-AGI-2 ونتائج ممتازة في GPQA Diamond) تنطبق على مجالك، فإن التأثير العملي ليس "أنه أكثر ذكاءً". بل هو "أنه يظل ذكياً حتى عندما تصبح التوجيهات (prompts) فوضوية" - ونعم، الـ Prompts الحقيقية تصبح فوضوية بسرعة.
استخدم قالب التوجيه (routing template) هذا للحفاظ على زمن استجابة متوقع.
pythondef pick_thinking_level(task: str) -> str: task = task.lower() if any(k in task for k in ["classify", "extract", "regex", "format", "tag"]): return "low" if any(k in task for k in ["plan", "design", "trade-off", "summarize", "rewrite"]): return "medium" if any(k in task for k in ["debug", "prove", "optimize", "root cause", "multi-step"]): return "high" return "medium"
قد يبدو هذا بسيطاً للغاية، لكنه يمنع مشكلة إنتاجية حقيقية: تقوم الفرق بتشغيل بضعة عروض توضيحية مبهرة على وضع "max"، ثم يقومون بضبط كل شيء بهدوء على "max"، ثم يتفاجأون عندما يرتفع زمن الاستجابة (p95 latency). وجود موجه (router) أساسي بالإضافة إلى ميزانيات لكل نقطة اتصال (endpoint) غالباً ما يكون كافياً لاستقرار التكلفة وتجربة المستخدم.
رأي مخالف (لكنني متمسك به): بالنسبة للعديد من التطبيقات، استخدام thinking_level=low مع استرجاع بيانات (retrieval) أفضل، يتفوق على استخدام max مع Prompt ضخم. ستحصل على مخرجات أكثر قابلية للتنبؤ وقفزات "إبداعية" أقل.

العنوان الرئيسي هو سياق إدخال يصل إلى مليون رمز (token) ومخرجات تصل إلى 64 ألف رمز. لكن التحول الأقل وضوحاً هو تحول معماري: يمكنك الاحتفاظ بالمستندات، والأكواد، والنصوص معاً لفترة كافية بحيث لا تضيع الإشارات المرجعية في منتصف الطريق.
ابدأ بـ Prompt لـ "مطابقة المسار الواحد" (single pass reconciliation) يجبر النموذج على الاستشهاد بالملفات المقدمة فقط.
textYou are reviewing the provided materials for contradictions and missing requirements. Rules: - Use only the provided files. If something is unknown, say "Unknown in provided files". - Produce a table with columns: Claim, Source file + section, Conflicts with, Proposed resolution. - After the table, output a final consolidated requirements list with stable IDs like REQ-001. Materials: [PASTE OR ATTACH FILES HERE]
السياق الطويل لا يلغي الحاجة إلى الهيكلة. إنه يغير فقط مكان وجود الهيكلة: أقل في كود التقسيم (chunking code)، وأكثر في اتفاقيات المستندات (عناوين الأقسام، معرفات المتطلبات الثابتة، التسمية المتسقة). إذا كانت مستنداتك فوضوية، فإن المليون رمز ستمنح النموذج طرقاً أكثر ليناقض نفسه - أو في الواقع، طرقاً أكثر ليبدو متسقاً بينما هو غير متسق، وهذا أسوأ.
Warning
[!WARNING] السياق الطويل يزيد من فرصة "التناقض الصامت" حيث يدمج النموذج عبارات غير متوافقة. اطلب دائماً جدول تعارضات (conflict table) قبل طلب الإجابة النهائية.
النمط السائد في 2026 هو حلقة متكررة: تخطيط، استدعاء أدوات، ملاحظة، ثم تحسين. تم وضع Gemini 3.1 Pro ليكون مناسباً لسير العمل الوكيل (agentic workflows)، لذا تعامل معه كمنسق (orchestrator)، وليس كمولد نصوص.
إليك هيكل بسيط لحلقة أدوات يمكنك تكييفه مع Vertex AI أو Gemini API.
pythonimport json from google import genai client = genai.Client(api_key=os.environ["GEMINI_API_KEY"]) def tool_search_tickets(query: str) -> dict: # Replace with Jira/Linear/GitHub search return {"results": [{"id": "INC-1842", "title": "Checkout 500s", "notes": "Started after deploy 2026-02-18"}]} def tool_run_sql(sql: str) -> dict: # Replace with read-only analytics query return {"rows": [{"day": "2026-02-18", "errors": 912}, {"day": "2026-02-19", "errors": 1440}]} TOOLS = { "search_tickets": tool_search_tickets, "run_sql": tool_run_sql, } system = """ You are an incident analyst. You may call tools: - search_tickets(query: string) - run_sql(sql: string) Rules: - Call tools when evidence is needed. - After each tool call, update your hypothesis. - Final output: root cause candidates ranked, with next actions. """ msg = """ Investigate the spike in checkout errors. Start by finding related incidents and correlating with error counts. """ state = [{"role": "system", "content": system}, {"role": "user", "content": msg}] for _ in range(6): resp = client.models.generate_content( model="gemini-3.1-pro-preview", contents=state, config={"thinking_level": "high", "temperature": 0.1, "max_output_tokens": 1200}, ) text = resp.text or "" if "CALL_TOOL" not in text: print(text) break # Simple convention: model outputs a JSON tool request line tool_req = json.loads(text.split("CALL_TOOL:", 1)[1].strip()) tool_name = tool_req["name"] tool_args = tool_req["args"] tool_out = TOOLS[tool_name](**tool_args) state.append({"role": "assistant", "content": text}) state.append({"role": "user", "content": f"TOOL_RESULT {tool_name}: {json.dumps(tool_out)}"})
هذا النمط مهم لأنه يحول "خطر الهلوسة" إلى "خطر نقص البيانات". عندما يضطر النموذج لاستدعاء run_sql لدعم ادعاء ما، يصبح نظامك قابلاً للفحص. وهذا يجعل التقييمات (evals) أقل عشوائية بكثير: يمكنك إعادة تشغيل نفس نتائج الأدوات ومقارنة المخرجات عبر إصدارات النموذج المختلفة.
للحصول على نمط وكيل أعمق وكيف تقوم الفرق بهيكلة زملاء الفريق المستقلين، راجع الذكاء الاصطناعي الوكيل في 2026: زملاء فريق مستقلون.

يتميز Gemini 3.1 Pro ببراعة غير عادية في "المرئيات القائمة على الكود": رسوم متحركة SVG قابلة للتعديل، وهياكل واجهة مستخدم صحيحة التخطيط، وعناصر تفاعلية خفيفة الوزن. وبصراحة، هذا غالباً ما يكون أكثر فائدة من توليد فيديو بالبكسل لأن ملفات SVG قابلة للمقارنة (diffable)، والضغط، والمراجعة في طلبات الدمج (PRs).
استخدم هذا الـ Prompt لإنشاء محمل (loader) SVG متحرك يطابق رموز التصميم الخاصة بك.
textCreate a single self-contained SVG animation. Constraints: - Output only SVG code, no markdown. - Size: 240x60 viewBox. - Use CSS variables for colors: --fg, --muted. - Animation: 3 dots with staggered scale and opacity, 1.2s loop. - Must be accessible: include <title> and <desc>. - Keep it under 6 KB if possible. Brand: Primary color: #1A73E8 Muted: #D2E3FC Background: transparent
النتيجة الواقعية هي الحوكمة (التي ينساها الناس حتى تلدغهم): يمكن للمصممين مراجعة SVG مثل الكود، ويمكن للمهندسين تعديل التوقيت دون إعادة كتابة الـ Prompt. الفرق التي توحد معايير "المخرجات المرئية ككود" عادة ما تكرر العمل بشكل أسرع وتشحن أخطاء أقل من نوع "يبدو مختلفاً على جهازي".
تسلط بطاقة النموذج الضوء على حلقة بأسلوب "الرؤية الوكيلة" (Agentic Vision): استخدم المنطق البصري، ثم تنفيذ الكود للقياس، والقص، والتعليق، والتحقق. الفوز هنا هو التكرار، وليس مجرد انطباعات.
pythonfrom PIL import Image, ImageStat img = Image.open("checkout-error-modal.png").convert("RGB") # Quick sanity checks that often catch UI regressions w, h = img.size stat = ImageStat.Stat(img) avg = tuple(int(x) for x in stat.mean) print({"width": w, "height": h, "avg_rgb": avg})
عندما يطلب النموذج "تكبير الجزء العلوي الأيمن" أو "قياس الهوامش"، يمكنك القيام بذلك بالكود وإعادة النتيجة. هذا يتجنب وضع الفشل الشائع حيث يخمن النموذج قياسات البكسل. وتحصل على سجل تدقيق لضمان جودة التصميم، وهو أمر ذهبي عندما يسأل شخص ما "من غير هذا؟"
ميزات التثبيت (بما في ذلك التثبيت بخرائط Google في النظام الأساسي الأوسع) تدفع التطبيقات نحو إمكانية التتبع. التغيير العملي هو في تصميم المنتج: يتوقع المستخدمون "أرني من أين حصلت على ذلك"، وهم ليسوا مخطئين.
استخدم تنسيق الإجابة هذا حتى لو لم تكن تستخدم أداة تثبيت مدمجة بعد.
textAnswer using this structure: 1) Direct answer (2-4 sentences) 2) Evidence used (bullets, each item must reference a provided document name, a tool result ID, or "User provided") 3) Assumptions (bullets) 4) What would change the answer (bullets) Question: [QUESTION] Available evidence: [LIST FILES, DB QUERIES, OR TOOL RESULT IDS]
هذا التنسيق يميل إلى تقليل تذاكر الدعم لأن الخلافات تصبح ملموسة. بدلاً من "الذكاء الاصطناعي مخطئ"، تحصل على "لقد استخدم ملف سياسة PDF قديماً" أو "استعلام قاعدة بيانات العناوين أرجع قيمة فارغة" - وهو شيء يمكنك إصلاحه بالفعل.
رأي مخالف: التثبيت ليس فقط حول الصحة. إنه أيضاً حول المسؤولية. الإجابات القابلة للتتبع أسهل في الدفاع عنها داخلياً، حتى عندما تكون غير مكتملة.
أسرع طريقة لخفض الإنفاق عادة ليست تقليص الـ Prompt. بل هي إعادة استخدام العمل.
تتضمن ميزات منصة Gemini بشكل شائع التخزين المؤقت (Caching) والمعالجة بالدفعات (Batch processing)، والفرق التي تتجاهلها ينتهي بها الأمر بدفع "أسعار العروض التوضيحية" إلى الأبد. إليك نمط بسيط لـ "مفتاح التخزين المؤقت للـ prompt" يتجنب إعادة حساب تعليمات النظام الثابتة ومخططات الأدوات.
pythonimport hashlib import json def cache_key(model: str, system: str, tool_schema: dict) -> str: blob = json.dumps({"model": model, "system": system, "tool_schema": tool_schema}, sort_keys=True).encode() return hashlib.sha256(blob).hexdigest() key = cache_key( "gemini-3.1-pro-preview", system, {"tools": ["search_tickets", "run_sql"]}, ) print(key)
عندما تعتمد المفتاح على "الأشياء التي نادراً ما تتغير"، يمكنك تخزين خطوات إعداد النموذج مؤقتاً، أو التضمينات (embeddings)، أو حزم السياق المسترجعة. ثم تتولى المعالجة بالدفعات الباقي: مطابقة المستندات الليلية، وتلخيص التذاكر، ومقارنة السياسات، وتوليد اختبارات الانحدار.
معايير لاستخدامها عند تقدير العائد على الاستثمار: مما رأيته، تصل العديد من الفرق إلى تكاليف وحدة أقل بنسبة 30% إلى 70% بمجرد نقل أعباء العمل المتكررة إلى طوابير الدفعات وتخزين السياق المستقر مؤقتاً. الرقم الدقيق يعتمد على معدل إعادة الاستخدام وطول المخرجات، لكن الاتجاه ثابت جداً.
ستعرض التطبيقات أوضاع "سريع" مقابل "دقيق" لأن المستخدمين يمكنهم الشعور بالفرق. داخلياً، هذا يرتبط بـ thinking_level بالإضافة إلى حدود عمق الأداة.
تقدير الجدول الزمني للتبني: ربع إلى ربعين للفرق التي تشحن بالفعل ميزات LLM. من 3 إلى 4 أرباع للمؤسسات الخاضعة للتنظيم التي تحتاج إلى موافقة التقييم.
يساعد المليون رمز (token) أكثر عندما يكون المحتوى الخاص بك يحتوي على مرتكزات مستقرة: عناوين، معرفات، سجلات تغيير، وملكية صريحة. بدون ذلك، ينتج النموذج عمليات دمج تبدو معقولة ولكن من الصعب اكتشاف خطئها (أسوأ أنواع الخطأ).
تقدير الجدول الزمني للتبني: فوري للفرق الهندسية، وأبطأ للمجموعات القانونية والسياسات لأن عليهم تغيير عادات التأليف.
سيحل SVG و HTML واللوحات التفاعلية الصغيرة محل العديد من أجيال فيديو "العروض التسويقية" داخل فرق المنتج. فهي قابلة للتعديل والمراجعة وسهلة الشحن.
تقدير الجدول الزمني للتبني: ربعين لفرق أنظمة التصميم، و 4 أرباع للمؤسسات التسويقية التي لا تزال تفكر بالبكسل.
بينما يستدعي الوكلاء الأدوات، تصبح الحلقة الأضعف هي تكاملاتك: بحث غير مستقر، أذونات غير متسقة، قواعد بيانات بطيئة، وإجراءات غير قابلة للتكرار (non-idempotent). ستضيف الفرق "اتفاقيات مستوى الخدمة للأدوات" (Tool SLAs) وتعامل مخرجات الأدوات مثل واجهات برمجة التطبيقات التي تحتاج إلى اختبارات (لأنها كذلك بالفعل).
تقدير الجدول الزمني للتبني: 2 إلى 3 أرباع بعد أول تجربة للوكلاء، عادةً مباشرة بعد أول حادث ناتج عن استدعاء أداة سيئ.
أداة التقييم الفائزة ستقوم بإعادة تشغيل نتائج الأدوات، والملفات، وأحداث المستخدم، ثم تقارن القرارات النهائية. هذا يجعل ترقيات النموذج أكثر أماناً، خاصة عند الانتقال من Gemini 3 Pro إلى نمط التفكير في Gemini 3.1 Pro.
تقدير الجدول الزمني للتبني: 3 إلى 6 أشهر للفرق التي لديها بنية تحتية للاختبار، و 9 إلى 12 شهراً للفرق التي تبدأ من الصفر.
| الشركة | نتيجة قابلة للقياس | فيما استخدموه |
|---|---|---|
| Stripe | خفضت وقت معالجة الدعم بنسبة 14% | فرز التذاكر بمساعدة LLM وصياغة الردود باستخدام المعرفة الداخلية |
| Shopify | قللت تراكم دعم التجار بنسبة 20% | التصنيف والتوجيه الآلي مع تنسيق إجابات أكثر صرامة |
| Netflix | خفضت معدل التخلي عن البحث بنسبة 1% | تحسينات في الترتيب والملاءمة مدفوعة بالتعلم الآلي والتجريب |
هذه فحوصات واقعية مفيدة لأهداف العائد على الاستثمار. إذا ادعى اقتراح ما "تذاكر أقل بنسبة 80% في شهر واحد"، فمن المحتمل أنه يتجاهل قيوداً مثل مراجعة الامتثال، ومسارات التصعيد، وواقع الوصول إلى البيانات.
ابدأ بـ Prompt يجبر التناقضات على الظهور قبل كتابة أي شيء نهائي.
textYou are the requirements reconciler. Input: - PRD: [ATTACH] - Tech spec: [ATTACH] - Support tickets: [ATTACH] - Analytics notes: [ATTACH] Output: 1) Contradictions table: ID, Statement A, Statement B, Impact, Recommended decision 2) Missing requirements list: each item must include "who decides" and "deadline" 3) Final consolidated requirements: REQ-### with acceptance criteria in Gherkin Rules: - Do not invent requirements. - If two docs disagree, mark it as "Needs decision".
هذا ينجح لأنه يطابق كيفية فشل المشاريع: ليس بسبب نقص الإبداع، ولكن بسبب التناقضات الخفية. السياق الطويل يساعد لأن النموذج يمكنه الاحتفاظ بـ PRD والمواصفات التقنية في الذاكرة في نفس الوقت (بدلاً من أن تأمل أن التقسيم قام بالشيء الصحيح).
قم بتغذية النموذج بلقطة شاشة ومواصفات تصميم، ثم أجبره على إنتاج قياسات وفروقات.
textCompare the UI screenshot to the design spec. Output: - A list of mismatches with approximate pixel deltas (padding, font size, color, alignment). - A prioritized fix list for engineers. - If you are unsure, ask for a zoomed crop region by coordinates. Design spec: [ATTACH FIGMA EXPORT OR SPEC PDF] Screenshot: [ATTACH IMAGE]
هنا يظهر المنطق المكاني لـ Gemini 3.1 Pro. سطر "اطلب منطقة قص مكبرة" هو ما يحول الأمر إلى حلقة بدلاً من مجرد تخمين.
استخدم المعالجة بالدفعات لمقارنة السياسات الشهرية واطلب إمكانية التتبع.
textYou are reviewing policy changes. For each policy document: - Extract obligations into a JSON array with fields: id, obligation, applies_to, effective_date, source_section. - Output a second JSON array of open questions. Rules: - Every obligation must cite a source_section. - If the source_section is missing, omit the obligation and add an open question.
الفائدة هي الجاهزية للتدقيق. إذا سأل القسم القانوني "من أين جاء هذا الالتزام"، يمكنك الإشارة إلى source_section بدلاً من إعادة تشغيل النموذج والأمل في أن يقول نفس الشيء.
ابدأ من هنا (خطوتك الأولى)
قم بتشغيل سير عمل داخلي واحد باستخدام thinking_level=medium وقسم "الأدلة المستخدمة" الإجباري، ثم قم بقياس زمن استجابة p95 ومعدل التصحيح على مدار 50 تشغيلاً.
مكاسب سريعة (تأثير فوري)
thinking_level (منخفض/متوسط/عالي) وحدد سقفاً لـ max_output_tokens لكل نقطة اتصال، ثم قارن التكلفة لكل 1000 طلب.تعمق أكثر (لمن يريد المزيد)
thinking_level.Gemini 3.1 Pro في عام 2026 ليس "مجرد نموذج آخر". إنه تحول نحو المنطق القابل للتحكم، ومطابقة السياق الطويل، وسير العمل متعدد الوسائط الذي ينتج عناصر برمجية يمكنك شحنها بالفعل.
الفرق التي ستفوز باستخدامه ستعامله كمحرك لسير العمل: استدعاءات أدوات، ومخرجات قابلة للتتبع، وتخزين مؤقت، وتقييمات قابلة لإعادة التشغيل. أما الفرق التي ستخسر فهي التي ستشغل كل شيء على thinking_level=max، وتلصق Prompts ضخمة، وتسمي النتائج "وكيلة" (agentic) دون بناء طبقة الأدوات التي تجعل الوكلاء موثوقين.