[ blog · use-case ]9 min read

بناء وكيل عناية واجبة على إيداعات SEC (10-K، 10-Q، 8-K، الأرباح)

Sarah Choyنُشر في 3 مايو 2026قراءة 9 دقائق
بناء وكيل عناية واجبة على إيداعات SEC (10-K، 10-Q، 8-K، الأرباح)

قراءة 10-K في معظمها Ctrl+F. القيام بذلك لخمسين شركة وظيفة كاملة. استبدِل الـ 80% المملّة بوكيل بحث-واستخراج ضدّ SEC EDGAR — واحتفظ بالـ 20% المهمّة للمحلّل البشري.

الخلاصة

  • البنية: بحث عن الرمز → SEC Filings Search (إيداعات + أرباح + إحصاءات الأسهم) → URL Extract للمقاطع الطويلة → إجابة نموذج لغة مع استشهادات على مستوى القسم.
  • سقف التكلفة: SEC Filings Search يكلّف 120 رصيدًا للنداء (≈$0.12)؛ مراجعة شركة نموذجية بثلاثة أسئلة تكلّف ~$0.40 أرصدةً + ~$0.05 رموز نموذج لغة.
  • ما يصيبه الوكيل: عمليات البحث عن الحقائق (إيرادات القطاع، اتجاه الإنفاق الرأسمالي، الحوكمة، تغيّرات عوامل المخاطر سنةً بعد سنة)، ملخّصات تعويضات التنفيذيين، أحداث 8-K الأخيرة.
  • ما لا يزال يحتاج إنسانًا: أحكام التقدير حول جودة الإدارة، التموضع في السوق، القضايا الخاصّة بالصفقة، وأيّ شيء خارج لغة الإيداع.

لماذا يستحقّ هذا الأتمتة

قراءة العناية الواجبة الأولى على شركة عامة آليّةٌ في معظمها: اسحب أحدث 10-K، امسح عوامل المخاطر وقسم MD&A، تفقّد إيداعات 8-K الأخيرة، ألقِ نظرة على أحدث مكالمة أرباح. محلّل بدرجة مساعد يقضي 2–4 ساعات في ذلك لكل شركة. الناتج نادرًا ما يكون رؤيةً عميقة — بل نمط حقائق منظّم يُعمِل فيه شخصٌ آخر أقدم عقلَه.

خطوة نمط الحقائق تلك هي بالضبط ما يستطيع وكيل صغير توليه. ابحث في SEC، استخرج المقاطع ذات الصلة، لخّص مع استشهادات. لا يزال الشخص الأقدم يقوم بالاستدلال — لكنه يبدأ من قراءة 5 دقائق بدل قراءة 4 ساعات.

ثلاثة أمور تجعل هذا عمليًا الآن:

  • البحث الدلالي عبر الإيداعات يعني أنك تستطيع السؤال 'كيف تغيّرت إيرادات القطاع' وتسترجع الفقرة الصحيحة من النموذج الصحيح، بدل قراءة 200 صفحة.
  • نماذج اللغة طويلة السياق تستطيع حمل 10-K كامل زائد بضع إيداعات 8-K في ذاكرة العمل والإجابة عن أسئلة عابرة للمستندات.
  • انضباط الاستشهاد في الموجّه يجعل الناتج قابلًا للتحقّق خلال ثوانٍ — وهو بالضبط ما تتطلّبه سير عمل الامتثال والمراجعة.

البنية

question + ticker
       ├─ /api/company/facts (2 credits)
       │  ↳ confirm ticker, get CIK and sector
       ├─ /api/search/sec (120 credits)
       │  ↳ semantic search across 10-K/10-Q/8-K/earnings/equity stats
       ├─ /api/extract (2 credits per URL)
       │  ↳ pull full text of the top 3-5 most relevant filings
       └─ Claude / GPT-4 with citation-required prompt
          ↳ "answer + [Form, Fiscal Period, Section]"

تكلفة السؤال الواحد: ~130 رصيدًا (~$0.13) من الواجهة + ~$0.03 من نموذج اللغة. مراجعة شركة بثلاثة أسئلة (اتجاه مالي، فارق عوامل المخاطر، أحداث جوهرية أخيرة) تستقرّ عند ~$0.45–$0.60. مقارنةً بساعة محلّل بأيّ معدّل فوترة معقول، الحساب بديهي.

موجّه النظام الذي يستحقّ نفقته

المحدّد الأكبر منفردًا لجودة الناتج في RAG المالي هو موجّه النظام. ذاك الذي نستخدمه:

You are a financial research assistant for an investment team. You answer
questions about US public companies using SEC filings, earnings call
transcripts, and equity statistics retrieved by your tools.

Rules — non-negotiable:

1. Cite every numeric claim with: [Form, Fiscal Period, Section]. Example:
   "Operating income rose 12% YoY to $4.1B [10-K FY2025, Item 7 MD&A]."

2. Quote numbers verbatim. Do not round, paraphrase, or convert. If a
   filing says "$4,127M", do not say "$4.1B" unless the filing itself does.

3. If the answer requires content you have not extracted, say so:
   "I could not retrieve the FY2024 10-K for the segment-level breakdown.
   Please re-run with that filing in scope."

4. Do not infer from training-data knowledge. If your tools didn't return
   it, you don't know it.

5. Default to the most recent fiscal period available. State the period
   you used.

6. Format multi-figure answers as a small markdown table with one column
   per fiscal period. Always end with a one-line "How I read this" summary.

Tone: precise, terse, no marketing language.

القواعد 1 و2 و4 بينها تزيل ~90% من مشكلات التلفيق التي قِسناها. القاعدة 3 ("لا أعرف" برشاقة) هي ما يفصل هذا عن روبوت دردشة يختلق الأرقام بثقة.

أسئلة نموذجية يتعامل معها الوكيل بنظافة

  • 'قارن اتجاه إيرادات خدمات Apple على مدى السنوات المالية الخمس الأخيرة.' ← يسحب من إيداعات 10-K ذات الصلة، يُرجع جدولًا باستشهادات إلى MD&A.
  • 'ما الذي تغيّر في عوامل مخاطر NVIDIA بين FY2023 وFY2025؟' ← فارق عابر للمستندات، يستشهد بـ Item 1A في كل نموذج.
  • 'لخّص آخر 4 إيداعات 8-K لـ $TICKER.' ← بحث دلالي مرشّح إلى 8-K، مرتّب حسب تاريخ الإيداع.
  • 'ماذا قال المدير المالي لـ Microsoft عن الإنفاق الرأسمالي على الذكاء الاصطناعي في أحدث مكالمة أرباح؟' ← يبحث في النصوص، يستخرج مقطع السؤال والجواب ذا الصلة، يقتبس حرفيًا.

أين يقصّر — والتسليم البشري الصحيح

يتعثّر الوكيل في ثلاثة مواضع متوقّعة:

  • أحكام التقدير حول جودة الإدارة. الإيداع يخبرك بما فعلوه، لا بما إن كانوا أكْفاء. لا تسأل الوكيل.
  • المقارنات الصناعية خارج الإيداع. إن كان السؤال 'كيف يقارَن هامش الربح الإجمالي هذا بالأقران'، فالوكيل لا يعرف إلا ما في الإيداعات المبحوثة. للمقارنة بالأقران تحتاج إمّا مجموعة بيانات منفصلة أو تشغيل الوكيل مرّة لكل شركة والتجميع.
  • التعليقات التطلّعية. تحتوي الإيداعات على بيانات تطلّعية لكن النموذج يعاملها على ظاهرها ما لم يُؤمَر بغير ذلك. أضِف إلى الموجّه: 'علِّم البيانات التطلّعية صراحةً. لا تقدّم التوجيهات على أنها حقيقة.'

الحدّ الأدنى من البناء القابل للحياة

نمط حلقة استخدام أدوات Claude نفسه من شرح وكيل البحث ينطبق — تتغيّر الأدوات وموجّه النظام فقط:

from anthropic import Anthropic
import requests

KEY = "pk_yourkey"
client = Anthropic()

def fetch_tool(path: str) -> dict:
    return requests.get(f"https://www.apipick.com{path}/tool-schema").json()["claude"]

TOOLS = [
    fetch_tool("/api/search/sec"),
    fetch_tool("/api/extract"),
    fetch_tool("/api/company/facts"),
]

def call_tool(block):
    name_to_path = {
        "sec_search": "/api/search/sec",
        "extract_urls": "/api/extract",
        "company_facts": "/api/company/facts",
    }
    path = name_to_path[block.name]
    method = "GET" if block.name == "company_facts" else "POST"
    if method == "GET":
        resp = requests.get(
            f"https://www.apipick.com{path}",
            params=block.input,
            headers={"x-api-key": KEY},
            timeout=30,
        )
    else:
        resp = requests.post(
            f"https://www.apipick.com{path}",
            json=block.input,
            headers={"x-api-key": KEY},
            timeout=30,
        )
    return {
        "type": "tool_result",
        "tool_use_id": block.id,
        "content": resp.text,
        "is_error": resp.status_code != 200,
    }

def due_dil(question: str) -> str:
    messages = [{"role": "user", "content": question}]
    while True:
        r = client.messages.create(
            model="claude-sonnet-4-6",
            max_tokens=2048,
            system=SYSTEM_PROMPT,  # the one above
            tools=TOOLS,
            messages=messages,
        )
        messages.append({"role": "assistant", "content": r.content})
        if r.stop_reason == "end_turn":
            return "\n".join(b.text for b in r.content if b.type == "text")
        if r.stop_reason == "tool_use":
            results = [call_tool(b) for b in r.content if b.type == "tool_use"]
            messages.append({"role": "user", "content": results})

print(due_dil("Compare Snowflake's product revenue YoY for the last 4 quarters."))

إلى أين تأخذه بعد ذلك

  • قوالب للمراجعات القابلة للتكرار. لُفّ الوكيل في أداة سطر أوامر صغيرة تأخذ رمزًا وتُصدر موجزًا بصيغة markdown ثابتة: 'إيداعات 8-K الأخيرة'، 'اتجاه إيرادات القطاع'، 'فارق عوامل المخاطر'. الوكيل نفسه، موجّهات مكتوبة سلفًا.
  • وضع قائمة المراقبة. شغّل الوكيل ضدّ رمز كل صباح وقارن إجابة اليوم بإجابة الأمس. اعرض الفروق فقط. يقترن جيدًا مع نمط الموجز الصباحي.
  • اجمعه مع براءات الاختراع وأسواق التنبّؤ. للأسماء التقنية / الحيوية، أضِف Patent Search لتغيّرات الملكية الفكرية وPrediction Markets للنتائج التي يضمرها الحشد (مثل احتمال موافقة دواء).

النمط يتعمّم. SEC أكثف مجموعة نشحنها وأكثرها ملاءمةً للمخطّط — لكن الحلقة ('بحث دلالي ← استخراج URL ← إجابة مع استشهادات') تنطبق على أيّ مجموعة مستندات منظّمة تهتمّ بها: الإيداعات القانونية، الملخّصات العلمية، مطالب براءات الاختراع. ابنِ وكيل العناية الواجبة أوّلًا، ثم انقل البنية جانبيًا.

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

ما مدى حداثة فهرس SEC؟

تُفهرَس الإيداعات خلال ساعات من قبول EDGAR لها. بالنسبة لإيداعات 8-K (الحسّاسة زمنيًا — الأحداث الجوهرية، تغييرات القيادة، الاستحواذات)، يكون هذا سريعًا بما يكفي عادةً لسير عمل نهاية اليوم. إن احتجت إشعارًا في أقل من ساعة بإيداعات 8-K الجديدة، اقرن البحث بتغذية SEC RSS منفصلة واستخدم الوكيل لتحليل المحتوى فقط، لا للكشف.

هل يغطّي نصوص مكالمات الأرباح؟

نعم — يتضمّن فهرس SEC Filings Search نصوص مكالمات الأرباح الأمريكية وإحصاءات الأسهم (السعر/الحجم، تاريخ القيمة السوقية) إلى جانب الإيداعات نفسها. استعلام دلالي واحد يمكنه السحب من أيّ من هذه المصادر.

ما هي روافع التكلفة إن كنت أفعل هذا على نطاق واسع؟

ثلاث. (1) رشِّح مسبقًا عبر Company Facts (2 رصيد) لتأكيد أن الرمز شركة عامة حقيقية قبل إنفاق 120 رصيدًا على بحث SEC. (2) خزّن نتائج البحث مؤقّتًا حسب (الرمز، الربع) — الإيداعات تتحدّث على جدول فقط. (3) استخدم بحثًا واسعًا واحدًا لكل سؤال بدل عدّة بحوث ضيّقة؛ الوكيل بارع في التركيب عبر النتائج.

هل يستطيع الوكيل التعامل مع إيداعات غير أمريكية؟

يغطّي SEC Filings Search الشركات المدرَجة أمريكيًا (10-K، 10-Q، 8-K). للشركات البريطانية، اقرن UK Legal Search وWeb Search. للولايات القضائية الأخرى، ارجع إلى Web Search + URL Extract على موقع المنظّم الوطني المعني (Companies House، SEDAR، إلخ).

كيف أتجنّب الأرقام المهلوسة؟

ثلاث قواعد في موجّه النظام تُحدث أكبر فرق. (1) 'اقتبس الأرقام حرفيًا من النصّ المستخرَج — لا تُعِد الصياغة ولا تقرّب أبدًا.' (2) 'ضمِّن دائمًا نموذج الإيداع والفترة المالية ومرجعًا للقسم.' (3) 'إن لم يُستخرَج الإيداع ذو الصلة، فقُل ذلك صراحةً — لا تستنتج من بيانات التدريب.' هذه الثلاث معًا تزيل معظم التلفيق.

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

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

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