Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
Recommended Actions Agent in Dynamics 365 Sales esittelee priorisoidut suositukset mahdollisuuksista. Se tarjoaa yhteisen pisteytysputken, datasopimukset ja kaksisuuntaisen tilasynkronoinnin, jotta kuka tahansa mukautettu agentti voi esittää suosituksia yhdessä ensimmäisen osapuolen agenttien kanssa.
Tässä artikkelissa kuvataan arkkitehtuuria, keskeisiä komponentteja, datasopimuksia ja integraatiovirtaa, joita käytetään, kun mukautettu agentti integroituu Recommended Actions Agentiin. Se tarjoaa perustavanlaatuisen tiedon, joka tarvitaan integraation toteuttamiseen.
Edellytykset
NextBestActionAgent-ratkaisu otettu käyttöön kohdeorganisaatiossa. Lisätietoja löytyy kohdasta Tuo agentti kohdeympäristöön.
Myyjällä on asianmukaiset Dataverse-tietoturvaroolit , kuten kohdassa Permissions required for custom security roles on kuvattu.
Vakaa, yksilöllinen SourceAgentId-merkkijono mukautetulle agentille. Lisätietoja löytyy osoitteesta Lisää mukautettuja agentteja suositellut toiminnot.
Seuraavat oikeudet vaaditaan suositeltujen toimintojen työntämiseen:
Taulukko Tarvittavat oikeudet Käyttöalue msdyn_rawactioncatalogue Lue, Kirjoita, Liitä ja Lisätä Globaali msdyn_prioritizedactioncatalogue Lue, Kirjoita, Liitä ja Lisätä Globaali msdyn_recommendedactionsourceagentconfig Lue Globaali msdyn_salesagentprofile Lue Globaali
Integraation arkkitehtuuri
Recommended Actions Agent -integraatio käyttää prosessointiputkea, joka vastaanottaa raakatoimintoja lähdeagenteilta, pisteyttää ne UICE (Kiireellisyys, Vaikutus, Luottamus, Ponnistus) -pisteytysmoottorilla ja tuo priorisoidut tulokset esiin myyjäkarusellissa.
Käsittelyputki toimii seuraavasti:
- Tulliagentti havaitsee toiminnallisen oivalluksen (esimerkiksi kauppariski, jumissa oleva kauppa tai puuttuva sidosryhmä).
-
Mukautettu agentti kutsuu mukautetun
msdyn_PushActionDataToRecommendedActionAgentAPI:n työntämään toiminnon. - Toiminto tallennetaan (
msdyn_rawactioncataloguesyöttötaulukkoon). - Jokaiselle toiminnolle pisteytyskone:
- Hakee entiteettisignaaleja Dataversesta.
- Hakee asiakohtaiset priorisointitiedot toimintoluettelosta.
- Kutsuu LLM:ää pisteyttämään toiminnan UICE:n (Kiireellisyys, Vaikutus, Luottamus, Ponnistus) ulottuvuuksissa.
- Soveltaa lattia- ja kattosääntöjä.
- Laskee lopullisen prioriteettipistemäärän käyttämällä
GetRecommendedActionAgentResponse.
- Pisteytetty toimenpide lisätään kohtaan
msdyn_prioritizedactioncatalogue(tulostaulukko). - Suositellut toiminnot Agent Carousel hakee pisteettyjä toimintoja ja renderöi kortteja.
Tärkeimmät osat
Integraatio perustuu seuraaviin Dataverse-tauluihin ja API-rajapintoihin.
| Komponentti | Sijainti | Description |
|---|---|---|
| Syötetaulukko | msdyn_rawactioncatalogue (Dataverse) | Raakkoja toimintoja, joita mukautetut agentit työntävät |
| Tulostaulu | msdyn_prioritizedactioncatalogue (Dataverse) | Käyttöliittymän pisteytetyt ja luokitellut toiminnot |
| Agentin määritys | msdyn_recommendedactionsourceagentconfig (Dataverse) | Agenttikohtainen rekisteröinti ja määritys |
| Push-ohjelmointirajapinta | msdyn_PushActionDataToRecommendedActionAgent (Mukautettu API) | Agentti → Suositellut toiminnot Agentti -toiminnon työntö |
Agentin rekisteröinti
Rekisteröi mukautetut agentit Recommended Actions Agentin kanssa, jotta alusta tunnistaa ja hakee heidän toimintonsa. Lisätietoja agenttien rekisteröinnistä löydät osoitteesta Lisää mukautettuja agentteja suositellut toiminnot.
Kun rekisteröit agentin, se luo merkinnän .msdyn_recommendedactionsourceagentconfig Uniikki SourceAgentId tunnistaa mukautetun agentin merkinnän.
Agentin määritys
Taulukossa msdyn_recommendedactionsourceagentconfig on agenttikohtainen konfiguraatio, joka ohjaa, miten Suositellut toiminnot -agentti tulkitsee agentin toimia. Kaksi tärkeintä kenttää ovat msdyn_internalprioritizationinstruction ja msdyn_syncactionexecutionstateapiconfig.
Voit soveltaa asetuksia joko päivittämällä taulutietueen manuaalisesti tai kutsumalla mukautettua API UpsertRecommendationAgentConfigRequest:a.
UpsertRecommendationAgentConfigRequest schema
Seuraava esimerkki näyttää skeeman käytettävissä olevat konfiguraatiokentät.
{
"agentName": "YourAgentName",
"agentType": "CustomAgent",
"isRecommendedActionAgentEnabled": true,
"salesAgentProfileId": "<SourceAgentId that was configured>",
"agentImpactMapping": "[]",
"internalPrioritizationInstruction": "{\"signals\":[...]}",
"syncActionExecutionStateApiConfig": "{\"syncactionuistatusapiname\":\"your_SyncBackCustomApiName\"}",
"description": "Brief description of your agent"
}
| JSON-kenttä | Tyyppi | Description |
|---|---|---|
| agentName | merkkijono | Määrittää arvon kenttään msdyn_agentname (enintään 850 merkkiä). Pakollinen uusille tietueille. |
| agentType | merkkijono | Agenttiluokka. Käytä "CustomAgent"-toimintoa ei-myyntimahdollisuuksien agenteille profiilin luomiseen automaattisesti. |
| isRecommendedActionAgentEnabled | boolean | Vastaa arvoa msdyn_isrecommendedactionagentenabled. Tyhjäarvo = jätä muuttumaton. |
| salesAgentProfileId | Guid? | Linkit kohteeseen msdyn_salesagentprofile. Käytetään tietueen hakuun upsert-toiminnossa. |
| agentImpactMapping | merkkijono | Tasainen JSON-taulukko periaatteiden nimiä. Yhdistetään kohteeseen msdyn_agentimpactmapping. |
| internalPrioritizationInstruction | merkkijono | JSON signaalijärjestelmällä. Yhdistetään kohteeseen msdyn_internalprioritizationinstruction. |
| syncActionExecutionStateApiConfig | merkkijono | JSON-objekti {"syncactionuistatusapiname":"..."}. Määritetään kohteeseen msdyn_syncactionexecutionstateapiconfig. |
| sourceAgentUniqueId | merkkijono | Kartat msdyn_sourceagentuniqueid. |
| kuvaus | merkkijono | Vastaa kohdetta msdyn_sourcedescription (enintään 1000 merkkiä). |
Sisäisen priorisoinnin ohjeet
Sisäinen priorisointikäsky sisältää agenttikohtaisia signaalimetatietoja, jotka kertovat pisteytysmoottorille, miten agentin priorisointikenttiä tulkitaan. Se on JSON-objekti, jossa on ylimmän signals tason taulukko. Jokainen signaali deserialisoidaan seuraavilla AgentSignalInstructionConfig kentillä:
| kenttä | Tyyppi | Description |
|---|---|---|
| name | merkkijono | Signaalitunniste — käytetään avaimena pisteytyskehotteen Signaaliviite-osiossa |
| tyyppi | merkkijono | Tietotyyppi: "string", "number", "boolean" |
| lähde | merkkijono | Kuvaava selite sille, mistä signaali on peräisin. Ei käytetä reititykseen — fetch_info.fetch_type ohjaa varsinaista hakumekanismia. Tyypillisesti "action_data" agentin työntämille signaaleille. |
| ulottuvuuden vaikutus | {ulottuvuus: voima} | Mitä UICE-ulottuvuuksia tämä signaali vaikuttaa ja kuinka voimakkaasti. Avaimet: "kiireellisyys", "vaikutus", "itsevarmuus", "ponnistelu". Vahvuudet: "vahva", "kohtalainen", "heikko" |
| Tulkinta | merkkijono | Luonnollisen kielen kuvaus siitä, mitä signaali tarkoittaa pisteytyksessä — lisätty LLM-kehotteeseen |
| luotettavuus | merkkijono | Kuinka luotettava tämä signaali on: "korkea", "keskitaso", "matala" |
| pakollinen | boolean | Onko signaalin oltava olemassa pisteytystä varten |
| fetch_info | objekti | Määrittää, missä ja miten signaalin arvo noudetaan pisteytyksen aikana. |
Esimerkki signaalien estosta:
{
"signals": [
{
"name": "risk_type",
"type": "string",
"source": "action_data",
"dimension_influence": { "urgency": "moderate", "confidence": "weak" },
"interpretation": "Risk category code assigned by the source agent (e.g. 8 = Missing BANT Info). Used for pre-filter rule matching and prompt context.",
"reliability": "high",
"required": false,
"fetch_info": { "fetch_type": "action_data", "crm_field": "riskType" }
},
{
"name": "risk_label",
"type": "string",
"source": "action_data",
"dimension_influence": { "urgency": "weak", "confidence": "weak" },
"interpretation": "Human-readable risk name from the source agent (e.g. 'Missing BANT Info', 'Stalled Pipeline'). Useful for prompt context and seller explanation.",
"reliability": "high",
"required": false,
"fetch_info": { "fetch_type": "action_data", "crm_field": "risk" }
}
]
}
Synkronointitoiminnon suoritustilan ohjelmointirajapinnan määritys
Sync action execut state API -konfiguraatio on JSON-objekti, joka määrittää mukautetun API-nimen, jonka Recommended Actions Agent kutsuu, kun myyjä toimii kortilla (esimerkiksi merkitsee sen täydelliseksi tai merkityksettömäksi). Tämä ohjelmointirajapinta määrittää toiminnon tilan lähteen mukautetussa agentissa.
{
"syncactionuistatusapiname": "your_SyncBackCustomApiName"
}
Toimintatyöntösopimus
Mukautetut agentit työntävät msdyn_PushActionDataToRecommendedActionAgent toimintoja käyttämällä mukautettua API:ta. API:a kutsutaan aina, kun agentti luo tai päivittää toiminnon kohdeyksikölle.
Pyynnön parametrit
| Parametri | Tyyppi | Pakollinen | Description |
|---|---|---|---|
| msdyn_ActionId | merkkijono | Yes | Agentin yksilöllinen tunniste tälle toiminnolle. Käytetään mittarin tunnistuksen ja tilan synkronoinnin kanssa. On oltava deterministinen (sama toiminto = sama tunnus). Esimerkkimuoto: DealRisk_{opportunityId}_{riskType} |
| msdyn_SourceAgentId | merkkijono | Yes | Agentin tunniste. Sen täytyy vastata agentin konfiguraatiotietueen msdyn_agentname. Esimerkki: "DealClosingAgent" |
| msdyn_TargetEntityId | uniqueidentifier (GUID) | Yes | Kohdetietueen (Mahdollisuus, Johto) GUID, johon tämä toiminto liittyy |
| msdyn_TargetEntityTypeName | merkkijono | Yes | Kohde-entiteetin looginen nimi. Esimerkki: "mahdollisuus", "lead" |
| msdyn_ActionReason | merkkijono | Yes | Syy, miksi toiminto luotiin. Pisteytysmoottorin käyttämä periaatteiden kohdistamiseen. |
| msdyn_ActionUIPayload | merkkijono | No | JSON-hyötykuorma korttien renderöintiin. Jos kortti jätetään pois, Recommended Actions Agent ei voi näyttää korttia. |
| msdyn_ActionPrioritizationData | merkkijono | No | JSON agenttikohtaisilla pisteytyksillä |
| msdyn_ActionCTA | merkkijono | No | CTA-tyyppiä kuvaava merkkijono. Esimerkki: "Sähköposti", "Arvostelu", "Puhelu" |
| msdyn_PrioritizationPrinciples | merkkijono | No | Priorisointiperiaatteiden JSON-matriisi, joihin tämä toiminto yhdistää (voi ohittaa agenttitason yhdistämismäärityksen) |
Esimerkki: C#-lisäosakutsu
var request = new OrganizationRequest("msdyn_PushActionDataToRecommendedActionAgent")
{
["msdyn_ActionId"] = $"DealRisk_{opportunityId}_{riskType}",
["msdyn_SourceAgentId"] = "DealClosingAgent",
["msdyn_TargetEntityId"] = opportunityId, // Guid
["msdyn_TargetEntityTypeName"] = "opportunity",
["msdyn_ActionReason"] = "Customer has not responded in 14 days, deal is at risk of stalling",
["msdyn_ActionUIPayload"] = JsonConvert.SerializeObject(new
{
version = "1.0",
payload = new
{
header = "Follow up with Contoso",
description = "No customer response in 14 days. Deal may stall without re-engagement.",
oncardClickActionType = "Navigate",
oncardClickActionTypeParameters =
"{etn=\"opportunity\", id=\"aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb\", pagetype=\"entityrecord\"}"
}
}),
["msdyn_ActionPrioritizationData"] = JsonConvert.SerializeObject(new
{
riskType = "14",
risk = "low"
})
};
var response = orgService.Execute(request);
bool success = (bool)response["msdyn_IsSuccess"];
Action UI -hyötykuormasopimus
Kentällä msdyn_ActionUIPayload on JSON-hyötykuorma, joka ohjaa, miten toimintakortti ilmestyy Suositeltujen toimintojen agenttikarusellissa.
{
"version": 1.0,
"header": "Follow up with Contoso on pricing proposal",
"description": "Stakeholder engagement has dropped. The customer expressed interest in the enterprise tier but hasn't responded to the last proposal sent 10 days ago.",
"oncardClickActionType": "Navigate",
"oncardClickActionTypeParameters": "{\"etn\":\"opportunity\",\"id\":\"<guid>\",\"pagetype\":\"entityrecord\"}",
"onctaClickActionType": "Navigate",
"onctaClickActionTypeParameters": "{\"etn\":\"opportunity\",\"id\":\"<guid>\",\"pagetype\":\"entityrecord\"}"
}
Priorisointidatan sopimus
Kenttä msdyn_prioritizationdata antaa agentille mahdollisuuden välittää agenttikohtaisia signaaleja, jotka vaikuttavat siihen, miten UICE-pisteytysmoottori priorisoi toiminnon.
[
{ "signalName": "risk", "value": "low" },
{ "signalName": "riskType", "value": "4" }
]
Pisteytysmoottori lukee nämä signaalit yhdessä entiteettitason signaalien kanssa (kauppaarvo, vaihe, kilpailijat jne.). Agentin msdyn_internalprioritizationinstruction konfiguraatio kertoo LLM:lle, miten kukin signaali tulkitaan, ja pisteytysmoottori yhdistää kaikki signaalit UICE-pisteytyskehotteeseen.
Toimintaversiot ja mitätöinti
Kun agentti päivittää aiemmin työnnetyn toiminnon tietoja, se luo uuden tietueen kutsumalla uudelleen msdyn_ActionIdmsdyn_PushActionDataToRecommendedActionAgent . Järjestelmä luo uuden rivin kohteessa msdyn_rawactioncatalogue samalla msdyn_actionid mutta uudella msdyn_rawactioncatalogueid. Suositellut toiminnot -agentti näyttää vanhan version, kunnes se käsittelee uuden.
Toimintojen mitätöimiseksi (esimerkiksi kun riski ratkaistaan) agentti kutsuu mukautettua msdyn_RAAgent_RemoveActionsV2 API:ta osoitteella .actionId Tämä toiminto merkitsee kaikki msdyn_rawactioncatalogue kyseisen toiminnon tiedot passiivisiksi, ja kortti katoaa karusellista.
Kaksisuuntainen tilasynkronointi
Toimintatila synkronoituu sekä Recommended Actions Agent -karusellissa että räätälöidyssä agentissa, jotta myyjät näkevät johdonmukaiset tiedot riippumatta siitä, missä he toimivat.
Suositellut toimenpiteet Agentti → tulliagentti (myyjä toimii karusellissa): Kun myyjä merkitsee toiminnan karusellissa tehdyksi tai hylätyksi :
- Suositellut toiminnot -agentti päivittää kohteen
msdyn_actionuistatuskohteessamsdyn_prioritizedactioncatalogue. - Suositellut toiminnot Agentti lukee
msdyn_syncactionexecutionstateapiconfigagentin konfiguraatiosta. - Suositellut toiminnot Agentti kutsuu agentin mukautettua API:ta seuraavasti:
| Parametri | Tyyppi | Description |
|---|---|---|
| Actionid | GUID | Toiminnon tunnus |
| Valtion | merkkijono | "MarkedDone" tai "Vapautettu" |
Agentin on toteutettava mukautettu API, joka hyväksyy nämä kaksi parametria ja päivittää toimintotilan omassa tietovarastossaan.
Custom Agent → Recommended Actions Agent (myyjä toimii agentin käyttöliittymässä): Kun myyjä toteuttaa toiminnon agentin omassa käyttöliittymässä (esimerkiksi merkitsee sen lieventäväksi mukautetun agentin sivulla), agentti synkronoi kyseisen tilan Suositellut toiminnot -agenttiin kutsumalla msdyn_SyncActionExecutionStateFromAgent. Tämä toiminto päivittää Suositellut toiminnot -agentin tulostaulukon tilan piilottaen sen karusellilta.
| Parametri | Tyyppi | Pakollinen | Description |
|---|---|---|---|
| msdyn_ActionId | merkkijono | Yes | Toimintotunniste (sama kuin mitä työnnettiin) |
| msdyn_ActionState | kokonaisluku | Yes | Uusi tila — arvot (määritetty arvoihin MarkAsDone/Dismissed) |
| msdyn_TargetEntityId | uniqueidentifier | Yes | Kohde-entiteetin GUID-tunnus |
| TargetEntityTypeName | merkkijono | Yes | Kohde-entiteetin looginen nimi |
| msdyn_TrackingId | merkkijono | No | Valinnainen seuranta-/korrelaatiotunnus |
Testaus ja tarkistukset
Konfiguroinnin ja toteutuksen jälkeen validoi end-to-end-flow suorittamalla seuraavat tarkistukset.
Vahvista agentin konfiguraatio:
GET [org-url]/api/data/v9.2/msdyn_recommendedactionsourceagentconfigs
?$filter=msdyn_agentname eq 'YourAgentName'
&$select=msdyn_agentname,msdyn_agentimpactmapping,msdyn_internalprioritizationinstruction,msdyn_syncactionexecutionstateapiconfig
Käynnistä testitoiminto kutsumalla msdyn_PushActionDataToRecommendedActionAgent ja varmistamalla, että msdyn_IsSuccess se on totta, ja uusi tietue ilmestyy .msdyn_rawactioncatalogue
Laukaise pisteytys pyynnöstä soittamalla msdyn_RAAgent_TriggerRecommendedActionsAgentOrchestration (sen sijaan, että odottaisit 4 tunnin ajastinta).
Varmista pisteytetyt tulokset:
GET [org-url]/api/data/v9.2/msdyn_prioritizedactioncatalogues
?$filter=msdyn_actionid eq 'your-action-id'
&$select=msdyn_actionid,msdyn_actionscore,msdyn_actionuipayload,msdyn_hascrossedceiling,msdyn_hascrossedfloor,msdyn_actionuistatus,msdyn_scoredetails
Odotusarvot:
-
msdyn_actionscoreon täytetty arvolla alueella 0–10. -
msdyn_hascrossedflooron väärä (toiminta tapahtuu lattian yläpuolella ja näkyy karusellissa). -
msdyn_actionuistatuson 1 (aktiivinen). -
msdyn_scoredetailssisältää LLM:n luoman selityksen.
Varmista karusellin näyttö avaamalla Opportunity-lomake Dynamics 365 Sales -sovelluksessa ja tarkistamalla Ehdotetut toiminnot -osio. Varmista tilan synkronointi hylkäämällä toiminto karusellissa (sync-back API tulisi kutsua muodossa state = "Dismissed") ja merkitsemällä toiminto agentin käyttöliittymään (tulostaulun tietue tulisi heijastaa päivitettyä msdyn_actionuistatus).
Esimerkki: Myynnin mahdollisuusagentti
Sales Opportunity Agent on ensimmäinen agentti, joka on perehdytetty Recommended Actions Agentiin, ja sen integraatio toimii viitetoteutuksena.
Agentin konfiguraatioarvot:
| Määrityskenttä | Myyntimahdollisuusagentin arvo (OraDefaults.cs) |
|---|---|
| msdyn_agentname | SalesOpportunityAgent |
| msdyn_agentimpactmapping | ["DealRisk","Kaupan nopeus"] |
| msdyn_syncactionexecutionstateapiconfig | {"syncactionuistatusapiname":"msdyn_SyncDealRiskActionFromNba"} |
| msdyn_internalprioritizationinstruction | Katso myyntimahdollisuusagentin tuotantoarvo |
Kun Myyntimahdollisuusagentti-tutkimus on valmis ja tunnistaa kauppariskit, DealRiskToNBAService kukin riski siirretään erillisenä toimintona:
| Push-parametri | Myyntimahdollisuusagentin arvo |
|---|---|
| msdyn_ActionId | DealRisk_{opportunityId}_{riskType} |
| msdyn_SourceAgentId | "DealRiskAgent" |
| msdyn_TargetEntityTypeName | "mahdollisuus" |
| msdyn_ActionReason | Tutkimuksen riskikuvaus |
| msdyn_ActionUIPayload | Kortti, jossa on riskiotsikko + kuvaus |
| msdyn_ActionPrioritizationData |
{"riskType":"8","risk":"Missing BANT Info"} (esimerkki) |
Tilan synkronointikäyttäytyminen:
-
Myyntimahdollisuuksien agentti → suositellut toimenpiteet -agentti: Kun myyjä merkitsee riskin tehdyksi tutkimussivulla, välittäjä soittaa
msdyn_SyncActionExecutionStateFromAgent. -
Suositellut toimenpiteet agentille → myyntimahdollisuuksien välittäjälle: Kun myyjä hylkää kortin karusellissa, Suositellut toiminnot -agentti kutsuu
ora_UpdatedActionStateFromRAAgent(määritetty agentin konfiguraatiossa).