البناء الواقعي وتحقيق الدخل

وكلاء العمليات وإدارة المجتمع

4 دقيقة للقراءة

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

في هذا الدرس، نبني أربعة وكلاء تشغيلية تحافظ على سير الأعمال بسلاسة.

المشروع الأول: وكيل تكامل إدارة المشاريع

الفرق تفقد تتبع المهام. المواعيد النهائية تنزلق بهدوء. تحديثات الحالة تحدث في الاجتماعات بدلاً من الأداة. يمكن لوكيل متكامل مع منصات إدارة المشاريع مثل ClickUp إصلاح هذا.

الهندسة المعمارية:

┌──────────────────────────────────────┐
│        وكيل إدارة المشاريع           │
├──────────────────────────────────────┤
│  المحفزات: فحص كل ساعة + خطافات    │
├──────────────┬───────────────────────┤
│ واجهة       │  قناة الإشعارات      │
│ ClickUp API │  (Slack / بريد /      │
│ (مهام،      │   Telegram)           │
│  لوحات،     │                       │
│  أعضاء)     │                       │
├──────────────┴───────────────────────┤
│  طبقة تحليل LLM                    │
│  (كشف التأخير، اقتراحات إعادة      │
│   التعيين، ملخصات الحالة)           │
├──────────────────────────────────────┤
│  الإجراءات: تنبيه، إشعار، اقتراح   │
└──────────────────────────────────────┘

الأدوات المطلوبة:

  • واجهة برمجة إدارة المشاريع (ClickUp أو Linear أو Jira أو Asana)
  • قناة إشعارات (Slack webhook أو بريد إلكتروني أو واجهة مراسلة)
  • نموذج LLM لتحليل أنماط المهام وإنشاء الاقتراحات

سير العمل:

  1. يفحص الوكيل لوحة المشاريع كل ساعة (أو يستمع للخطافات)
  2. يحدد المهام المتأخرة، والمهام بدون مسؤولين، والمهام العالقة في نفس الحالة لفترة طويلة
  3. للمهام المتأخرة، يتحقق من أعباء عمل أعضاء الفريق ويقترح إعادة التعيين
  4. يُنشئ ملخص حالة يومي يُبرز المخاطر والعوائق
  5. ينشر إشعارات في قناة الفريق مع توصيات قابلة للتنفيذ
# وكيل إدارة المشاريع - كشف التأخير
from datetime import datetime

def scan_for_issues(tasks: list[dict]) -> dict:
    """تحليل لوحة المهام بحثاً عن مشاكل تتطلب الانتباه."""
    now = datetime.now()
    issues = {
        "overdue": [],
        "unassigned": [],
        "stalled": [],  # لا تغيير في الحالة منذ 3 أيام أو أكثر
    }

    for task in tasks:
        # التحقق من المهام المتأخرة
        if task["due_date"] and task["due_date"] < now and task["status"] != "done":
            issues["overdue"].append({
                "task": task["name"],
                "assignee": task.get("assignee", "غير معيَّن"),
                "days_overdue": (now - task["due_date"]).days,
            })

        # التحقق من المهام غير المعيَّنة
        if not task.get("assignee") and task["status"] != "backlog":
            issues["unassigned"].append(task["name"])

        # التحقق من المهام العالقة
        if task.get("last_status_change"):
            days_stalled = (now - task["last_status_change"]).days
            if days_stalled >= 3 and task["status"] not in ("done", "backlog"):
                issues["stalled"].append({
                    "task": task["name"],
                    "status": task["status"],
                    "days_stalled": days_stalled,
                })

    return issues

def suggest_reassignments(overdue_tasks, team_workloads) -> list[dict]:
    """استخدام LLM لاقتراح إعادة تعيين المهام بناءً على أعباء العمل."""
    prompt = f"""بالنظر إلى هذه المهام المتأخرة وأعباء عمل الفريق،
    اقترح إعادة تعيين. أعطِ الأولوية لأعضاء الفريق الذين لديهم
    مهام نشطة أقل ومهارات ذات صلة.

    المهام المتأخرة: {overdue_tasks}
    أعباء عمل الفريق: {team_workloads}
    """
    return llm.generate(prompt=prompt, response_format="json")

ما يتولاه الوكيل: المراقبة واكتشاف الأنماط والإشعارات. ما يبقى للبشر: القرار الفعلي بإعادة تعيين العمل أو تغيير الأولويات أو تعديل المواعيد النهائية.

المشروع الثاني: إدارة المجتمع باستخدام Firecrawl Browser Sandbox

إدارة منصات المجتمع — المنتديات، خوادم Discord، بوابات الدعم — تتضمن فرزاً متكرراً. يمكن للوكيل باستخدام Firecrawl Browser Sandbox التفاعل مع أدوات المجتمع عبر الويب من خلال جلسات متصفح دائمة.

يدعم Firecrawl Browser Sandbox (firecrawl.dev) جلسات المتصفح الدائمة، مما يعني أن الوكيل يمكنه تسجيل الدخول إلى منصة، والحفاظ على جلسته، وتنفيذ إجراءات عبر صفحات متعددة دون إعادة المصادقة في كل مرة.

الهندسة المعمارية:

┌───────────────────────────────────────┐
│       وكيل إدارة المجتمع             │
├───────────────────────────────────────┤
│  المحفزات: فترة فحص (15 دقيقة)      │
├───────────────┬───────────────────────┤
│ Firecrawl     │  قناة التصعيد        │
│ Browser       │  (Slack / بريد)      │
│ Sandbox       │                      │
│ (جلسات       │  قاعدة المعرفة       │
│  دائمة)      │  (الأسئلة الشائعة)   │
├───────────────┴───────────────────────┤
│  طبقة تصنيف واستجابة LLM            │
├───────────────────────────────────────┤
│  الإجراءات: الرد، التصنيف، التصعيد  │
└───────────────────────────────────────┘

الأدوات المطلوبة:

  • Firecrawl Browser Sandbox (جلسات متصفح دائمة للتفاعل مع الويب)
  • قاعدة معرفة (الأسئلة الشائعة، التوثيق، والإجابات السابقة)
  • نموذج LLM لتصنيف الأسئلة وصياغة الردود
  • قناة تصعيد (للقضايا المعقدة التي تحتاج اهتماماً بشرياً)

سير العمل:

  1. يفتح الوكيل جلسة متصفح دائمة على منصة مجتمعك
  2. يفحص المنشورات أو الأسئلة الجديدة غير المُجاب عليها
  3. يُصنّف كل سؤال: شائع (يمكن الإجابة عليه من الأسئلة الشائعة)، معقد (يحتاج إنساناً)، أو بريد مزعج
  4. للأسئلة الشائعة، يُصيغ رداً باستخدام قاعدة المعرفة وينشره
  5. للأسئلة المعقدة، يُنشئ تذكرة تصعيد مع السياق والملخص
  6. يُصنّف ويُبوّب جميع المنشورات للتحليلات
# إدارة المجتمع - تصنيف الأسئلة
def classify_community_post(post: dict, faq_entries: list[str]) -> dict:
    """تصنيف منشور مجتمعي وتحديد الإجراء المناسب."""
    prompt = f"""صنّف هذا المنشور المجتمعي إلى واحدة من ثلاث فئات:
    1. "common" - يمكن الإجابة عليه من الأسئلة الشائعة/قاعدة المعرفة
    2. "complex" - يحتاج خبرة بشرية للإجابة بشكل صحيح
    3. "spam" - محتوى غير ذي صلة أو ترويجي

    عنوان المنشور: {post['title']}
    نص المنشور: {post['body']}

    مواضيع الأسئلة الشائعة المتاحة: {[f['topic'] for f in faq_entries]}

    أعِد JSON يحتوي: الفئة، الثقة (0-1)، معرّف السؤال الشائع المقترح (إذا كان شائعاً)،
    وسبب التصنيف.
    """
    return llm.generate(prompt=prompt, response_format="json")

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

المشروع الثالث: وكيل أتمتة فحص جودة الموقع

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

الأدوات المطلوبة:

  • زاحف ويب (مكتبة requests + BeautifulSoup في Python، أو Playwright للصفحات المُعروضة بـ JavaScript)
  • فاحص روابط (طلبات HTTP HEAD للتحقق من أن الروابط تُعيد 200)
  • مُختبر نماذج (إرسال بيانات اختبار للنماذج والتحقق من الاستجابات)
  • قناة تقارير (بريد إلكتروني، Slack، أو متتبع المشاكل)

سير العمل:

  1. يزحف الوكيل لخريطة موقعك أو يتبع الروابط من الصفحة الرئيسية
  2. لكل صفحة: يتحقق من حالة HTTP، ويُصدّق جميع الروابط، ويتحقق من تحميل الصور
  3. يختبر النماذج الرئيسية ببيانات اختبار محددة مسبقاً
  4. يُنشئ تقريراً مُجمّعاً حسب الخطورة: معطل (404، 500)، تحذيرات (استجابات بطيئة، محتوى مختلط)، ومعلوماتي (سلاسل إعادة توجيه، نصوص بديلة مفقودة)
  5. يُنشئ مشاكل في المتتبع لأي شيء معطل
# فحص جودة الموقع - فحص الروابط
import requests
from urllib.parse import urljoin

def check_page_links(page_url: str, html: str) -> list[dict]:
    """فحص جميع الروابط في صفحة والإبلاغ عن حالتها."""
    from bs4 import BeautifulSoup
    soup = BeautifulSoup(html, "html.parser")
    results = []

    for link in soup.find_all("a", href=True):
        url = urljoin(page_url, link["href"])
        try:
            response = requests.head(url, timeout=10, allow_redirects=True)
            results.append({
                "url": url,
                "status": response.status_code,
                "ok": response.status_code < 400,
                "source_page": page_url,
            })
        except requests.RequestException as e:
            results.append({
                "url": url,
                "status": "error",
                "ok": False,
                "error": str(e),
                "source_page": page_url,
            })

    return results

ما يتولاه الوكيل: الزحف المنهجي والفحص وإعداد التقارير. ما يبقى للبشر: تحديد أي المشاكل يجب إصلاحها أولاً والتعامل مع أي تغييرات في التصميم أو المحتوى.

المشروع الرابع: وكيل مراجعة كود GitHub

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

الأدوات المطلوبة:

  • واجهة GitHub API (لقراءة تغييرات طلبات السحب ونشر التعليقات)
  • نموذج LLM (لتحليل تغييرات الكود بحثاً عن مشاكل)
  • مجموعة قواعد (دليل أسلوب فريقك، قائمة التحقق الأمني، الأخطاء الشائعة)

سير العمل:

  1. يستمع الوكيل لأحداث طلبات السحب الجديدة عبر خطافات GitHub
  2. يجلب التغييرات ويحلل كل ملف مُعدَّل
  3. يتحقق مقابل قواعدك المُهيَّأة: انتهاكات الأسلوب، معالجة الأخطاء المفقودة، الأسرار المكتوبة في الكود، استخدام واجهات برمجة مهملة
  4. ينشر تعليقات مباشرة على الأسطر المحددة حيث توجد المشاكل
  5. يُضيف تعليقاً ملخصاً بتقييم شامل
# مراجعة كود GitHub - تحليل تغييرات طلب السحب
def review_pull_request(diff: str, rules: list[str]) -> list[dict]:
    """مراجعة تغييرات طلب سحب مقابل معايير البرمجة للفريق."""
    prompt = f"""راجع هذه التغييرات البرمجية مقابل القواعد التالية.
    لكل مخالفة تجدها، حدّد:
    - الملف ورقم السطر
    - القاعدة المنتهكة
    - الخطورة (خطأ، تحذير، اقتراح)
    - الإصلاح المُوصى به

    القواعد:
    {chr(10).join(rules)}

    التغييرات:
    {diff}
    """
    return llm.generate(prompt=prompt, response_format="json")

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

النقطة الرئيسية: الوكلاء التشغيلية هي مُضاعِفات قوة. إنها لا تحل محل أعضاء الفريق — بل تلتقط ما يفوت البشر، وتتولى المراقبة المملة، وتُحرّر فريقك للتركيز على القرارات التي تتطلب حُكماً بشرياً.

التالي: بناء أنظمة وكلاء متقدمة — روبوتات التداول ووكلاء الرؤية الحاسوبية التي تدفع حدود ما يمكن للأنظمة المستقلة فعله. :::

اختبار

اختبار الوحدة 5: البناء الواقعي وتحقيق الدخل

خذ الاختبار
نشرة أسبوعية مجانية

ابقَ على مسار النيرد

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

بدون إزعاج. إلغاء الاشتراك في أي وقت.