Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Windows 365 for Agents expõe recursos por meio de superfícies complementares que mapeiam para o ciclo de vida da sessão do agente:
- APIs do Microsoft Graph para administração. Os administradores de TI e os criadores de agentes usam essas APIs para provisionar e controlar a capacidade do pool.
- API de sessão do Windows 365 for Agents para gerenciamento de sessão de runtime. Os aplicativos parceiros chamam essa API para marcar um PC na nuvem e liberá-la quando o trabalho for concluído.
- Ferramentas MCP (Model Context Protocol) para operação na sessão. Os agentes de IA invocam essas ferramentas por meio do ponto de extremidade MCP por sessão. Para compartilhamento de tela, um aplicativo parceiro invoca ações de compartilhamento de tela em nome de um humano.
Juntas, essas superfícies abrangem o provisionamento do pool, a aquisição de um PC na nuvem, a execução do trabalho e a observação ou assistência conforme necessário.
Para obter uma lista completa da documentação da API e um guia de introdução, visite a Documentação do Github do Windows 365 for Agents.
Criação de computador: administração
Do lado do Microsoft API do Graph, o plano Computer-Create usa o API do Graph W365A e o portal de administração do W365. Por meio dessas superfícies, os administradores e ISVs (fornecedores independentes de software) podem:
- Provisione pools de agentes do PC na nuvem.
- Configurar políticas e imagens.
- Registre chamadores de parceiros confiáveis.
- Escalar contagens de pools.
- Anexe a medição por meio da cobrança MAC.
Para saber mais sobre pools de agentes do Cloud PC, consulte a documentação da API do Graph.
Computer-Get: check-out e check-in da sessão
O plano Computer-Get é uma pequena superfície de controle de runtime para aplicativos parceiros, atendida pela API de sessão Windows 365 for Agents (não pelo Microsoft Graph).
O Checkout reserva um PC na nuvem e retorna a identidade da sessão e as URLs de conexão:
POST /api/pools/{poolId}/sessions?api-version=2.0
Um checkout bem-sucedido retorna:
-
sessionId: o identificador de sessão -
status: resultado do provisionamento (por exemplo)Succeeded -
computerUrl: URL base para chamadas de ferramenta MCP (acréscimo/mcp) -
screenshareUrl: URL base para ações de compartilhamento de tela -
connectivityUrl: pode sernull, não dependa disso. Sempre usecomputerUrlpara MCP escreenshareUrlpara compartilhamento de tela.
O check-out pode levar até 30 segundos enquanto um dispositivo é atribuído. Use o x-ms-sessionId cabeçalho (um UUID v4) como uma chave de idempotência para que novas tentativas não aloquem sessões duplicadas.
Os tipos de sessão são determinados no momento do check-out pelos cabeçalhos que você passa:
| Tipo | Cabeçalhos | Objetivo |
|---|---|---|
| HumanUser (padrão) | user-object-id |
Sessão interativa Standard associada a uma identidade do AAD. |
| Agencia |
x-ms-authorization-auxiliary (token de identidade do agente) + user-object-id (ID de usuário do agente) |
Sessão controlada por agente. O token auxiliar é um token de identidade de agente emitido pelo serviço Identity RM provisionado em seu locatário e identifica o agente específico (por exemplo, "Agente de Vendas") solicitando acesso. |
O check-in libera a sessão:
DELETE /api/sessions/{sessionId}?api-version=2.0
O check-in requer que o x-ms-sessionId cabeçalho (um UUID v4) corresponda ao sessionId no caminho. É disparar e esquecer: uma 204 No Content resposta significa que a versão foi aceita e a limpeza é concluída de forma assíncrona. As sessões ociosas são removidas automaticamente após 30 minutos de inatividade (qualquer solicitação de compartilhamento de tela ou MCP conta como atividade), mas os aplicativos de parceiros devem sempre marcar sessões explicitamente quando o trabalho for concluído.
Computer-Do: operação na sessão
Depois que o aplicativo parceiro adquire um PC na nuvem, os agentes usam ferramentas MCP para operá-lo. Essas ferramentas seguem o protocolo de contexto de modelo aberto, portanto, qualquer agente compatível com o protocolo pode descobrir e invocar ferramentas sem integração personalizada.
Todo o computerUrl tráfego MCP flui pelo ponto de extremidade MCP da sessão, formado pela anexação /mcp ao retornado no check-out:
POST {computerUrl}/mcp?api-version=1.0
Cada solicitação deve incluir o x-ms-computerId cabeçalho correspondente à ID do computador na URL. Cada POST envia uma mensagem JSON-RPC e retorna uma resposta.
Ciclo de vida da sessão MCP. O cliente deve concluir o handshake de inicialização do MCP antes de chamar qualquer ferramenta:
- Envie uma
initializesolicitação para receber funcionalidades do servidor. - Enviar uma
initializednotificação (nenhuma resposta esperada). - Emita chamadas
tools/listde ferramenta para descobrir ferramentas disponíveis outools/callpara invocar uma.
A inicialização é necessária uma vez por sessão. O plano MCP abrange a interação da área de trabalho (mouse, teclado, captura de tela), gerenciamento de janelas, execução de comandos, automação do navegador e recursos de acessibilidade da interface do usuário.
Para obter o catálogo completo de ferramentas e seus esquemas de parâmetros, consulte Windows 365 for Agents MCP Server.
Computer-See/Take-Control: supervisão humana
O SDK do Screenshare permite que um aplicativo parceiro incorpore a observação humana em tempo real da atividade do agente diretamente em sua própria interface do usuário. Ele transmite o Cloud PC do agente por WebRTC e, quando necessário, retransmite a entrada do mouse e do teclado de volta para a sessão. O SDK cria um iframe dentro de sua página que lida com todas as chamadas de API de streaming de vídeo, retransmissão de entrada e compartilhamento de tela, para que seu aplicativo nunca se comunique diretamente com a pilha de streaming.
O visualizador se conecta ao retornado na finalização screenshareUrl da compra. Nenhuma construção de ponto de extremidade de compartilhamento de tela separada é necessária, o SDK deriva suas chamadas da URL base () e da ID do computador quecomputerUrl você fornece.
Fluxo de integração
O aplicativo parceiro faz check-out de uma sessão, carrega o SDK da CDN e entrega o token retornado computerUrl e de portador a um ScreenShareViewerarquivo . O iframe assume a partir daí, chamando a API de compartilhamento de tela ARI e ingressando na chamada de vídeo em seu nome:
Partner application ARI service
│ │
│ POST /api/pools/{poolId}/sessions │
│ ──────────────────────────────────────→│
│ │
│ 200 OK { screenshareUrl: "…" } │
│ ←──────────────────────────────────────│
│ │
│ Load screenshare-embed.js from CDN │
│ new ScreenShareViewer({ container, │
│ baseUrl, computerId }) │
│ viewer.connect(bearerToken) │
│ ─── postMessage to iframe ────────────→│
│ │
│ iframe calls ARI screenshare API │
│ iframe joins ACS video call │
│ live video streams back │
│ ←──────────────────────────────────────│
Distribuição do SDK
Carregue a screenshare-embed.js compilação da CDN:
| CDN URL |
|---|
https://packages.global.cloudinferenceplatform.azure.com/screenshare-sdk/latest/screenshare-embed.js |
Métodos do visualizador
Uma ScreenShareViewer instância expõe o ciclo de vida completo da sessão, conexão, entrega de controle opcional, atualização de token e desmontagem:
| Método | Descrição |
|---|---|
connect(bearerToken) |
Inicia uma sessão de compartilhamento de tela. retorna uma promessa. |
takeControl() |
Solicita controle de mouse e teclado (somente modo interativo). O chamador mais recente sempre vence, não há rejeição. |
releaseControl() |
Libera o controle e retorna o visualizador para somente visualização. |
updateToken(bearerToken) |
Substitui o token de portador sem reiniciar a sessão. Use quando receber um TOKEN_EXPIRED erro. |
stop() |
Encerra a sessão e remove o iframe do DOM. A instância não pode ser reutilizada, crie uma nova ScreenShareViewer para se reconectar. |
Respostas de erros
Os erros são exibidos no error evento com um código e uma mensagem. Cada código é mapeado para uma ação de recuperação específica:
| Código | Significado | Ação |
|---|---|---|
TOKEN_EXPIRED |
Token de portador expirado (401). |
Chamar viewer.updateToken(newToken). |
START_FAILED |
Falha na API de inicialização do ARI. | Verifique computerId e registre o pool. |
JOIN_FAILED |
Falha no ingresso na chamada ACS. | Tente novamente com um novo token. |
RECONNECT_FAILED |
Reconexão automática esgotada (3 tentativas). | Ligue para viewer.stop(), crie um novo visualizador e reconecte-se com um novo token. |
IFRAME_LOAD_FAILED |
O Iframe não respondeu em 10 segundos. | Verifique se baseUrl está acessível no navegador. |
MODE_RESTRICTED |
Comando de controle emitido no viewOnly modo. |
Crie o visualizador com mode: 'interactive'. |
Início rápido
Uma página mínima que monta um visualizador em um contêiner e o conecta a uma sessão já verificada. Ele pressupõe que você já tenha a resposta de checkout (consulte Computer-Get) e um token de portador (consulte Autenticação):
<!DOCTYPE html>
<html>
<head><title>Screen Share</title></head>
<body>
<div id="viewer" style="width: 100%; height: 600px;"></div>
<script src="https://packages.global.cloudinferenceplatform.azure.com/screenshare-sdk/latest/screenshare-embed.js"></script>
<script>
// Assumes you already have the checkout response (see Computer-Get)
// and a bearer token (see Authentication).
var computerUrl = checkoutResponse.computerUrl;
// computerId is embedded in computerUrl as /computers/{computerId}
var computerId = computerUrl.split('/computers/')[1];
var viewer = new ScreenShareViewer({
container: document.getElementById('viewer'),
baseUrl: computerUrl,
computerId: computerId
});
viewer.on('error', function (code, msg) {
console.error(code, msg);
});
viewer.connect(bearerToken);
</script>
</body>
</html>
Resumo do Surface
| Surface | Plano | Ponto de extremidade | Chamado por | Objetivo |
|---|---|---|---|---|
| API do Graph | Computer-Create | API do Graph do W365A e portal de administração do W365 | Administrador de TI ou ISV | Moldar e manter a piscina. |
| API de Sessão | Computer-Get |
POST /api/pools/{poolId}/sessions (Finalizar compra) |
Aplicativo de parceiro | Reservar um PC na nuvem. |
| API de Sessão | Computer-Get |
DELETE /api/sessions/{sessionId} (Check-in) |
Aplicativo de parceiro | Libere o PC na nuvem. |
| MCP | Computer-Do | POST {computerUrl}/mcp |
Agente de IA | Opere o PC na nuvem. |
| Screenshare SDK | Computador - Veja, Computer-TakeControl |
ScreenShareViewer (da CDN screenshare-embed.js) |
Aplicativo de parceiro, em nome de um ser humano | Observe e co-dirija. |
Como eles se encaixam
As superfícies funcionam em sequência, com uma entrega clara entre os chamadores:
- Administradores e criadores de agentes usam Computer-Create para provisionar o pool.
- O aplicativo parceiro chama Checkout no Computer-Get para reservar um PC na nuvem para um trabalho específico do agente, especificando o tipo de sessão por meio de cabeçalhos de solicitação.
- O agente de IA inicializa a sessão de MCP e
{computerUrl}/mcpconduz o PC na nuvem por meio das ferramentas de execução do computador . A maioria das chamadas flui por esse plano. - Quando necessário, o aplicativo parceiro invoca ações
{screenshareUrl}Computer-See em nome de um humano para observar ou assumir. - O aplicativo parceiro chama Checkin no Computer-Get para liberar o PC na nuvem quando o trabalho estiver concluído. As sessões deixadas ociosas por 30 minutos são removidas automaticamente.
Próximas etapas
- Saiba mais sobre o servidor MCP do Windows 365 for Agents.
- Saiba mais sobre a arquitetura do Windows 365 for Agents.
- Saiba mais sobre o ciclo de vida da sessão do agente.