[ blog · use-case ]8 min read

بناء وكيل موجز صباحي باستخدام News Search API

Sarah Choyنُشر في 2 مايو 2026آخر تحديث 3 مايو 2026قراءة 8 دقائق
بناء وكيل موجز صباحي باستخدام News Search API

المؤسّسون والمنتجيّون والمحلّلون يريدون الشيء نفسه في الثامنة صباحًا: ملخّصًا أنيقًا لما تغيّر طوال الليل. مع News Search API وLLM ومنصّة cron، تبني هذا في فترة بعد الظهر.

الخلاصة

  • البنية: cron → News Search → URL Extract لأبرز القصص → ملخّص LLM → نشر في Slack/البريد.
  • ضبط الحداثة عبر <code>start_date</code> = أمس؛ والمنطقة عبر <code>country_code</code>.
  • وزِّع الموجز إلى موضوعات بنداءات News Search متوازية؛ يدمج LLM ويزيل التكرار.
  • التكلفة الإجمالية ≈ 15 رصيدًا/موضوع/يوم + توكنات LLM. موجز 5 موضوعات < $0.10/يوم بسعر القائمة.

شكل الموجز المفيد

وكيل الموجز الصباحي يجب أن يجيب على سؤال واحد: 'ما الذي تغيّر هذه الليلة وأحتاج معرفته؟' السقف أعلى مما يبدو. قائمة عناوين تفشل — هذا RSS وسيُكتم في أسبوع. الذي ينجو: ملخّص بـ 5 نقاط مع روابط، مجمَّع بحسب المواضيع، بصوت القارئ.

يتفكّك ذلك إلى خط أنابيب صغير:

  • اجلب أخبار حديثة عبر N مواضيع — News Search API.
  • استخرج جسم الروابط التي يريد النموذج اقتباسها — URL Extract API.
  • لخّص + جمِّع بـ LLM المفضّل لديك.
  • انشر في Slack / البريد / Notion — قناتك المعتادة.
  • جدوِل بـ cron — Vercel Cron، GitHub Actions، n8n…

الخطوة 1: اختر المواضيع

3–6 مواضيع تكفي. موجز بـ 12 موضوعًا يُمرَّر تمريرًا. أمثلة:

  • مؤسّس SaaS B2B: 'جولات تمويل AI'، 'أخبار OpenAI / Anthropic'، 'حركات المنافسين'.
  • محلّل مالي: 'FOMC وTreasury'، 'سلسلة أشباه الموصلات'، 'tickers محدّدة'.
  • منتجيّ صحّة: 'موافقات FDA'، 'قراءات تجارب سريرية'، 'تغيّرات تعويضات'.

الخطوة 2: اجلب الإشارة الخام

نداء واحد لـ News Search لكل موضوع بالتوازي. الحداثة عبر start_date:

from datetime import date, timedelta
import asyncio, aiohttp

KEY = "pk_yourkey"
TOPICS = [
    "AI agent infrastructure funding",
    "OpenAI Anthropic Google new releases",
    "RAG and LLM tool calling research",
]

async def fetch_topic(session, q):
    yesterday = (date.today() - timedelta(days=1)).isoformat()
    async with session.post(
        "https://www.apipick.com/api/search/news",
        headers={"x-api-key": KEY},
        json={"query": q, "start_date": yesterday},
    ) as r:
        return q, await r.json()

async def fetch_all():
    async with aiohttp.ClientSession() as s:
        return await asyncio.gather(*[fetch_topic(s, q) for q in TOPICS])

كلّ نداء يُرجع حتى 5 عناوين مرتّبة (10 بـ num_results). 3 مواضيع = 3 × 15 = 45 رصيدًا/يوم، أي $0.045/يوم بسعر $5 / 5000. News API ليست المكلّفة — رموز LLM هي السائدة.

الخطوة 3: استخراج انتقائي للنصوص

لا تحتاج جسم كل خبر — فقط ما سيقتبسه النموذج بالتفصيل. حُكم بسيط: أعلى 2 لكل موضوع. على API Pick: نداء دفعة واحد:

import requests

urls = [r["url"] for topic, payload in results for r in payload["results"][:2]]

extracted = requests.post(
    "https://www.apipick.com/api/extract",
    headers={"x-api-key": KEY},
    json={"urls": urls, "extract_effort": "auto"},
).json()

برصيدين لكل رابط، الاستخراج يضيف ~12 رصيدًا/يوم لـ 3 مواضيع.

الخطوة 4: prompt الملخّص

الـ prompt يحدّد 'صوت' الموجز. نقطة بداية:

You are an assistant that writes a morning briefing in <Sarah's> voice:
direct, no fluff, no marketing language.

Input: a JSON list of {topic, headlines, extracted_bodies}.

Output rules:
- 1 short paragraph per topic, max 60 words.
- Each paragraph ends with up to 3 inline source links.
- If a topic has fewer than 2 substantive stories overnight, omit it.
- If the entire briefing has fewer than 2 substantive topics, output the
  literal token SKIP and nothing else.
- Never editorialise. Quote facts and figures verbatim from the sources.

Output format: Slack-flavoured markdown.

قاعدة 'SKIP إذا كانت الإشارة منخفضة' هي الأعلى عائدًا. هي السبب في أن موجزك لن يُكتم.

الخطوة 5: النشر والجدولة

سكريبت Python بأكمله أقل من 80 سطرًا. النشر على Slack:

if briefing.strip() == "SKIP":
    return
requests.post(
    SLACK_WEBHOOK_URL,
    json={"text": briefing, "username": "Morning Briefing", "icon_emoji": ":sunrise:"},
)

الجدولة عبر Vercel Cron (في vercel.json) أو GitHub Actions أو AWS EventBridge أو n8n. شغّل في 7:45 بمنطقتك الزمنية — ليكون الموجز بانتظارك في الثامنة.

بدون كود في n8n

  • Schedule trigger — يوميًا 7:45 بمنطقة المستخدم.
  • HTTP Request-عقد (واحدة لكل موضوع): POST /api/search/news مع start_date = أمس.
  • Merge يجمع نتائج المواضيع.
  • HTTP Request ينادي /api/extract بأعلى الروابط.
  • OpenAI / Anthropic يشغّل prompt الملخّص.
  • If يصفّي SKIP.
  • Slack ينشر.

ما يجب مراقبته في الإنتاج

  • انجراف الموضوع. 'AI agents' تصبح فضفاضة بعد 6 أشهر — الفهرس يكبر، فليبقَ موجزك محدّدًا. اضبط الاستعلامات فصليًا.
  • التكرار بين الأيام. مرّر للنموذج روابط أمس مع 'don't re-cover stories from this list'.
  • عطلات هادئة. قاعدة SKIP تتكفّل بذلك؛ لا تربط روتينك اليومي بالموجز.

كرّر، ولا تطلق وتنسَ

اقرأ الموجز كل صباح لأسبوع. دوِّن أين كذب النموذج، صنّف خطأً، أو فات شيئًا. حدّث الـ prompt. بعد أسبوع يصبح الموجز عادة — وستكون قد بنيت وكيلًا عاملًا في ~80 سطرًا من الكود وثلاثة نداءات API.

الأسئلة الشائعة

لماذا لا نستخدم Google News أو مجمّع RSS فحسب؟

كلاهما يعمل — ويتركان لك الجزء الممل: التجميع، إزالة التكرار، الملخّص، وكتابة الموجز نفسه. الوكيل يفعل ذلك عبر LLM. RSS يعطيك عناوين؛ الوكيل يعطيك فقرة تقول لماذا الأمر مهم وتربط المصادر.

ما مدى حداثة News Search API؟

يفهرس كبار الناشرين تقريبًا في الزمن الحقيقي. لموجز الثامنة صباحًا يغطّي 24 ساعة سابقة، اضبط start_date على أمس. لروبوتات الأخبار الساعية، اضبطه على اليوم وأزِل التكرار مقابل الجولة السابقة.

ماذا لو لم يكن هناك ما يُقال؟

ضع القاعدة في الـ prompt: 'If fewer than 3 substantive stories changed overnight, return SKIP.' يجب على cron احترام SKIP وعدم النشر. تعب الموجز أسرع طريق لكتم قناة Slack.

هل يمكن العمل دون n8n؟

نعم. التدفّق نفسه يقع في سكريبت Python من 30 سطرًا مع cron — انظر المثال أدناه. n8n ييسّر التصحيح المرئي والتكامل مع Slack، لكنه ليس مطلوبًا.

كيف أمنع تلخيص نفس القصة عبر مواضيع متعدّدة؟

مرّر للنموذج روابط الاستعلامات السابقة في الجولة نفسها مع 'do not re-mention any URL already covered'. أو نفّذ بحثًا متعدّد المواضيع مرّة ودَع النموذج يقسّم. كلاهما يعمل، الثاني أرخص.

الواجهات البرمجية المستخدمة في هذا المقال

Sarah Choy
بقلم
Sarah Choy
CEO, API Pick

سارة تشوي هي الرئيسة التنفيذية لشركة API Pick. تكتب عن بناء واجهات برمجية جاهزة للإنتاج لوكلاء الذكاء الاصطناعي وسير عمل نماذج اللغة.