- Erste Schritte
- UiPath Agents in Studio Web
- Über UiPath Agents
- Lizenzierung
- Codierte Agents in Studio Web
- Ausführung von Agents
- Erste Schritte mit Conversational Agents
- Lizenzierung für Conversational Agents
- Entwerfen von Conversational Agents
- Auswerten von Conversational Agents
- Instanzverwaltung
- Autopilot for Everyone
- Microsoft Teams
- Slack
- Einrichtung des anonymen Zugriffs
- Beobachtbarkeit für Conversational Agents
- Einschränkungen und FAQ
- Agents und Workflows
- Bewährte Verfahren zum Erstellen von Agents
- Auswahl des besten Modells für Ihren Agenten
- Best Practices für das Veröffentlichen und Bereitstellen von Agents
- Bewährte Verfahren für Kontext-Engineering
- Best Practices für DeepRAG und Batch-Transformation: JIT vs. indexbasierte Strategien
- Aufforderungen
- Arbeiten mit Dateien
- Kontexte
- Eskalationen und Agent-Speicher
- Bewertungen
- Spuren von Agents
- Agent-Punktzahl
- Verwaltung von UiPath Agents
- Codierte UiPath Agents

Benutzerhandbuch zu Agents
Einrichtung des anonymen Zugriffs
Überblick
Mit anonymem Zugriff können Sie Agents für Benutzer einbetten, die keine UiPath-Konten haben.Dies ist nützlich für kundenseitige Anwendungen, öffentliche Portale oder jedes Szenario, in dem Sie möchten, dass Benutzer mit Ihrem agent interagieren, ohne eine UiPath-Authentifizierung zu erfordern.
Anonymer Zugriff erfordert:
- Eine vertrauliche externe Anwendung, die in UiPath Admin konfiguriert ist.
- Ein Token-Endpunkt, der von Ihrer Organization gehostet wird, um die Authentifizierung zu behandeln.
- Eine eingebettete agent-URL, die mit den Authentifizierungsparametern konfiguriert wurde.
Vertrauliche externe Apps mit App-Scope ermöglichen anonymen Zugriff ohne Benutzerauthentifizierung. Konfigurieren Sie Berechtigungen sorgfältig, um unbeabsichtigten Datenzugriff zu verhindern. Wir empfehlen dringend, anonyme Agents hinter Ihrem eigenen Portal oder Ihrer Anmeldung zu schalten, um Missbrauch zu verhindern.
Beabsichtigte Benutzer: Benutzer, die ohne Automation Cloud-Konto auf Agents zugreifen müssen.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie über Folgendes verfügen:
- Ein veröffentlichter Agent in Orchestrator.
- Organization-Administratorzugriff auf das UiPath-Administratorportal.
- Infrastruktur zum Hosten einer serverlosen Funktion oder eines API-Endpunkts (z. B. AWS Lambda, Azure Functions, Google Cloud Functions).
Schritt 1: Erstellen Sie die externe Anwendung.
- Navigieren Sie auf der UiPath-Startseite zu Admin.
- Wählen Sie Externe Apps aus.
- Wählen Sie Anwendung hinzufügen aus.
- Füllen Sie die Anwendungsdetails aus:
- Anwendungsname: Geben Sie der Anwendung einen beschreibenden Namen.
- Anwendungstyp: Wählen Sie Vertrauliche Typ aus.
- Fügen Sie die folgenden Scopes als Anwendungsbereiche hinzu:
| API | Umfang |
|---|---|
| Orchestrator-API-Zugriff | OR.Jobs |
| Orchestrator-API-Zugriff | OR.Execution |
| Orchestrator-API-Zugriff | OR.Users |
| Orchestrator-API-Zugriff | OR.Folders |
| Ablaufverfolgungen API-Zugriff | Traces.Api |
| Konversations-Agents | ConversationalAgents |
- Klicken Sie auf Hinzufügen (eine Umleitungs-URL ist für diesen Client nicht erforderlich).
- Ein Popup zeigt die App-ID und das App-Geheimnis an.
Kopieren Sie das App-Geheimnis und speichern Sie es sicher. Sie können es nach dem Schließen dieses Fensters nicht mehr anzeigen, und Sie benötigen es beim Erstellen des Token-Endpunkts.
Das Hinzufügen von Scopes als Benutzer-Scopes anstelle von Anwendungs-Scopes führt dazu, dass die Chat-App die Benutzeranmeldung anfordert, was den Zweck des anonymen Zugriffs zunichte macht.
Schritt 2: Konfigurieren von Berechtigungen für externe Anwendungen
Konfigurieren Sie nach dem Erstellen der externen Anwendung ihre Berechtigungen, um zu kontrollieren, auf welche Ressourcen der anonyme Agent zugreifen kann.
Zugriff auf Mandantenebene zuweisen
- Gehen Sie zu Orchestrator.
- Wählen Sie oben links die Option „Mandant“ aus.
- Wählen Sie in der Symbolleiste die Option „Zugriff verwalten“ aus.
- Wählen Sie Externe Apps aus.
- Wählen Sie Externe App zuweisen aus.
- Suchen Sie nach der von Ihnen erstellten externen App und wählen Sie sie aus.
- Wählen Sie unter Zusätzliche Rollen die erforderlichen Rollen aus:
- Erforderliches Minimum: Automation User.
- Fügen Sie zusätzliche Rollen nur bei Bedarf für Ihren Anwendungsfall hinzu.
- Wählen Sie Zuweisen aus.
Zugriff auf Ordnerebene zuweisen
- Navigieren Sie zu Ordnern in Orchestrator.
- Für jeden Ordner benötigt der Agent Zugriff auf:
- Wählen Sie den Ordner aus.
- Wählen Sie Konto/Gruppe/externe App zuweisen aus.
- Wählen Sie Ihre externe App aus dem Dropdownmenü aus.
- Weisen Sie die erforderlichen Rollen zu.
- Wählen Sie Zuweisen aus.
Die externe App ist auf alle Ressourcen beschränkt, für die sie keine expliziten Berechtigungen hat. Stellen Sie sicher, dass die App Zugriff auf alle Kontexte, Tools und Ressourcen hat, die der Conversational Agent benötigt.
Schritt 3: Erstellen Sie einen Token-Endpunkt
Ein Token-Endpunkt ist erforderlich, da der eingebettete Conversational Agent Clientgeheimnisse nicht sicher speichern kann. Ihr Token-Endpunkt authentifiziert sich mit den Client-Anmeldeinformationen bei UiPath und gibt ein Zugriffstoken an den eingebetteten Agent zurück.
Empfohlene Architektur
Wir empfehlen eine serverlose Architektur für den Token-Endpunkt:
- Niedrige Kosten: Zum Beispiel betragen die Preise für AWS Lambda für 3.000.000 Antworten/Monat ungefähr 0,40 USD.
- Minimale Wartung: Keine zu verwaltenden Server.
- Einfache Skalierung: Behandelt Verkehrsspitzen automatisch.
Sicherheitsüberlegungen
Das Clientgeheimnis ist sehr vertraulich. Wenn es unabsichtlich offengelegt wird, löschen Sie das Geheimnis sofort und generieren Sie ein neues in den Einstellungen der externen Anwendung.
Stellen Sie sicher, dass Ihre Token-Endpunktimplementierung:
- Speichert das Clientgeheimnis sicher (Umgebungsvariablen, Umgebungs-Manager)
- Validiert anfordern Ursprünge, um nicht autorisierten Zugriff zu verhindern.
- Verwendet HTTPS für die gesamte Kommunikation
Beispielimplementierung
Der folgende JavaScript-Code kann für Ihre serverlose Plattform angepasst werden. Der Antworttext muss zurückgeben{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' }
};
}
}
Umgebungsvariablen
Konfigurieren Sie die folgenden Umgebungsvariablen in Ihrer serverlosen Plattform:
| Variable | Beschreibung |
|---|---|
CLIENT_ID | Die App-ID aus Schritt 1 |
CLIENT_SECRET | Das App-Geheimnis aus Schritt 1 |
Die genaue Methode zum Festlegen von Umgebungsvariablen hängt von Ihrer Hosting-Plattform ab.
Konfigurieren erlaubter Ursprünge
Das ALLOWED_ORIGINS Array bietet Sicherheit, indem Tokenanforderungen von nicht autorisierten Quellen abgelehnt werden. Konfigurieren Sie diese Liste so, dass Folgendes aufgenommen wird:
https://cloud.uipath.com/*(erforderlich für den eingebetteten Agenten)https://staging.uipath.comum Anforderungen aus einer Staging-Umgebung zuzulassen.- Domains Ihrer Anwendung, wenn Sie lokal oder in anderen Umgebungen testen.
Schritt 4: Einbetten des Agenten mit anonymer Zugriff
Betten Sie nach der Konfiguration des Token-Endpunkts den Agent mit dem folgenden URL-Format ein:
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>
Parameter für anonyme Zugriffs-URL
| Parameter | Erforderlich | Beschreibung |
|---|---|---|
agentId | Ja | Die Release-ID des veröffentlichten Agents |
externalAuth | Ja | Aktivieren Sie trueanonymen Zugriff. |
authEndpoint | Ja | URL Ihres Token-Endpunkts |
externalUserId | Ja | Eindeutiger Bezeichner für den Benutzer (siehe Hinweis unten) |
Das externalUserIdist ein Wert, den Sie definieren und pflegen. Es trennt und ruft den Chatverlauf des Benutzers ab. Verwenden Sie eine aussagekräftige Benutzer-ID, wenn Sie den Chatverlauf pflegen müssen, oder eine zufällige GUID, wenn keine Persistenz des Chatverlaufs erforderlich ist.
Beispiel für eingebettete URL
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
HTML-Beispiel
<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>
Wenn der externalAuth=true Parameter fehlt, verwendet der eingebettete Agent den Standardumleitungsflow bei der Anmeldung anstelle des anonymen Zugriffs.
Fehlersuche und ‑behebung
Token-Endpunkt gibt 403 zurück.
- Stellen Sie sicher, dass Ihre
ALLOWED_ORIGINSListe die richtigen Domänen enthält. - Überprüfen Sie, ob der Header der Anforderungsquelle korrekt gesendet wird.
- Testen Sie den Endpunkt direkt, um das Problem zu isolieren.
Die Anforderung schlägt mit einem Authentifizierungs-Error fehl.
- Stellen Sie sicher, dass die ${DNT_1}
CLIENT_IDundCLIENT_SECRET${DNT_2} Umgebungsvariablen korrekt festgelegt sind. - Bestätigen Sie im UiPath Admin, dass die externe Anwendung noch aktiv ist.
- Prüfen Sie, ob die Token-Endpunkt-URL im Code auf die richtige UiPath-Umgebung verweist.
Agent kann nicht auf Ressourcen zugreifen
- Überprüfen Sie die der externen Anwendung zugewiesenen Rollen in Orchestrator.
- Stellen Sie sicher, dass Berechtigungen auf Ordnerebene für alle erforderlichen Ordner konfiguriert sind.
- Prüfen Sie, ob die der externen App hinzugefügten Scopes dem erforderlichen API-Zugriff entsprechen.
Chatverlauf wird nicht gespeichert.
- Stellen Sie sicher, dass Sie eine konsistente Nutzung
externalUserIdfür denselben Benutzer gewährleisten. - Stellen Sie sicher, dass die Benutzer-ID in der eingebetteten URL korrekt übergeben wird.
Nächste Schritte
- Einbetten von iFrame und Apps: Vollständige Dokumentation zum Einbetten
- Lizenzierung: Verstehen Sie den Verbrauch für anonyme Benutzer.
- Überblick
- Voraussetzungen
- Schritt 1: Erstellen Sie die externe Anwendung.
- Schritt 2: Konfigurieren von Berechtigungen für externe Anwendungen
- Zugriff auf Mandantenebene zuweisen
- Zugriff auf Ordnerebene zuweisen
- Schritt 3: Erstellen Sie einen Token-Endpunkt
- Empfohlene Architektur
- Sicherheitsüberlegungen
- Beispielimplementierung
- Umgebungsvariablen
- Konfigurieren erlaubter Ursprünge
- Schritt 4: Einbetten des Agenten mit anonymer Zugriff
- Parameter für anonyme Zugriffs-URL
- Beispiel für eingebettete URL
- HTML-Beispiel
- Fehlersuche und ‑behebung
- Token-Endpunkt gibt 403 zurück.
- Die Anforderung schlägt mit einem Authentifizierungs-Error fehl.
- Agent kann nicht auf Ressourcen zugreifen
- Chatverlauf wird nicht gespeichert.
- Nächste Schritte