<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Deployment | The .NET Blog</title><link>https://thedotnetblog.com/ar/tags/deployment/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>ar</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Sat, 30 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/ar/tags/deployment/index.xml" rel="self" type="application/rss+xml"/><item><title>وكيل MAF المحلي الخاص بك وجد الآن موطناً في الإنتاج</title><link>https://thedotnetblog.com/ar/news/emiliano-montesdeoca/maf-agent-local-to-production-foundry-hosted-agents/</link><pubDate>Sat, 30 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ar/news/emiliano-montesdeoca/maf-agent-local-to-production-foundry-hosted-agents/</guid><description>يمنح Foundry Hosted Agents وكيل Microsoft Agent Framework هويةً وتوسعاً وثباتاً للجلسات وقابلية للملاحظة دون إعداد إضافي. إليك كيف يبدو ذلك عملياً.</description><content:encoded>&lt;p&gt;جعل الوكيل يعمل محلياً هو الجزء الممتع. الجزء الصعب هو كل ما يأتي بعد ذلك: نشره دون فقدان العقل، وإدارة الجلسات، وإعداد الهوية، وتوصيل قابلية الملاحظة. عادةً ما يعني ذلك الكثير من البنية التحتية المخصصة.&lt;/p&gt;
&lt;p&gt;Foundry Hosted Agents أزال للتو معظم تلك البنية التحتية لمستخدمي Microsoft Agent Framework (MAF).&lt;/p&gt;
&lt;h2 id="ما-الذي-يفعله-foundry-hosted-agents-فعليا"&gt;ما الذي يفعله Foundry Hosted Agents فعلياً&lt;/h2&gt;
&lt;p&gt;عندما تنشر وكيل MAF على Foundry Hosted Agents، تتولى المنصة قائمة طويلة بشكل مدهش من الأشياء التي كان عليك بناؤها بنفسك:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;التوسع إلى الصفر&lt;/strong&gt; — وكيلك لا يكلف شيئاً عند الخمول ويعود للعمل تلقائياً&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;بيئات معزولة بـ VM لكل جلسة&lt;/strong&gt; — كل جلسة مستخدم تحصل على بيئتها المعزولة مع استمرارية نظام الملفات التي تصمد أمام أحداث التقليص&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Entra ID مدمج&lt;/strong&gt; — كل وكيل يحصل على هويته الخاصة لاستدعاء نماذج Foundry وToolbox وخدمات Azure دون أسرار مضمّنة في الصورة&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;نشر ذو إصدارات&lt;/strong&gt; — كل نشر هو لقطة ثابتة مع دعم نشر blue/green والنشر التدريجي&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;قابلية ملاحظة دون إعداد&lt;/strong&gt; — يُحقن &lt;code&gt;APPLICATIONINSIGHTS_CONNECTION_STRING&lt;/code&gt; وقت التشغيل لتتدفق تتبعات OpenTelemetry الخاصة بـ MAF إلى App Insights تلقائياً&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;هذه الأخيرة مريحة فعلاً. لا توصيل إضافي، لا إعداد إضافي. التتبعات تظهر ببساطة.&lt;/p&gt;
&lt;h2 id="الفرق-في-الكود-ضئيل"&gt;الفرق في الكود ضئيل&lt;/h2&gt;
&lt;p&gt;هذا ما أقدّره أكثر في هذا التكامل. لا تعيد كتابة وكيلك. فقط تغلّفه:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;في .NET:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;Microsoft.Agents.AI.Foundry.Hosting&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;builder&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;WebApplication&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CreateBuilder&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Services&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddFoundryResponses&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Build&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;MapFoundryResponses&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Run&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;في Python:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;server&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ResponsesHostServer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;server&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;هذا كل شيء. نفس المنطق الذي اختبرته محلياً هو ما يعمل في الإنتاج. تغلّف المنصة ذلك في بنية تحتية لإدارة الجلسات والهوية والتوسع.&lt;/p&gt;
&lt;h2 id="بروتوكولان-وكيل-واحد"&gt;بروتوكولان، وكيل واحد&lt;/h2&gt;
&lt;p&gt;يدعم Hosted Agents نمطين من نقاط النهاية:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Responses&lt;/strong&gt; (&lt;code&gt;/responses&lt;/code&gt;) — متوافق مع OpenAI، يدير تاريخ المحادثة والبث. خيار افتراضي جيد للوكلاء ذوي طابع المحادثة.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Invocations&lt;/strong&gt; (&lt;code&gt;/invocations&lt;/code&gt;) — تحدد أنت مخطط الطلب/الاستجابة. جيد لسير العمل غير المحادثاتي.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;إذا كنت تبني شيئاً يشبه المحادثة، ابدأ بـ Responses. إذا كنت تبني وكيلاً بصيغة API يأخذ مدخلات منظمة ويرجع مخرجات منظمة، فإن Invocations تمنحك المرونة.&lt;/p&gt;
&lt;h2 id="تدفق-النشر-مع-azd"&gt;تدفق النشر مع &lt;code&gt;azd&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;عند تشغيل &lt;code&gt;azd up&lt;/code&gt; مع وكيل MAF:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;يُنشئ اختيارياً مشروع Foundry وينشر نموذجاً&lt;/li&gt;
&lt;li&gt;يحزم كودك ويدفع صورة إلى Azure Container Registry&lt;/li&gt;
&lt;li&gt;يوفّر الحوسبة من صورة ACR&lt;/li&gt;
&lt;li&gt;يعيّن Entra ID مخصصاً للوكيل&lt;/li&gt;
&lt;li&gt;يعرض نقطة نهاية مستقرة (&lt;code&gt;https://{project_endpoint}/agents/{agent_name}&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;يتعامل مع كل شيء آخر من تلك النقطة&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;تستمر الجلسات حتى 30 يوماً. تُلغى توفير الحوسبة الخاملة بعد 15 دقيقة وتُستعاد بشفافية عند الطلب التالي. من منظور الوكيل، لم يتغير شيء.&lt;/p&gt;
&lt;h2 id="خلاصة"&gt;خلاصة&lt;/h2&gt;
&lt;p&gt;المسافة بين &amp;ldquo;يعمل محلياً&amp;rdquo; و&amp;quot;يعمل في الإنتاج&amp;quot; كانت تاريخياً طويلة ومؤلمة لوكلاء الذكاء الاصطناعي. Foundry Hosted Agents + MAF يُغلق هذه الفجوة بشكل كبير. إذا كان لديك بالفعل وكيل محلي مبني بـ Agent Framework، فالأمر يستحق التجربة اليوم.&lt;/p&gt;
&lt;p&gt;يقول الفريق إن GA قادم قريباً — وهو حالياً في المعاينة. تحقق من &lt;a href="https://learn.microsoft.com/en-us/agent-framework/hosting/foundry-hosted-agent"&gt;وثائق تكامل MAF Hosted Agent&lt;/a&gt; و&lt;a href="https://github.com/microsoft/agent-framework/tree/main/dotnet/samples/04-hosting/FoundryHostedAgents"&gt;أمثلة .NET&lt;/a&gt; للبدء.&lt;/p&gt;
&lt;p&gt;المقال الأصلي: &lt;a href="https://devblogs.microsoft.com/agent-framework/from-local-to-production-deploy-your-microsoft-agent-framework-agent-with-foundry-hosted-agents/"&gt;From Local to Production: Deploy Your Microsoft Agent Framework Agent with Foundry Hosted Agents&lt;/a&gt;&lt;/p&gt;</content:encoded></item></channel></rss>