Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Este inicio rápido le guía a través de la creación de un agente de motor personalizado que responde con el mensaje que envíe.
Prerrequisitos
Python 3.9 o posterior.
- Para instalar Python, vaya a https://www.python.org/downloads/y siga las instrucciones del sistema operativo.
- Para comprobar la versión, en una ventana de terminal, escriba
python --version.
Un editor de código de su elección. Estas instrucciones usan Visual Studio Code.
Si usa Visual Studio Code, instale la extensión de Python.
Inicialización del proyecto e instalación del SDK
Cree un proyecto de Python e instale las dependencias necesarias.
Abra un terminal y cree una carpeta
mkdir echo cd echoAbra la carpeta mediante Visual Studio Code con este comando:
code .Cree un entorno virtual con el método que prefiera y actívelo a través de Visual Studio Code o en un terminal.
Al usar Visual Studio Code, puede usar estos pasos con la extensión de Python instalada.
Presione F1, escriba
Python: Create environmenty presione Entrar.Seleccione Venv para crear un
.venventorno virtual en el área de trabajo actual.Seleccione una instalación de Python para crear el entorno virtual.
El valor podría tener este aspecto:
Python 1.13.6 ~\AppData\Local\Programs\Python\Python313\python.exe
Instala el SDK de agentes
Use pip para instalar el paquete microsoft-agents-hosting-aiohttp con este comando:
pip install microsoft-agents-hosting-aiohttp
Creación de la aplicación de servidor e importación de las bibliotecas necesarias
Cree un archivo denominado
start_server.py, copie el código siguiente y péguelo en:# 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 errorEste código define una
start_serverfunción que usaremos en el siguiente archivo.En el mismo directorio, cree un archivo denominado
app.pycon el código siguiente.# 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
Creación de una instancia del agente como AgentApplication
En app.py, agregue el código siguiente para crear como AGENT_APP una instancia de AgentApplicatione implemente tres rutas para responder a tres eventos:
- Actualización de conversación
- el mensaje
/help - cualquier otra actividad
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}")
Iniciar el servidor web para escuchar en localhost:3978
Al final de app.py, inicie el servidor web mediante start_server.
if __name__ == "__main__":
try:
start_server(AGENT_APP, None)
except Exception as error:
raise error
Ejecutar el agente localmente en modo anónimo
Desde el terminal, ejecute este comando:
python app.py
El terminal debe devolver lo siguiente:
======== Running on http://localhost:3978 ========
(Press CTRL+C to quit)
Probar el agente localmente
Desde otro terminal (para mantener el agente en ejecución) instale el área de juegos de agentes de Microsoft 365 con este comando:
npm install -g @microsoft/teams-app-test-toolNota:
Este comando usa npm porque el área de juegos de agentes de Microsoft 365 no está disponible mediante pip.
El terminal debe devolver algo parecido a:
added 1 package, and audited 130 packages in 1s 19 packages are looking for funding run `npm fund` for details found 0 vulnerabilitiesEjecute la herramienta de prueba para interactuar con el agente mediante este comando:
teamsapptesterEl terminal debe devolver algo parecido a:
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\"}"}}
El teamsapptester comando abre el explorador predeterminado y se conecta al agente.
Ahora puede enviar cualquier mensaje para ver la respuesta de eco, o enviar el mensaje /help para ver cómo ese mensaje se enruta al controlador _help.
Este inicio rápido le guía a través de la creación de un agente de motor personalizado que responde con el mensaje que envíe.
Prerrequisitos
Node.js v22 o posterior
- Para instalar Node.js vaya a nodejs.org y siga las instrucciones del sistema operativo.
- Para comprobar la versión, en una ventana de terminal, escriba
node --version.
Un editor de código de su elección. Estas instrucciones usan Visual Studio Code.
Inicialización del proyecto e instalación del SDK
Use npm para inicializar un proyecto de node.js creando un package.json e instalando las dependencias necesarias.
Abra un terminal y cree una carpeta
mkdir echo cd echoInicialización del proyecto de node.js
npm init -yInstala el SDK de agentes
npm install @microsoft/agents-hosting-expressAbra la carpeta mediante Visual Studio Code mediante el comando siguiente:
code .
Importación de las bibliotecas necesarias
Cree el archivo index.mjs e importe los siguientes paquetes de NPM en el código de la aplicación:
// index.mjs
import { startServer } from '@microsoft/agents-hosting-express'
import { AgentApplication, MemoryStorage } from '@microsoft/agents-hosting'
Implementar EchoAgent como AgentApplication
En index.mjs, agregue el código siguiente para crear la EchoAgent extensión de AgentApplication e implemente tres rutas para responder a tres eventos:
- Actualización de conversación
- el mensaje
/help - cualquier otra actividad
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)
}
}
Iniciar el servidor web para escuchar en localhost:3978
Al final de index.mjs, inicia el servidor web usando startServer basado en express, utilizando MemoryStorage como almacenamiento de estado de turno.
startServer(new EchoAgent(new MemoryStorage()))
Ejecuta el agente localmente en modo anónimo
Desde el terminal, ejecute este comando:
node index.mjs
El terminal debe devolver esto:
Server listening to port 3978 on sdk 0.6.18 for appId undefined debug undefined
Probar el agente localmente
Desde otro terminal (para mantener el agente en ejecución) instale el área de juegos de agentes de Microsoft 365 con este comando:
npm install -D @microsoft/teams-app-test-toolEl terminal debe devolver algo parecido a:
added 1 package, and audited 130 packages in 1s 19 packages are looking for funding run `npm fund` for details found 0 vulnerabilitiesEjecute la herramienta de prueba para interactuar con el agente mediante este comando:
node_modules/.bin/teamsapptesterEl terminal debe devolver algo parecido a:
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\"}"}}
El teamsapptester comando abre el explorador predeterminado y se conecta al agente.
Ahora puede enviar cualquier mensaje para ver la respuesta de eco, o enviar el mensaje /help para ver cómo ese mensaje se enruta al controlador _help.
Este inicio rápido le guía a través de la creación de un agente de motor personalizado que responde con el mensaje que envíe.
Prerrequisitos
SDK de .NET 8.0 o posterior
- Para instalar el SDK de .NET, vaya a dotnet.microsoft.com y siga las instrucciones del sistema operativo.
- Para comprobar la versión, en una ventana de terminal, escriba
dotnet --version.
Un editor de código de su elección. Estas instrucciones usan Visual Studio Code.
Inicialización del proyecto e instalación del SDK
Use dotnet para crear un nuevo proyecto web e instalar las dependencias necesarias.
Abra un terminal y cree una carpeta
mkdir echo cd echoInicialización del proyecto de .NET
dotnet new webInstala el SDK de agentes
dotnet add package Microsoft.Agents.Hosting.AspNetCoreAbra la carpeta mediante Visual Studio Code con este comando:
code .
Importación de las bibliotecas necesarias
En Program.cs, reemplace el contenido existente y agregue las siguientes using instrucciones para importar los paquetes del SDK en el código de la aplicación:
// 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;
Implementar EchoAgent como AgentApplication
En Program.cs, después de las using instrucciones , agregue el código siguiente para crear la EchoAgent extensión AgentApplication e implemente rutas para responder a eventos:
- Actualización de conversación
- Cualquier otra actividad
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);
}
}
Configuración del servidor web y registro de la aplicación del agente
Dentro de Program.cs, después de las using instrucciones, agregue el código siguiente para configurar el servidor web, registrar el agente y mapear el /api/messages punto de conexión:
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();
Establecer el servidor web para que escuche en localhost:3978
En launchSettings.json, actualice el applicationURL a http://localhost:3978 para que la aplicación escuche en el puerto correcto.
Ejecuta el agente localmente en modo anónimo
Desde el terminal, ejecute este comando:
dotnet run
El terminal debe devolver algo parecido a:
info: Microsoft.Hosting.Lifetime[14]
Now listening on: http://localhost:3978
Probar el agente localmente
Desde otro terminal (para mantener el agente en ejecución) instale el área de juegos de agentes de Microsoft 365 con el siguiente comando:
npm install -g @microsoft/teams-app-test-toolNota:
Este comando usa npm porque el área de juegos de agentes de Microsoft 365 se distribuye como un paquete npm.
El terminal debe devolver algo parecido a:
added 1 package, and audited 130 packages in 1s 19 packages are looking for funding run `npm fund` for details found 0 vulnerabilitiesEjecute la herramienta de prueba para interactuar con el agente mediante este comando:
teamsapptesterEl terminal debe devolver algo parecido a:
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\"}"}}
El teamsapptester comando abre el explorador predeterminado y se conecta al agente.
En el campo de texto, escriba y envíe cualquier mensaje para ver el eco de respuesta.
Pasos siguientes
- Consulte los ejemplos del SDK de agentes en GitHub.
- Más información sobre las actividades y cómo trabajar con ellas
- Revise los eventos AgentApplication a los que puede responder desde el cliente.
- Revise los eventos TurnContext que puede devolver al cliente.
- Aprovisionamiento de recursos de Azure Bot para usarlos con el SDK de agentes
- Configuración del agente de .NET para usar OAuth
El área de juegos de agentes está disponible de forma predeterminada si ya usa el Kit de herramientas de agentes de Microsoft 365. Puede usar una de las siguientes guías si desea empezar a trabajar con el kit de herramientas: