Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
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.
Åpne en terminal og opprett en ny mappe
mkdir echo cd echoÅpne mappen ved hjelp av Visual Studio Code ved hjelp av denne kommandoen:
code .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.
Trykk F1, skriv inn
Python: Create environmentog trykk ENTER.Velg Venv for å opprette et
.venvvirtuelt miljø i gjeldende arbeidsområde.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
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
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 errorDenne koden definerer en
start_serverfunksjon vi skal bruke i neste fil.Opprett en fil med
app.pyfø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
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-toolNote
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 vulnerabilitiesKjør testverktøyet for å samhandle med agenten ved hjelp av denne kommandoen:
teamsapptesterTerminalen 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.
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
Åpne en terminal og opprett en ny mappe
mkdir echo cd echoInitialiser node.js-prosjektet
npm init -yInstaller en Agents SDK
npm install @microsoft/agents-hosting-expressÅ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
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-toolTerminalen 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 vulnerabilitiesKjør testverktøyet for å samhandle med agenten ved hjelp av denne kommandoen:
node_modules/.bin/teamsapptesterTerminalen 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.
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.
Åpne en terminal og opprett en ny mappe
mkdir echo cd echoInitialiser .NET-prosjektet
dotnet new webInstaller en Agents SDK
dotnet add package Microsoft.Agents.Hosting.AspNetCoreÅ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
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-toolNote
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 vulnerabilitiesKjør testverktøyet for å samhandle med agenten ved hjelp av denne kommandoen:
teamsapptesterTerminalen 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.
Skriv inn og send en melding i tekstinndataene for å se ekkosvaret.
Neste trinn
- Sjekk ut SDK-eksempler for agenter på GitHub
- Finn ut mer om aktiviteter og arbeid med aktiviteter
- Se gjennom AgentApplication-hendelsene du kan svare på fra klienten
- Se gjennom TurnContext-hendelsene du kan sende tilbake til klienten
- Klargjør Azure Bot-ressurser som skal brukes med Agents SDK
- Konfigurer .NET-agenten til å bruke OAuth
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: