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.
Esta guía de inicio rápido le guía por la creación de un agente de motor personalizado que solo responde con el mensaje que envíe a este.
Requisitos previos
Python 3.9 o superior.
- Para instalar Python, visita https://www.python.org/downloads/ y sigue las instrucciones para tu sistema operativo.
- Para verificar la versión, abre una ventana de terminal y escribe
python --version.
Un editor de código de tu preferencia. Estas instrucciones usan Visual Studio Code.
Si utiliza Visual Studio Code, instale extensión de Python
Inicializar el proyecto e instalar el SDK
Crear un proyecto de Python e instalar las dependencias necesarias.
Abrir un terminal y crear una nueva carpeta
mkdir echo cd echoAbrir la carpeta en Visual Studio Code utilizando este comando:
code .Crea un entorno virtual con el método que elijas y actívalo ya sea a través de Visual Studio Code o en un terminal.
Al usar Visual Studio Code, puedes usar estos pasos con la extensión de Python instalada.
Pulse F1, escriba
Python: Create environmenty pulse Entrar.Selecciona Venv para crear un
.venventorno virtual en el espacio de trabajo actual.Selecciona 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
Instalar la SDK de Agentes
Usa pip para instalar el paquete microsoft-agents-hosting-aiohttp con este comando:
pip install microsoft-agents-hosting-aiohttp
Crea la aplicación de servidor e importa las bibliotecas necesarias
Cree un archivo llamado
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 siguiente código.# 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
Crear una instancia del agente como AgentApplication
En app.py, añade el siguiente código para crear el AGENT_APP como una instancia de AgentApplication, e implementar tres rutas para responder a tres eventos:
- Actualización de la 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}")
Inicia el servidor web para escuchar en localhost:3978
Al final de app.py, inicia el servidor web usando 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 tu terminal, ejecuta este comando:
python app.py
La terminal debería mostrar lo siguiente:
======== Running on http://localhost:3978 ========
(Press CTRL+C to quit)
Probar el agente localmente
Desde otro terminal (para mantener el agente en funcionamiento), instala Microsoft 365 Agents Playground con este comando:
npm install -g @microsoft/teams-app-test-toolNota
Este comando utiliza npm porque Microsoft 365 Agents Playground no está disponible usando pip.
La terminal debería mostrar algo como:
added 1 package, and audited 130 packages in 1s 19 packages are looking for funding run `npm fund` for details found 0 vulnerabilitiesEjecuta la herramienta de prueba para interactuar con tu agente usando este comando:
teamsapptesterLa terminal debería mostrar algo como:
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 comando teamsapptester abre tu navegador predeterminado y conecta con tu agente.
Ahora puedes 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.
Esta guía de inicio rápido le guía por la creación de un agente de motor personalizado que solo responde con el mensaje que envíe a este.
Requisitos previos
Node.js v22 o posterior
- Para instalar Node.js, accede a nodejs.org y sigue las instrucciones para tu sistema operativo.
- Para verificar la versión, abre una ventana de terminal y escribe
node --version.
Un editor de código de tu preferencia. Estas instrucciones usan Visual Studio Code.
Inicializar el proyecto e instalar el SDK
Usa npm para inicializar un proyecto de Node.js creando un package.json e instalando las dependencias necesarias
Abrir un terminal y crear una nueva carpeta
mkdir echo cd echoInicializa el proyecto de Node.js
npm init -yInstalar la SDK de Agentes
npm install @microsoft/agents-hosting-expressAbra la carpeta en Visual Studio Code usando este comando:
code .
Importación de las bibliotecas necesarias
Crea el archivo index.mjs e importa los siguientes paquetes NPM en tu código de aplicación:
// index.mjs
import { startServer } from '@microsoft/agents-hosting-express'
import { AgentApplication, MemoryStorage } from '@microsoft/agents-hosting'
Implementar el EchoAgent como AgentApplication
En index.mjs, añade el siguiente código para crear la EchoAgent extendiendo la AgentApplication e implementar tres rutas para responder a tres eventos:
- Actualización de la 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)
}
}
Inicia el servidor web para escuchar en localhost:3978
Al final de index.mjs, inicia el servidor web usando startServer basado en express y utilizando MemoryStorage como almacenamiento del estado de turno.
startServer(new EchoAgent(new MemoryStorage()))
Ejecutar el agente localmente en modo anónimo
Desde tu terminal, ejecuta este comando:
node index.mjs
La terminal debería mostrar 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 funcionamiento), instala Microsoft 365 Agents Playground con este comando:
npm install -D @microsoft/teams-app-test-toolLa terminal debería mostrar algo como:
added 1 package, and audited 130 packages in 1s 19 packages are looking for funding run `npm fund` for details found 0 vulnerabilitiesEjecuta la herramienta de prueba para interactuar con tu agente usando este comando:
node_modules/.bin/teamsapptesterLa terminal debería mostrar algo como:
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 comando teamsapptester abre tu navegador predeterminado y conecta con tu agente.
Ahora puedes 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.
Esta guía de inicio rápido le guía por la creación de un agente de motor personalizado que solo responde con el mensaje que envíe a este.
Requisitos previos
.NET 8.0 SDK o versiones posteriores
- Para instalar el SDK .NET, ve a dotnet.microsoft.com y sigue las instrucciones de tu sistema operativo.
- Para verificar la versión, abre una ventana de terminal y escribe
dotnet --version.
Un editor de código de tu preferencia. Estas instrucciones usan Visual Studio Code.
Inicializar el proyecto e instalar el SDK
Utiliza dotnet para crear un nuevo proyecto web e instalar las dependencias requeridas.
Abrir un terminal y crear una nueva carpeta
mkdir echo cd echoInicializa el proyecto .NET
dotnet new webInstalar la SDK de Agentes
dotnet add package Microsoft.Agents.Hosting.AspNetCoreAbrir la carpeta en Visual Studio Code utilizando este comando:
code .
Importación de las bibliotecas necesarias
En Program.cs, reemplaza el contenido existente y añade las siguientes using líneas para importar los paquetes del SDK en tu 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 el EchoAgent como AgentApplication
En Program.cs, después de las instrucciones de using, añade el siguiente código para crear la EchoAgent extendiendo la AgentApplication e implementar tres rutas para responder a tres eventos:
- Actualización de la 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);
}
}
Configura el servidor web y registra la aplicación del agente
En Program.cs, después de las sentencias using, añade el siguiente código para configurar el servidor web, registrar el agente y mapear el punto de conexión /api/messages:
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();
Configura el servidor web para que escuche en localhost:3978
En launchSettings.json, actualiza el applicationURL a http://localhost:3978 para que la aplicación escuche en el puerto correcto.
Ejecutar el agente localmente en modo anónimo
Desde tu terminal, ejecuta este comando:
dotnet run
La terminal debería mostrar algo como:
info: Microsoft.Hosting.Lifetime[14]
Now listening on: http://localhost:3978
Probar el agente localmente
Desde otro terminal (para mantener el agente en funcionamiento), instala Microsoft 365 Agents Playground con el siguiente comando:
npm install -g @microsoft/teams-app-test-toolNota
Este comando utiliza npm porque Microsoft 365 Agents Playground se distribuye como un paquete npm.
La terminal debería mostrar algo como:
added 1 package, and audited 130 packages in 1s 19 packages are looking for funding run `npm fund` for details found 0 vulnerabilitiesEjecuta la herramienta de prueba para interactuar con tu agente usando este comando:
teamsapptesterLa terminal debería mostrar algo como:
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 comando teamsapptester abre tu navegador predeterminado y conecta con tu agente.
En el campo de texto, escriba y envíe cualquier mensaje para ver la respuesta de eco.
Pasos siguientes
- Consulta ejemplos de Agents SDK en GitHub
- Más información sobre las actividades y el trabajo con actividades
- Revisa los eventos de AgentApplication a los que puedes responder desde el cliente
- Revise los eventos de TurnContext que puede devolver al cliente
- Provisiona recursos de Azure Bot para usar con Agents SDK
- Configurar el agente de .NET para usar OAuth
Agents Playground está disponible de manera predeterminada si ya estás usando Microsoft 365 Agents Toolkit. Puede usar una de las siguientes guías si desea empezar con el kit de herramientas: