Funcionamiento de los botsHow bots work

se aplica a: SDK V4APPLIES TO: SDK v4

Un bot es una aplicación con la que los usuarios interactúan de forma conversacional mediante texto, gráficos (tarjetas o imágenes) o voz.A bot is an app that users interact with in a conversational way, using text, graphics (such as cards or images), or speech. Azure Bot Service es una plataforma en la nube.Azure Bot Service is a cloud platform. Hospeda bots y los pone a disposición de los canales.It hosts bots and makes them available to channels.

El Bot Framework Service, que es un componente del Azure Bot Service, envía información entre la aplicación conectada al bot del usuario (como Facebook o Slack, y así sucesivamente, a la que llamamos canal ) y el bot.The Bot Framework Service, which is a component of the Azure Bot Service, sends information between the user's bot-connected app (such as Facebook or Slack and so on, which we call the channel) and the bot. Cada canal puede incluir información adicional en las actividades que envían.Each channel may include additional information in the activities they send. Antes de crear bots, es importante entender cómo utiliza el bot los objetos de actividad para comunicarse con los usuarios.Before creating bots, it is important to understand how a bot uses activity objects to communicate with its users. En primer lugar, echemos un vistazo a las actividades que se intercambian cuando ejecutamos un bot de eco sencillo.Let's first take a look at activities that are exchanged when we run a simple echo bot.

Diagrama de actividadesactivity diagram

Se muestran dos tipos de actividad: actualización de conversación y mensaje.Two activity types illustrated here are: conversation update and message.

Bot Framework Service puede enviar una actualización de conversación cuando una entidad se une a la conversación.The Bot Framework Service may send a conversation update when a party joins the conversation. Por ejemplo, al iniciar una conversación con Bot Framework Emulator, verá dos actividades de actualización de conversación (una cuando el usuario se une a la conversación y otra cuando se une el bot).For example, on starting a conversation with the Bot Framework Emulator, you will see two conversation update activities (one for the user joining the conversation and one for the bot joining). Para distinguir estas actividades de actualización de conversación, compruebe quién se incluye en la propiedad de miembros agregados de la actividad.To distinguish these conversation update activities, check who is included in the members added property of the activity.

La actividad de mensaje lleva información de la conversación entre las partes.The message activity carries conversation information between the parties. En un ejemplo de bot de eco, las actividades de mensaje llevan texto simple y el canal representará este texto.In an echo bot example, the message activities are carrying simple text and the channel will render this text. Como alternativa, la actividad de mensaje podría llevar texto hablado, acciones sugeridas o tarjetas para mostrar.Alternatively, the message activity might carry text to be spoken, suggested actions or cards to be displayed.

En este ejemplo, el bot crea y envía una actividad de mensaje como respuesta a la actividad de mensaje entrante que ha recibido.In this example, the bot created and sent a message activity in response to the inbound message activity it had received. Sin embargo, un bot puede responder de otras maneras a una actividad de mensaje recibida. No es raro que un bot responda a una actividad de actualización de conversación mediante el envío de texto de bienvenida en una actividad de mensaje.However, a bot can respond in other ways to a received message activity; it's not uncommon for a bot to respond to a conversation update activity by sending some welcome text in a message activity. Puede encontrar más información en cómo dar la bienvenida a un usuario.More information can be found in how to welcome a user.

SDK de Bot FrameworkThe Bot Framework SDK

El SDK Bot Framework le permite compilar bots que se pueden hospedar en el Azure Bot Service.The Bot Framework SDK allows you to build bots that can be hosted on the Azure Bot Service. El servicio define una API DE REST y un protocolo de actividad para la forma en que el bot y los canales o los usuarios pueden interactuar.The service defines a REST API and an activity protocol for how your bot and channels or users can interact. El SDK se basa en esta API REST y proporciona una abstracción del servicio para que pueda centrarse en la lógica de conversación.The SDK builds upon this REST API and provides an abstraction of the service so that you can focus on the conversational logic. Aunque no es necesario comprender el servicio REST para usar el SDK, comprender algunas de sus características puede resultar útil.While you don't need to understand the REST service to use the SDK, understanding some of its features can be helpful.

Los bots son aplicaciones que tienen una interfaz de conversación.Bots are apps that have a conversational interface. Se pueden usar para desplazar las tareas simples y repetitivas, como reservar una mesa en un restaurante o recopilar información de un perfil, a sistemas automatizados que puede que no requieran intervención humana directa.They can be used to shift simple, repetitive tasks, such as taking a dinner reservation or gathering profile information, on to automated systems that may no longer require direct human intervention. Los usuarios conversan con los bot mediante texto, tarjetas interactivas y la voz.Users converse with a bot using text, interactive cards, and speech. Una interacción con un bot puede ser tanto una pregunta y una respuesta rápidas como una conversación sofisticada que proporciona acceso a servicios de forma inteligente.A bot interaction can be a quick question and answer, or it can be a sophisticated conversation that intelligently provides access to services.

Nota

La compatibilidad con las características proporcionadas por el SDK y la API rest varía según el canal.Support for features provided by the SDK and REST API varies by channel. Puede probar el bot mediante el Bot Framework Emulator, pero también debe probar todas las características del bot en cada canal en el que pretende que el bot esté disponible.You can test your bot using the Bot Framework Emulator, but you should also test all features of your bot on each channel in which you intend to make your bot available.

Las interacciones implican el intercambio de actividades, que se controlan en turnos.Interactions involve the exchange of activities, which are handled in turns.

ActividadesActivities

Cada interacción entre el usuario (o un canal) y el bot se representa como una actividad.Every interaction between the user (or a channel) and the bot is represented as an activity. El Bot Framework activity define las actividades que se pueden intercambiar entre un usuario o canal y un bot.The Bot Framework Activity schema defines the activities that can be exchanged between a user or channel and a bot. Las actividades pueden representar texto humano o voz, notificaciones de aplicación a aplicación, reacción a otros mensajes, entre otros.Activities can represent human text or speech, app-to-app notifications, reactions to other messages, and so on.

TurnosTurns

En una conversación, la gente a menudo habla de uno en uno, haciendo turnos para hablar.In a conversation, people often speak one-at-a-time, taking turns speaking. Con un bot, por lo general reacciona a las entradas del usuario.With a bot, it generally reacts to user input. En Bot Framework SDK, un turno consiste en la actividad de la entrada del usuario en el bot y en cualquier actividad que el bot devuelve al usuario como respuesta inmediata.Within the Bot Framework SDK, a turn consists of the user's incoming activity to the bot and any activity the bot sends back to the user as an immediate response. Puede pensar en un turno como el procesamiento asociado al bot que recibe una actividad determinada.You can think of a turn as the processing associated with the bot receiving a given activity.

Por ejemplo, un usuario podría pedir a un bot que realice una tarea determinada.For example, a user might ask a bot to perform a certain task. El bot podría responder con una pregunta para obtener más información sobre la tarea, momento en el que finaliza este turno.The bot might respond with a question to get more information about the task, at which point this turn ends. En el siguiente turno, el bot recibe un nuevo mensaje del usuario que podría contener la respuesta a la pregunta del bot, o podría representar un cambio de asunto o una solicitud para omitir la solicitud inicial para realizar la tarea.On the next turn, the bot receives a new message from the user that might contain the answer to the bot's question, or it might represent a change of subject or a request to ignore the initial request to perform the task.

Estructura de la aplicación de botBot application structure

El SDK define una clase de bot que controla el razonamiento conversacional de la aplicación de bot.The SDK defines a bot class that handles the conversational reasoning for the bot app. La clase de bot:The bot class:

  • Reconoce e interpreta la entrada del usuario.Recognizes and interprets the user's input.
  • Motivos sobre la entrada y realiza las tareas pertinentes.Reasons about the input and performs relevant tasks.
  • Genera respuestas sobre lo que el bot está haciendo o ha hecho.Generates responses about what the bot is doing or has done.

El SDK también define una clase de adaptador que controla la conectividad con los canales.The SDK also defines an adapter class that handles connectivity with the channels. El adaptador:The adapter:

  • Proporciona un método para controlar las solicitudes de los métodos y para generar solicitudes al canal del usuario.Provides a method for handling requests from and methods for generating requests to the user's channel.
  • Incluye una canalización de middleware, que incluye el procesamiento de turnos fuera del controlador de turnos del bot.Includes a middleware pipeline, which includes turn processing outside of your bot's turn handler.
  • Llama al controlador de turnos del bot y detecta errores que no se controlan en el controlador de turnos.Calls the bot's turn handler and catches errors not otherwise handled in the turn handler.

Además, los bots a menudo necesitan recuperar y almacenar el estado en cada turno.In addition, bots often need to retrieve and store state each turn. Esto se controla a través de clases de accessor de propiedad, estado del bot y almacenamiento.This is handled through storage, bot state, and property accessor classes. El SDK no proporciona almacenamiento integrado, pero proporciona abstracciones para el almacenamiento y algunas implementaciones de una capa de almacenamiento.The SDK does not provide built-in storage, but does provide abstractions for storage and a few implementations of a storage layer. En el tema administración de estado se describen estas características de estado y almacenamiento.The managing state topic describes these state and storage features.

Un bot tiene elementos de conectividad y razonamiento, y una abstracción del estadoA bot has connectivity and reasoning elements, and an abstraction for state

El SDK no requiere que use una capa de aplicación específica para enviar y recibir solicitudes web.The SDK does not require you use a specific application layer to send and receive web requests. El Bot Framework tiene plantillas y ejemplos para ASP.NET (C#), restify (JavaScript) y aiohttp (Python).The Bot Framework has templates and samples for ASP.NET (C#), restify (JavaScript), and aiohttp (Python). Sin embargo, puede elegir usar una capa de aplicación diferente para la aplicación.However, you can choose to use a differ application layer for your app.

Al crear un bot mediante el SDK, se proporciona el código para recibir el tráfico HTTP y reenviarlo al adaptador.When you create a bot using the SDK, you provide the code to receive the HTTP traffic and forward it to the adapter. El Bot Framework proporciona algunas plantillas y ejemplos que puede usar para desarrollar sus propios bots.The Bot Framework provides a few templates and samples that you can use to develop your own bots.

Lógica del botBot logic

El objeto bot contiene el razonamiento o la lógica de conversación para un turno y expone un controlador de turnos , que es el método que puede aceptar actividades entrantes del adaptador del bot.The bot object contains the conversational reasoning or logic for a turn and exposes a turn handler, which is the method that can accept incoming activities from the bot adapter.

El SDK proporciona un par de paradigmas diferentes para administrar la lógica del bot.The SDK provides a couple different paradigms for managing your bot logic.

  • Los controladores de actividad proporcionan un modelo controlado por eventos en el que los tipos y subtipos de actividad entrantes son los eventos.Activity handlers provide an event-driven model in which the incoming activity types and sub-types are the events. Esto puede ser bueno para los bots que tienen interacciones limitadas y cortas con el usuario.This can be good for bots that have limited, short interactions with the user.
    • Use un controlador de actividad e implemente controladores para cada tipo de actividad o subtipo al que el bot reconocerá y reaccionará.Use an activity handler and implement handlers for each activity type or sub-type your bot will recognize and react to.
    • Use un controlador de actividad de Teams para crear bots que puedan conectarse al canal de Teams.Use a Teams activity handler to create bots that can connect to the Teams channel. (El canal de Teams requiere que el bot controle algún comportamiento específico del canal).(The Teams channel requires the bot to handle some channel-specific behavior.)
  • La biblioteca de diálogos proporciona un modelo basado en estado para administrar una conversación de larga duración con el usuario.The dialogs library provides a state-based model to manage a long-running conversation with the user.
  • Implemente su propia clase de bot y proporcione su propia lógica para controlar cada turno.Implement your own bot class and provide your own logic for handling each turn. Vea cómo crear sus propios mensajes para recopilar la entrada del usuario para obtener un ejemplo de cómo podría ser esto.See how to create your own prompts to gather user input for an example of what this might look like.

El adaptador de botThe bot adapter

El adaptador tiene un método de actividad de proceso para iniciar un turno.The adapter has a process activity method for starting a turn.

  • Toma el cuerpo de la solicitud (la carga útil de la solicitud, traducida a una actividad) y el encabezado de solicitud como argumentos.It takes the request body (the request payload, translated to an activity) and the request header as arguments.
  • Comprueba si el encabezado de autenticación es válido.It checks whether the authentication header is valid.
  • Crea un objeto de contexto para el turno.It creates a context object for the turn.
  • Lo ejecuta a través de su canalización de middleware.It runs this through its middleware pipeline.
  • Envía la actividad al controlador de turnos del objeto del bot.It sends the activity to the bot object's turn handler.

El adaptador también:The adapter also:

  • Da formato y envía actividades de respuesta.Formats and sends response activities. Estas respuestas suelen ser mensajes para el usuario, pero también pueden incluir información que el canal del usuario va a consumir directamente.These responses are typically messages for the user, but can also include information to be consumed by the user's channel directly.
  • Muestra otros métodos proporcionados por la API REST de Bot Connector, como actualizar el mensaje y eliminar el mensaje.Surfaces other methods provided by the Bot Connector REST API, such as update message and delete message.
  • Detecta errores o excepciones que no se detectan de otro modo para el turno.Catches errors or exceptions not otherwise caught for the turn.

Contexto de turnoThe turn context

El objeto de contexto de turno proporciona información acerca de la actividad, como el remitente y receptor, el canal y otros datos necesarios para procesar la actividad.The turn context object provides information about the activity such as the sender and receiver, the channel, and other data needed to process the activity. También permite la adición de información durante el turno en las distintas capas del bot.It also allows for the addition of information during the turn across various layers of the bot.

El contexto de turno es una de las abstracciones más importantes en el SDK.The turn context is one of the most important abstractions in the SDK. No solo lleva la actividad de entrada a todos los componentes de middleware y la lógica de aplicación, sino que también proporciona el mecanismo por el que los componentes de middleware y la lógica del bot pueden enviar actividades salientes.Not only does it carry the inbound activity to all the middleware components and the application logic but it also provides the mechanism whereby the middleware components and the bot logic can send outbound activities.

Software intermedioMiddleware

El middleware es muy similar a cualquier otro middleware de mensajería, incluye un conjunto lineal de componentes que se ejecutan en orden, dando a cada uno la oportunidad de operar en la actividad.Middleware is much like any other messaging middleware, comprising a linear set of components that are each executed in order, giving each a chance to operate on the activity. La etapa final de la canalización del middleware es una devolución de llamada al controlador de turnos de la clase del bot que la aplicación ha registrado con el método process activity del adaptador.The final stage of the middleware pipeline is a callback to the turn handler on the bot class the application has registered with the adapter's process activity method. El middleware implementa un método de turno al que llama el adaptador.Middleware implements an on turn method which the adapter calls.

El controlador de turnos toma un contexto de turno como argumento, normalmente la lógica de aplicación que se ejecuta dentro de la función de controlador de turnos procesará el contenido de la actividad de entrada y generará una o varias actividades en respuesta, enviando estas mediante la función de actividad de envío en el contexto de turno.The turn handler takes a turn context as its argument, typically the application logic running inside the turn handler function will process the inbound activity's content and generate one or more activities in response, sending these out using the send activity function on the turn context. Una llamada a send activity en el contexto de turno hará que se invoque a los componentes de middleware en las actividades de salida.Calling send activity on the turn context will cause the middleware components to be invoked on the outbound activities. Los componentes de middleware se ejecutan antes y después de la función de controlador de turnos del bot.Middleware components execute before and after the bot's turn handler function. La ejecución está intrínsecamente anidada y, como tal, a veces se hace referencia a que es como un pórbol.The execution is inherently nested and, as such, sometimes referred to being like an onion.

En el tema sobre middleware se describe el middleware con mayor profundidad.The middleware topic describes middleware in greater depth.

Estado y almacenamiento del botBot state and storage

Al igual que con otras aplicaciones web, un bot es intrínsecamente sin estado.As with other web apps, a bot is inherently stateless. El estado dentro de un bot sigue los mismos paradigmas que las aplicaciones web modernas, y el SDK de Bot Framework proporciona abstracciones de administración de estado y capa de almacenamiento para facilitar la administración de estados.State within a bot follows the same paradigms as modern web applications, and the Bot Framework SDK provides storage layer and state management abstractions to make state management easier.

En el tema administración de estado se describen estas características de estado y almacenamiento.The managing state topic describes these state and storage features.

Punto de conexión de mensajería y aprovisionamientoMessaging endpoint and provisioning

Normalmente, la aplicación necesitará un punto de conexión REST en el que recibir mensajes.Typically, your application will need a REST endpoint at which to receive messages. También tendrá que aprovisionar recursos para el bot de acuerdo con la plataforma que decida usar.It will also need to provision resources for your bot in accordance with the platform you decide to use.

Siga uno de los inicios rápidos(C#, JavaScripty Python)para crear y probar un bot de eco simple.Follow one of the quickstarts (C#, JavaScript, Python) to create and test a simple echo bot.

Detalles HTTPHTTP Details

Las actividades llegan al bot desde Bot Framework Service mediante una solicitud POST HTTP.Activities arrive at the bot from the Bot Framework Service via an HTTP POST request. El bot responde a la solicitud POST entrante con un código de estado HTTP 200.The bot responds to the inbound POST request with a 200 HTTP status code. Las actividades que se envían desde el bot al canal se envían en una solicitud POST HTTP independiente a Bot Framework Service.Activities sent from the bot to the channel are sent on a separate HTTP POST to the Bot Framework Service. Esta se confirma de vuelta con un código de estado HTTP 200.This, in turn, is acknowledged with a 200 HTTP status code.

El protocolo no especifica el orden en el que se realizan estas solicitudes POST y sus confirmaciones.The protocol doesn't specify the order in which these POST requests and their acknowledgments are made. Sin embargo, para ajustarse a los marcos de servicios HTTP comunes, normalmente estas solicitudes se anidan, lo que significa que el bot realiza la solicitud HTTP de salida en el ámbito de la solicitud HTTP de entrada.However, to fit with common HTTP service frameworks, typically these requests are nested, meaning that the outbound HTTP request is made from the bot within the scope of the inbound HTTP request. Este patrón se ilustra en el diagrama anterior.This pattern is illustrated in the earlier diagram. Puesto que hay dos conexiones HTTP distintas consecutivas, se debe proporcionar un modelo de seguridad para ambas.Since there are two distinct HTTP connections back to back, the security model must provide for both.

Nota

El bot tiene 15 segundos para confirmar la llamada con el estado 200 en la mayoría de los canales.The bot has 15 seconds to acknowledge the call with a status 200 on most channels. Si el bot no responde en 15 segundos, se produce un error HTTP GatewayTimeout (504).If the bot does not respond within 15 seconds, an HTTP GatewayTimeout error (504) occurs.

Pila de procesamiento de actividadesThe activity processing stack

Vamos a profundizar en el diagrama de secuencia anterior con el foco en la llegada de una actividad de mensaje.Let's drill into the previous sequence diagram with a focus on the arrival of a message activity.

Pila de procesamiento de actividades

En el ejemplo anterior, el bot respondió a la actividad de mensaje con otra actividad de mensaje que contenía el mismo mensaje de texto.In the example above, the bot replied to the message activity with another message activity containing the same text message. El procesamiento comienza con la solicitud POST HTTP, con la información de la actividad en forma de una carga JSON que llega al servidor web.Processing starts with the HTTP POST request, with the activity information carried as a JSON payload, arriving at the web server. En C# suele ser un proyecto de ASP.NET, en un proyecto de JavaScript Node.js es probable que sea uno de los marcos populares, como Express o restify.In C# this will typically be an ASP.NET project, in a JavaScript Node.js project this is likely to be one of the popular frameworks such as Express or restify.

El adaptador, un componente integrado del SDK, es el núcleo del entorno de ejecución del SDK.The adapter, an integrated component of the SDK, is the core of the SDK runtime. La actividad se realiza como JSON en el cuerpo de la solicitud HTTP POST.The activity is carried as JSON in the HTTP POST body. Este JSON se deserializa para crear el objeto de actividad que luego se entrega al adaptador a través de su método de actividad de proceso.This JSON is deserialized to create the activity object that is then handed to the adapter through its process activity method. Tras la recepción de la actividad, el adaptador crea un contexto de turno y llama al middleware.On receiving the activity, the adapter creates a turn context and calls the middleware.

Como se ha indicado anteriormente, el contexto de turno proporciona el mecanismo para que el bot envíe las actividades de salida, muy frecuentemente en respuesta a una actividad de entrada.As mentioned above, the turn context provides the mechanism for the bot to send outbound activities, most often in response to an inbound activity. Para ello, el contexto de turno proporciona métodos de respuesta de actividad de envío, actualización y eliminación.To achieve this, the turn context provides send, update, and delete activity response methods. Cada método de respuesta se ejecuta en un proceso asincrónico.Each response method runs in an asynchronous process.

Importante

El subproceso que administra el turno de bot principal se ocupa de desechar el objeto de contexto cuando termina.The thread handling the primary bot turn deals with disposing of the context object when it is done. Asegúrese de usar await para las llamadas de actividad, para que el subproceso principal espere la actividad generada antes de finalizar su procesamiento y desechar el contexto de turno.Be sure to await any activity calls so the primary thread will wait on the generated activity before finishing its processing and disposing of the turn context. De otro modo, si una respuesta (incluidos sus controladores) tarda mucho e intenta actuar sobre el objeto de contexto, es posible que reciba un error relativo a que el contexto se ha eliminado.Otherwise, if a response (including its handlers) takes any significant amount of time and tries to act on the context object, it may get a context was disposed error.

Plantillas de botBot templates

Debe elegir el uso del nivel de aplicación para la aplicación. sin embargo, Bot Framework plantillas y ejemplos para ASP.NET (C#), restify (JavaScript) y aiohttp (Python).You need to choose the application layer use for your app; however, the Bot Framework has templates and samples for ASP.NET (C#), restify (JavaScript), and aiohttp (Python). La documentación se escribe suponiendo que use una de estas plataformas, pero el SDK no la requiere.The documentation is written assuming you use one of these platforms, but the SDK does not require it of you. Consulte los inicios rápidos(C#, JavaScript, Python)para obtener instrucciones sobre cómo acceder a las plantillas e instalar estas.See the quickstarts (C#, JavaScript, Python) for instructions on how to access and install the templates.

Un bot es una aplicación web y se proporcionan plantillas para cada versión de lenguaje del SDK.A bot is a web application, and templates are provided for each language version of the SDK. Todas las plantillas proporcionan un adaptador y una implementación de punto de conexión predeterminados.All templates provide a default endpoint implementation and adapter. Cada plantilla incluye:Each template includes:

  • Aprovisionamiento de recursosResource provisioning
  • Una implementación de punto de conexión HTTP específica del lenguaje que enruta las actividades entrantes a un adaptador.A language-specific HTTP endpoint implementation that routes incoming activities to an adapter.
  • Un objeto de adaptadorAn adapter object
  • Un objeto de botA bot object

La diferencia principal entre los distintos tipos de plantilla está en el objeto bot.The main difference between the different template types is in the bot object. Las plantillas son:The templates are:

  • Bot vacíoEmpty bot
    • Incluye un controlador de actividad que da la bienvenida a un usuario a la conversación mediante el envío de un mensaje de "hola mundo" en el primer turno de la conversación.Includes an activity handler that welcomes a user to the conversation by sending a "hello world" message on the first turn of the conversation.
  • Bot de ecoEcho bot
    • Usa un controlador de actividad para dar la bienvenida a los usuarios y devolver la entrada del usuario.Uses an activity handler to welcome users and echo back user input.
  • Bot principalCore bot
    • Reúne muchas características del SDK y muestra los procedimientos recomendados para un bot.Brings together many features of the SDK and demonstrates best practices for a bot.
    • Usa un controlador de actividad para dar la bienvenida a los usuarios.Uses an activity handler to welcome users.
    • Usa un diálogo de componente y diálogos secundarios para administrar la conversación.Uses a component dialog and child dialogs to manage the conversation.
    • Los cuadros de diálogo usan Language Understanding (LUIS) y QnA Maker características.The dialogs use Language Understanding (LUIS) and QnA Maker features.

Información adicionalAdditional information

Administración de recursos de botManaging bot resources

Los recursos del bot, como el id. de la aplicación, las contraseñas, las claves o los secretos de los servicios conectados deben administrarse de manera adecuada.The bot resources, such as app ID, passwords, keys or secrets for connected services, will need to be managed appropriately. Para obtener más información sobre cómo hacerlo, consulte las directrices Bot Framework seguridad y administración de recursos de bot.For more on how to do so, see the Bot Framework security guidelines and about managing bot resources.

Adaptadores de canalChannel adapters

El SDK también le permite usar adaptadores de canal, en los que el propio adaptador realiza además las tareas que el servicio Bot Connector haría normalmente para un canal.The SDK also lets you use channel adapters, in which the adapter itself additionally performs the tasks that the Bot Connector Service would normal do for a channel.

El SDK proporciona algunos adaptadores de canal en algunos lenguajes.The SDK provides a few channel adapters in some languages. Hay más adaptadores de canal disponibles a través de botkit y repositorios de la comunidad.More channel adapters are available through the Botkit and Community repositories. Para más información, consulte la tabla Bot Framework de canales y adaptadores del repositorio del SDK.For more details, see the Bot Framework SDK repository's table of channels and adapters.

La API REST de Bot ConnectorThe Bot Connector REST API

El BOT FRAMEWORK SDK se ajusta y se basa en la API REST de Bot Connector.The Bot Framework SDK wraps and builds upon the Bot Connector REST API. Si desea comprender las solicitudes HTTP subyacentes que admiten el SDK, consulte los artículos sobre autenticación del conector y asociados.If you want to understand the underlying HTTP requests that support the SDK, see the Connector authentication and associated articles. Las actividades que un bot envía y recibe se ajustan al esquema de Bot Framework actividad .The activities a bot sends and receives conform to the Bot Framework Activity schema.

Pasos siguientesNext steps