OpenAI API vs Anthropic API
عملاقان في تطوير تطبيقات الذكاء الاصطناعي: OpenAI API الذي يضم سلسلة GPT-5 وDALL-E، وAnthropic API الذي يقدم نموذج Claude Opus 4.7 بسياق يصل إلى مليون رمز (token). أيهما أنسب لمشروعك؟
بنية وكيل أساسية من الطرف الأول تُحوّل Claude Code إلى مكتبة
إطار عمل خفيف لتنسيق الوكلاء المتعددين، محايد تجاه المزوّد
لا توجد إجابة صحيحة واحدة، لكن الأدلة تشير إلى اتجاه: في المعمارية التي تُركّز على MCP وتُعطي الأولوية لحوكمة الأذونات/الـ hooks المؤسسية، يوصل عزل الـ subagent في Claude Agent SDK مع دعم Bedrock إلى الإنتاج بمفاجآت أقل. أما الفرق التي تعمل في مسار OpenAI/Azure، أو تريد مرونة تعدد النماذج أو لوحة تتبّع (trace dashboard)، فإن OpenAI Agents SDK يتطلّب عملًا إضافيًا أقل. كلاهما يدعم MCP؛ أبقِ طبقة الأدوات في MCP، منفصلة عن التنسيق.
| الفئة | Claude Agent SDK | OpenAI Agents SDK |
|---|---|---|
| الأداء | 8/10 | 8/10 |
| سهولة التعلّم | 7/10 | 7/10 |
| النظام البيئي | 6/10 | 8/10 |
| المجتمع | 6/10 | 8/10 |
| سوق العمل | 6/10 | 7/10 |
| الاستدامة المستقبلية | 8/10 | 8/10 |
// Claude Agent SDK (TypeScript) - subagent قائم على ملف + تقييد أدوات MCP
// المصدر: docs.claude.com/en/api/agent-sdk/subagents + /mcp
import { query } from "@anthropic-ai/claude-agent-sdk";
const result = query({
prompt: "ابحث عن الاختبارات الفاشلة في المستودع وأصلحها",
options: {
// تعريف subagent برمجي — البديل القائم على الملفات: .claude/agents/*.md
agents: {
"test-fixer": {
description: "يحلّل الاختبارات الفاشلة ويصلحها",
prompt: "أنت مهندس اختبارات. شغّل الاختبار أولًا، ثم ابحث عن السبب الجذري.",
tools: ["Read", "Edit", "Bash"], // tool restriction
},
},
// خادم MCP: الاتصال كعملية محلية
mcpServers: {
github: {
command: "npx",
args: ["-y", "@modelcontextprotocol/server-github"],
},
},
permissionMode: "default", // يدخل ترتيب hooks + deny/ask/allow حيّز التنفيذ
},
});
for await (const message of result) {
if (message.type === "result") {
console.log("التكلفة الإجمالية:", message.total_cost_usd);
console.log("استخدام النموذج:", message.modelUsage);
}
}# OpenAI Agents SDK (Python) - Handoff + guardrail + MCP (stdio)
# المصدر: openai.github.io/openai-agents-python/multi_agent/ + /mcp/ + /guardrails/
from agents import Agent, Runner, handoff, input_guardrail, GuardrailFunctionOutput
from agents.mcp import MCPServerStdio
async def main():
async with MCPServerStdio(
params={"command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"]},
) as github_mcp:
@input_guardrail
async def block_secrets(ctx, agent, input_text: str) -> GuardrailFunctionOutput:
contains_secret = "sk-" in input_text
return GuardrailFunctionOutput(
output_info={"blocked": contains_secret},
tripwire_triggered=contains_secret,
)
triage_agent = Agent(
name="Triage",
instructions="حلّل المهمة، وحوّلها إلى الوكيل الخبير المناسب.",
input_guardrails=[block_secrets],
)
fixer_agent = Agent(
name="TestFixer",
instructions="أصلح الاختبارات الفاشلة.",
mcp_servers=[github_mcp],
)
triage_agent.handoffs = [handoff(fixer_agent)]
result = await Runner.run(triage_agent, "أصلح الاختبارات الفاشلة في المستودع")
print(result.final_output)لا توجد إجابة صحيحة واحدة، لكن الأدلة تشير إلى اتجاه: في المعمارية التي تُركّز على MCP وتُعطي الأولوية لحوكمة الأذونات/الـ hooks المؤسسية، يوصل عزل الـ subagent في Claude Agent SDK مع دعم Bedrock إلى الإنتاج بمفاجآت أقل. أما الفرق التي تعمل في مسار OpenAI/Azure، أو تريد مرونة تعدد النماذج أو لوحة تتبّع (trace dashboard)، فإن OpenAI Agents SDK يتطلّب عملًا إضافيًا أقل. كلاهما يدعم MCP؛ أبقِ طبقة الأدوات في MCP، منفصلة عن التنسيق.
احصل على استشارة مجانيةيكشف Claude Agent SDK واجهة سطر أوامر Claude Code الخاصة بـ Anthropic كمكتبة؛ يأتي بوصول مدمج إلى نظام الملفات وbash وأدوات MCP، ويوفّر تحكّمًا بمستوى الإنتاج عبر عزل الـ subagent وترتيب أذونات قائم على الـ hooks. أما OpenAI Agents SDK فقد صُمم من الصفر كإطار عمل متعدد الوكلاء محايد تجاه المزوّد؛ يدعم أيضًا النماذج من خارج OpenAI (عبر محوّل) من خلال الـ handoffs وguardrails والـ sessions والتتبّع المفعّل افتراضيًا. الفرق الأساسي يكمن في محور الارتباط بالنموذج: حزمة OpenAI متعددة النماذج بحكم التصميم، بينما Claude Agent SDK مُحسَّنة لـ Claude.