Del via


Hurtigstart: Opprette og teste en grunnleggende agent

Denne hurtiginnføringen veileder deg gjennom oppretting av en egendefinert motoragent som svarer tilbake med meldingen du sender til den.

Forutsetning

  • Python 3.9 eller nyere.

    • Hvis du vil installere Python, går du til https://www.python.org/downloads/og følger instruksjonene for operativsystemet.
    • Hvis du vil bekrefte versjonen, skriver du inn en terminalvindutype python --versioni en terminalvindu.
  • Et koderedigeringsprogram du ønsker. Disse instruksjonene bruker Visual Studio Code.

    Hvis du bruker Visual Studio Code, installerer du Python-utvidelsen

Initialiser prosjektet og installer SDK

Opprett et Python-prosjekt, og installer de nødvendige avhengighetene.

  1. Åpne en terminal og opprett en ny mappe

    mkdir echo
    cd echo
    
  2. Åpne mappen ved hjelp av Visual Studio Code ved hjelp av denne kommandoen:

    code .
    
  3. Opprett et virtuelt miljø med metoden du ønsker, og aktiver det enten via Visual Studio Code eller i en terminal.

    Når du bruker Visual Studio Code, kan du bruke disse trinnene med Python-utvidelsen installert.

    1. Trykk F1, skriv inn Python: Create environmentog trykk ENTER.

      1. Velg Venv for å opprette et .venv virtuelt miljø i gjeldende arbeidsområde.

      2. Velg en Python-installasjon for å opprette det virtuelle miljøet.

        Verdien kan se slik ut:

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

  4. Installer en Agents SDK

    Bruk pip til å installere microsoft-agents-hosting-aiohttp-pakken med denne kommandoen:

    pip install microsoft-agents-hosting-aiohttp
    

Opprett serverprogrammet, og importer de nødvendige bibliotekene

  1. Opprett en fil med navnet start_server.py, kopier følgende kode og lim den inn i:

    # 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
    

    Denne koden definerer en start_server funksjon vi skal bruke i neste fil.

  2. Opprett en fil med app.py følgende kode i samme katalog.

    # 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
    

Opprette en forekomst av agenten som AgentApplication

Legg app.pytil følgende kode for å opprette AGENT_APP som en forekomst av AgentApplication, og implementer tre ruter for å svare på tre hendelser:

  • Samtaleoppdatering
  • meldingen /help
  • alle andre aktiviteter
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}")

Start webserveren for å lytte i localhost:3978

På slutten av app.py, start webserveren ved å bruke start_server.

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

Kjør agenten lokalt i anonym modus

Kjør denne kommandoen fra terminalen:

python app.py

Terminalen skal returnere følgende:

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

Test agenten lokalt

  1. Fra en annen terminal (for å holde agenten i gang) installerer du Microsoft 365 Agents Playground med denne kommandoen:

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

    Note

    Denne kommandoen bruker npm fordi Microsoft 365 Agents Playground ikke er tilgjengelig ved hjelp av pip.

    Terminalen skal returnere noe sånt som:

    added 1 package, and audited 130 packages in 1s
    
    19 packages are looking for funding
    run `npm fund` for details
    
    found 0 vulnerabilities
    
  2. Kjør testverktøyet for å samhandle med agenten ved hjelp av denne kommandoen:

    teamsapptester
    

    Terminalen skal returnere noe sånt som:

    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\"}"}}
    

Kommandoen teamsapptester åpner standardnettleseren og kobler til agenten.

Agenten din på agentlekeplassen

Nå kan du sende en melding for å se ekkosvaret, eller sende meldingen /help for å se hvordan meldingen rutes til behandleren _help .

Denne hurtiginnføringen veileder deg gjennom oppretting av en egendefinert motoragent som svarer tilbake med meldingen du sender til den.

Forutsetning

  • Node.js v22 eller nyere

    • Hvis du vil installere Node.js går du til nodejs.org og følger instruksjonene for operativsystemet.
    • Hvis du vil bekrefte versjonen, skriver du inn en terminalvindutype node --versioni en terminalvindu.
  • Et koderedigeringsprogram du ønsker. Disse instruksjonene bruker Visual Studio Code.

Initialiser prosjektet og installer SDK

Brukes npm til å initialisere et node.js prosjekt ved å opprette en package.json og installere de nødvendige avhengighetene

  1. Åpne en terminal og opprett en ny mappe

    mkdir echo
    cd echo
    
  2. Initialiser node.js-prosjektet

    npm init -y
    
  3. Installer en Agents SDK

    npm install @microsoft/agents-hosting-express
    
  4. Åpne mappen ved hjelp av Visual Studio Code ved hjelp av denne kommandoen:

    code .
    

Importer de nødvendige bibliotekene

Opprett filen index.mjs , og importer følgende NPM-pakker til programkoden:

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

Implementere EchoAgent som en AgentApplication

I index.mjslegger du til følgende kode for å opprette EchoAgent utvidelsen av AgentApplication, og implementerer tre ruter for å svare på tre hendelser:

  • Samtaleoppdatering
  • meldingen /help
  • alle andre aktiviteter
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)
  }
}

Start webserveren for å lytte i localhost:3978

Start webserveren ved slutten av index.mjs ved hjelp av startServer basert på Express, ved bruk av MemoryStorage som turn state storage.

startServer(new EchoAgent(new MemoryStorage()))

Kjør agenten lokalt i anonym modus

Kjør denne kommandoen fra terminalen:

node index.mjs

Terminalen skal returnere dette:

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

Test agenten lokalt

  1. Fra en annen terminal (for å holde agenten i gang) installerer du Microsoft 365 Agents Playground med denne kommandoen:

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

    Terminalen skal returnere noe sånt som:

    added 1 package, and audited 130 packages in 1s
    
    19 packages are looking for funding
    run `npm fund` for details
    
    found 0 vulnerabilities
    
  2. Kjør testverktøyet for å samhandle med agenten ved hjelp av denne kommandoen:

    node_modules/.bin/teamsapptester
    

    Terminalen skal returnere noe sånt som:

    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\"}"}}
    

Kommandoen teamsapptester åpner standardnettleseren og kobler til agenten.

Agenten din på agentlekeplassen

Nå kan du sende en melding for å se ekkosvaret, eller sende meldingen /help for å se hvordan meldingen rutes til behandleren _help .

Denne hurtiginnføringen veileder deg gjennom oppretting av en egendefinert motoragent som svarer tilbake med meldingen du sender til den.

Forutsetning

  • .NET 8.0 SDK eller nyere

    • Hvis du vil installere .NET SDK, går du til dotnet.microsoft.com og følger instruksjonene for operativsystemet.
    • Hvis du vil bekrefte versjonen, skriver du inn en terminalvindutype dotnet --versioni en terminalvindu.
  • Et koderedigeringsprogram du ønsker. Disse instruksjonene bruker Visual Studio Code.

Initialiser prosjektet og installer SDK

Brukes dotnet til å opprette et nytt nettprosjekt og installere de nødvendige avhengighetene.

  1. Åpne en terminal og opprett en ny mappe

    mkdir echo
    cd echo
    
  2. Initialiser .NET-prosjektet

    dotnet new web
    
  3. Installer en Agents SDK

    dotnet add package Microsoft.Agents.Hosting.AspNetCore
    
  4. Åpne mappen ved hjelp av Visual Studio Code ved hjelp av denne kommandoen:

    code .
    

Importer de nødvendige bibliotekene

I Program.cserstatter du det eksisterende innholdet og legger til følgende using setninger for å importere SDK-pakkene til programkoden:

// 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;

Implementere EchoAgent som en AgentApplication

Legg Program.cstil følgende kode i , etter using utsagnene, for å opprette den EchoAgent utvidede AgentApplication, og implementere ruter for å svare på hendelser:

  • Samtaleoppdatering
  • Enhver annen aktivitet
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);
   }
}

Konfigurere webserveren og registrere agentprogrammet

Legg til følgende kode i Program.cs etter using-utsagnene for å konfigurere webverten, registrere agenten og tilordne /api/messages-endepunktet:

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();

Angi at webserveren skal lytte i localhost:3978

Oppdater launchSettings.jsontil applicationURL i , http://localhost:3978 slik at appen lytter på riktig port.

Kjør agenten lokalt i anonym modus

Kjør denne kommandoen fra terminalen:

dotnet run

Terminalen skal returnere noe sånt som:

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

Test agenten lokalt

  1. Fra en annen terminal (for å holde agenten i gang) installerer du Microsoft 365 Agents Playground med følgende kommando:

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

    Note

    Denne kommandoen bruker npm fordi Microsoft 365 Agents Playground distribueres som en npm-pakke.

    Terminalen skal returnere noe sånt som:

    added 1 package, and audited 130 packages in 1s
    
    19 packages are looking for funding
    run `npm fund` for details
    
    found 0 vulnerabilities
    
  2. Kjør testverktøyet for å samhandle med agenten ved hjelp av denne kommandoen:

    teamsapptester
    

    Terminalen skal returnere noe sånt som:

    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\"}"}}
    

Kommandoen teamsapptester åpner standardnettleseren og kobler til agenten.

Agenten din på agentlekeplassen

Skriv inn og send en melding i tekstinndataene for å se ekkosvaret.

Neste trinn

Agents Playground er tilgjengelig som standard hvis du allerede bruker Microsoft 365 Agents Toolkit. Du kan bruke én av følgende veiledninger hvis du vil komme i gang med verktøysettet: