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.
Importante
O QI de Trabalho está em pré-visualização pública. As funcionalidades e as APIs podem ser alteradas antes da disponibilidade geral e não têm um SLA definido.
O IQ de Trabalho é a interface nativa de IA da Microsoft para a inteligência de trabalho do Microsoft 365. Permite-lhe criar aplicações que podem consultar e-mails, reuniões, ficheiros e conhecimentos organizacionais com linguagem natural; baseado nos seus dados do Microsoft 365.
Este início rápido abrange o protocolo Agente a Agente (A2A). A2A é um padrão aberto para a comunicação do agente e suporta o modo síncrono em relação ao Gateway de IQ de Trabalho. O suporte para o modo de transmissão em fluxo (Eventos Enviados pelo Servidor (SSE)) estará disponível em breve.
Pré-requisitos
- Um utilizador com uma licença de Microsoft 365 Copilot
- SDK .NET versão 8 ou posterior para executar o código de exemplo
- Um utilizador com acesso de administrador da organização para a configuração do IQ de Trabalho única
Ativar a API de QI de Trabalho na sua organização
⏱️ ~5 minutos, uma vez por organização.
Esta secção cria duas coisas na sua organização:
- O principal de serviço do Work IQ (aprovisiona o recurso do IQ de Trabalho para que os utilizadores possam pedir tokens para o mesmo)
- Um registo de aplicação que o código de cliente utiliza para autenticar, com a
WorkIQAgent.Askpermissão delegada
O utilizador (ou o administrador da sua organização) pode utilizar o centro de administração do Microsoft Entra ou a CLI do Azure para concluir este passo.
Etapa 1. Criar o principal de serviço do IQ de Trabalho (Graph Explorer)
Aceda ao Graph Explorer e inicie sessão com uma conta de administrador.
Defina o método como POST e o URL como
https://graph.microsoft.com/v1.0/servicePrincipals. O Grafo Explorer apresenta âmbitos relevantes com base no URL e no método, pelo que o URL tem de ser introduzido antes de dar consentimento no passo seguinte.Selecione Modificar permissões e consentimento para
Application.ReadWrite.All. Este passo é uma ação de administrador única e concede o âmbito apenas para a sua própria sessão do Graph Explorer. Não altera as permissões em toda a organização.Introduza o seguinte no corpo do Pedido.
{ "appId": "fdcc1f02-fc51-4226-8753-f668596af7f7" }Selecione Executar consulta. Uma resposta criada do 201 confirma o êxito. Um erro de conflito significa que o principal de serviço já existe. Não há problema em avançar para o passo seguinte.
Etapa 2. Criar o registo de aplicações
- Aceda ao centro de administração do Microsoft Entra. No painel de navegação esquerdo, selecione Entra ID e, em seguida, Registros de aplicativo.
- Selecione Novo registro.
- Adicione um nome descritivo, defina Tipos de conta suportados como Contas apenas neste diretório organizacional. Selecione Registrar.
- Copie o ID da Aplicação (cliente). Este valor é o seu
APP_ID. - Selecione Autenticação. Selecione Adicionar uma plataforma (ou Adicionar URI de Redirecionamento). Na caixa de diálogo, selecione Aplicações móveis e de ambiente de trabalho.
- Selecione o URI sugerido:
https://login.microsoftonline.com/common/oauth2/nativeclient. - Em URIs de redirecionamento personalizados, adicione os seguintes dois URIs um de cada vez (cada um na sua própria linha):
http://localhost-
ms-appx-web://microsoft.aad.brokerplugin/<APP_ID>(onde<APP_ID>está o seuAPP_ID)
- Em Definições avançadas, defina Permitir fluxos de cliente público comoSim.
- Selecione Salvar.
- Selecione o URI sugerido:
- Selecione Permissões de API, Adicionar uma permissão e, em seguida, APIs que a minha organização utiliza. Procure e
Work IQ, em seguida, selecione Permissões delegadas. Selecione WorkIQAgent.Ask e, em seguida, selecione Adicionar permissões. - Selecione Conceder consentimento do administrador para [o seu inquilino]. Reveja a caixa de diálogo de confirmação e selecione Sim.
- Copie o ID do Diretório (inquilino) da página de descrição geral do Microsoft Entra ID.
A permissão WorkIQAgent.Ask permite que a aplicação, em nome do utilizador com sessão iniciada, consulte as respetivas informações de trabalho do Microsoft 365 (correio, ficheiros, reuniões, conversas) através do IQ do Trabalho.
Agora deve ter dois valores: APP_ID e TENANT_ID. Transmita estes valores para o exemplo através de --appid e --tenant.
Dica
Criar um agente do lado do servidor (aplicação Web)? Este início rápido utiliza um registo de cliente público (móvel/ambiente de trabalho) para o caminho mais simples para um exemplo de trabalho. Se a sua aplicação for um serviço do lado do servidor que chama o IQ de Trabalho em nome de um utilizador final (por exemplo, um agente Web que inicia sessão do utilizador e, em seguida, reencaminha a respetiva identidade para o IQ de Trabalho), utilize um registo de cliente confidencial com um segredo ou certificado de cliente e troque o token do utilizador através do fluxo Em Nome de (OBO). A superfície da API de QI de Trabalho e a permissão delegada WorkIQAgent.Ask são as mesmas em ambos os fluxos.
Guia de introdução: protocolo A2A
O protocolo Agente a Agente (A2A) é um padrão aberto para a comunicação do agente. O QI de Trabalho suporta A2A v1.0 (este início rápido) e v0.3. O A2A-Version cabeçalho do pedido controla a distribuição da versão.
-
A2A-Version: 1.0- formato de fio v1.0 (este início rápido) -
A2A-Version: 0.3(ou cabeçalho omitido) – formato de fio v0.3 (mantido como a predefinição sem cabeçalho para retrocompatibilidade com clientes v0.3 existentes)
Obter o código de exemplo
Clone o repositório de exemplo com o seguinte comando.
git clone https://github.com/microsoft/work-iq-samples.git
cd work-iq-samples
Executar o exemplo (com o SDK A2A)
O dotnet/a2a exemplo utiliza o SDK .NET A2A.
cd dotnet/a2a
dotnet run -- --token WAM --appid <APP_ID> --tenant <TENANT_ID>
Executar o exemplo (HTTP não processado, sem SDK)
O dotnet/a2a-raw exemplo mostra o protocolo de transmissão sem abstração do SDK. Utilizar este exemplo é útil para migrar para non-.NET idiomas.
cd dotnet/a2a-raw
dotnet run -- --token WAM --appid <APP_ID> --tenant <TENANT_ID>
O que acontece
Quando executa o exemplo, é apresentado um pedido de início de sessão (caixa de diálogo WAM no Windows, browser do sistema no macOS/Linux). Depois de iniciar sessão, escreva uma mensagem na You > linha de comandos e prima Enter. A resposta do agente é apresentada abaixo. Escreva quit para sair.
── READY — Work IQ Gateway — Sync — https://workiq.svc.cloud.microsoft/a2a/ ──
Type a message. 'quit' to exit.
You > Summarize my recent emails from Alice.
Agent > You've exchanged 8 emails with Alice this week. Key threads:
- ...
(2145 ms)
You > quit
Como funciona
O IQ de Trabalho aceita A2A v1.0 em JSON-RPC em https://workiq.svc.cloud.microsoft/a2a/. (A2A v1.0 também define um enlace REST em /v1/message:send; O QI de Trabalho pode expor este enlace REST numa futura atualização de pré-visualização.)
Gateway de IQ de Trabalho
- Ponto final:
https://workiq.svc.cloud.microsoft/a2a/ - Público-alvo do token:
api://workiq.svc.cloud.microsoft - Escopo:
WorkIQAgent.Ask
Síncrono SendMessage
POST https://workiq.svc.cloud.microsoft/a2a/
Authorization: Bearer <token>
Content-Type: application/json
A2A-Version: 1.0
{
"jsonrpc": "2.0",
"id": "<request-guid>",
"method": "SendMessage",
"params": {
"message": {
"role": "ROLE_USER",
"messageId": "<message-guid>",
"parts": [
{
"text": "What meetings do I have today?"
}
],
"metadata": {
"Location": {
"timeZoneOffset": -480,
"timeZone": "America/Los_Angeles"
}
}
}
}
}
O A2A-Version: 1.0 cabeçalho do pedido ativa os nomes dos métodos v1.0 (SendMessage) no gateway. Sem este, o servidor é predefinido como v0.3 e devolve um JSON-RPC -32601 "Method not found" para nomes de métodos v1.0.
A resposta é um envelope JSON-RPC que result.task contém a tarefa do agente e um contextId para várias voltas:
{
"jsonrpc": "2.0",
"id": "<request-guid>",
"result": {
"task": {
"id": "<task-id>",
"contextId": "ctx-1",
"status": {
"state": "TASK_STATE_COMPLETED"
},
"artifacts": [
{
"artifactId": "<artifact-id>",
"name": "Answer",
"parts": [
{
"text": "Today you have: 9 AM standup, 11 AM review with Dana, 2 PM customer call."
}
]
}
]
}
}
}
O QI de Trabalho requer que os Location metadados moam consultas sensíveis ao tempo ("hoje" ou "esta semana") na hora local do utilizador.
Conversações multiturno
Para manter o estado da conversação, transmita o contextId da resposta anterior na mensagem seguinte.
{
"jsonrpc": "2.0",
"id": "<request-guid-2>",
"method": "SendMessage",
"params": {
"message": {
"role": "ROLE_USER",
"messageId": "<message-guid-2>",
"contextId": "ctx-1",
"parts": [
{
"text": "Tell me more about the 2 PM customer call."
}
]
}
}
}
Detalhes do protocolo chave (A2A v1.0)
-
Envelope JSON-RPC obrigatório: todos os pedidos têm de incluir
jsonrpc,id,method, .params -
POST para URL de base: o método (
SendMessage) está dentro do corpo JSON-RPC, não do caminho do URL. -
Partes de presença de campo: as partes são objetos planos com um de
text,url,rawoudatadefinido; semkinddiscriminação. -
SCREAMING_SNAKE_CASE enumerações: as funções utilizam
ROLE_USER/ROLE_AGENT; os estados utilizam /TASK_STATE_WORKING/TASK_STATE_COMPLETEDTASK_STATE_FAILED/etc. -
Wrapper de resultados: as respostas das tarefas são apresentadas em
result.task. -
Distribuição de versões:
A2A-Version: 1.0seleciona v1.0; omitir o cabeçalho (ou enviarA2A-Version: 0.3) seleciona v0.3, a predefinição sem cabeçalho.
Deteção de agente
Para invocar um agente específico, transmita o respetivo ID de agente através de .--agent-id Existem duas formas de encontrar o ID de um agente.
Recomendado: CLI list-agents do WorkIQ (experimental)
A CLI do WorkIQ envia um comando experimental list-agents que imprime os agentes disponíveis para o utilizador com sessão iniciada.
workiq config set experimental=true
workiq list-agents
Cada linha mostra o nome a apresentar, o fornecedor e o ID do agente do agente (a segunda linha de cada entrada). Utilize esse ID ao --agent-id executar o exemplo.
Alternativa: copiar do URL do Microsoft 365 Copilot
- Aceda ao site do Microsoft 365 Copilot Chat: https://m365.cloud.microsoft/chat/.
- Selecione o agente no painel de navegação esquerdo.
- O ID do agente encontra-se na barra de endereço do browser após
/chat/agent/:
https://m365.cloud.microsoft/chat/agent/P_c0fd1ab0-cbf3-7eb9-1a7d-2d823549ef31.8ad61c39-5b6e-447c-b26a-a64eee436502
└──────────────────────────── agent ID ─────────────────────────────────────┘
O formato é <LETTER>_<opaqueValue1>.<opaqueValue2>.
Transmitir o ID do agente para o exemplo
Importante
Trate todo o ID do agente como uma cadeia opaca. Não desconstrua nem analise os respetivos componentes. Transmita-o tal como está para a API.
Transmitir o ID do agente como um argumento para o exemplo
dotnet run -- --token WAM --agent-id <AGENT_ID> --appid <APP_ID> --tenant <TENANT_ID>
Observação
Alguns agentes do Microsoft 365 (nomeadamente Word, Excel e agentes do PowerPoint na IU do Copilot Chat) foram concebidos para serem executados no contexto desses produtos do Office e não produzem respostas úteis quando invocados sem cabeça através de A2A.
capacidades de A2A
| Recursos | Status |
|---|---|
SendMessage (sincronizar) |
✅ Disponível |
Várias curvas (contextId) |
✅ Disponível |
| Partes de texto | ✅ Disponível |
| Citações | ✅ Disponível (a forma de entrega está a ser modernizada; veja as notas de versão) |
Autenticação
| Método | Plataforma | Uso |
|---|---|---|
| WAM (Gestor de Conta do Windows) | Windows | --token WAM --appid <APP_ID> --tenant <TENANT_ID> |
| Browser interativo | macOS, Linux | Mesmo comando — o Cliente de Identidade da Microsoft reverte para um início de sessão no browser do sistema. |
| JWT pré-obtido | Qualquer |
--token <JWT>(o token tem de ser emitido para a sua aplicação registada, não para um cliente arbitrário como o CLI do Azure) |
Solução de problemas
| Sintoma | Correção |
|---|---|
401 Unauthorized |
O token aud não corresponde api://workiq.svc.cloud.microsofta . Verifique a afirmação da audiência. |
403 Forbidden (sem erro de âmbito) |
Utilizador em falta Microsoft 365 Copilot licença. Atribua e aguarde entre 15 e 30 minutos. |
403 Forbidden com Required scopes = [...] |
Administração consentimento WorkIQAgent.Ask para não foi concedido. Execute novamente o consentimento do administrador (configuração do administrador, passo 6/Azure passo 3 da CLI). |
WAM IncorrectConfiguration (3399614466) |
Falta o URI de redirecionamento do mediador no registo de aplicações. Lido ms-appx-web://microsoft.aad.brokerplugin/<APP_ID> e tente novamente. |
| O WAM continua a falhar depois de o URI de redirecionamento estar definido | Aplicação de inquilino único + /common erro de correspondência de autoridade. Passe --tenant <TENANT_ID> para que o Cliente de Identidade da Microsoft utilize a autoridade específica do inquilino. |
AADSTS65001: consent required |
Administração consentimento não foi concedido. Execute az ad app permission admin-consent --id <APP_ID>. |
| Vazio 200/ sem texto do agente | Se a licença copilot do utilizador tiver sido atribuída recentemente, o índice pode demorar entre 15 e 30 minutos a criar. Se invocou um agente do Word/Excel/PowerPoint, esses agentes são executados no produto do Office e não produzem respostas A2A sem cabeça. |