इसके माध्यम से साझा किया गया


क्विकस्टार्ट: एक बेसिक एजेंट बनाएं और उसका परीक्षण करें

यह क्विकस्टार्ट आपको एक कस्टम इंजन एजेंट बनाने के माध्यम से मार्गदर्शन करता है जो आपके द्वारा भेजे गए किसी भी संदेश का जवाब देता है।

पूर्वावश्यकताएँ

  • पायथन 3.9 या नया।

    • पायथन स्थापित करने के लिए, पर जाएं https://www.python.org/downloads/, और अपने ऑपरेटिंग सिस्टम के निर्देशों का पालन करें।
    • संस्करण को सत्यापित करने के लिए, टर्मिनल विंडो में टाइप करें python --version.
  • अपनी पसंद का एक कोड संपादक। ये निर्देश Visual Studio कोड का उपयोग करें।

    यदि आप Visual Studio कोड का उपयोग करते हैं, तो Python एक्सटेंशन स्थापित करें

प्रोजेक्ट को प्रारंभ करें और SDK स्थापित करें

एक पायथन प्रोजेक्ट बनाएं और आवश्यक निर्भरताएं स्थापित करें।

  1. एक टर्मिनल खोलें और एक नया फ़ोल्डर बनाएं

    mkdir echo
    cd echo
    
  2. इस आदेश का उपयोग करके Visual Studio कोड का उपयोग कर फ़ोल्डर खोलें:

    code .
    
  3. अपनी पसंद की विधि के साथ एक आभासी वातावरण बनाएं और इसे विजुअल स्टूडियो कोड या टर्मिनल में सक्रिय करें।

    Visual Studio कोड का उपयोग करते समय, आप स्थापित पायथन एक्सटेंशन के साथ इन चरणों का उपयोग कर सकते हैं।

    1. F1 दबाएँ, लिखें Python: Create environment, और Enter दबाएँ.

      1. वर्तमान कार्यक्षेत्र में वर्चुअल वातावरण बनाने के लिए .venv का चयन करें।

      2. वर्चुअल वातावरण बनाने के लिए एक पायथन इंस्टॉलेशन का चयन करें।

        मान इस तरह दिख सकता है:

        Python 1.13.6 ~\AppData\Local\Programs\Python\Python313\python.exe

  4. एजेंट SDK स्थापित करें

    इस कमांड के साथ microsoft-agents-hosting-aiohttp पैकेज को स्थापित करने के लिए pip का उपयोग करें:

    pip install microsoft-agents-hosting-aiohttp
    

सर्वर अनुप्रयोग बनाएँ और आवश्यक लाइब्रेरीज़ आयात करें

  1. नाम start_server.pyकी एक फ़ाइल बनाएँ, निम्न कोड की प्रतिलिपि बनाएँ, और उसमें चिपकाएँ:

    # start_server.py
    from os import environ
    from microsoft_agents.hosting.core import AgentApplication, AgentAuthConfiguration
    from microsoft_agents.hosting.aiohttp import (
       start_agent_process,
       jwt_authorization_middleware,
       CloudAdapter,
    )
    from aiohttp.web import Request, Response, Application, run_app
    
    
    def start_server(
       agent_application: AgentApplication, auth_configuration: AgentAuthConfiguration
    ):
       async def entry_point(req: Request) -> Response:
          agent: AgentApplication = req.app["agent_app"]
          adapter: CloudAdapter = req.app["adapter"]
          return await start_agent_process(
                req,
                agent,
                adapter,
          )
    
       APP = Application(middlewares=[jwt_authorization_middleware])
       APP.router.add_post("/api/messages", entry_point)
       APP.router.add_get("/api/messages", lambda _: Response(status=200))
       APP["agent_configuration"] = auth_configuration
       APP["agent_app"] = agent_application
       APP["adapter"] = agent_application.adapter
    
       try:
          run_app(APP, host="localhost", port=environ.get("PORT", 3978))
       except Exception as error:
          raise error
    

    यह कोड एक start_server फ़ंक्शन को परिभाषित करता है जिसे हम अगली फ़ाइल में उपयोग करेंगे।

  2. एक ही निर्देशिका में, निम्न कोड के साथ नामित app.py एक फ़ाइल बनाएँ।

    # app.py
    from microsoft_agents.hosting.core import (
       AgentApplication,
       TurnState,
       TurnContext,
       MemoryStorage,
    )
    from microsoft_agents.hosting.aiohttp import CloudAdapter
    from start_server import start_server
    

एजेंट एप्लिकेशन के रूप में एजेंट का एक उदाहरण बनाएं

app.py में, AGENT_APP को AgentApplication का उदाहरण के रूप में बनाने के लिए निम्नलिखित कोड जोड़ें, और तीन घटनाओं का उत्तर देने के लिए तीन मार्ग लागू करें:

  • बातचीत अपडेट
  • संदेश /help
  • कोई अन्य गतिविधि
AGENT_APP = AgentApplication[TurnState](
    storage=MemoryStorage(), adapter=CloudAdapter()
)

async def _help(context: TurnContext, _: TurnState):
    await context.send_activity(
        "Welcome to the Echo Agent sample 🚀. "
        "Type /help for help or send a message to see the echo feature in action."
    )

AGENT_APP.conversation_update("membersAdded")(_help)

AGENT_APP.message("/help")(_help)


@AGENT_APP.activity("message")
async def on_message(context: TurnContext, _):
    await context.send_activity(f"you said: {context.activity.text}")

लोकलहोस्ट में सुनने के लिए वेब सर्वर प्रारंभ करें:3978

app.py के बाद, वेब सर्वर शुरू करने के लिए start_server का उपयोग करें।

if __name__ == "__main__":
    try:
        start_server(AGENT_APP, None)
    except Exception as error:
        raise error

एजेंट को स्थानीय रूप से अनाम मोड में चलाएँ

अपने टर्मिनल से, यह कमांड चलाएं:

python app.py

टर्मिनल को निम्नलिखित वापस करना चाहिए:

======== Running on http://localhost:3978 ========
(Press CTRL+C to quit)

स्थानीय रूप से एजेंट का परीक्षण करें

  1. किसी अन्य टर्मिनल से (एजेंट को चालू रखने के लिए) इस कमांड के साथ Microsoft 365 एजेंट खेल का मैदान स्थापित करें:

    npm install -g @microsoft/teams-app-test-tool
    

    नोट

    यह कमांड npm का उपयोग करता है क्योंकि Microsoft 365 Agents Playground पाइप का उपयोग करके उपलब्ध नहीं है।

    टर्मिनल को कुछ इस तरह वापस करना चाहिए:

    added 1 package, and audited 130 packages in 1s
    
    19 packages are looking for funding
    run `npm fund` for details
    
    found 0 vulnerabilities
    
  2. इस कमांड का उपयोग करके अपने एजेंट के साथ इंटरैक्ट करने के लिए परीक्षण टूल चलाएँ:

    teamsapptester
    

    टर्मिनल को कुछ इस तरह वापस करना चाहिए:

    Telemetry: agents-playground-cli/serverStart {"cleanProperties":{"options":"{\"configFileOptions\":{\"path\":\"<REDACTED: user-file-path>\"},\"appConfig\":{},\"port\":56150,\"disableTelemetry\":false}"}}
    
    Telemetry: agents-playground-cli/cliStart {"cleanProperties":{"isExec":"false","argv":"<REDACTED: user-file-path>,<REDACTED: user-file-path>"}}
    
    Listening on 56150
    Microsoft 365 Agents Playground is being launched for you to debug the app: http://localhost:56150
    started web socket client
    started web socket client
    Waiting for connection of endpoint: http://127.0.0.1:3978/api/messages
    waiting for 1 resources: http://127.0.0.1:3978/api/messages
    wait-on(37568) complete
    Telemetry: agents-playground-server/getConfig {"cleanProperties":{"internalConfig":"{\"locale\":\"en-US\",\"localTimezone\":\"America/Los_Angeles\",\"channelId\":\"msteams\"}"}}
    
    Telemetry: agents-playground-server/sendActivity {"cleanProperties":{"activityType":"installationUpdate","conversationId":"5305bb42-59c9-4a4c-a2b6-e7a8f4162ede","headers":"{\"x-ms-agents-playground\":\"true\"}"}}
    
    Telemetry: agents-playground-server/sendActivity {"cleanProperties":{"activityType":"conversationUpdate","conversationId":"5305bb42-59c9-4a4c-a2b6-e7a8f4162ede","headers":"{\"x-ms-agents-playground\":\"true\"}"}}
    

कमांड आपके डिफ़ॉल्ट ब्राउज़र को teamsapptester खोलता है और आपके एजेंट से जुड़ता है।

एजेंटों के खेल के मैदान में आपका एजेंट

अब आप प्रतिध्वनि उत्तर देखने के लिए कोई भी संदेश भेज सकते हैं, या यह देखने के लिए संदेश /help भेज सकते हैं कि वह संदेश हैंडलर को _help कैसे रूट किया गया है।

यह क्विकस्टार्ट आपको एक कस्टम इंजन एजेंट बनाने के माध्यम से मार्गदर्शन करता है जो आपके द्वारा भेजे गए किसी भी संदेश का जवाब देता है।

पूर्वावश्यकताएँ

  • Node.js v22 या नया

    • स्थापित करने Node.js nodejs.org पर जाएँ और अपने ऑपरेटिंग सिस्टम के लिए आने वाले अनुदेशों का पालन करें.
    • संस्करण को सत्यापित करने के लिए, टर्मिनल विंडो में टाइप करें node --version.
  • अपनी पसंद का एक कोड संपादक। ये निर्देश Visual Studio कोड का उपयोग करें।

प्रोजेक्ट को प्रारंभ करें और SDK स्थापित करें

package.json बनाकर और आवश्यक निर्भरताएँ स्थापित करके node.js प्रोजेक्ट प्रारंभ करने के लिए उपयोग npm करें

  1. एक टर्मिनल खोलें और एक नया फ़ोल्डर बनाएं

    mkdir echo
    cd echo
    
  2. node.js प्रोजेक्ट प्रारंभ करें

    npm init -y
    
  3. एजेंट SDK स्थापित करें

    npm install @microsoft/agents-hosting-express
    
  4. इस आदेश का उपयोग करके Visual Studio कोड का उपयोग कर फ़ोल्डर खोलें:

    code .
    

आवश्यक लाइब्रेरीज़ आयात करें

फ़ाइल index.mjs बनाएं और अपने एप्लिकेशन कोड में निम्नलिखित एनपीएम पैकेज आयात करें:

// index.mjs
import { startServer } from '@microsoft/agents-hosting-express'
import { AgentApplication, MemoryStorage } from '@microsoft/agents-hosting'

EchoAgent को AgentApplication के रूप में लागू करें

मेंindex.mjs, EchoAgent का विस्तार बनाने के लिए निम्न कोड जोड़ें, और तीन घटनाओं का प्रतिसाद देने के लिए तीन मार्ग कार्यान्वित करें:

  • बातचीत अपडेट
  • संदेश /help
  • कोई अन्य गतिविधि
class EchoAgent extends AgentApplication {
  constructor (storage) {
    super({ storage })

    this.onConversationUpdate('membersAdded', this._help)
    this.onMessage('/help', this._help)
    this.onActivity('message', this._echo)
  }

  _help = async context => 
    await context.sendActivity(`Welcome to the Echo Agent sample 🚀. 
      Type /help for help or send a message to see the echo feature in action.`)

  _echo = async (context, state) => {
    let counter= state.getValue('conversation.counter') || 0
    await context.sendActivity(`[${counter++}]You said: ${context.activity.text}`)
    state.setValue('conversation.counter', counter)
  }
}

लोकलहोस्ट में सुनने के लिए वेब सर्वर प्रारंभ करें:3978

index.mjs के अंत में, startServer का उपयोग करके वेब सर्वर शुरू करें, जो MemoryStorage को टर्न स्टेट स्टोरेज के रूप में इस्तेमाल करता है और एक्सप्रेस पर आधारित है।

startServer(new EchoAgent(new MemoryStorage()))

एजेंट को स्थानीय रूप से अनाम मोड में चलाएँ

अपने टर्मिनल से, यह कमांड चलाएं:

node index.mjs

टर्मिनल को यह वापस करना चाहिए:

Server listening to port 3978 on sdk 0.6.18 for appId undefined debug undefined

स्थानीय रूप से एजेंट का परीक्षण करें

  1. किसी अन्य टर्मिनल से (एजेंट को चालू रखने के लिए) इस कमांड के साथ Microsoft 365 एजेंट खेल का मैदान स्थापित करें:

    npm install -D @microsoft/teams-app-test-tool
    

    टर्मिनल को कुछ इस तरह वापस करना चाहिए:

    added 1 package, and audited 130 packages in 1s
    
    19 packages are looking for funding
    run `npm fund` for details
    
    found 0 vulnerabilities
    
  2. इस कमांड का उपयोग करके अपने एजेंट के साथ इंटरैक्ट करने के लिए परीक्षण टूल चलाएँ:

    node_modules/.bin/teamsapptester
    

    टर्मिनल को कुछ इस तरह वापस करना चाहिए:

    Telemetry: agents-playground-cli/serverStart {"cleanProperties":{"options":"{\"configFileOptions\":{\"path\":\"<REDACTED: user-file-path>\"},\"appConfig\":{},\"port\":56150,\"disableTelemetry\":false}"}}
    
    Telemetry: agents-playground-cli/cliStart {"cleanProperties":{"isExec":"false","argv":"<REDACTED: user-file-path>,<REDACTED: user-file-path>"}}
    
    Listening on 56150
    Microsoft 365 Agents Playground is being launched for you to debug the app: http://localhost:56150
    started web socket client
    started web socket client
    Waiting for connection of endpoint: http://127.0.0.1:3978/api/messages
    waiting for 1 resources: http://127.0.0.1:3978/api/messages
    wait-on(37568) complete
    Telemetry: agents-playground-server/getConfig {"cleanProperties":{"internalConfig":"{\"locale\":\"en-US\",\"localTimezone\":\"America/Los_Angeles\",\"channelId\":\"msteams\"}"}}
    
    Telemetry: agents-playground-server/sendActivity {"cleanProperties":{"activityType":"installationUpdate","conversationId":"5305bb42-59c9-4a4c-a2b6-e7a8f4162ede","headers":"{\"x-ms-agents-playground\":\"true\"}"}}
    
    Telemetry: agents-playground-server/sendActivity {"cleanProperties":{"activityType":"conversationUpdate","conversationId":"5305bb42-59c9-4a4c-a2b6-e7a8f4162ede","headers":"{\"x-ms-agents-playground\":\"true\"}"}}
    

कमांड आपके डिफ़ॉल्ट ब्राउज़र को teamsapptester खोलता है और आपके एजेंट से जुड़ता है।

एजेंटों के खेल के मैदान में आपका एजेंट

अब आप प्रतिध्वनि उत्तर देखने के लिए कोई भी संदेश भेज सकते हैं, या यह देखने के लिए संदेश /help भेज सकते हैं कि वह संदेश हैंडलर को _help कैसे रूट किया गया है।

यह क्विकस्टार्ट आपको एक कस्टम इंजन एजेंट बनाने के माध्यम से मार्गदर्शन करता है जो आपके द्वारा भेजे गए किसी भी संदेश का जवाब देता है।

पूर्वावश्यकताएँ

  • .NET 8.0 SDK या उसका नवीनतम संस्करण

    • .NET SDK स्थापित करने के लिए, dotnet.microsoft.com पर जाएँ और अपने ऑपरेटिंग सिस्टम के लिए निर्देशों का पालन करें.
    • संस्करण को सत्यापित करने के लिए, टर्मिनल विंडो में टाइप करें dotnet --version.
  • अपनी पसंद का एक कोड संपादक। ये निर्देश Visual Studio कोड का उपयोग करें।

प्रोजेक्ट को प्रारंभ करें और SDK स्थापित करें

एक नया वेब प्रोजेक्ट बनाने और आवश्यक निर्भरताएँ स्थापित करने के लिए उपयोग करें dotnet

  1. एक टर्मिनल खोलें और एक नया फ़ोल्डर बनाएं

    mkdir echo
    cd echo
    
  2. .NET प्रोजेक्ट को प्रारंभ करें

    dotnet new web
    
  3. एजेंट SDK स्थापित करें

    dotnet add package Microsoft.Agents.Hosting.AspNetCore
    
  4. इस आदेश का उपयोग करके Visual Studio कोड का उपयोग कर फ़ोल्डर खोलें:

    code .
    

आवश्यक लाइब्रेरीज़ आयात करें

Program.csमें, मौजूदा सामग्री को बदलें और अपने एप्लिकेशन कोड में SDK पैकेज आयात करने के लिए निम्नलिखित using कथन जोड़ें:

// Program.cs
using Microsoft.Agents.Builder;
using Microsoft.Agents.Builder.App;
using Microsoft.Agents.Builder.State;
using Microsoft.Agents.Core.Models;
using Microsoft.Agents.Hosting.AspNetCore;
using Microsoft.Agents.Storage;
using Microsoft.AspNetCore.Builder;

EchoAgent को AgentApplication के रूप में लागू करें

परProgram.cs, कथनों के बादusing, विस्तारित AgentApplication बनाने के लिए निम्नलिखित कोड जोड़ेंEchoAgent, और घटनाओं का जवाब देने के लिए मार्गों को कार्यान्वित करें:

  • बातचीत अपडेट
  • कोई अन्य गतिविधि
public class EchoAgent : AgentApplication
{
   public EchoAgent(AgentApplicationOptions options) : base(options)
   {
      OnConversationUpdate(ConversationUpdateEvents.MembersAdded, WelcomeMessageAsync);
      OnActivity(ActivityTypes.Message, OnMessageAsync, rank: RouteRank.Last);
   }

   private async Task WelcomeMessageAsync(ITurnContext turnContext, ITurnState turnState, CancellationToken cancellationToken)
   {
        foreach (ChannelAccount member in turnContext.Activity.MembersAdded)
        {
            if (member.Id != turnContext.Activity.Recipient.Id)
            {
                await turnContext.SendActivityAsync(MessageFactory.Text("Hello and Welcome!"), cancellationToken);
            }
        }
    }

   private async Task OnMessageAsync(ITurnContext turnContext, ITurnState turnState, CancellationToken cancellationToken)
   {
      await turnContext.SendActivityAsync($"You said: {turnContext.Activity.Text}", cancellationToken: cancellationToken);
   }
}

वेब सर्वर सेट करें और एजेंट एप्लिकेशन को पंजीकृत करें

में Program.cs, कथनों के बाद using , वेब होस्ट को कॉन्फ़िगर करने के लिए निम्न कोड जोड़ें, एजेंट को पंजीकृत करें, और समापन बिंदु को मैप करें /api/messages :

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddHttpClient();
builder.AddAgentApplicationOptions();
builder.AddAgent<EchoAgent>();
builder.Services.AddSingleton<IStorage, MemoryStorage>();

var app = builder.Build();

app.MapPost("/api/messages", async (HttpRequest request, HttpResponse response, IAgentHttpAdapter adapter, IAgent agent, CancellationToken cancellationToken) =>
{
    await adapter.ProcessAsync(request, response, agent, cancellationToken);
});

app.Run();

वेब सर्वर को लोकलहोस्ट में सुनने के लिए सेट करें: 3978

में launchSettings.json, applicationURL को http://localhost:3978 पर अपडेट करें ताकि ऐप सही पोर्ट पर सुन रहे।

एजेंट को स्थानीय रूप से अनाम मोड में चलाएँ

अपने टर्मिनल से, यह कमांड चलाएं:

dotnet run

टर्मिनल को कुछ इस तरह वापस करना चाहिए:

info: Microsoft.Hosting.Lifetime[14]
      Now listening on: http://localhost:3978

स्थानीय रूप से एजेंट का परीक्षण करें

  1. किसी अन्य टर्मिनल से (एजेंट को चालू रखने के लिए) निम्न आदेश के साथ Microsoft 365 एजेंट प्लेग्राउंड स्थापित करें:

    npm install -g @microsoft/teams-app-test-tool
    

    नोट

    यह आदेश npm का उपयोग करता है क्योंकि Microsoft 365 एजेंट प्लेग्राउंड एक npm पैकेज के रूप में वितरित किया जाता है।

    टर्मिनल को कुछ इस तरह वापस करना चाहिए:

    added 1 package, and audited 130 packages in 1s
    
    19 packages are looking for funding
    run `npm fund` for details
    
    found 0 vulnerabilities
    
  2. इस कमांड का उपयोग करके अपने एजेंट के साथ इंटरैक्ट करने के लिए परीक्षण टूल चलाएँ:

    teamsapptester
    

    टर्मिनल को कुछ इस तरह वापस करना चाहिए:

    Telemetry: agents-playground-cli/serverStart {"cleanProperties":{"options":"{\"configFileOptions\":{\"path\":\"<REDACTED: user-file-path>\"},\"appConfig\":{},\"port\":56150,\"disableTelemetry\":false}"}}
    
    Telemetry: agents-playground-cli/cliStart {"cleanProperties":{"isExec":"false","argv":"<REDACTED: user-file-path>,<REDACTED: user-file-path>"}}
    
    Listening on 56150
    Microsoft 365 Agents Playground is being launched for you to debug the app: http://localhost:56150
    started web socket client
    started web socket client
    Waiting for connection of endpoint: http://127.0.0.1:3978/api/messages
    waiting for 1 resources: http://127.0.0.1:3978/api/messages
    wait-on(37568) complete
    Telemetry: agents-playground-server/getConfig {"cleanProperties":{"internalConfig":"{\"locale\":\"en-US\",\"localTimezone\":\"America/Los_Angeles\",\"channelId\":\"msteams\"}"}}
    
    Telemetry: agents-playground-server/sendActivity {"cleanProperties":{"activityType":"installationUpdate","conversationId":"5305bb42-59c9-4a4c-a2b6-e7a8f4162ede","headers":"{\"x-ms-agents-playground\":\"true\"}"}}
    
    Telemetry: agents-playground-server/sendActivity {"cleanProperties":{"activityType":"conversationUpdate","conversationId":"5305bb42-59c9-4a4c-a2b6-e7a8f4162ede","headers":"{\"x-ms-agents-playground\":\"true\"}"}}
    

कमांड आपके डिफ़ॉल्ट ब्राउज़र को teamsapptester खोलता है और आपके एजेंट से जुड़ता है।

एजेंटों के खेल के मैदान में आपका एजेंट

टेक्स्ट इनपुट में, इको रिप्लाई देखने के लिए कोई भी संदेश दर्ज करें और भेजें।

अगले कदम

यदि आप पहले से ही Microsoft 365 एजेंट टूलकिट का उपयोग कर रहे हैं, तो एजेंट खेल का मैदान डिफ़ॉल्ट रूप से उपलब्ध है। यदि आप टूलकिट के साथ आरंभ करना चाहते हैं तो आप निम्न मार्गदर्शिकाओं में से एक का उपयोग कर सकते हैं: