EN
ابدأ هنا المواضيع الفِرَق المرجع المستجدّات المحفوظات
متقدّم

بناء Claude داخل برمجياتك أنت

هل أستطيع أن أضع Claude داخل شيء أبنيه، لا أن أحادثه فقط؟

الإجابة المختصرة

نعم، على ثلاثة مستويات. الـ API الخام يمنحك سؤالًا واحدًا وجوابًا واحدًا. والـ headless mode يشغّل Claude كأمر داخل script. أمّا الـ Agent SDK فيسلّم برنامجك محرّك Claude Code كاملًا — الحلقة والأدوات والأذونات — في هيئة library.

هذه الصفحة لمن يكتبون البرمجيات. وإن لم تكن منهم، فالجملة الوحيدة التي تستحقّ أن تأخذها هي أن محرّك Claude Code متاح في هيئة library، فالأدوات التي يبنيها فريقك الهندسي داخليًا يمكن أن تحمل الـ agent نفسه الذي تستخدمه في التطبيق — ثم امضِ. لا شيء في بقية هذا الموقع يعتمد على ما تبقّى هنا.

أمّا لبقية القرّاء: هناك ثلاث درجات متمايزة، وكثيرًا ما تختلط، واختيار الخطأ منها أشيع طريقة يصير بها هذا العمل أصعب ممّا كان يلزم.

الدرجات الثلاث

الـ Anthropic API الخام هو الخطّ المباشر إلى الـ model. ترسل messages فتحصل على ردّ. وهو ممتاز، وهو تبادل واحد — صنّف هذا، لخّص ذاك، استخرج هذه الحقول.

الـ headless mode هو Claude Code مشغَّلًا كأمر لا كمحادثة: claude -p "…" يأخذ prompt، وينجز العمل، ويطبع نتيجة. وكل ما يستطيع تشغيل أمر صار يستطيع تشغيل agent. (وثمّة شرح عملي له في مسار Power Track.)

الـ Agent SDK يمنح برنامجك أنت محرّك Claude Code كاملًا في هيئة library — لـ TypeScript أو Python. الـ agent loop، والأدوات، ونظام الأذونات، وإدارة الـ context، وMCP، وhooks، وsubagents. وفي Python، السطح بهذا الحجم تقريبًا:

from claude_agent_sdk import query

async for message in query(prompt="Find and fix the failing test in this repo"):
    print(message)

هذه الأسطر القليلة تطلق agent يقرأ ملفات، ويشغّل أوامر، ويصلح الاختبار، ويبلّغ — الحلقة نفسها التي كنت تقودها يدويًا، لكن داخل برنامجك أنت.

التمييز المهمّ: API مقابل SDK

هذا هو الذي يستحقّ الدقّة، لأن اللجوء إلى الـ API حين كنت تريد الـ SDK يعني أن تعيد بناء شيء موجود سلفًا، وبصورة أسوأ.

الـ API الخام يجيب مرة واحدة. فإن أردت من الـ model أن يشغّل شيئًا فعلًا، ويقرأ ما عاد إليه، ويقرّر ما التالي، فعليك أنت أن تبني تلك الحلقة — تستدعي الأداة، وتعيد المُخرَج إليه، وتسأل ثانيةً، وتعالج الأخطاء، وتقرّر متى تتوقّف. وتلك الحلقة ليست تفصيلًا. هي معظم العمل الشاقّ في أيّ agent، وهي الموضع الذي تنكسر عنده الـ agents المصنوعة منزليًا عادةً: لا في صياغة الـ prompt، بل في السباكة.

الـ API الخام يمنحك الدماغ. والـ Agent SDK يمنحك الدماغ مع الجسد — الحلقة والأدوات ونظام الأذونات وإدارة الـ context — مبنيّةً سلفًا وحاملةً للأثقال في منتج يستخدمه الناس يوميًا.

ما تريده…ما تلجأ إليه…
سؤال واحد وجواب واحد — تصنيف، تلخيص، استخراجالـ API الخام
مهمة agentic واحدة داخل script أو jobالـ headless mode
agent بوصفه مكوّنًا في برنامج حقيقي — أدوات خاصة، وواجهتك أنت، ومنطق متفرّعالـ Agent SDK

والـ SDK هو حرفيًا تقريبًا Claude Code وقد أُزيل بابه الأمامي كي تصل بابك أنت إلى الغرفة نفسها.

أين ينتهي الـ headless ويبدأ الـ SDK

إنه طيف لا جدار، والقاعدة الصادقة هي: لا تلجأ إلى الـ SDK حتى يظهر جهد الـ headless mode للعيان.

المهمة الواحدة داخل script — أعِد توليد هذا التقرير، أو صنّف هذه الملفات، أو أجرِ هذا الفحص على جدول — من شغل الـ headless mode، ولفّها في تكامل SDK لا يشتري لك سوى كود تصونه. وأنت تتجاوز الـ headless حين يكفّ الـ agent عن كونه البرنامج كله ويصير جزءًا منه: حين تحتاج إلى كشف أدواتك أنت له، أو إلى واجهتك حوله، أو إلى منطق يتفرّع بحسب ما وجده، أو إلى عدّة agents تتنسّق.

ومعظم الناس لا يحتاجون الـ SDK أبدًا. وهذا ليس فشلًا في التخرّج — بل هو كفاية الـ headless mode فعلًا لمعظم العمل المتكرّر.

ما الذي يبنيه الناس فعلًا

الأمثلة تشترك في شكل واحد: عمل agentic متكرّر أخصّ من أن يكفيه claude -p مجرّد، وأثقل من أن تجالسه بنفسك.

  • مراجع مخصَّص داخل منصّة الشركة نفسها يقرأ diff وينشر ملاحظاته حيث يعمل الفريق أصلًا.
  • agent دعم يقرأ تذكرة عميل، وينقّب في الـ codebase، ويصوغ إصلاحًا ليوافق عليه إنسان.
  • أداة migration تمرّ على مئة repository وتطبّق التغيير نفسه على كلٍّ منها — الحالة التي لا يكون فعلها يدويًا صعبًا، بل مستحيلًا عند ذلك العدد.

أين تعمل هذه الأشياء: الـ CI

أشيع مضيف لـ Claude غير مراقَب هو الـ CI — الفحوص الآلية التي يجريها المشروع على كل pull request. وهو ملاءمة طبيعية، لأن الـ CI هو أصلًا الموضع الذي تتحوّل فيه القاعدة إلى سياسة فريق لا عادة شخصية: فالفحص الذي يعمل هناك يعمل للجميع، في كل مرة، تذكّروه أم لا.

وهو يغيّر أيضًا ملمح المخاطرة، ويستحقّ ذلك تعمّدًا. فالـ agent في الـ CI يعمل ولا أحد ينظر — لا توجد نافذة موافقة تلتقط فكرة سيئة، لأنه لا أحد على لوحة المفاتيح ليجيبها. وهذا يجعل أمرين حاملين للأثقال بعد أن كنت تتساهل معهما تفاعليًا: نطاق الأذونات الذي تمنحه إياه، والـ blast radius للبيئة التي يعمل فيها. والغريزة النافعة أن تمنح الـ agent غير المراقَب أضيق مدى يكفيه لأداء عمله، وأن تفضّل المهامّ التي مخرجها اقتراح — تعليق، أو PR مسوّدة — على المهامّ التي تُنزِل تغييرات مباشرةً. والأذونات و plan mode والبقاء مسيطرًا يشرح المنطق؛ وهو ينطبق هنا بقوّة أكبر لا أقلّ.

أين تقع هذه الصفحة

إن وصلت إلى هنا بحثًا عن «كيف أجعل Claude يعمل دون أن أجلس هناك»، فالآليّات التي تنطلق بحدث أو بساعة — hooks وجدولة وloops — تجدها في الـ hooks والجدولة والـ loops. أمّا هذه الصفحة فالدرجة الأعلى: لا إطلاق Claude تلقائيًا، بل وضعه داخل شيء تبنيه.

وسؤال ما إذا كان ما تبنيه موثوقًا فعلًا — كيف تتحقّق من عمل كتبه agent بدل أن تأمل بشأنه — تجده في البناء بموثوقية باستخدام الـ agents، وهو الهمّ الذي يبقى بعد أيّ درجة اخترتها هنا.

المصطلحات

Agent SDK Claude Agent SDK
مجموعة أدوات لـ TypeScript أو Python تمنح برنامجك أنت محرّك Claude Code كاملًا في هيئة library — الـ agent loop، والأدوات، والأذونات، وإدارة الـ context، وMCP، وhooks، وsubagents — بدل نافذة محادثة حوله.
Headless mode claude -p
تشغيل Claude كأمر لمرّة واحدة بدل محادثة: تمرّر prompt، فينجز العمل ويطبع نتيجة، بلا session تفاعلية. وفي الـ CLI ذلك هو claude -p "…".
CI continuous integration
الفحوص الآلية التي يجريها المشروع على كل تغيير — على كل pull request عادةً. اختبارات، وlinting، وبناء، وأحيانًا جولة مراجعة. تعمل على جهاز غير جهازك، وتبلّغ بالنجاح أو الفشل على الـ PR.

أسئلة يطرحها الناس

هل أستخدم الـ Anthropic API أم الـ Agent SDK؟
الـ API إن أردت سؤالًا واحدًا وجوابًا واحدًا — صنّف هذا، لخّص ذاك، استخرج هذه الحقول. والـ Agent SDK إن أردت شيئًا يستكشف ويشغّل أدوات ويكرّر، لأنك حينها تحتاج إلى الحلقة: استدعِ الأداة، وأعِد النتيجة، وقرّر ما التالي، وعالِج الأخطاء. وتلك الحلقة هي معظم العمل الشاقّ في أيّ agent، والـ SDK هو إيّاها، مبنيّةً سلفًا.
متى يكفي الـ headless mode ومتى أحتاج إلى الـ SDK؟
الـ headless mode (claude -p) يكفي لمهمة واحدة داخل script أو job مجدوَل — ولفّها في تكامل SDK لا يشتري لك سوى كود تصونه. وأنت تتجاوزه حين يكفّ الـ agent عن كونه البرنامج كله ويصير جزءًا منه: أدواتك أنت مكشوفة له، وواجهتك، ومنطق يتفرّع بحسب ما وجده. ومعظم الناس لا يعبرون ذلك الخطّ أبدًا.
ما المختلف في تشغيل Claude داخل الـ CI؟
لا أحد ينظر. لا توجد نافذة موافقة تلتقط فكرة سيئة لأنه لا أحد على لوحة المفاتيح ليجيبها، ما يجعل أمرين حاملين للأثقال بعد أن كنت تتساهل معهما تفاعليًا: نطاق الأذونات الذي تمنحه، وblast radius البيئة. وفضِّل المهامّ التي مخرجها اقتراح — تعليق، أو PR مسوّدة — على المهامّ التي تُنزِل تغييرات مباشرةً.