<?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>AI Agents | The .NET Blog</title><link>https://thedotnetblog.com/hi/tags/ai-agents/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>hi</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Tue, 05 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/hi/tags/ai-agents/index.xml" rel="self" type="application/rss+xml"/><item><title>Microsoft Agent Framework भाग 3: टूल्स से वर्कफ्लो तक — बिल्डिंग ब्लॉक्स अपनी जगह पर क्लिक हो जाते हैं</title><link>https://thedotnetblog.com/hi/news/emiliano-montesdeoca/maf-building-blocks-part-3-agents-tools-workflows/</link><pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/hi/news/emiliano-montesdeoca/maf-building-blocks-part-3-agents-tools-workflows/</guid><description>.NET AI बिल्डिंग ब्लॉक्स सीरीज के भाग 3 में Microsoft Agent Framework को कवर किया गया है — टूल्स वाले सिंगल एजेंट से लेकर मेमोरी वाले मल्टी-एजेंट वर्कफ्लो तक। जानें क्या वाकई मायने रखता है।</description><content:encoded>&lt;p&gt;&lt;em&gt;यह पोस्ट स्वचालित रूप से अनुवादित की गई है। मूल संस्करण के लिए, &lt;a href="https://thedotnetblog.com/hi/news/emiliano-montesdeoca/maf-building-blocks-part-3-agents-tools-workflows/"&gt;यहाँ क्लिक करें&lt;/a&gt;।&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;अगर आप .NET में Building Blocks for AI सीरीज को फॉलो कर रहे हैं, तो आप जानते हैं: भाग 1 ने हमें &lt;code&gt;IChatClient&lt;/code&gt; (यूनिवर्सल मॉडल इंटरफेस) दिया और भाग 2 ने &lt;code&gt;Microsoft.Extensions.VectorData&lt;/code&gt; (सिमेंटिक सर्च और RAG)। दोनों फंडामेंटल हैं, दोनों अपने आप में उपयोगी हैं। लेकिन यहाँ से सब कुछ कनेक्ट होना शुरू होता है।&lt;/p&gt;
&lt;p&gt;भाग 3 &lt;a href="https://github.com/microsoft/agent-framework"&gt;Microsoft Agent Framework&lt;/a&gt; के बारे में है — और ईमानदारी से, यह वही पीस है जिसे मैं .NET में देखने का इंतजार कर रहा था। 1.0 अप्रैल में शिप हुआ। API स्थिर है। असली एजेंट बनाने का समय आ गया है।&lt;/p&gt;
&lt;h2 id="एजट-वसतव-म-कय-ह-vs-चटबट"&gt;एजेंट वास्तव में क्या है (vs. चैटबॉट)&lt;/h2&gt;
&lt;p&gt;कोड में जाने से पहले, इस अंतर को समझ लेते हैं। एक चैटबॉट इनपुट रिसीव करता है, मॉडल कॉल करता है, आउटपुट रिटर्न करता है। सिंपल लूप।&lt;/p&gt;
&lt;p&gt;एक एजेंट के पास &lt;em&gt;ऑटोनॉमी&lt;/em&gt; होती है। वह किसी टास्क के बारे में रिजन कर सकता है, तय कर सकता है कि कौन से टूल्स इस्तेमाल करने हैं, उन्हें कॉल कर सकता है, रिजल्ट्स इवैल्युएट कर सकता है और तय कर सकता है कि आगे क्या करना है — यह सब बिना आपके हर सिनेरियो के लिए स्टेप-बाय-स्टेप लॉजिक लिखे। आप उसे टूल्स और इंस्ट्रक्शन देते हैं, और वह ऑर्केस्ट्रेशन खुद संभाल लेता है।&lt;/p&gt;
&lt;p&gt;इस तरह सोचें: &lt;code&gt;IChatClient&lt;/code&gt; एक बातचीत करने जैसा है। एक एजेंट किसी को टास्क लिस्ट सौंपने जैसा है।&lt;/p&gt;
&lt;h2 id="10-लइन-म-आपक-पहल-एजट"&gt;10 लाइनों में आपका पहला एजेंट&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dotnet add package Microsoft.Agents.AI
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&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;AIAgent&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;AzureOpenAIClient&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="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Uri&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;endpoint&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="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;DefaultAzureCredential&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;GetChatClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;deploymentName&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;AsAIAgent&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;instructions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;You are good at telling jokes.&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="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;Joker&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&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;RunAsync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Tell me a joke about a pirate.&amp;#34;&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;code&gt;.AsAIAgent()&lt;/code&gt; एक्सटेंशन मेथड ब्रिज है। MEAI के &lt;code&gt;.AsIChatClient()&lt;/code&gt; जैसा ही पैटर्न — प्रोवाइडर के SDK को एक स्थिर एब्स्ट्रैक्शन में रैप करता है। Azure OpenAI, OpenAI, GitHub Models, Microsoft Foundry या लोकल मॉडल्स के साथ काम करता है।&lt;/p&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="k"&gt;await&lt;/span&gt; &lt;span class="k"&gt;foreach&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;update&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;RunStreamingAsync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Tell me a joke about a pirate.&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="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;update&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;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="एजट-क-टलस-दन"&gt;एजेंट को टूल्स देना&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="na"&gt;[Description(&amp;#34;Get the weather for a given location.&amp;#34;)]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;GetWeather&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="na"&gt; [Description(&amp;#34;The location to get the weather for.&amp;#34;)]&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;location&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;=&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;$&amp;#34;The weather in {location} is cloudy with a high of 15°C.&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&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;AIAgent&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;chatClient&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AsAIAgent&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;instructions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;You are a helpful assistant&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="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;AIFunctionFactory&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GetWeather&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;code&gt;AIFunctionFactory&lt;/code&gt; MEAI से है — वही टूल फैक्ट्री जो आप एक नॉर्मल &lt;code&gt;IChatClient&lt;/code&gt; के साथ इस्तेमाल करते। अगर आपने चैट सिनेरियोज़ के लिए टूल्स पहले से डिफाइन किए हैं, वो यहाँ भी काम करते हैं।&lt;/p&gt;
&lt;p&gt;दूसरी, &lt;code&gt;Description&lt;/code&gt; एट्रिब्यूट्स बहुत मायने रखते हैं। इसी तरह मॉडल समझता है कि कोई टूल क्या करता है और कब इस्तेमाल करना है। इन्हें इंसानों के लिए नहीं, अपनी AI के लिए डॉक्युमेंटेशन मानें।&lt;/p&gt;
&lt;h2 id="सशन-वकई-यद-रखन-वल-बतचत"&gt;सेशन: वाकई याद रखने वाली बातचीत&lt;/h2&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;AgentSession&lt;/span&gt; &lt;span class="n"&gt;session&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CreateSessionAsync&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;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;RunAsync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Tell me a joke about a pirate.&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;session&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;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;RunAsync&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="s"&gt;&amp;#34;Now add some emojis and tell it in the voice of a pirate&amp;#39;s parrot.&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="n"&gt;session&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;code&gt;RunAsync&lt;/code&gt; कॉल स्टेटलेस होती है। सेशन के साथ, एजेंट जानता है आप किस जोक की बात कर रहे हैं। &lt;code&gt;AgentSession&lt;/code&gt; टर्न्स के बीच कन्वर्सेशन हिस्ट्री प्रिजर्व करता है।&lt;/p&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;JsonElement&lt;/span&gt; &lt;span class="n"&gt;sessionState&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;SerializeSessionAsync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;session&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="c1"&gt;// ... कहीं स्टोर करें ...&lt;/span&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;restoredSession&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DeserializeSessionAsync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sessionState&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;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;RunAsync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;What were we just talking about?&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;restoredSession&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="aicontextprovider-सशनस-क-पर-परससटट-ममर"&gt;AIContextProvider: सेशन्स के पार परसिस्टेंट मेमोरी&lt;/h2&gt;
&lt;p&gt;सेशन्स एक सेशन &lt;em&gt;के भीतर&lt;/em&gt; कन्वर्सेशन हिस्ट्री प्रिजर्व करते हैं। लेकिन सेशन्स के पार किसी यूजर के बारे में जानकारी? &lt;code&gt;AIContextProvider&lt;/code&gt; यह हैंडल करता है।&lt;/p&gt;
&lt;p&gt;इसके दो हुक्स हैं:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;ProvideAIContextAsync&lt;/code&gt;&lt;/strong&gt; — हर इंटरैक्शन से &lt;em&gt;पहले&lt;/em&gt; रन होता है, एजेंट में कॉन्टेक्स्ट इंजेक्ट करता है&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;StoreAIContextAsync&lt;/code&gt;&lt;/strong&gt; — हर इंटरैक्शन के &lt;em&gt;बाद&lt;/em&gt; रन होता है, सीखने और परसिस्ट करने की सुविधा देता है&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;पैटर्न एलीगेंट है: आप मल्टीपल प्रोवाइडर्स स्टैक कर सकते हैं — एक यूजर प्रेफरेंसेज के लिए, एक हालिया इंटरैक्शन्स के लिए, एक जो रिलेवेंट डॉक्यूमेंट्स के लिए VectorData स्टोर क्वेरी करे। आखिरी वाला भाग 2 का RAG पैटर्न है, जो अब हर एजेंट कॉल के पार्ट के रूप में ऑटोमैटिकली रन होता है।&lt;/p&gt;
&lt;h2 id="मलट-एजट-वरकफल"&gt;मल्टी-एजेंट वर्कफ्लो&lt;/h2&gt;
&lt;p&gt;यहाँ फ्रेमवर्क अपना नाम सार्थक करता है। इसमें एक ग्राफ-बेस्ड वर्कफ्लो सिस्टम है जहाँ एग्जीक्यूटर्स (एजेंट, फंक्शन्स, जो भी) एजेस के जरिए कनेक्ट होते हैं।&lt;/p&gt;
&lt;p&gt;नेटिवली सपोर्टेड कुछ पैटर्न:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;सीक्वेंशियल&lt;/strong&gt;: एजेंट A का आउटपुट एजेंट B में जाता है&lt;/li&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;: एक एजेंट लिखता है, दूसरा इवैल्युएट करता है, अप्रूव होने तक लूप&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;सब-वर्कफ्लो&lt;/strong&gt;: वर्कफ्लो को हायरार्किकली कम्पोज करें&lt;/li&gt;
&lt;/ul&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;WorkflowBuilder&lt;/span&gt; &lt;span class="n"&gt;builder&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;writerAgent&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&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;AddEdge&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;writerAgent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;criticAgent&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;AddEdge&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;criticAgent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;writerAgent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;condition&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;!&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;IsApproved&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;WithOutputFrom&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;criticAgent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;condition&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;IsApproved&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="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;workflow&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;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;क्लीन, रीडेबल, और कंडीशन-बेस्ड रूटिंग का मतलब है कि आपको खुद लूप लॉजिक नहीं लिखनी।&lt;/p&gt;
&lt;h2 id="हयमन-इन-द-लप"&gt;ह्यूमन-इन-द-लूप&lt;/h2&gt;
&lt;p&gt;हर चीज पूरी तरह ऑटोनॉमस तरीके से नहीं चलनी चाहिए। सेंसिटिव ऑपरेशन्स के लिए — डेटाबेस राइट्स, फाइनेंशियल ट्रांजेक्शन्स, कम्युनिकेशन भेजना — आप चाहते हैं कि एजेंट एग्जीक्यूट करने से पहले कोई इंसान अप्रूव करे।&lt;/p&gt;
&lt;p&gt;फ्रेमवर्क में इसके लिए &lt;code&gt;FunctionApprovalRequestContent&lt;/code&gt; और &lt;code&gt;FunctionApprovalResponseContent&lt;/code&gt; के जरिए बिल्ट-इन सपोर्ट है। एजेंट टूल कॉल प्रोपोज करता है, आपका एप्लिकेशन कोड इसे यूजर को प्रेजेंट करता है, और रिस्पॉन्स तय करता है कि एग्जीक्यूशन आगे बढ़ेगा या नहीं।&lt;/p&gt;
&lt;p&gt;एंटरप्राइज सेटिंग्स में एजेंट्स के बारे में सोचने का यही सही तरीका है: पूरी तरह ऑटोनॉमस नहीं, बल्कि &lt;em&gt;गार्डरेल्स के साथ ऑटोनॉमी&lt;/em&gt;।&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;MEAI&lt;/strong&gt; किसी भी मॉडल का यूनिवर्सल इंटरफेस देता है&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;VectorData&lt;/strong&gt; सिमेंटिक सर्च के जरिए एजेंट्स को आपके ऑर्गेनाइजेशन की नॉलेज तक पहुंचने देता है&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Agent Framework&lt;/strong&gt; सब कुछ ऑर्केस्ट्रेट करता है — इंटर्नली &lt;code&gt;IChatClient&lt;/code&gt; इस्तेमाल करता है, कॉन्टेक्स्ट प्रोवाइडर्स के साथ कम्पोज होता है, वर्कफ्लो के जरिए कोऑर्डिनेट करता है&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;हर पीस को दूसरों के साथ कम्पोज होने के लिए डिजाइन किया गया है। &lt;a href="https://devblogs.microsoft.com/dotnet/microsoft-agent-framework-building-blocks-for-ai-part-3/"&gt;Jeremy Likness के ओरिजिनल पोस्ट&lt;/a&gt; और &lt;a href="https://github.com/microsoft/agent-framework/tree/main/dotnet"&gt;Agent Framework GitHub रेपो&lt;/a&gt; में पूरे सैंपल देखें।&lt;/p&gt;
&lt;h2 id="नषकरष"&gt;निष्कर्ष&lt;/h2&gt;
&lt;p&gt;Microsoft Agent Framework भाग 3 का पोस्ट बिल्डिंग ब्लॉक्स सीरीज का लूप बंद करता है। .NET डेवलपर्स के लिए जो AI एजेंट बनाना चाहते हैं — सिर्फ चैटबॉट नहीं, असली एजेंट जो टूल्स इस्तेमाल करें, चीजें याद रखें और कोऑर्डिनेट करें — यही आगे बढ़ने का रास्ता है।&lt;/p&gt;
&lt;p&gt;स्टेबल 1.0 रिलीज का मतलब है कि आप प्रोडक्शन में इस पर बिल्ड कर सकते हैं। अगर आप .NET में एजेंट डेवलपमेंट में कूदने का इंतजार कर रहे थे, तो अभी सही समय है।&lt;/p&gt;</content:encoded></item><item><title>SQL MCP Server Azure App Service पर — बिना कंटेनर के</title><link>https://thedotnetblog.com/hi/news/emiliano-montesdeoca/sql-mcp-server-azure-app-service-no-containers/</link><pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/hi/news/emiliano-montesdeoca/sql-mcp-server-azure-app-service-no-containers/</guid><description>SQL MCP Server अब Docker या Kubernetes के बिना Azure App Service पर चल सकता है। SQL डेटाबेस से कनेक्ट होने वाले AI एजेंट बनाने वाले .NET डेवलपर्स के लिए इसका क्या मतलब है।</description><content:encoded>&lt;p&gt;&lt;em&gt;यह पोस्ट स्वचालित रूप से अनुवादित की गई है। मूल संस्करण के लिए, &lt;a href="https://thedotnetblog.com/hi/news/emiliano-montesdeoca/sql-mcp-server-azure-app-service-no-containers/"&gt;यहाँ क्लिक करें&lt;/a&gt;।&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;सच बताऊं तो: जब भी किसी ट्यूटोरियल में &amp;ldquo;कंटेनर आवश्यक है&amp;rdquo; देखता हूं, मन में एक आह-सी आती है। कंटेनर बेहतरीन हैं — जब तक टीम के पास कंटेनर स्ट्रैटेजी न हो, और तब एक सरल-सी दिखने वाली फीचर अचानक अनपेक्षित ऑर्केस्ट्रेशन जटिलता में फंस जाती है।&lt;/p&gt;
&lt;p&gt;इसीलिए यह ध्यान खींचता है। SQL MCP Server अब Azure App Service पर चल सकता है — बिना Docker के, बिना Kubernetes के, सिर्फ उसी Data API Builder (DAB) कॉन्फिग फाइल के साथ जो MCP, REST और GraphQL के जरिए आपका SQL डेटाबेस एक्सपोज़ करती है।&lt;/p&gt;
&lt;h2 id="sql-mcp-server-कय-ह"&gt;SQL MCP Server क्या है?&lt;/h2&gt;
&lt;p&gt;अगर आप अभी परिचित नहीं हैं तो संक्षिप्त परिचय। SQL MCP Server आपके AI एजेंट और SQL डेटाबेस के बीच में बैठता है। एजेंट को सीधे डेटाबेस एक्सेस देने (जो बहुत बुरा विचार है) की बजाय, यह आपकी टेबल और व्यू को एक एब्स्ट्रैक्शन लेयर के रूप में एक्सपोज़ करता है — निर्धारित परमिशन के साथ एंटिटी।&lt;/p&gt;
&lt;p&gt;&lt;a href="https://learn.microsoft.com/hi-in/azure/data-api-builder/"&gt;Data API Builder&lt;/a&gt; पर बना है, यानी एक ही कॉन्फिग फाइल MCP &lt;em&gt;और&lt;/em&gt; REST &lt;em&gt;और&lt;/em&gt; GraphQL सब एक साथ मैनेज करती है। एजेंट MCP एंडपॉइंट से बात करता है। ट्रेडिशनल एप्लिकेशन REST या GraphQL से बात करती है। एक ही कॉन्फिग, एक ही रनटाइम, अलग-अलग सरफेस।&lt;/p&gt;
&lt;p&gt;यह वाकई उपयोगी है — दो अलग API लेयर बनाए रखने की जरूरत नहीं।&lt;/p&gt;
&lt;h2 id="कटनर-क-समसय-और-समधन"&gt;कंटेनर की समस्या (और समाधान)&lt;/h2&gt;
&lt;p&gt;SQL MCP Server का मूल डिप्लॉयमेंट मॉडल कंटेनर इस्तेमाल करता था। कई टीमों के लिए यह ठीक काम करता है — लेकिन सभी के लिए नहीं। कई .NET टीमें Azure App Service या VM पर स्टैंडर्डाइज़ हैं। सिर्फ एक SQL एंडपॉइंट एक्सपोज़ करने के लिए कंटेनर रनटाइम की जरूरत पड़ना अनचाहा घर्षण है।&lt;/p&gt;
&lt;p&gt;नया वॉकथ्रू दिखाता है कि कंटेनर पूरी तरह स्किप कैसे करें। सब कुछ &lt;code&gt;dab start&lt;/code&gt; कमांड से चलता है, App Service पर एक स्टैंडर्ड .NET 8 वेब प्रोसेस के रूप में होस्ट किया जाता है।&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Data API Builder इंस्टॉल करें&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dotnet tool install microsoft.dataapibuilder --prerelease -g
&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="c1"&gt;# कॉन्फिग इनिशियलाइज़ करें&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dab init --database-type mssql --host-mode Development --connection-string &lt;span class="s2"&gt;&amp;#34;@env(&amp;#39;SQL_CONNECTION_STRING&amp;#39;)&amp;#34;&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="c1"&gt;# एंटिटी जोड़ें&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dab add products --source dbo.products --permissions &lt;span class="s2"&gt;&amp;#34;authenticated:*&amp;#34;&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="c1"&gt;# App Service ऑथेंटिकेशन प्रोवाइडर कॉन्फिगर करें&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dab configure --runtime.host.authentication.provider AppService
&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="c1"&gt;# सर्वर शुरू करें&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dab start
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;इस पॉइंट पर आपके पास &lt;code&gt;/mcp&lt;/code&gt; पर MCP है, उसी प्रोसेस से REST और GraphQL है, और कुछ भी कंटेनर में नहीं चल रहा।&lt;/p&gt;
&lt;h2 id="शयरड-api-क-बन-ऑथटकशन"&gt;शेयर्ड API की बिना ऑथेंटिकेशन&lt;/h2&gt;
&lt;p&gt;यह वो हिस्सा है जो मुझे सबसे ज्यादा पसंद है। App Service पर डिप्लॉय करते समय Microsoft Entra ID को ऑथेंटिकेशन प्रोवाइडर के रूप में कॉन्फिगर करते हैं। कॉन्फिग फाइलों में कोई शेयर्ड सीक्रेट नहीं, कोई API की रोटेट नहीं करनी।&lt;/p&gt;
&lt;p&gt;कनेक्शन स्ट्रिंग App Service एनवायरनमेंट वेरिएबल में रहती है (&lt;code&gt;dab-config.json&lt;/code&gt; में नहीं), और MCP एंडपॉइंट प्लेटफॉर्म ऑथेंटिकेशन से सुरक्षित है। अगर आपके Azure वर्कलोड पहले से Entra ID के साथ अलाइन हैं, तो यह स्वाभाविक रूप से फिट होता है।&lt;/p&gt;
&lt;p&gt;लोकल डेवलपमेंट के लिए &lt;code&gt;Simulator&lt;/code&gt; मोड और STDIO ट्रांसपोर्ट पर स्विच करें। डिप्लॉयमेंट से पहले &lt;code&gt;AppService&lt;/code&gt; मोड पर वापस आएं। क्लीन और स्पष्ट।&lt;/p&gt;
&lt;h2 id="app-service-पर-डपलय-कर"&gt;App Service पर डिप्लॉय करें&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;az appservice plan create &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --name &amp;lt;plan-name&amp;gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --resource-group &amp;lt;resource-group&amp;gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --sku B1 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --is-linux
&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;az webapp create &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --name &amp;lt;app-name&amp;gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --resource-group &amp;lt;resource-group&amp;gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --plan &amp;lt;plan-name&amp;gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --runtime &lt;span class="s2"&gt;&amp;#34;DOTNETCORE:8.0&amp;#34;&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;az webapp config &lt;span class="nb"&gt;set&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --name &amp;lt;app-name&amp;gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --resource-group &amp;lt;resource-group&amp;gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --startup-file &lt;span class="s2"&gt;&amp;#34;dab start&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;फिर अपनी टीम द्वारा पहले से इस्तेमाल किए जाने वाले कोड डिप्लॉयमेंट मेथड का इस्तेमाल करके DAB प्रोजेक्ट डिप्लॉय करें। मुख्य बात: यह &lt;strong&gt;कोड&lt;/strong&gt; डिप्लॉयमेंट है, कंटेनर डिप्लॉयमेंट नहीं।&lt;/p&gt;
&lt;h2 id="net-डवलपरस-क-लए-कय-मयन-रखत-ह"&gt;.NET डेवलपर्स के लिए क्यों मायने रखता है&lt;/h2&gt;
&lt;p&gt;अगर आप .NET में AI एजेंट बना रहे हैं, तो जल्दी या बाद में एजेंट को डेटाबेस से बात करनी होगी। SQL MCP Server इसे करने का एक स्ट्रक्चर्ड तरीका देता है — रॉ कनेक्शन स्ट्रिंग एक्सपोज़ किए बिना।&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sql/sql-mcp-server-app-service/"&gt;ओरिजिनल ब्लॉग पोस्ट&lt;/a&gt; और &lt;a href="https://github.com/Azure-Samples/SQL-MCP-NoContainer"&gt;GitHub सैंपल रिपॉजिटरी&lt;/a&gt; में पूरा वॉकथ्रू देखें।&lt;/p&gt;
&lt;h2 id="नषकरष"&gt;निष्कर्ष&lt;/h2&gt;
&lt;p&gt;App Service पर SQL MCP Server उन .NET टीमों के लिए एक व्यावहारिक विकल्प है जो बिना कंटेनर स्ट्रैटेजी के एजेंटों को स्ट्रक्चर्ड SQL डेटा एक्सेस देना चाहती हैं। इसे आज़माएं — आपके एजेंट क्लीन API सरफेस की सराहना करेंगे।&lt;/p&gt;</content:encoded></item><item><title>Agent Governance Toolkit के साथ .NET में MCP Tool Calls को गवर्न करना</title><link>https://thedotnetblog.com/hi/news/emiliano-montesdeoca/governing-mcp-tool-calls-dotnet/</link><pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/hi/news/emiliano-montesdeoca/governing-mcp-tool-calls-dotnet/</guid><description>MCP-आधारित .NET एजेंट्स के लिए गवर्नेंस, पॉलिसी चेक और सुरक्षित टूल एक्जीक्यूशन कैसे शुरू करें।</description><content:encoded>&lt;p&gt;&lt;em&gt;यह पोस्ट स्वचालित रूप से अनुवादित है। मूल संस्करण के लिए &lt;a href="https://thedotnetblog.com/hi/news/emiliano-montesdeoca/governing-mcp-tool-calls-dotnet/"&gt;यहाँ क्लिक करें&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/governing-mcp-tool-calls-in-dotnet-with-the-agent-governance-toolkit/"&gt;Governing MCP Tool Calls in .NET with the Agent Governance Toolkit&lt;/a&gt; पर गौर करना ज़रूरी है अगर आप .NET सिस्टम को बड़े पैमाने पर बना या चला रहे हैं।&lt;/p&gt;
&lt;p&gt;मेरे नज़रिए से, मुख्य फ़ीचर उतना ज़रूरी नहीं जितना यह कि एक टीम इसे कितनी जल्दी एक सुरक्षित, दोहराने योग्य इंजीनियरिंग वर्कफ़्लो में बदल सकती है।&lt;/p&gt;
&lt;h2 id="net-टम-क-लए-यह-कय-मयन-रखत-ह"&gt;.NET टीमों के लिए यह क्यों मायने रखता है&lt;/h2&gt;
&lt;p&gt;अधिकांश टीमें डिलीवरी की गति, प्लेटफ़ॉर्म की एकरूपता और गवर्नेंस के बीच संतुलन बनाती हैं। यह अपडेट उपयोगी है क्योंकि यह सब कुछ नए सिरे से लिखे बिना उन बाधाओं में से किसी एक को सुधारने का अधिक ठोस रास्ता देता है।&lt;/p&gt;
&lt;h2 id="वयवहरक-अगल-कदम"&gt;व्यावहारिक अगले कदम&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;प्रोडक्शन-जैसे डेटा के साथ एक छोटे .NET पायलट में फ़ीचर की पुष्टि करें।&lt;/li&gt;
&lt;li&gt;व्यापक रोलआउट से पहले स्पष्ट रोलबैक और ऑब्ज़र्वेबिलिटी चेकपॉइंट जोड़ें।&lt;/li&gt;
&lt;li&gt;इम्प्लीमेंटेशन पैटर्न को अपने इंटरनल टेम्पलेट में कैप्चर करें ताकि दूसरी टीमें इसका पुनः उपयोग कर सकें।&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="सरत"&gt;स्रोत&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;मूल लेख: &lt;a href="https://devblogs.microsoft.com/dotnet/governing-mcp-tool-calls-in-dotnet-with-the-agent-governance-toolkit/"&gt;https://devblogs.microsoft.com/dotnet/governing-mcp-tool-calls-in-dotnet-with-the-agent-governance-toolkit/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>Visual Studio April Update: .NET Workflows के लिए Cloud Agent Integration</title><link>https://thedotnetblog.com/hi/news/emiliano-montesdeoca/visual-studio-april-update-cloud-agent-integration/</link><pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/hi/news/emiliano-montesdeoca/visual-studio-april-update-cloud-agent-integration/</guid><description>April Visual Studio अपडेट और Cloud Agent integration .NET वर्कफ़्लो के लिए क्या बदलता है, इसकी विस्तृत समीक्षा।</description><content:encoded>&lt;p&gt;&lt;em&gt;यह पोस्ट स्वचालित रूप से अनुवादित है। मूल संस्करण के लिए &lt;a href="https://thedotnetblog.com/hi/news/emiliano-montesdeoca/visual-studio-april-update-cloud-agent-integration/"&gt;यहाँ क्लिक करें&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/visualstudio/visual-studio-april-update-cloud-agent-integration/"&gt;Visual Studio April Update: Cloud Agent Integration for .NET Workflows&lt;/a&gt; पर गौर करना ज़रूरी है अगर आप .NET सिस्टम को बड़े पैमाने पर बना या चला रहे हैं।&lt;/p&gt;
&lt;p&gt;मेरे नज़रिए से, मुख्य फ़ीचर उतना ज़रूरी नहीं जितना यह कि एक टीम इसे कितनी जल्दी एक सुरक्षित, दोहराने योग्य इंजीनियरिंग वर्कफ़्लो में बदल सकती है।&lt;/p&gt;
&lt;h2 id="net-टम-क-लए-यह-कय-मयन-रखत-ह"&gt;.NET टीमों के लिए यह क्यों मायने रखता है&lt;/h2&gt;
&lt;p&gt;अधिकांश टीमें डिलीवरी की गति, प्लेटफ़ॉर्म की एकरूपता और गवर्नेंस के बीच संतुलन बनाती हैं। यह अपडेट उपयोगी है क्योंकि यह सब कुछ नए सिरे से लिखे बिना उन बाधाओं में से किसी एक को सुधारने का अधिक ठोस रास्ता देता है।&lt;/p&gt;
&lt;h2 id="वयवहरक-अगल-कदम"&gt;व्यावहारिक अगले कदम&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;प्रोडक्शन-जैसे डेटा के साथ एक छोटे .NET पायलट में फ़ीचर की पुष्टि करें।&lt;/li&gt;
&lt;li&gt;व्यापक रोलआउट से पहले स्पष्ट रोलबैक और ऑब्ज़र्वेबिलिटी चेकपॉइंट जोड़ें।&lt;/li&gt;
&lt;li&gt;इम्प्लीमेंटेशन पैटर्न को अपने इंटरनल टेम्पलेट में कैप्चर करें ताकि दूसरी टीमें इसका पुनः उपयोग कर सकें।&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="सरत"&gt;स्रोत&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;मूल लेख: &lt;a href="https://devblogs.microsoft.com/visualstudio/visual-studio-april-update-cloud-agent-integration/"&gt;https://devblogs.microsoft.com/visualstudio/visual-studio-april-update-cloud-agent-integration/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item></channel></rss>