منصة الفكر والابتكار التقني

مدونة البعد التقني الرابع

دليلك نحو احتراف أدوات الذكاء الاصطناعي، الأتمتة، وبناء المهارات الرقمية المتقدمة.

الرادار الإخباري:
جاري تحميل آخر المستجدات الإخبارية...
أحدث المقالات:
جاري تحميل أحدث المقالات...

تجربتي الكاملة في بناء وكيل ذكاء اصطناعي 2026 للنشر التلقائي في ووردبريس: من الفكرة إلى أول مسودة منشورة

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

قررت ألا يبقى موقعي معتمداً على التدوين اليدوي واستنزاف الوقت في رصد المستجدات، بل خضت تجربة عملية لبناء وكيل ذكاء اصطناعي مستقل تماماً بلغة بايثون. يتولى هذا الوكيل مراقبة خلاصات المواقع التقنية العالمية والعربية (RSS)، وتصفية الأخبار المتكررة تلقائياً، وإرسال الموضوعات الجديدة إلى نماذج الذكاء الاصطناعي لإعادة صياغتها باللغة العربية وإخراجها كود HTML منسق، ثم رفعها مباشرة إلى ووردبريس كمسودة جاهزة للمراجعة.

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

💡 تنبيه مهم للقارئ قبل التطبيق: لأسباب أمنية وحماية الخصوصية، تم حجب جميع المفاتيح والرموز الحساسة في هذا الشرح واستبدالها بنجوم حمراء مُميزة مثل: ********. يُرجى عند نسخك للكود استبدال هذه النجوم بالبيانات والمفاتيح الفعلية التي تخص موقعك وحسابك الشخصي ليعمل الـ وكيل ذكاء اصطناعي بنجاح.

1. المخطط التشغيلي: كيف يعمل وكيل ذكاء اصطناعي لإدارة المحتوى؟

تم تصميم منطق العمل ليعمل كـ وكيل ذكاء اصطناعي متكامل المهام وفق أربع مراحل تسلسلية:

  • الرصد الذكي: فحص مستمر لروابط خلاصات الأخبار عبر RSS بواسطة الـ وكيل ذكاء اصطناعي.
  • نظام الذاكرة ومنع التكرار: فحص سجل محلي (published_history.txt) لضمان عدم إعادة صياغة أي خبر تم نشره مسبقاً.
  • الصياغة وهندسة الأوامر: توظيف نماذج Gemini لصياغة جولة عربية رصينة وتنسيقها داخل وسوم HTML دون نصوص زائدة.
  • الإيداع البرمجي الآمن: استخدام واجهة WordPress REST API لإيداع المسودة في الموقع تلقائياً.

2. التجهيز واستخراج مفاتيح الربط البرمجي

أولاً: مفتاح Google Gemini API لتغذية عقل الوكيل

لكي يمتلك أي وكيل ذكاء اصطناعي قدرة التحليل والصياغة، توجهت إلى منصة Google AI Studio. كان سؤالي في البداية: من أين أحصل على المفتاح الصحيح داخل الواجهة؟

وجدت الإجابة بالنزول إلى أسفل القائمة الجانبية بالمنصة والضغط على أيقونة المفتاح 🔑، ثم اختيار Create API key وتحديد المشروع لنسخ المفتاح السري مباشرة.

ثانياً: تصريح نشر ووردبريس (كلمات مرور التطبيقات)

لتفادي استخدام كلمة المرور الأساسية لحساب الإدارة أثناء تشغيل وكيل ذكاء اصطناعي، توجهت إلى: لوحة تحكم ووردبريس > أعضاء > حسابك، ثم انتقلت لقسم كلمات مرور التطبيق (Application Passwords)، وأنشأت اسماً مخصصاً للوكيل وحصلت على رمز تصريح النشر المكون من 16 حرفاً.

3. سجل التجارب والأخطاء الميدانية أثناء بناء وكيل ذكاء اصطناعي

أثناء التطبيق الفعلي واجهنا عوائق تقنية غير متوقعة في شاشة الأوامر، قمنا بحلها لضمان استقرار عمل الـ وكيل ذكاء اصطناعي:

العائق 1: عدم التعرف على أمر تثبيت المكتبات (Pip is not recognized)

طبيعة الخطأ: ظهور رسالة في موجه الأوامر تفيد بعدم التعرف على أمر pip عند تثبيت مكتبات تشغيل وكيل ذكاء اصطناعي.

السبب والحل: مسار بايثون لم يكن مضافاً إلى متغيرات النظام (PATH). قمنا بالموافقة على خيار الإضافة في معالج بايثون بالضغط على الحرف y، ثم أعدنا فتح موجه الأوامر ليتعرف على الأوامر فوراً.

العائق 2: قيد طول المسارات في ويندوز (Path Length Limit)

طبيعة الخطأ: ظهور تحذير Windows is not configured to allow paths longer than 260 characters.

السبب والحل: نظام ويندوز يفرض حداً أقصى لطول المسارات بـ 260 حرفاً مما قد يعطل تثبيت بعض حزم تشغيل وكيل ذكاء اصطناعي. قمنا بتجاوزه بالموافقة بالضغط على y لإلغاء القيد برمجياً.

العائق 3: تلف صيغة مفتاح الـ API بسبب ترجمة المتصفح

طبيعة الخطأ: عند نسخ المفتاح ولصقه في كود وكيل ذكاء اصطناعي بدأ بحروف عربية (مثل: أق.Ab8...) ورفضه السيرفر.

السبب والحل: ميزة الترجمة التلقائية للمتصفح كانت مفعّلة، فقامت بتعريب الرموز الإنجليزية الأولى من المفتاح. قمنا بتلافي ذلك باستخدام زر النسخ الإلكتروني المدمج داخل المنصة مباشرة بدلاً من تظليل النص يدوياً.

العائق 4: خطأ النموذج غير المتاح (404 NOT_FOUND)

طبيعة الخطأ: إرجاع رسالة خطأ models/gemini-2.5-flash is no longer available to new users أثناء استدعاء نموذج التوليد.

السبب والحل: النموذج تم تحديثه للمشاريع الجديدة. قمنا بتعديل الرابط في كود وكيل ذكاء اصطناعي واستدعاء أحدث نموذج معتمد وهو gemini-3.6-flash.

العائق 5: جدار الحماية والاستضافة (Mod_Security 406 Not Acceptable)

طبيعة الخطأ: بعد قيام وكيل ذكاء اصطناعي بصياغة المقال بنجاح، رُفض النشر وظهر الخطأ 406 Not Acceptable الناتج عن جدار حماية الخادم Mod_Security.

السبب والحل: الاستضافة تحظر الطلبات التلقائية ذات الترويسة الافتراضية الخاصة ببايثون (python-requests). تلافينا ذلك بإضافة ترويسات متصفح نظامية (User-Agent و Content-Type) ليعامل السيرفر طلب الـ وكيل ذكاء اصطناعي كمتصفح طبيعي مصرح له.

4. ملخص خطوات ترويض الأخطاء في جدول منظم

المرحلة المشكلة الميدانية السبب التقني الإجراء وتلافي الخطأ
بيئة التشغيل خطأ عدم التعرف على pip عدم إضافة بايثون لمتغيرات النظام PATH الموافقة على إضافة المسار تلقائياً بالضغط على y
بيانات الاعتماد تلف صيغة مفتاح الـ API الترجمة التلقائية للمتصفح عربت رموز المفتاح الضغط على زر النسخ الرسمي داخل المنصة
محرك الذكاء خطأ 404 Model Not Found محاولة استدعاء إصدار مؤرشف للمشاريع الجديدة تحديث رابط الاستدعاء للنموذج الأحدث gemini-3.6-flash
استضافة الموقع خطأ الحظر 406 Not Acceptable جدار الحماية Mod_Security حظر ترويسة بايثون تضمين ترويسات متصفح رسمية (User-Agent) في كود الإرسال

5. الكود البرمجي الشامل والمعتمد: تشغيل وكيل ذكاء اصطناعي متكامل

هذا هو الكود النهائي الكامل الذي يمثل وكيل ذكاء اصطناعي مستقر يجمع كافة الإصلاحات ومعالجة جدار الحماية وتحديث النموذج وتصفية التكرار:

import os
import requests
import feedparser

# ==================== الإعدادات الخاصة بالموقع ====================
# تنبيه: استبدل النجوم بالبيانات الفعلية الخاصة بموقعك
GEMINI_API_KEY = "********************************************"
WP_URL = "https://yourdomain.com/wp-json/wp/v2/posts"
WP_USER = "admin"
WP_APP_PASSWORD = "**** **** **** ****"

# روابط تغذية الأخبار المعتمدة
RSS_FEEDS = [
    "https://techcrunch.com/feed/",
    "https://www.theverge.com/rss/index.xml",
    "https://aitnews.com/feed/"
]

HISTORY_FILE = "published_history.txt"
# ===============================================================

def load_history():
    """قراءة سجل الروابط المنشورة سابقاً لتجنب التكرار"""
    if not os.path.exists(HISTORY_FILE):
        return set()
    with open(HISTORY_FILE, "r", encoding="utf-8") as f:
        return set(line.strip() for line in f)

def save_to_history(link):
    """حفظ رابط الخبر الجديد في ملف الذاكرة"""
    with open(HISTORY_FILE, "a", encoding="utf-8") as f:
        f.write(link + "\n")

def fetch_latest_news():
    """جلب الأخبار الجديدة فقط من المصادر"""
    history = load_history()
    collected = []

    for feed_url in RSS_FEEDS:
        feed = feedparser.parse(feed_url)
        for entry in feed.entries[:5]:
            link = entry.link
            if link not in history:
                collected.append({
                    "title": entry.title,
                    "summary": entry.get("summary", ""),
                    "link": link
                })
            if len(collected) >= 4:
                break
        if len(collected) >= 4:
            break

    return collected

def generate_article_with_ai(articles):
    """صياغة جولة إخبارية احترافية وتنسيقها داخل كود HTML"""
    raw_content = ""
    for i, art in enumerate(articles, 1):
        raw_content += f"الخبر {i}:\nالعنوان: {art['title']}\nالتفاصيل: {art['summary']}\nالمصدر: {art['link']}\n\n"

    prompt = f"""
    أنت محرر تقني محترف.
    المطلوب صياغة جولة إخبارية تقنية شاملة باللغة العربية بناءً على الأخبار التالية:
    
    {raw_content}

    الشروط:
    1. اكتب عنواناً جذاباً ومتوافقاً مع معايير السيو.
    2. صياغة كل خبر بأسلوب عربي فصيح، رصين، وعميق (بين 60 إلى 90 كلمة للخبر).
    3. أخرج المقال كاملاً داخل كود HTML نظيف مع كلاسات CSS أنيقة للبطاقات والفواصل.
    4. افصل بين العنوان وكود المقال بكلمة: ---SPLIT---
    بحيث يكون السطر الأول هو العنوان فقط، يليه ---SPLIT---، ثم يليه كود HTML للمقال دون نصوص إضافية.
    """

    url = f"https://generativelanguage.googleapis.com/v1beta/models/gemini-3.6-flash:generateContent?key={GEMINI_API_KEY}"
    headers = {"Content-Type": "application/json"}
    payload = {
        "contents": [{
            "parts": [{"text": prompt}]
        }]
    }

    res = requests.post(url, headers=headers, json=payload)
    if res.status_code == 200:
        data = res.json()
        return data["candidates"][0]["content"]["parts"][0]["text"]
    else:
        raise Exception(f"خطأ في الاتصال بالذكاء الاصطناعي ({res.status_code}): {res.text}")

def publish_to_wordpress(title, content_html, status="draft"):
    """إرسال المقال إلى ووردبريس مع ترويسات متصفح لتخطي Mod_Security"""
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
        "Content-Type": "application/json",
        "Accept": "application/json"
    }
    
    response = requests.post(
        WP_URL,
        headers=headers,
        auth=(WP_USER, WP_APP_PASSWORD),
        json={
            "title": title,
            "content": content_html,
            "status": status  # ترسل كمسودة للمراجعة البشرية قبل النشر
        }
    )
    return response

def run_agent():
    print("🤖 بدأ الوكيل العمل: جاري فحص مصادر الأخبار وتصفية المكرر...")
    new_articles = fetch_latest_news()
    
    if not new_articles:
        print("✅ جميع الأخبار مسجلة مسبقاً، لا توجد موضوعات جديدة الآن.")
        return

    print(f"🔍 تم رصد {len(new_articles)} أخبار جديدة لم تُرصد من قبل.")
    print("🧠 جاري إرسال البيانات إلى عقل الوكيل للصياغة والتنسيق...")
    
    try:
        ai_output = generate_article_with_ai(new_articles)
    except Exception as e:
        print(f"❌ تعذر استلام الرد: {e}")
        return
    
    if "---SPLIT---" in ai_output:
        title, html_body = ai_output.split("---SPLIT---", 1)
        title = title.strip()
        html_body = html_body.strip()
    else:
        title = "جولة إخبارية تقنية شاملة"
        html_body = ai_output.strip()

    print("🚀 جاري إرسال المقال إلى لوحة تحكم ووردبريس كمسودة...")
    wp_res = publish_to_wordpress(title, html_body, status="draft")

    if wp_res.status_code in [200, 201]:
        print("🎉 مبروك! نجح الوكيل في إنشاء مسودة المقال داخل موقعك بنجاح.")
        for art in new_articles:
            save_to_history(art["link"])
        print("💾 تم تدوين روابط الأخبار في ملف الذاكرة لمنع تكرارها نهائياً.")
    else:
        print(f"❌ حدث خطأ في التواصل مع ووردبريس: {wp_res.status_code}")
        print(wp_res.text)

if __name__ == "__main__":
    run_agent()

6. أتمتة التشغيل الذاتي: كيف يعمل الوكيل بمفرده في الخلفية؟

كان السؤال الحاسم بعد اكتمال البرمجة: هل يلزمني أن أطلب الأخبار من الوكيل كل مرة أم أنه يضعها تلقائياً؟

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

الخيار الأول: الجدولة التلقائية عبر نظام ويندوز (Task Scheduler)

خيار مجاني وسريع لتشغيل السكربت في الخلفية على حاسوبك الشخصي:

  1. افتح قائمة ابدأ وابحث عن Task Scheduler (جدولة المهام).
  2. اختر Create Basic Task وضع اسماً للمهمة مثل NewsBot_Auto.
  3. حدد التكرار (مثلاً: يومياً Daily، أو كل 6 ساعات).
  4. في خيار الإجراء اختر Start a program، واكتب في خانة البرنامج python.
  5. في خانة الوسائط (Arguments) اكتب اسم الملف news_agent.py، وفي خانة المسار (Start in) ضع مسار المجلد الذي يحتوي الملف.
الخيار الثاني: الاستضافة السحابية والمهام المجدولة (Cron Jobs / Cloud Automation)

إذا كنت ترغب في أن يواصل الـ وكيل ذكاء اصطناعي عمله حتى لو كان جهازك مغلقاً، يمكنك رفع الملف إلى خادم خاص افتراضي (VPS) أو ربطه عبر منصات الأتمتة السحابية وجدولته عبر مهام Cron Job ليعمل كل بضع ساعات، مما يحول موقعك إلى منصة إخبارية ذكية ومستقلة 24/7.

7. خاتمة التجربة والآفاق القادمة

كانت لحظة رؤية إشعار النجاح في موجه الأوامر ثم الدخول إلى لوحة تحكم ووردبريس ومشاهدة المسودة المكتملة برهاناً قاطعاً على نجاح فكرة بناء وكيل ذكاء اصطناعي عملي. لقد تحولت عملية التحرير الإخباري من جهد روتيني مضنٍ إلى أتمتة دقيقة ومستقلة، تمنح صناع المحتوى القدرة على مواكبة التدفق التقني الهائل بأعلى معايير الدقة والأمان.

البعد التقني الرابع قسم الذكاء الاصطناعي والأتمتة هندسة الأوامر (Prompt Engineering) نماذج الذكاء الاصطناعي المحلية منصة Google AI Studio دليل WordPress REST API الرسمي تحميل لغة بايثون (Python.org)

إذا كنت تبحث عن خطوات تفصيلية إضافية، فقد تناولنا ذلك في مقالنا عن الذكاء الاصطناعي في المتصفح مجاناً 2026: كيف شغّلت نماذج ذكية داخل صفحة الويب بدون استهلاك بيانات؟.