Ein RCS for Business-Agent ist die dialogorientierte Einheit, die Ihre Marke repräsentiert und mit Nutzern interagiert. Mit der RBM Management API können Sie Agents erstellen, zur Überprüfung und Einführung einreichen und ihren gesamten Lebenszyklus verwalten. Da jeder Agent zu einer Marke gehören muss, müssen Sie eine Marke erstellen, bevor Sie einen Agenten erstellen.
Die Code-Snippets auf dieser Seite stammen aus den Java-Beispielen und Node.js-Beispielen.
KI-Agenten erstellen und definieren
Agent erstellen
Wenn Sie einen RBM-Agent erstellen möchten, müssen Sie seine grundlegenden Informationen definieren.
Weitere Informationen finden Sie unter brands.agents.create.
cURL
curl -v -X POST "https://businesscommunications.googleapis.com/v1/$BRAND_ID/agents" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/business-messaging" \ -H "`oauth2l header --json rbm-developer-service-account-credentials.json businesscommunications`" \ -d "{ 'displayName': 'My test agent', 'rcsBusinessMessagingAgent': { 'description': 'My agent description', 'logoUri': 'https://agent-logos.storage.googleapis.com/_/kt90w53vzw2QSxK6PG1uCeJf', 'heroUri': 'https://agent-logos.storage.googleapis.com/_/kt90vzob74GQcfeHoEQbVRTP', 'phoneNumbers': [ { 'phoneNumber': { 'number': '+44800088088' }, 'label': 'My number' } ], 'emails': [ { 'address': 'support@demo.test', 'label': 'My email' } ], 'websites': [ { 'uri': 'https://a.demo.test/', 'label': 'My site' } ], 'privacy': { 'uri': 'https://a.demo.test/privacy', 'label': 'My privacy policy' }, 'termsConditions': { 'uri': 'https://a.demo.test/terms', 'label': 'My terms' }, 'color': '#FFFFFF', 'billingConfig': { 'billingCategory': 'CONVERSATIONAL' }, 'agentUseCase': 'TRANSACTIONAL', 'hostingRegion': 'EUROPE' } }"
Node.js
const businessCommunicationsApiHelper = require('@google/rbm-businesscommunications'); const privateKey = require('../../resources/businesscommunications-service-account-credentials.json'); businessCommunicationsApiHelper.initBusinessCommunucationsApi(privateKey); const newAgentDetails = { displayName: 'My new agent', name: brandId + '/agents/', rcsBusinessMessagingAgent: { description: 'This is the agent description that will be displayed in the Agent info tab in Messages', logoUri: 'https://agent-logos.storage.googleapis.com/_/kt90w53vzw2QSxK6PG1uCeJf', heroUri: 'https://agent-logos.storage.googleapis.com/_/kt90vzob74GQcfeHoEQbVRTP', phoneNumbers: [ { phoneNumber: { number: '+12223334444' }, label: 'Call support' } ], // It's recommended to provide at least one contact method (phone or email) because // this is required for launch. For any phone, email, or website provided, a corresponding label // must also be included. privacy: { "uri": 'https://policies.google.com/privacy', "label": 'Our privacy policy' }, termsConditions: { "uri": 'https://policies.google.com/terms', "label": 'Our Terms and Conditions' }, color: '#0B78D0', billingConfig: { billingCategory: 'NON_CONVERSATIONAL' }, agentUseCase: 'TRANSACTIONAL', hostingRegion: 'EUROPE' } }; businessCommunicationsApiHelper.createAgent(brandId, newAgentDetails).then((response) => { }).catch((err) => { console.log(err); });
Java
Brand brand = api.getBrand(brandId); logger.info("Brand to operate on: " + brand); String displayName = flags.getOrDefault("agent_name", "Test RBM Agent: " + now.getSecond()); String suffix = flags.getOrDefault("agent_data_suffix", "API"); RcsBusinessMessagingAgent agentData = AgentFactory.createRbmAgent(suffix); Agent agent = api.createRbmAgent(brand, displayName, agentData); logger.info("RBM agent has been created: " + agent);
Dieser Code gibt die neuen Agent-Informationen und eine eindeutige Kennung zurück, die dem Agent zugewiesen ist:
{
name: 'brands/40bd963f-ff92-425c-b273-8f0892d2d017/agents/my_new_agent_dxuewtvy_agent',
displayName: 'My new agent',
rcsBusinessMessagingAgent: {
description: 'This is the agent description that will be displayed in the Agent info tab in Messages',
logoUri: 'https://agent-logos.storage.googleapis.com/_/kt90w53vzw2QSxK6PG1uCeJf',
heroUri: 'https://agent-logos.storage.googleapis.com/_/kt90vzob74GQcfeHoEQbVRTP',
phoneNumbers: [ [Object] ],
privacy: {
uri: 'https://policies.google.com/privacy',
label: 'Our privacy policy'
},
termsConditions: {
uri: 'https://policies.google.com/terms',
label: 'Our Terms and Conditions'
},
color: '#0B78D0',
billingConfig: { billingCategory: 'NON_CONVERSATIONAL' },
agentUseCase: 'MULTI_USE',
hostingRegion: 'EUROPE'
}
}
Agent-Definition nachschlagen
Sie können einen Agent abrufen, indem Sie seine eindeutige Kennung (name) angeben. Weitere Informationen finden Sie unter brands.agents.list.
Node.js
const businessCommunicationsApiHelper = require('@google/rbm-businesscommunications'); const privateKey = require('../../resources/businesscommunications-service-account-credentials.json'); businessCommunicationsApiHelper.initBusinessCommunucationsApi(privateKey); // Retrieve details of the first agent (if one has already been created) businessCommunicationsApiHelper.getAgent(agent.name).then((response) => { }).catch((err) => { console.log(err); });
Java
Agent agent = api.getAgent(flags.get("agent_id")); logger.info("Agent: " + agent);
Dieser Code gibt die Agent-Informationen zurück:
{
name: 'brands/40bd963f-ff92-425c-b273-8f0892d2d017/agents/my_new_agent_dxuewtvy_agent',
displayName: 'My new agent',
rcsBusinessMessagingAgent: {
description: 'This is the agent description that will be displayed in the Agent info tab in Messages',
logoUri: 'https://agent-logos.storage.googleapis.com/_/kt90w53vzw2QSxK6PG1uCeJf',
heroUri: 'https://agent-logos.storage.googleapis.com/_/kt90vzob74GQcfeHoEQbVRTP',
phoneNumbers: [ [Object] ],
privacy: {
uri: 'https://policies.google.com/privacy',
label: 'Our privacy policy'
},
termsConditions: {
uri: 'https://policies.google.com/terms',
label: 'Our Terms and Conditions'
},
color: '#0B78D0',
billingConfig: { billingCategory: 'NON_CONVERSATIONAL' },
agentUseCase: 'MULTI_USE',
hostingRegion: 'EUROPE'
}
}
Überprüfung und Einführung
Verifizierungsinformationen einreichen
Für die Aktivierung des Agents ist eine Markenüberprüfung erforderlich. Vor dem Senden eines Aktivierungsantrags müssen Sie Bestätigungsinformationen einreichen. Sie müssen nicht auf die Markengenehmigung warten, bevor Sie den Startantrag stellen. Die Markengenehmigung erfolgt im Rahmen des Genehmigungsverfahrens für den Start. Bei bestimmten Mobilfunkanbietern müssen Sie auch ein gültiges Bestätigungstoken angeben, das von einer Verifizierungsstelle ausgestellt wurde.
Weitere Informationen finden Sie unter brands.agents.requestVerification.
cURL
curl -v "https://businesscommunications.googleapis.com/v1/brands/$BRAND_ID/agents/$AGENT_ID:requestVerification" \ -H "Content-Type: application/json" \ -H "x-http-method-override: POST" \ -H "User-Agent: curl/business-messaging" \ -H "$(oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY businesscommunications)" \ -d "{ 'agentVerificationContact': { ... }, 'agentVerificationToken': {'tokenBase64Encoded': '$TOKEN'} }"
Node.js
const businessCommunicationsApiHelper = require('@google/rbm-businesscommunications'); const privateKey = require('../../resources/businesscommunications-service-account-credentials.json'); businessCommunicationsApiHelper.initBusinessCommunucationsApi(privateKey); let agentVerificationContact = { partnerName: 'Alice', partnerEmailAddress: 'alice@thepartner.com', brandContactName: 'Bob', brandContactEmailAddress: 'bob@thebrand.com', brandWebsiteUrl: 'https://thebrand.com/' }; businessCommunicationsApiHelper.verifyAgent(agent.name, agentVerificationContact).then((response) => { }).catch((err) => { console.log(err); });
Java
AgentVerificationContact contact = AgentFactory.createRbmAgentVerification(); AgentVerification verification = api.requestAgentVerification(agent.getName(), contact); logger.info("Verification requested: " + verification);
Dieser Code gibt die Bestätigungsinformationen zurück:
{
"name": "brands/40bd963f-ff92-425c-b273-8f0892d2d017/agents/my_new_agent_ciymyd2b_agent",
"verificationState": "VERIFICATION_STATE_UNVERIFIED",
"agentVerificationContact": {
"partnerName": "Alice",
"partnerEmailAddress": "alice@thepartner.com",
"brandContactName": "Bob",
"brandContactEmailAddress": "bob@thebrand.com",
"brandWebsiteUrl": "https://thebrand.com/"
},
"agentVerificationTokens": [
{
"verificationAuthorityDisplayName": "Example Verification Authority",
"expirationTime": "2027-06-16T13:45:14Z",
"status": "ACTIVE",
"countryCode": "US",
"tokenBase64Encoded": "...",
"certificateChainUri": "https://rbm.goog/certificates?v=5&kid=6CAE185529AABAC216565E99A8DE22504B086209"
}
]
}
Verifizierungsinformationen eines Agenten aufrufen
Sie können den Status der Markenüberprüfung eines Kundenservicemitarbeiters abrufen. Weitere Informationen finden Sie unter brands.agents.getVerification.
Node.js
const businessCommunicationsApiHelper = require('@google/rbm-businesscommunications'); const privateKey = require('../../resources/businesscommunications-service-account-credentials.json'); businessCommunicationsApiHelper.initBusinessCommunucationsApi(privateKey); businessCommunicationsApiHelper.getAgentVerification(agent.name).then((response) => { }).catch((err) => { console.log(err); });
Java
AgentVerification verification = api.getAgentVerification(agent.getName()); logger.info("RBM agent verification: " + verification);
Dieser Code gibt den Bestätigungsstatus und die Partnerinformationen zurück:
{
"name": "brands/40bd963f-ff92-425c-b273-8f0892d2d017/agents/my_new_agent_ciymyd2b_agent/verification",
"verificationState": "VERIFICATION_STATE_UNVERIFIED",
"agentVerificationContact": {
"partnerName": "John Doe",
"partnerEmailAddress": "john.doe@gmail.com",
"brandContactName": "Bob",
"brandContactEmailAddress": "bob@brand.com",
"brandWebsiteUrl": "https://www.brand.com"
},
"agentVerificationTokens": [
{
"verificationAuthorityDisplayName": "Example Verification Authority",
"expirationTime": "2027-06-16T13:45:14Z",
"status": "ACTIVE",
"countryCode": "US",
"tokenBase64Encoded": "...",
"certificateChainUri": "https://rbm.goog/certificates?v=5&kid=6CAE185529AABAC216565E99A8DE22504B086209"
}
]
}
Verifizierungstokens aktualisieren und löschen
Wenn Sie bereits einen Agent gestartet haben, können Sie ihn mit einem Bestätigungstoken aktualisieren. Wenn Sie ein Token hinzufügen oder aktualisieren möchten, rufen Sie die Methode updateVerification (mit einer PATCH-Anfrage) auf und geben Sie die Aktualisierungsmaske agent_verification_tokens an.
cURL
curl -v -X PATCH "https://businesscommunications.googleapis.com/v1/brands/$BRAND_ID/agents/$AGENT_ID/verification?updateMask=agent_verification_tokens" \ -H "Content-Type: application/json" \ -H "x-http-method-override: PATCH" \ -H "User-Agent: curl/business-messaging" \ -H "$(oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY businesscommunications)" \ -d "{ 'agentVerificationTokens': [ {'tokenBase64Encoded': '$TOKEN'} ] }"
Wenn Ihr KI-Agent in mehreren Ländern eingeführt wird, müssen Sie möglicherweise mehrere Tokens angeben (eines für jedes Land), die von den zugelassenen Verifizierungsbehörden für diese Regionen ausgestellt wurden. Wenn Sie ein zusätzliches Token angeben möchten, rufen Sie die Methode updateVerification auf und geben Sie alle Tokens an, die mit dem Agent verknüpft werden sollen, einschließlich der bereits verknüpften.
Wenn Sie alle mit einem Agent verknüpften Tokens löschen möchten, senden Sie eine leere Liste in Ihrer PATCH-Anfrage:
cURL
curl -v -X PATCH "https://businesscommunications.googleapis.com/v1/brands/$BRAND_ID/agents/$AGENT_ID/verification?updateMask=agent_verification_tokens" \ -H "Content-Type: application/json" \ -H "x-http-method-override: PATCH" \ -H "User-Agent: curl/business-messaging" \ -H "$(oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY businesscommunications)" \ -d "{}"
Fehlerbehebung bei Bestätigungstoken
Beim Verwalten von Bestätigungstokens und Anfordern von Starts können folgende Fehler auftreten:
- Fehlendes Token für die Aktivierung: Wenn Sie die Aktivierung bei einem Mobilfunkanbieter anfordern, der ein Token erfordert, der Agent aber keines hat, erhalten Sie eine
400 error(z. B."Verification token matching agent <...> and carrier country US is missing"). - Nicht übereinstimmende Agentendaten: Die Agenten-ID, der Agentenname, das Logo und das Banner im Profil Ihres Agenten müssen genau mit den im Token eingebetteten Daten übereinstimmen. Wenn Sie versuchen, ein nicht übereinstimmendes Token anzuhängen oder einen Start mit einem nicht übereinstimmenden Token anzufordern, erhalten Sie eine
400 error(z. B."Agent ID mismatch. Request agent ID: <...>, Token agent ID: <...>").
KI‑Agenten zur Aktivierung einreichen
Sie können einen Agenten für die Einführung bei einem oder mehreren Mobilfunkanbietern einreichen. Einige Markteinführungen werden von Google verwaltet, andere direkt von Mobilfunkanbietern. Für die Veröffentlichung durch den Mobilfunkanbieter gelten möglicherweise zusätzliche Anforderungen. Weitere Informationen finden Sie unter Von Google verwaltete und von Mobilfunkanbietern verwaltete Markteinführungen.
Bevor Sie einen Agenten zum ersten Mal aktivieren können, müssen Sie Bestätigungsinformationen einreichen. So können Google und/oder Mobilfunkanbieter bei Ihrem Markenansprechpartner bestätigen, dass Sie berechtigt sind, den Kundenservicemitarbeiter in seinem Namen zu verwalten. Weitere Informationen zur Markenüberprüfung
Sobald Sie die Bestätigungsinformationen eingereicht und die Voraussetzungen für die Einführung erfüllt haben, können Sie einen Antrag auf Einführung einreichen.
Sie können einen Agenten für die Einführung bei einem oder mehreren Mobilfunkanbietern einreichen. Der ausgefüllte Aktivierungsfragebogen muss im Rahmen des Aktivierungsantrags eingereicht werden. Weitere Informationen finden Sie unter brands.agents.requestLaunch.
cURL
curl -v -X POST "https://businesscommunications.googleapis.com/v1/$AGENT_ID:requestLaunch" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/business-messaging" \ -H "`oauth2l header --json rbm-developer-service-account-credentials.json businesscommunications`" \ -d "{ 'agentLaunch': { 'rcsBusinessMessaging': { 'questionnaire': { 'contacts': [ { 'name': 'John Doe', 'title': 'Product Owner', 'email': 'support@demo.test' } ], 'optinDescription': 'Thanks for your request.', 'triggerDescription': 'Promotional messages will be triggered in a timely manner.', 'interactionsDescription': 'Promotional messages are one way.', 'optoutDescription': 'Sorry to see you go.', 'agentAccessInstructions': 'Thanks for your request.', 'videoUris': [ 'https://d2q4iodazzzt8b.cloudfront.net/MicrosoftTeamsvideo2_1758533835.mp4' ], 'screenshotUris': [ 'https://rm.virbm.com/Il9ChvVEhS1na5mr/ee9bc94b468a40688fb7fc71cb1c069c.png' ] }, 'launchDetails': { '/v1/regions/$CARRIER_ID': {} } } } }"
Node.js
const businessCommunicationsApiHelper = require('@google/rbm-businesscommunications'); const privateKey = require('../../resources/businesscommunications-service-account-credentials.json'); businessCommunicationsApiHelper.initBusinessCommunucationsApi(privateKey); let agentLaunch = { questionnaire: { contacts: [ { name: 'James Bond', title: 'Mr 0 0 7', email: 'someone@somewhere.com' } ], optinDescription: 'Users accepted our terms of service online.', triggerDescription: 'We are reaching preregistered users', interactionsDescription: 'This agent does not do much.', optoutDescription: 'Reply stop and we stop.', agentAccessInstructions: 'This is a a simple agent that reaches registered users.', videoUris: [ 'https://www.google.com/a/video' ], screenshotUris: [ 'https://www.google.com/a/screenshot' ] }, launchDetails: {} }; businessCommunicationsApiHelper.launchAgent(agent.name, agentLaunch).then((response) => { }).catch((err) => { console.log(err); });
Java
Optional<Questionnaire> q = Optional.of(AgentFactory.createRbmQuestionnaire()); AgentLaunch launch = api.requestRbmAgentLaunch(agent.getName(), regionIds, q); logger.info("RBM agent updated launch: " + launch);
Dieser Code gibt die Informationen zum Starten des Agents zurück:
{
"name": "brands/40bd963f-ff92-425c-b273-8f0892d2d017/agents/my_new_agent_7jo0trhw_agent/launch",
"rcsBusinessMessaging": {
"questionnaire": {
"contacts": [
{
"name": "James Bond",
"title": "Mr O O 7",
"email": "someone@somewhere.com"
}
],
"optinDescription": "Users accepted our terms of service online.",
"triggerDescription": "We are reaching preregistered users",
"interactionsDescription": "This agent does not do much.",
"optoutDescription": "Reply stop and we stop.",
"agentAccessInstructions": "This is a a simple agent that reaches registered users.",
"videoUris": [
"https://www.google.com/a/video"
],
"screenshotUris": [
"https://www.google.com/a/screenshot"
]
},
"launchDetails": {
"/v1/regions/some-carrier": {
"launchState": "LAUNCH_STATE_PENDING",
"updateTime": "2023-02-24T15:02:13.903554Z"
}
},
"launchRegion": "NORTH_AMERICA"
}
}
launchRegion wird nicht mehr unterstützt und soll bald entfernt werden.
Agent in einer oder mehreren Regionen einführen
Wenn Sie einen Agenten in einer oder mehreren Regionen einführen möchten, in denen er noch nicht eingeführt wurde, rufen Sie die Methode requestLaunch mit einem Objekt auf, das eine Karte mit nur Schlüsseln für alle Regionen enthält, in denen der Agent eingeführt werden soll. Durch die Verwendung einer leeren Map kann die interne API-Konsistenz in den Objekten, die zwischen API-Aufrufen verwendet werden, aufrechterhalten werden.
curl -X POST \ "https://businesscommunications.googleapis.com/v1/brands/BRAND_ID/agents/AGENT_ID:requestLaunch" \ -H "Content-Type: application/json" \ -H "$(oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY businesscommunications)" \ -d "{ 'name': 'brands/BRAND_ID/agents/AGENT_ID/launch', 'rcsBusinessMessaging': { 'questionnaire': { 'contacts': [ { 'name': 'Contact person 000', 'title': 'Contact manager 000', 'email': 'user@domain.com000' } ], 'optinDescription': 'Opt-in description 0', 'triggerDescription': 'Trigger description 0', 'optoutDescription': 'Opt-out description 0', 'agentAccessInstructions': 'Agent instructions 0', 'videoUris': [ 'https://www.youtube.com/watch?v=NN75im_us4k' ], 'screenshotUris': [ 'https://www.youtube.com/watch?v=NN75im_us4k' ] }, 'launchDetails': { '/v1/regions/fi-rcs': {} } } }"
Wenn Sie einen Agent in einer oder mehreren Regionen starten möchten (wenn der Agent bereits gestartet wurde), rufen Sie die Methode requestLaunch mit einem Objekt auf, das eine Zuordnung von nur Schlüsseln von allen Regionen enthält, in denen der Agent bereits gestartet wurde und allen Regionen, in denen der Agent gestartet werden soll. Durch die Verwendung einer leeren Karte kann die interne API-Konsistenz in den Objekten, die zwischen API-Aufrufen verwendet werden, aufrechterhalten werden.
curl -X POST \ "https://businesscommunications.googleapis.com/v1/brands/BRAND_ID/agents/AGENT_ID:requestLaunch" \ -H "Content-Type: application/json" \ -H "$(oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY businesscommunications)" \ -d "{ 'name': 'brands/BRAND_ID/agents/AGENT_ID/launch', 'rcsBusinessMessaging': { 'launchDetails': { '/v1/regions/fi-rcs': {}, '/v1/regions/vodafone-idea-india': {} } } }"
Wenn ein Agent die Methode requestLaunch aufruft, aber nicht alle Regionen, in denen der Agent bereits gestartet wurde, als Schlüssel enthält, wird ein 400 - Bad Request-Fehler ausgegeben.
Aktivierungsstatus eines Agents nachschlagen
Sie können den aktuellen Startstatus eines Agents abrufen. Weitere Informationen finden Sie unter brands.agents.getLaunch.
Node.js
const businessCommunicationsApiHelper = require('@google/rbm-businesscommunications'); const privateKey = require('../../resources/businesscommunications-service-account-credentials.json'); businessCommunicationsApiHelper.initBusinessCommunucationsApi(privateKey); businessCommunicationsApiHelper.getAgentLaunch(agent.name).then((response) => { }).catch((err) => { console.log(err); });
Java
AgentLaunch launch = api.getAgentLaunch(agent.getName()); logger.info("RBM agent launch: " + launch);
Wenn ein Start vom Mobilfunkanbieter abgelehnt wird, kann ein Partner den Start noch einmal beim Mobilfunkanbieter anfordern (die Anfrage hat den Status UNSPECIFIED und das Backend den Status REJECTED).
Dieser Code gibt die Informationen zur Aktivierung und den Aktivierungsstatus für jeden Ziel-Mobilfunkanbieter zurück:
{
"name": "brands/40bd963f-ff92-425c-b273-8f0892d2d017/agents/my_new_agent_7jo0trhw_agent/launch",
"rcsBusinessMessaging": {
"questionnaire": {
"contacts": [
{
"name": "James Bond",
"title": "Mr O O 7",
"email": "someone@somewhere.com"
}
],
"optinDescription": "Users accepted our terms of service online.",
"triggerDescription": "We are reaching preregistered users",
"interactionsDescription": "This agent does not do much.",
"optoutDescription": "Reply stop and we stop.",
"agentAccessInstructions": "This is a a simple agent that reaches registered users.",
"videoUris": [
"https://www.google.com/a/video"
],
"screenshotUris": [
"https://www.google.com/a/screenshot"
]
},
"launchDetails": {
"/v1/regions/some-carrier": {
"launchState": "LAUNCH_STATE_PENDING",
"updateTime": "2023-02-24T15:02:13.903554Z"
}
},
"launchRegion": "NORTH_AMERICA"
}
}
launchRegion wird nicht mehr unterstützt und wird demnächst entfernt.
Dem Launch eines KI-Agents zusätzliche Mobilfunkanbieter hinzufügen
Nachdem Sie die aktuellen Informationen zur Einführung Ihres Agents mit dem API-Aufruf brands.agents.getLaunch abgerufen haben, können Sie weitere Zielanbieter hinzufügen, um die Reichweite Ihres Agents zu erhöhen. Weitere Informationen finden Sie unter brands.agents.updateLaunch.
Node.js
const businessCommunicationsApiHelper = require('@google/rbm-businesscommunications'); const privateKey = require('../../resources/businesscommunications-service-account-credentials.json'); businessCommunicationsApiHelper.initBusinessCommunucationsApi(privateKey);'); // To launch an agent to further carriers, we need to first obtain the existing // launch information and extend it with the new carrier(s). businessCommunicationsApiHelper.getAgentLaunch(agent.name).then((response) => { let existingLaunch = response.data.rcsBusinessMessaging; // Now we add the new carrier to the existing launch existingLaunch.launchDetails[config.launchCarrier2] = null; // And we submit the launch again businessCommunicationsApiHelper.launchAgent(agent.name, existingLaunch).then((response) => { console.log('Launch details are:'); console.log(JSON.stringify(response.data, null, 2)); }).catch((err) => { console.log(err); }); }).catch((err) => { console.log(err); });
Dieser Code gibt die aktualisierten Startinformationen zurück:
{
"name": "brands/40bd963f-ff92-425c-b273-8f0892d2d017/agents/my_new_agent_7jo0trhw_agent/launch",
"rcsBusinessMessaging": {
"questionnaire": {
"contacts": [
{
"name": "James Bond",
"title": "Mr O O 7",
"email": "someone@somewhere.com"
}
],
"optinDescription": "Users accepted our terms of service online.",
"triggerDescription": "We are reaching preregistered users",
"interactionsDescription": "This agent does not do much.",
"optoutDescription": "Reply stop and we stop.",
"agentAccessInstructions": "This is a a simple agent that reaches registered users.",
"videoUris": [
"https://www.google.com/a/video"
],
"screenshotUris": [
"https://www.google.com/a/screenshot"
]
},
"launchDetails": {
"/v1/regions/some-carrier": {
"launchState": "LAUNCH_STATE_PENDING",
"updateTime": "2023-02-24T15:02:13.903554Z"
},
"/v1/regions/another-carrier": {
"launchState": "LAUNCH_STATE_PENDING",
"updateTime": "2023-02-24T15:04:50.456552Z"
}
},
"launchRegion": "NORTH_AMERICA"
}
}
Nach der Markteinführung und Wartung
Alle für eine Marke erstellten Agents auflisten
Der Entwickler kann eine Liste aller KI-Agenten abrufen, die er für eine Marke erstellt hat.
Weitere Informationen finden Sie unter brands.agents.list.
Node.js
const businessCommunicationsApiHelper = require('@google/rbm-businesscommunications'); const privateKey = require('../../resources/businesscommunications-service-account-credentials.json'); businessCommunicationsApiHelper.initBusinessCommunucationsApi(privateKey); businessCommunicationsApiHelper.listAgents(brand.name).then((response) => { console.log('Current agents are:'); console.log(response.data); datastore.saveJsonData('agents', response.data.agents); }).catch((err) => { console.log(err); });
Java
Brand brand = api.getBrand(brandId); logger.info("Brand: " + brand); ListAgentsResponse response = api.listAllAgents(brand); List<Agent> agents = response.getAgents().stream() .sorted(Comparator.comparing(Agent::getName)).collect(Collectors.toList()); logger.info(String.format("Found %d agents", response.getAgents().size())); for (Agent agent : agents) { logger.info(String.format("Agent [%s]: '%s'", agent.getName(), agent.getDisplayName())); }
Dieser Code gibt eine Liste aller KI-Agenten zurück, die der Marke gehören:
{
agents: [
{
name: 'brands/40bd963f-ff92-425c-b273-8f0892d2d017/agents/my_new_agent_4fpd1psz_agent',
displayName: 'My new agent',
rcsBusinessMessagingAgent: [Object]
},
{
name: 'brands/40bd963f-ff92-425c-b273-8f0892d2d017/agents/my_new_agent_ciymyd2b_agent',
displayName: 'My second agent',
rcsBusinessMessagingAgent: [Object]
},
{
name: 'brands/40bd963f-ff92-425c-b273-8f0892d2d017/agents/my_new_agent_helof85o_agent',
displayName: 'My third agent',
rcsBusinessMessagingAgent: [Object]
}
]
}
Archivierte Agents einbeziehen
Standardmäßig sind in der Liste aller Agenten keine Agenten enthalten, die vom Partner archiviert wurden.
Wenn Sie archivierte Kundenservicemitarbeiter in die Ergebnisse einbeziehen möchten, legen Sie den Parameter includeArchived auf true fest.
Node.js
Die Methode „listAgents“ akzeptiert ein optionales Konfigurationsobjekt, um archivierte Agents einzuschließen.const businessCommunicationsApiHelper = require('@google/rbm-businesscommunications'); const privateKey = require('../../resources/businesscommunications-service-account-credentials.json'); businessCommunicationsApiHelper.initBusinessCommunicationsApi(privateKey); // To list all agents including archived ones, set includeArchived to true const listOptions = { includeArchived: true }; businessCommunicationsApiHelper.listAgents(brand.name, listOptions).then((response) => { console.log('Current agents (including archived) are:'); console.log(response.data); datastore.saveJsonData('agents', response.data.agents); }).catch((err) => { console.log(err); });
Java
Die Methode „listAllAgents“ enthält einen booleschen Parameter zur Sichtbarkeitssteuerung.// To list all agents including archived ones, pass 'true' for the includeArchived parameter boolean includeArchived = true; Brand brand = api.getBrand(brandId); logger.info("Brand: " + brand); // Call listAllAgents with the brand and the includeArchived flag ListAgentsResponse response = api.listAllAgents(brand, includeArchived); Listagents = response.getAgents().stream() .sorted(Comparator.comparing(Agent::getName)).collect(Collectors.toList()); logger.info(String.format("Found %d agents (including archived)", response.getAgents().size())); for (Agent agent : agents) { logger.info(String.format("Agent [%s]: '%s' (Archived: %s)", agent.getName(), agent.getDisplayName(), agent.getIsArchived())); }
Veröffentlichung eines Agents zurückziehen
Wenn Sie die Einführung eines Agents in einer bestimmten Region zurückziehen möchten, rufen Sie die Methode updateLaunch auf, geben Sie die Zielregion in der Karte des Aufrufs an und legen Sie launchState auf LAUNCH_STATE_UNLAUNCHED fest.
curl -X PATCH \ "https://businesscommunications.googleapis.com/v1/brands/BRAND_ID/agents/AGENT_ID/launch" \ -H "Content-Type: application/json" \ -H "$(oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY businesscommunications)" \ -d "{ 'rcsBusinessMessaging': { 'launchDetails': { '/v1/regions/fi-rcs': { 'launchState': 'LAUNCH_STATE_UNLAUNCHED' }, '/v1/regions/vodafone-idea-india': { 'launchState': 'LAUNCH_STATE_UNLAUNCHED' } } } }"
KI-Agent löschen
Aus Sicherheitsgründen können RBM-Agents nicht mehr gelöscht werden. Wenn Sie Hilfe benötigen, wenden Sie sich an das Supportteam für RCS for Business.
KI‑Agents archivieren oder wieder aktivieren
Damit Ihr Arbeitsbereich übersichtlich bleibt, können Sie nicht mehr verwendete Agents archivieren. Wenn Sie einen Agent archivieren, wird er in den Standard-API-Discovery-Ergebnissen ausgeblendet.
Das Archivieren ist nur eine Änderung der Sichtbarkeit. Der Agent wird dadurch nicht gelöscht und der zugrunde liegende Startstatus wird nicht beeinflusst. Sie können einen Agent jederzeit reaktivieren, um seine Sichtbarkeit wiederherzustellen und ihn weiter zu verwalten.
Damit aktive Agents nicht versehentlich ausgeblendet werden, gelten die folgenden Regeln:
- Voraussetzungen: Sie können nur Agents archivieren, die sich in einem inaktiven Status befinden:
UNLAUNCHED,SUSPENDEDoderREJECTED. - Einschränkungen: Sie können keinen Agenten archivieren, der bei einem beliebigen Mobilfunkanbieter
LAUNCHEDoderPENDINGist. Wenn Sie versuchen, einen solchen Agent zu archivieren, wird die Anfrage mit einem Fehler abgelehnt.
Archivierungsstatus aktualisieren
Verwenden Sie die Patch-Methode, um einen Agenten zu archivieren oder die Archivierung aufzuheben. Sie müssen den Parameter updateMask=is_archived in die URL einfügen, um das Feld anzugeben, das aktualisiert wird. Um zu archivieren, setzen Sie den booleschen Wert isArchived auf true. Um die Archivierung aufzuheben, setzen Sie ihn auf false.
Methode: PATCH /v1/brands/{brandId}/agents/{agentId}
Fügen Sie is_archived der Aktualisierungsmaske hinzu.
{
"isArchived": true
}
Agents mit Filtern auflisten
Standardmäßig werden mit der Methode list archivierte Kundenservicemitarbeiter ausgeblendet. Verwenden Sie den Parameter include_archived, um sie in Ihre Ergebnisse aufzunehmen.
Methode: GET /v1/brands/{brandId}/agents?include_archived=true