- Introdução
- Agentes da UiPath no Studio Web
- Sobre os agentes da UiPath
- Licenciamento
- Introdução aos agentes de conversação
- Licenciamento para agentes de conversação
- Projeto de agentes de conversa
- Avaliação de agentes de conversa
- Gerenciamento de instâncias
- Autopilot para todos
- Microsoft Teams
- Slack
- Configuração de acesso anônimo
- Observabilidade para agentes de conversa
- Limitações e Perguntas frequentes
- Prompts
- Trabalhando com arquivos
- Contexto
- Escalonamentos e memória do agente
- Avaliações
- Traços de agente
- Pontuação do agente
- Gerenciamento de agentes UiPath
- Agentes codificados da UiPath

Guia do Usuário de Agentes
Configuração de acesso anônimo
Visão geral
O acesso anônimo permite que você incorpore agentes de conversa para usuários que não têm contas da UiPath. Isso é útil para aplicativos voltados para o cliente, portais públicos ou qualquer cenário em que você deseja que os usuários interajam com seu agente sem exigir autenticação da UiPath.
O acesso anônimo requer:
- Um aplicativo externo confidencial configurado no Administrador da UiPath
- Um ponto de extremidade do token hospedado por sua organização para lidar com a autenticação
- Uma URL de agente incorporado configurado com os parâmetros de autenticação
Os aplicativos externos com escopo de aplicativo confidencial permitem o acesso anônimo sem autenticação do usuário. Configure cuidadosamente as permissões para evitar o acesso não intencional aos dados. Recomendamos enfaticamente bloquear agentes anônimos atrás do seu próprio portal ou login para mitigar o abuso.
Usuários pretendidos: usuários que precisam acessar agentes de conversa sem uma conta do Automation Cloud.
Pré-requisitos
Antes de iniciar, certifique-se de ter:
- Um agente de conversa publicado no Orchestrator.
- Acesso do administrador da organização ao portal de administração da UiPath.
- Infraestrutura para hospedar uma função sem servidor ou ponto de extremidade de API (por exemplo, AWS Lambda, Azure Functions, Google Cloud Functions).
Etapa 1: criar o aplicativo externo
- Na página inicial da UiPath, navegue até Admin.
- Selecione Apps externos.
- Selecione Adicionar aplicativo.
- Preencha os detalhes da aplicação:
- Nome do aplicativo: dê ao aplicativo um nome descritivo.
- Tipo de aplicativo: selecione Aplicativo confidencial.
- Adicione os seguintes escopos como escopos dos aplicativos:
| API | Escopo |
|---|---|
| Acesso à API do Orchestrator | OR.Jobs |
| Acesso à API do Orchestrator | OR.Execution |
| Acesso à API do Orchestrator | OR.Users |
| Acesso à API do Orchestrator | OR.Folders |
| Acesso à API do Traces | Traces.Api |
| Agentes de conversa | ConversationalAgents |
- Clique em Adicionar (não é necessário um URL de redirecionamento para esse cliente).
- Uma mensagem exibe o ID do aplicativo e o Segredo do aplicativo.
Copie o segredo do aplicativo e armazene-o com segurança. Você não poderá visualizá-lo novamente após fechar esta janela e precisará dele ao criar o ponto de extremidade do token.
Adicionar quaisquer escopos como escopos de usuário em vez de escopos de aplicativos faz com que o aplicativo de chat solicite login do usuário, invalidando o propósito do acesso anônimo.
Etapa 2: configurar permissões de aplicativos externos
Após criar o aplicativo externo, configure suas permissões para controlar quais recursos o agente anônimo pode acessar.
Atribuir acesso no nível do tenant
- Navegue para o Orchestrator.
- Selecione Tenant na parte superior esquerda.
- Selecione Gerenciar acesso na barra de ferramentas.
- Selecione Aplicativos externos.
- Selecione Atribuir aplicativo externo.
- Pesquise e selecione o aplicativo externo que você criou.
- Em Funções adicionais, selecione as funções necessárias:
- Mínimo necessário: Automation User.
- Adicione funções adicionais apenas conforme necessário para seu caso de uso.
- Selecione Atribuir.
Atribuir acesso no nível da pasta
- Navegue até Pastas no Orchestrator.
- Para cada pasta à qual o agente precisa acessar:
- Selecione a pasta.
- Selecione Atribuir conta/grupo/aplicativo externo.
- Selecione seu aplicativo externo no menu suspenso.
- Atribua as funções necessárias.
- Selecione Atribuir.
O app externo é restrito a quaisquer recursos para os quais não tem permissões explícitas. Certifique-se de que o aplicativo tenha acesso a todos os contextos, ferramentas e recursos de que o agente de conversa precisa.
Etapa 3: criar um endpoint do token
Um ponto de extremidade de token é necessário porque o agente de conversa incorporado não pode armazenar segredos do cliente com segurança. Seu endpoint do token se autentica com a UiPath usando as credenciais do cliente e retorna um token de acesso ao agente incorporado.
Arquitetura recomendada
Recomendamos uma arquitetura sem servidor para o ponto de extremidade do token:
- Baixo custo: por exemplo, os preços do AWS Lambda para 3.000.000 respostas/mês são de aproximadamente US$ 0,40.
- Manutenção mínima: sem servidores para gerenciar.
- Escalonamento fácil: lida com picos de tráfego automaticamente.
Considerações de segurança
O segredo do cliente é altamente confidencial. Se for exposto sem intenção, exclua imediatamente o segredo e gere um novo nas configurações do Aplicativo Externo .
Certifique-se de sua implementação de endpoint do token:
- Armazena o segredo do cliente com segurança (variáveis de ambiente, gerenciador de segredos)
- Valida as origens da solicitação para evitar acesso não autorizado
- Usa HTTPS para todas as comunicações
Implementação de exemplo
O seguinte código JavaScript pode ser adaptado para sua plataforma Serverless. O corpo da resposta deve retornar {access_token: <token>}:
// Whitelist: Configure allowed origins for your deployment
const ALLOWED_ORIGINS = [
'https://cloud.uipath.com/*',
// Add your application domains here
];
function matchesOriginPattern(origin, pattern) {
try {
const originUrl = new URL(origin);
const originBase = `${originUrl.protocol}//${originUrl.host}`;
if (pattern.includes('*')) {
const regexPattern = pattern
.replace(/[.+?^${}()|[\]\\]/g, '\\$&')
.replace(/\*/g, '.*');
const regex = new RegExp(`^${regexPattern}$`);
return regex.test(originBase);
} else {
return originBase.startsWith(pattern);
}
} catch (e) {
return false;
}
}
function checkOrigin(req) {
const origin = req.headers.origin || req.headers.referer;
if (!origin) {
const host = req.headers.host;
if (host && (host.includes('localhost') || host.includes('127.0.0.1'))) {
return true;
}
return false;
}
return ALLOWED_ORIGINS.some(pattern => matchesOriginPattern(origin, pattern));
}
async function getClientAccessToken() {
const clientId = process.env.CLIENT_ID;
const clientSecret = process.env.CLIENT_SECRET;
const scope = 'OR.Default ConversationalAgents Traces.Api';
const params = new URLSearchParams({
grant_type: 'client_credentials',
client_id: clientId,
client_secret: clientSecret,
scope: scope
});
const response = await fetch('https://cloud.uipath.com/identity_/connect/token', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: params.toString()
});
if (!response.ok) {
const errorText = await response.text();
throw new Error(`Token request failed: ${response.status} ${errorText}`);
}
const data = await response.json();
return data.access_token;
}
export async function token(context, req) {
if (!checkOrigin(req)) {
context.res = {
status: 403,
headers: { 'Content-Type': 'application/json' },
body: { error: 'Origin not allowed' }
};
return;
}
try {
const accessToken = await getClientAccessToken();
context.res = {
status: 200,
headers: { 'Content-Type': 'application/json' },
body: { access_token: accessToken }
};
} catch (error) {
console.error('Error fetching access token:', error);
context.res = {
status: 500,
headers: { 'Content-Type': 'application/json' },
body: { error: 'Failed to fetch access token' }
};
}
}
// Whitelist: Configure allowed origins for your deployment
const ALLOWED_ORIGINS = [
'https://cloud.uipath.com/*',
// Add your application domains here
];
function matchesOriginPattern(origin, pattern) {
try {
const originUrl = new URL(origin);
const originBase = `${originUrl.protocol}//${originUrl.host}`;
if (pattern.includes('*')) {
const regexPattern = pattern
.replace(/[.+?^${}()|[\]\\]/g, '\\$&')
.replace(/\*/g, '.*');
const regex = new RegExp(`^${regexPattern}$`);
return regex.test(originBase);
} else {
return originBase.startsWith(pattern);
}
} catch (e) {
return false;
}
}
function checkOrigin(req) {
const origin = req.headers.origin || req.headers.referer;
if (!origin) {
const host = req.headers.host;
if (host && (host.includes('localhost') || host.includes('127.0.0.1'))) {
return true;
}
return false;
}
return ALLOWED_ORIGINS.some(pattern => matchesOriginPattern(origin, pattern));
}
async function getClientAccessToken() {
const clientId = process.env.CLIENT_ID;
const clientSecret = process.env.CLIENT_SECRET;
const scope = 'OR.Default ConversationalAgents Traces.Api';
const params = new URLSearchParams({
grant_type: 'client_credentials',
client_id: clientId,
client_secret: clientSecret,
scope: scope
});
const response = await fetch('https://cloud.uipath.com/identity_/connect/token', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: params.toString()
});
if (!response.ok) {
const errorText = await response.text();
throw new Error(`Token request failed: ${response.status} ${errorText}`);
}
const data = await response.json();
return data.access_token;
}
export async function token(context, req) {
if (!checkOrigin(req)) {
context.res = {
status: 403,
headers: { 'Content-Type': 'application/json' },
body: { error: 'Origin not allowed' }
};
return;
}
try {
const accessToken = await getClientAccessToken();
context.res = {
status: 200,
headers: { 'Content-Type': 'application/json' },
body: { access_token: accessToken }
};
} catch (error) {
console.error('Error fetching access token:', error);
context.res = {
status: 500,
headers: { 'Content-Type': 'application/json' },
body: { error: 'Failed to fetch access token' }
};
}
}
Variáveis de Ambiente
Configure as seguintes variáveis de ambiente em sua plataforma Serverless:
| Variável | Description |
|---|---|
CLIENT_ID | O ID do aplicativo da etapa 1 |
CLIENT_SECRET | O segredo do aplicativo da etapa 1 |
O método exato para definir variáveis de ambiente depende da sua plataforma de hospedagem.
Configuração de origens permitidas
A matriz ALLOWED_ORIGINS fornece segurança ao rejeitar solicitações de token de origens não autorizadas. Configure esta lista para incluir:
https://cloud.uipath.com/*(necessário para o agente incorporado)https://staging.uipath.comse precisar permitir solicitações de um ambiente de teste- Os domínios do seu aplicativo se você estiver testando localmente ou de outros ambientes
Etapa 4: incorporar o agente com acesso anônimo
Com o endpoint do token configurado, incorpore o agente de conversa usando o seguinte formato de URL:
https://<cloud_env>.uipath.com/<organization>/<tenant>/autopilotforeveryone_/conversational-agents/?agentId=<agent_id>&externalAuth=true&authEndpoint=<token_endpoint_url>&externalUserId=<user_id>
https://<cloud_env>.uipath.com/<organization>/<tenant>/autopilotforeveryone_/conversational-agents/?agentId=<agent_id>&externalAuth=true&authEndpoint=<token_endpoint_url>&externalUserId=<user_id>
Parâmetros de URL de acesso anônimo
| Parâmetro | Required | Description |
|---|---|---|
agentId | Sim | O ID de versão do agente publicado |
externalAuth | Sim | Defina como true para habilitar o acesso anônimo |
authEndpoint | Sim | URL do seu endpoint do token |
externalUserId | Sim | Identificador exclusivo para o usuário (ver observação abaixo) |
O externalUserId é um valor que você define e mantém. Ele separa e recupera o histórico de chat do usuário. Use um ID de usuário significativo se você precisar manter o histórico de chat ou um GUID aleatório se a persistência do histórico de chat não for necessária.
Exemplo de URL incorporada
https://<cloud_env>.uipath.com/myorg/mytenant/autopilotforeveryone_/conversational-agents/?agentId=12345&externalAuth=true&authEndpoint=https://my-api.example.com/token&externalUserId=user-abc-123
https://<cloud_env>.uipath.com/myorg/mytenant/autopilotforeveryone_/conversational-agents/?agentId=12345&externalAuth=true&authEndpoint=https://my-api.example.com/token&externalUserId=user-abc-123
Exemplo de HTML
<iframe
src="https://<cloud_env>.uipath.com/myorg/mytenant/autopilotforeveryone_/conversational-agents/?agentId=12345&externalAuth=true&authEndpoint=https://my-api.example.com/token&externalUserId=user-abc-123"
width="400"
height="600"
frameborder="0"
allow="clipboard-write"
></iframe>
<iframe
src="https://<cloud_env>.uipath.com/myorg/mytenant/autopilotforeveryone_/conversational-agents/?agentId=12345&externalAuth=true&authEndpoint=https://my-api.example.com/token&externalUserId=user-abc-123"
width="400"
height="600"
frameborder="0"
allow="clipboard-write"
></iframe>
Se o parâmetro externalAuth=true estiver ausente, o agente incorporado usará o fluxo de redirecionamento de login padrão em vez de acesso anônimo.
Solução de problemas
O endpoint do token retorna 403
- Verifique se sua lista
ALLOWED_ORIGINSinclui os domínios corretos. - Verifique se o cabeçalho de origem da solicitação está sendo enviado corretamente.
- Teste o ponto de extremidade diretamente para isolar o problema.
Falha na solicitação de token com erro de autenticação
- Verifique se as variáveis de ambiente
CLIENT_IDeCLIENT_SECRETestão definidas corretamente. - Confirme se o aplicativo externo ainda está ativo no Administrador da UiPath.
- Verifique se o URL do endpoint do token no código aponta para o ambiente correto da UiPath.
O agente não pode acessar recursos
- Revise as funções atribuídas do aplicativo externo no Orchestrator.
- Verifique se as permissões no nível da pasta estão configuradas para todas as pastas necessárias.
- Verifique se os escopos adicionados ao app externo correspondem ao acesso de API necessário.
O histórico de chat não persiste
- Certifique-se de usar um
externalUserIdconsistente para o mesmo usuário. - Verifique se o ID do usuário está sendo passado corretamente na URL incorporada.
Próximas Etapas
- Incorporação do iFrame e do Apps: documentação completa de incorporação
- Licenciamento: entenda o consumo para usuários anônimos
- Visão geral
- Pré-requisitos
- Etapa 1: criar o aplicativo externo
- Etapa 2: configurar permissões de aplicativos externos
- Atribuir acesso no nível do tenant
- Atribuir acesso no nível da pasta
- Etapa 3: criar um endpoint do token
- Arquitetura recomendada
- Considerações de segurança
- Implementação de exemplo
- Variáveis de Ambiente
- Configuração de origens permitidas
- Etapa 4: incorporar o agente com acesso anônimo
- Parâmetros de URL de acesso anônimo
- Exemplo de URL incorporada
- Exemplo de HTML
- Solução de problemas
- O endpoint do token retorna 403
- Falha na solicitação de token com erro de autenticação
- O agente não pode acessar recursos
- O histórico de chat não persiste
- Próximas Etapas