Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Quickstart lernen Sie, wie Sie einen benutzerdefinierten Engine-Agenten erstellen, der mit jeder Nachricht antwortet, die Sie ihm senden.
Voraussetzungen
Python 3.9 oder neuer.
- Um Python zu installieren, besuchen Sie https://www.python.org/downloads/ und folgen Sie den Anweisungen für Ihr Betriebssystem.
- Um die Version zu überprüfen, geben Sie in einem Terminalfenster Folgendes ein:
python --version.
Ein Code-Editor Ihrer Wahl. Diese Anleitungen verwenden Visual Studio Code.
Wenn Sie Visual Studio Code verwenden, installieren Sie die Python-Erweiterung
Initialisieren Sie das Projekt und installieren Sie das SDK
Erstellen Sie ein Python-Projekt und installieren Sie die erforderlichen Abhängigkeiten.
Öffnen Sie ein Terminal und erstellen Sie einen neuen Ordner
mkdir echo cd echoÖffnen Sie den Ordner in Visual Studio Code mit dem folgenden Befehl:
code .Erstellen Sie eine virtuelle Umgebung mit einer Methode Ihrer Wahl und aktivieren Sie sie entweder über Visual Studio Code oder im Terminal.
Wenn Sie Visual Studio Code verwenden, können Sie diese Schritte ausführen, wenn die Python-Erweiterung installiert ist.
Drücken Sie F1 und tippen Sie
Python: Create environmentund drücken die Eingabetaste.Wählen Sie Venv, um eine
.venvvirtuelle Umgebung im aktuellen Workspace zu erstellen.Wählen Sie eine Python-Installation aus, um die virtuelle Umgebung zu erstellen.
Der Werte könnte folgendermaßen aussehen:
Python 1.13.6 ~\AppData\Local\Programs\Python\Python313\python.exe
Installieren von Agents SDK
Verwenden Sie pip, um das microsoft-agents-hosting-aiohttp-Paket mit folgendem Befehl zu installieren:
pip install microsoft-agents-hosting-aiohttp
Erstellen Sie die Serveranwendung und importieren Sie die erforderlichen Bibliotheken
Erstellen Sie eine Datei namens
start_server.py, kopieren den folgenden Code und fügen ihn ein:# 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 errorDieser Code definiert eine
start_server-Funktion, die wir in der nächsten Datei verwenden werden.Erstellen Sie in demselben Verzeichnis eine Datei mit dem Namen
app.pyund dem folgenden Code.# 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
Erstellen Sie eine Instanz des Agenten als AgentApplication
Fügen Sie in app.py den folgenden Code hinzu, um AGENT_APP als Instanz von AgentApplication zu erstellen und drei Routen für die Reaktion auf drei Ereignisse zu implementieren:
- Unterhaltungsupdate
- Die Meldung
/help - Jede andere Aktivität
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}")
Starten Sie den Webserver, damit er auf localhost:3978 hört
Am Ende von app.py, starten Sie den Webserver mit start_server.
if __name__ == "__main__":
try:
start_server(AGENT_APP, None)
except Exception as error:
raise error
Ausführen des Agents im anonymen Modus
Führen Sie in Ihrem Terminal diesen Befehl aus:
python app.py
Das Terminal sollte Folgendes ausgeben:
======== Running on http://localhost:3978 ========
(Press CTRL+C to quit)
Testen des Agents lokal
Installieren Sie von einem anderen Terminal aus (um den Agenten am Laufen zu halten) den Microsoft 365 Agents Playground mit diesem Befehl:
npm install -g @microsoft/teams-app-test-toolAnmerkung
Dieser Befehl verwendet npm, da der Microsoft 365 Agents Playground nicht mit pip verfügbar ist.
Das Terminal sollte in etwa Folgendes ausgeben:
added 1 package, and audited 130 packages in 1s 19 packages are looking for funding run `npm fund` for details found 0 vulnerabilitiesStarten Sie das Testtool, um mit Ihrem Agenten zu interagieren, mit folgendem Befehl:
teamsapptesterDas Terminal sollte in etwa Folgendes ausgeben:
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\"}"}}
Der teamsapptester-Befehl öffnet Ihren Standardbrowser und stellt eine Verbindung zu Ihrem Agenten her.
Jetzt können Sie eine beliebige Nachricht senden, um die Echo-Antwort zu sehen, oder die Nachricht /help senden, um zu sehen, wie diese Nachricht zum _help Handler weitergeleitet wird.
In diesem Quickstart lernen Sie, wie Sie einen benutzerdefinierten Engine-Agenten erstellen, der mit jeder Nachricht antwortet, die Sie ihm senden.
Voraussetzungen
Node.js v22 oder neuer
- Um Node.js zu installieren, gehen Sie zu nodejs.org und folgen den Anweisungen für Ihr Betriebssystem.
- Um die Version zu überprüfen, geben Sie in einem Terminalfenster Folgendes ein:
node --version.
Ein Code-Editor Ihrer Wahl. Diese Anleitungen verwenden Visual Studio Code.
Initialisieren Sie das Projekt und installieren Sie das SDK
Verwenden Sie npm, um ein Node.js-Projekt zu initialisieren, indem Sie eine package.json erstellen und die erforderlichen Abhängigkeiten installieren
Öffnen Sie ein Terminal und erstellen Sie einen neuen Ordner
mkdir echo cd echoInitialisieren Sie das Node.js-Projekt
npm init -yInstallieren von Agents SDK
npm install @microsoft/agents-hosting-expressÖffnen Sie den Ordner mit Visual Studio Code mit dem folgenden Befehl:
code .
Importieren der erforderlichen Bibliotheken
Erstellen Sie die Datei index.mjs und importieren Sie die folgenden NPM-Pakete in Ihren Anwendungscode:
// index.mjs
import { startServer } from '@microsoft/agents-hosting-express'
import { AgentApplication, MemoryStorage } from '@microsoft/agents-hosting'
Implementieren Sie den EchoAgent als AgentApplication
Fügen Sie in index.mjs den folgenden Code hinzu, um die EchoAgent zu erstellen, die von AgentApplication abgeleitet ist, und implementieren Sie drei Routen, um auf drei Ereignisse zu reagieren:
- Unterhaltungsupdate
- Die Meldung
/help - Jede andere Aktivität
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)
}
}
Starten Sie den Webserver, damit er auf localhost:3978 hört
Am Ende von index.mjs starten Sie den Webserver mit startServer basierend auf Express und verwenden Sie MemoryStorage als Turn-Zustandsspeicher.
startServer(new EchoAgent(new MemoryStorage()))
Ausführen des Agents im anonymen Modus
Führen Sie in Ihrem Terminal diesen Befehl aus:
node index.mjs
Das Terminal sollte Folgendes zurückgeben:
Server listening to port 3978 on sdk 0.6.18 for appId undefined debug undefined
Testen des Agents lokal
Installieren Sie von einem anderen Terminal aus (um den Agenten am Laufen zu halten) den Microsoft 365 Agents Playground mit diesem Befehl:
npm install -D @microsoft/teams-app-test-toolDas Terminal sollte in etwa Folgendes ausgeben:
added 1 package, and audited 130 packages in 1s 19 packages are looking for funding run `npm fund` for details found 0 vulnerabilitiesStarten Sie das Testtool, um mit Ihrem Agenten zu interagieren, mit folgendem Befehl:
node_modules/.bin/teamsapptesterDas Terminal sollte in etwa Folgendes ausgeben:
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\"}"}}
Der teamsapptester-Befehl öffnet Ihren Standardbrowser und stellt eine Verbindung zu Ihrem Agenten her.
Jetzt können Sie eine beliebige Nachricht senden, um die Echo-Antwort zu sehen, oder die Nachricht /help senden, um zu sehen, wie diese Nachricht zum _help Handler weitergeleitet wird.
In diesem Quickstart lernen Sie, wie Sie einen benutzerdefinierten Engine-Agenten erstellen, der mit jeder Nachricht antwortet, die Sie ihm senden.
Voraussetzungen
.NET 8.0 SDK oder höher
- Um das .NET SDK zu installieren, gehen Sie zu dotnet.microsoft.com und folgen den Anweisungen für Ihr Betriebssystem.
- Um die Version zu überprüfen, geben Sie in einem Terminalfenster Folgendes ein:
dotnet --version.
Ein Code-Editor Ihrer Wahl. Diese Anleitungen verwenden Visual Studio Code.
Initialisieren Sie das Projekt und installieren Sie das SDK
Verwenden Sie dotnet, um ein neues Webprojekt zu erstellen und die erforderlichen Abhängigkeiten zu installieren.
Öffnen Sie ein Terminal und erstellen Sie einen neuen Ordner
mkdir echo cd echoDas .NET-Projekt initialisieren
dotnet new webInstallieren von Agents SDK
dotnet add package Microsoft.Agents.Hosting.AspNetCoreÖffnen Sie den Ordner in Visual Studio Code mit dem folgenden Befehl:
code .
Importieren der erforderlichen Bibliotheken
Ersetzen Sie in Program.cs den vorhandenen Inhalt, und fügen Sie die folgenden using-Anweisungen hinzu, um die SDK-Pakete in Ihren Anwendungscode zu importieren.
// 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;
Implementieren Sie den EchoAgent als AgentApplication
Fügen Sie in Program.cs nach den using-Anweisungen den folgenden Code ein, um die EchoAgent-Klasse zu erstellen, die von AgentApplication abgeleitet ist, und implementieren Sie Routen zur Reaktion auf Ereignisse:
- Unterhaltungsupdate
- Jede andere Aktivität
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);
}
}
Richten Sie den Webserver ein und registrieren Sie die Agentanwendung
Fügen Sie in Program.cs nach den using-Anweisungen den folgenden Code hinzu, um den Webhost zu konfigurieren, den Agent zu registrieren und den /api/messages-Endpunkt zuzuordnen.
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();
Stellen Sie den Webserver so ein, dass er auf localhost:3978 lauscht
Aktualisieren Sie in launchSettings.jsonapplicationURL auf http://localhost:3978, damit die App auf dem richtigen Port lauscht.
Ausführen des Agents im anonymen Modus
Führen Sie in Ihrem Terminal diesen Befehl aus:
dotnet run
Das Terminal sollte in etwa Folgendes ausgeben:
info: Microsoft.Hosting.Lifetime[14]
Now listening on: http://localhost:3978
Testen des Agents lokal
Von einem anderen Terminal aus (damit der Agent weiterläuft) installiere den Microsoft 365 Agents Playground mit folgendem Befehl:
npm install -g @microsoft/teams-app-test-toolAnmerkung
Dieser Befehl verwendet npm, da der Microsoft 365 Agents Playground als npm-Paket verteilt wird.
Das Terminal sollte in etwa Folgendes ausgeben:
added 1 package, and audited 130 packages in 1s 19 packages are looking for funding run `npm fund` for details found 0 vulnerabilitiesStarten Sie das Testtool, um mit Ihrem Agenten zu interagieren, mit folgendem Befehl:
teamsapptesterDas Terminal sollte in etwa Folgendes ausgeben:
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\"}"}}
Der teamsapptester-Befehl öffnet Ihren Standardbrowser und stellt eine Verbindung zu Ihrem Agenten her.
Geben Sie im Texteingabefeld eine beliebige Nachricht ein und senden Sie sie ab, um die Echo-Antwort zu erhalten.
Nächste Schritte,
- Sehen Sie sich Beispiele für das Agents SDK auf GitHub an
- Erfahren Sie mehr über die Aktivitäten und das Arbeiten mit Aktivitäten
- Überprüfen Sie die AgentApplication-Ereignisse, auf die Sie vom Client reagieren können
- Überprüfen Sie die TurnContext-Ereignisse, die Sie an den Client zurücksenden können
- Stellen Sie Azure Bot-Ressourcen bereit, um sie mit dem Agents SDK zu verwenden
- Konfigurieren Ihres .NET-Agents für die Verwendung von OAuth
Der Agents Playground steht Ihnen standardmäßig zur Verfügung, wenn Sie bereits das Microsoft 365-Agents-Toolkit verwenden. Sie können eine der folgenden Anleitungen verwenden, wenn Sie mit dem Toolkit beginnen möchten: