<?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>Durable Task | The .NET Blog</title><link>https://thedotnetblog.com/ar/tags/durable-task/</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>Sun, 31 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/ar/tags/durable-task/index.xml" rel="self" type="application/rss+xml"/><item><title>سير العمل المستدامة في Microsoft Agent Framework: من الذاكرة إلى Azure Functions</title><link>https://thedotnetblog.com/ar/news/emiliano-montesdeoca/maf-durable-workflows-azure-functions-durable-task/</link><pubDate>Sun, 31 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ar/news/emiliano-montesdeoca/maf-durable-workflows-azure-functions-durable-task/</guid><description>يدعم نموذج برمجة سير العمل في MAF الآن التنفيذ المستدام المدعوم بـ Durable Task — إليك كيفية بناء سير عمل وكلاء قابلة للتركيب تصمد أمام إعادة تشغيل العمليات وتتوسع عبر Azure Functions.</description><content:encoded>&lt;p&gt;إحدى نقاط الألم مع سير عمل وكلاء الذكاء الاصطناعي المبكرة: إنها هشة. تعني سير العمل متعددة الخطوات طويلة الأمد المرتبطة بعملية واحدة أن إعادة تشغيل العملية = فقدان الحالة. بالنسبة للعروض التوضيحية البسيطة، هذا مقبول. بالنسبة لأعباء العمل الإنتاجية، ليس كذلك.&lt;/p&gt;
&lt;p&gt;يدعم نموذج برمجة سير العمل في Microsoft Agent Framework الآن &lt;strong&gt;التنفيذ المستدام&lt;/strong&gt;، المدعوم بإطار Durable Task، مع استضافة Azure Functions. إليك كيفية عمل نموذج البرمجة ولماذا تهم قصة الاستدامة.&lt;/p&gt;
&lt;h2 id="العناصر-الأساسية"&gt;العناصر الأساسية&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Executor&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.Workflows&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="kd"&gt;internal&lt;/span&gt; &lt;span class="kd"&gt;sealed&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;OrderLookup&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="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Executor&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;OrderCancelRequest&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Order&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;OrderLookup&amp;#34;&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="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;override&lt;/span&gt; &lt;span class="kd"&gt;async&lt;/span&gt; &lt;span class="n"&gt;ValueTask&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Order&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;HandleAsync&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;OrderCancelRequest&lt;/span&gt; &lt;span class="n"&gt;message&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;IWorkflowContext&lt;/span&gt; &lt;span class="n"&gt;context&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;CancellationToken&lt;/span&gt; &lt;span class="n"&gt;cancellationToken&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;default&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="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// البحث عن الطلب، إعادته&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Order&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;OrderId&lt;/span&gt;&lt;span class="p"&gt;,&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="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&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;سير العمل&lt;/strong&gt; تربط المنفذين في رسوم بيانية موجهة باستخدام منشئ fluent. يتولى الإطار التنفيذ وتدفق البيانات بين الخطوات ونشر الأخطاء.&lt;/p&gt;
&lt;p&gt;يمكنك نمذجة:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;سلاسل متسلسلة (خطوة A → خطوة B → خطوة C)&lt;/li&gt;
&lt;li&gt;Fan-out/fan-in متوازي (تشغيل الوكلاء A، B، C بالتوازي، تجميع النتائج)&lt;/li&gt;
&lt;li&gt;التفريع الشرطي&lt;/li&gt;
&lt;li&gt;موافقات الإنسان في الحلقة (إيقاف سير العمل مؤقتاً، انتظار إشارة خارجية)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="منفذ-in-memory-للتطوير-المحلي"&gt;منفذ In-Memory للتطوير المحلي&lt;/h2&gt;
&lt;p&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="n"&gt;dotnet&lt;/span&gt; &lt;span class="k"&gt;add&lt;/span&gt; &lt;span class="n"&gt;package&lt;/span&gt; &lt;span class="n"&gt;Microsoft&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Agents&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AI&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;dotnet&lt;/span&gt; &lt;span class="k"&gt;add&lt;/span&gt; &lt;span class="n"&gt;package&lt;/span&gt; &lt;span class="n"&gt;Microsoft&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Agents&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AI&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Workflows&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;تتضمن الحزمة الأساسية منفذاً خفيفاً داخل العملية. لا توجد تبعيات خارجية، ولا قاعدة بيانات، ولا موارد Azure. يعمل بشكل ممتاز للتطوير المحلي واختبارات الوحدة.&lt;/p&gt;
&lt;h2 id="إضافة-الاستدامة-مع-durable-task"&gt;إضافة الاستدامة مع Durable Task&lt;/h2&gt;
&lt;p&gt;عندما يحتاج سير العمل إلى الصمود أمام إعادة تشغيل العملية — لأنه طويل الأمد، لأن له خطوات إنسان في الحلقة، لأنه يتوزع على استدعاءات وكلاء متوازية عديدة — فإن منفذ In-Memory لا يكفي.&lt;/p&gt;
&lt;p&gt;يخزن تكامل Durable Task في MAF حالة سير العمل في Azure Storage. إذا أعيد تشغيل العملية، يستأنف سير العمل من حيث توقف. يظل نموذج البرمجة كما هو؛ تقوم فقط باستبدال المنفذ.&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="n"&gt;dotnet&lt;/span&gt; &lt;span class="k"&gt;add&lt;/span&gt; &lt;span class="n"&gt;package&lt;/span&gt; &lt;span class="n"&gt;Microsoft&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Agents&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AI&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Workflows&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DurableTask&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="استضافة-azure-functions"&gt;استضافة Azure Functions&lt;/h2&gt;
&lt;p&gt;الطبقة الثالثة هي استضافة Azure Functions. يصبح سير العمل تطبيق Function: قم بتشغيل سير العمل عبر نقطة نهاية HTTP، ويتولى وقت التشغيل المستدام التوسع والحالة والموثوقية.&lt;/p&gt;
&lt;p&gt;هذا يعني أن سير العمل متعدد الوكلاء مع استدعاءات متوازية وفروع شرطية وموافقات بشرية يمكنه التوسع عبر بيئة Functions بلا خادم دون إدارة حالة مخصصة.&lt;/p&gt;
&lt;h2 id="لماذا-هذا-مهم"&gt;لماذا هذا مهم&lt;/h2&gt;
&lt;p&gt;التوليفة مهمة لأنظمة الذكاء الاصطناعي الحقيقية:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;استدعاءات وكلاء متوازية&lt;/strong&gt; — التوزيع على وكلاء متخصصين متعددين في وقت واحد دون تعطل، تجميع النتائج عند اكتمال الجميع&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;العمليات طويلة الأمد&lt;/strong&gt; — يمكن لسير العمل التي تتضمن موافقة بشرية أو أحداثاً خارجية الإيقاف المؤقت والاستئناف عبر ساعات أو أيام&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;التوسع&lt;/strong&gt; — يتوسع Azure Functions التنفيذ أفقياً؛ يدير إطار Durable Task تنسيق الحالة المتوازية&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;إذا كنت تبني سير عمل MAF تتجاوز العروض التوضيحية المحلية البسيطة، فهذا هو الطريق إلى التنفيذ ذي الجودة الإنتاجية.&lt;/p&gt;
&lt;p&gt;المنشور الأصلي: &lt;a href="https://devblogs.microsoft.com/dotnet/durable-workflows-in-microsoft-agent-framework/"&gt;Durable Workflows in the Microsoft Agent Framework&lt;/a&gt;&lt;/p&gt;</content:encoded></item></channel></rss>