Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze snelle startgids wordt u begeleid bij het maken van een aangepaste engineagent die antwoordt met hetzelfde bericht dat u ernaar verzendt.
Vereiste voorwaarden
Python 3.9 of hoger.
- Als u Python wilt installeren, gaat u naar https://www.python.org/downloads/en volgt u de instructies voor uw besturingssysteem.
- Om de versie te controleren, typt u in een terminalvenster
python --version.
Een code-editor van uw keuze. In deze instructies wordt Visual Studio Code gebruikt.
Als u Visual Studio Code gebruikt, installeert u de Python-extensie
Het project initialiseren en de SDK installeren
Maak een Python-project en installeer de vereiste afhankelijkheden.
Een terminal openen en een nieuwe map maken
mkdir echo cd echoOpen de map met Visual Studio Code met behulp van deze opdracht:
code .Maak een virtuele omgeving met de methode van uw keuze en activeer deze via Visual Studio Code of in een terminal.
Wanneer u Visual Studio Code gebruikt, kunt u deze stappen gebruiken om de Python-extensie te installeren.
Druk op F1, typ
Python: Create environmenten druk op Enter.Selecteer Venv om een
.venvvirtuele omgeving te maken in de huidige werkruimte.Selecteer een Python-installatie om de virtuele omgeving te maken.
De waarde kan er als volgt uitzien:
Python 1.13.6 ~\AppData\Local\Programs\Python\Python313\python.exe
De Agents SDK installeren
Gebruik pip om het microsoft-agents-hosting-aiohttp-pakket te installeren met deze opdracht:
pip install microsoft-agents-hosting-aiohttp
De servertoepassing maken en de vereiste bibliotheken importeren
Maak een bestand met de naam
start_server.py, kopieer de volgende code en plak het in:# 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 errorDeze code definieert een
start_serverfunctie die we in het volgende bestand gaan gebruiken.Maak in dezelfde map een bestand met de naam
app.pymet de volgende 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
Een exemplaar van de agent maken als AgentApplication
Voeg in app.py de volgende code toe om de AGENT_APP als een instantie van de AgentApplication te maken en implementeer drie routes om te reageren op drie events.
- Gespreksupdate
- het bericht
/help - andere activiteiten
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 de webserver om te luisteren in localhost:3978
Aan het einde van app.py, start u de webserver met behulp van start_server.
if __name__ == "__main__":
try:
start_server(AGENT_APP, None)
except Exception as error:
raise error
De agent lokaal uitvoeren in de anonieme modus
Voer vanuit de terminal deze opdracht uit:
python app.py
De terminal moet het volgende retourneren:
======== Running on http://localhost:3978 ========
(Press CTRL+C to quit)
De agent lokaal testen
Installeer vanaf een andere terminal (om de agent actief te houden) de Microsoft 365 Agents Playground met deze opdracht:
npm install -g @microsoft/teams-app-test-toolOpmerking
Deze opdracht maakt gebruik van npm omdat de Microsoft 365 Agents Playground niet beschikbaar is met pip.
De terminal moet ongeveer als volgt retourneren:
added 1 package, and audited 130 packages in 1s 19 packages are looking for funding run `npm fund` for details found 0 vulnerabilitiesVoer het testprogramma uit om met uw agent te communiceren met behulp van deze opdracht:
teamsapptesterDe terminal moet ongeveer als volgt retourneren:
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\"}"}}
De teamsapptester opdracht opent uw standaardbrowser en maakt verbinding met uw agent.
U kunt nu elk bericht verzenden om het echoantwoord te zien of het bericht /help verzenden om te zien hoe dat bericht naar de _help handler wordt doorgestuurd.
In deze snelle startgids wordt u begeleid bij het maken van een aangepaste engineagent die antwoordt met hetzelfde bericht dat u ernaar verzendt.
Vereiste voorwaarden
Node.js v22 of hoger
- Als u Node.js wilt installeren, gaat u naar nodejs.org en volgt u de instructies voor uw besturingssysteem.
- Om de versie te controleren, typt u in een terminalvenster
node --version.
Een code-editor van uw keuze. In deze instructies wordt Visual Studio Code gebruikt.
Het project initialiseren en de SDK installeren
Gebruik npm dit om een node.js project te initialiseren door een package.json te maken en de vereiste afhankelijkheden te installeren
Een terminal openen en een nieuwe map maken
mkdir echo cd echoHet node.js-project initialiseren
npm init -yDe Agents SDK installeren
npm install @microsoft/agents-hosting-expressOpen de map met Visual Studio Code met behulp van de volgende opdracht:
code .
De vereiste bibliotheken importeren
Maak het bestand index.mjs en importeer de volgende NPM-pakketten in uw toepassingscode:
// index.mjs
import { startServer } from '@microsoft/agents-hosting-express'
import { AgentApplication, MemoryStorage } from '@microsoft/agents-hosting'
De EchoAgent implementeren als agentapplication
Voeg index.mjsde volgende code toe om de EchoAgent uitbreiding van AgentApplication te maken en implementeer drie routes om te reageren op drie gebeurtenissen:
- Gespreksupdate
- het bericht
/help - andere activiteiten
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 de webserver om te luisteren in localhost:3978
Aan het einde van index.mjs start de webserver met behulp van startServer gebaseerd op express en gebruik MemoryStorage als opslag voor de toestand van de beurt.
startServer(new EchoAgent(new MemoryStorage()))
De agent lokaal uitvoeren in de anonieme modus
Voer vanuit de terminal deze opdracht uit:
node index.mjs
De terminal moet dit retourneren:
Server listening to port 3978 on sdk 0.6.18 for appId undefined debug undefined
De agent lokaal testen
Installeer vanaf een andere terminal (om de agent actief te houden) de Microsoft 365 Agents Playground met deze opdracht:
npm install -D @microsoft/teams-app-test-toolDe terminal moet ongeveer als volgt retourneren:
added 1 package, and audited 130 packages in 1s 19 packages are looking for funding run `npm fund` for details found 0 vulnerabilitiesVoer het testprogramma uit om met uw agent te communiceren met behulp van deze opdracht:
node_modules/.bin/teamsapptesterDe terminal moet ongeveer als volgt retourneren:
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\"}"}}
De teamsapptester opdracht opent uw standaardbrowser en maakt verbinding met uw agent.
U kunt nu elk bericht verzenden om het echoantwoord te zien of het bericht /help verzenden om te zien hoe dat bericht naar de _help handler wordt doorgestuurd.
In deze snelle startgids wordt u begeleid bij het maken van een aangepaste engineagent die antwoordt met hetzelfde bericht dat u ernaar verzendt.
Vereiste voorwaarden
.NET 8.0 SDK of hoger
- Als u de .NET SDK wilt installeren, gaat u naar dotnet.microsoft.com en volgt u de instructies voor uw besturingssysteem.
- Om de versie te controleren, typt u in een terminalvenster
dotnet --version.
Een code-editor van uw keuze. In deze instructies wordt Visual Studio Code gebruikt.
Het project initialiseren en de SDK installeren
Gebruik dotnet dit om een nieuw webproject te maken en de vereiste afhankelijkheden te installeren.
Een terminal openen en een nieuwe map maken
mkdir echo cd echoHet .NET-project initialiseren
dotnet new webDe Agents SDK installeren
dotnet add package Microsoft.Agents.Hosting.AspNetCoreOpen de map met Visual Studio Code met behulp van deze opdracht:
code .
De vereiste bibliotheken importeren
Vervang Program.csde bestaande inhoud en voeg de volgende using instructies toe om de SDK-pakketten in uw toepassingscode te importeren:
// 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;
De EchoAgent implementeren als agentapplication
Voeg Program.csna de using instructies de volgende code toe om de EchoAgent uitbreidende AgentApplication te maken en implementeer routes om te reageren op gebeurtenissen:
- Gespreksupdate
- Andere activiteiten
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);
}
}
De webserver instellen en de agenttoepassing registreren
Voeg Program.csna de using instructies de volgende code toe om de webhost te configureren, de agent te registreren en het /api/messages eindpunt toe te wijzen:
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();
Stel de webserver in om te luisteren in localhost:3978
Werk in launchSettings.jsonapplicationURL bij naar http://localhost:3978 zodat de app op de juiste poort luistert.
De agent lokaal uitvoeren in de anonieme modus
Voer vanuit de terminal deze opdracht uit:
dotnet run
De terminal moet ongeveer als volgt retourneren:
info: Microsoft.Hosting.Lifetime[14]
Now listening on: http://localhost:3978
De agent lokaal testen
Installeer vanaf een andere terminal (om de agent actief te houden) de Microsoft 365 Agents Playground met de volgende opdracht:
npm install -g @microsoft/teams-app-test-toolOpmerking
Deze opdracht maakt gebruik van npm omdat de Microsoft 365 Agents Playground wordt gedistribueerd als een npm-pakket.
De terminal moet ongeveer als volgt retourneren:
added 1 package, and audited 130 packages in 1s 19 packages are looking for funding run `npm fund` for details found 0 vulnerabilitiesVoer het testprogramma uit om met uw agent te communiceren met behulp van deze opdracht:
teamsapptesterDe terminal moet ongeveer als volgt retourneren:
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\"}"}}
De teamsapptester opdracht opent uw standaardbrowser en maakt verbinding met uw agent.
Typ en verzend een bericht in de tekstinvoer om het echoantwoord te zien.
Volgende stappen
- Agents SDK-voorbeelden bekijken op GitHub
- Meer informatie over de activiteiten en het werken met activiteiten
- Controleer de AgentApplication-gebeurtenissen waarop u kunt reageren vanaf de client
- Controleer de TurnContext-gebeurtenissen die u naar de client kunt sturen
- Azure Bot-resources inrichten voor gebruik met Agents SDK
- Uw .NET-agent configureren voor het gebruik van OAuth
De Agents Playground is standaard beschikbaar als u de Microsoft 365 Agents Toolkit al gebruikt. U kunt een van de volgende handleidingen gebruiken als u aan de slag wilt met de toolkit: