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.
Muistio
Tässä artikkelissa kuvataan standardivaljaiden ominaisuuksia ja käyttäytymistä. Opi, miten pääset käsiksi standardeihin liittyviin ominaisuuksiin Accessin standardiagenteissa ja agenttivirroissa.
Kaksoisviestejä syntyy kontekstiaukoista. Agenttisuunnittelun on otettava huomioon konteksti jokaisessa vaiheessa.
Aliagentti, joko lapsiagentti tai yhdistetty agentti, toimii omalla orkestrointikerroksellaan emoagentin suunnitelmassa. Se vastaanottaa pyynnön vanhemmalta ja suorittaa tehtävän. Aliagentti tuottaa kolmenlaista tulostetta: sisältöä, jonka se näyttää käyttäjälle, arvot, jotka palautetaan määriteltyjen tulosteiden kautta, sekä implisiittisen vastauksen, jonka se lähettää kutsuvalle agentille. Vanhempi ei näe aliagentin vaihtoa käyttäjän kanssa, vaan oppii tuloksen vain määriteltyjen tulosten ja implisiittisen vastauksen kautta. Tämä rajoitettu näkyvyys aiheuttaa usein päällekkäisiä viestejä ja vastauksia puuttuvat.
Vinkki
Ohjeita siitä, milloin työ tulisi jakaa agenttien kesken sekä yleisiä parhaita käytäntöjä useille agenteille, löydät monen agentin orkestrointimalleista, parhaista käytännöistä ja moniagenttimalleista. Tässä artikkelissa selitetään, miten syötteet ja tulosteet linjaavat aliagentin vastauksen emoagentin kontekstin kanssa.
Tämä artikkeli rakentuu kontekstimalliin, joka on kuvattu Kontekstin jakelussa standardivaljakossa , sekä suunnittelupäätöksiä Design Best Practices -teoksessa päällekkäisviestejä välttämiseksi.
Sammuta vanhempien konteksti yhdistetylle agentille
Aliagentti, joka vastaanottaa vanhemman keskustelukontekstin, voi toimia sen perusteella. Jos kyseisessä kontekstissa on pyyntö, johon vanhempi ei ole vielä vastannut, aliagentti saattaa vastata siihen, toistaa jotain, minkä vanhempi jo käsitteli, tai ottaa väärän roolin. Nämä toiminnot aiheuttavat usein päällekkäisyyksiä viesteistä.
Yhdistetyllä agentilla on asetus Välitä keskusteluhistoria tälle agentille, joka ohjaa, saako se vanhemman keskustelukontekstin. Tämä asetus on oletusarvoisesti käytössä. Poista valinta niin, että yhdistetty agentti toimii vain vanhempien lähettämien syötteiden perusteella, ei koko keskustelun.
Lapsiagentilla ei ole vastaavaa asetusta. Se kulkee vanhemman sisällä ja saa aina vanhemman keskustelukontekstin.
Yhdistetyille agenteille, joiden täytyy säilyttää konteksti niille annetulle työlle, ja lapsiagenteille, joilla on oletuksena konteksti, käytä scoping-syötettä aliagentin laajuuden suojaamiseksi.
Käytä rajaussyötettä
Joskus aliagentti tarvitsee emoagentin kontekstin suorittaakseen tehtävänsä. Kun välität tämän kontekstin, lisää mukaan rajauksen määrittävä syöte – se kertoo aliagentille tarkalleen, mihin sen tulee keskittyä, jotta kontekstiin jääneet avoimet, vastaamattomat pyynnöt eivät vie sitä pois tehtävästään. Jos et läpäise kontekstia, et tarvitse scoping-syötettä, koska aliagentilla on vain vanhempi reitittämä pyyntö.
Aliagentin laajuuden suojaamiseksi lisää syöte, jonka kuvaus scopedRequest on esimerkiksi: The specific request this agent should fulfill. Orkestrointikerros täyttää syötteen, kun se kutsuu aliagenttia. Emoagentti tunnistaa pyynnön olennaisen osan ja välittää vain sen osan, vaikka sen kontekstissa olisi toinen vastaamaton pyyntö.
Rajaussyöte toimii luotettavasti, vaikka ylätason kontekstia ei säilytettäisikään. Syöte antaa tekijälle enemmän hallintaa aliagentille lähetetyn pyynnön sisältöön.
Ankkuroi aliagentin ohjeet tuohon syötteeseen niin, että se toimii scoped-pyynnöstä eikä ohita kaikki muut, mikä muistuttaa alkuperäistä pyyntöä.
Esimerkkejä aliagentin ohjeista:
Fulfill the request in the scopedRequest input.
Treat it as your initial request and ignore any other initial requests in the conversation.
Syötteiden ja tulosteiden määrittäminen
Syötteet ja lähtöt ovat vanhemman ja aliagentin välinen sopimus. Syöte määrittää, mihin aliagentti työskentelee, ja ulostulot kertovat vanhemmalle, mitä tapahtui, jotta se voi ohjata loput keskustelusta. Vanhempi ei näe aliagentin vaihtoa käyttäjän kanssa, joten tämä sopimus on ainoa luotettava signaali, joka sillä on.
Important
Aliagentti, joka ei palauta ulostuloja, on varoitusmerkki. Ilman tulosteita pääagentilla ei ole tietoa siitä, mitä aliagentti vastasi tai mitä on vielä jäljellä. Se voi toistaa vastauksen, jonka aliagentti jo antoi, tai jättää pois pyynnön osan, jota aliagentti ei käsitellyt.
Määritä seuraavat tulot ja lähtöt ja kirjoita kunkin kuvaus vanhemman orkestrointikerroksen mukaiseksi:
| Tulo tai lähtö | Description | Käyttöohjeet |
|---|---|---|
scopedRequest (syöte) |
Erityinen pyyntö, jonka tämän agentin tulisi täyttää. | Vanhempi täyttää sen vain käyttäjän pyynnön olennaisella osalla. Se suojaa aliagenttia vastaamasta väärään kysymykseen, kun vanhemman kontekstissa on vielä muita, vastaamattomia pyyntöjä. Kiinnitä aliagentin ohjeet tähän syötteeseen. |
answered (ulostulo) |
Totta, kun käyttäjä on jo saanut vastauksen scopedRequestiin. | Aseta se jokaiselle aliagentille, olipa se sitten viesti käyttäjälle tai pysyy hiljaisena. Seuraavaksi esitetty ylin käsky lukee sen, joten vanhempi ei vastaa samaan pyyntöön uudelleen. |
scopedRequest (ulostulo) |
Pyyntö, jonka parissa tämä agentti työskenteli. | Toista scoped-pyyntö niin, että se saavuttaa ylimmän tason orkestrointikerroksen, joka ei luotettavasti pidä luomiaan syötteitä omassa kontekstissaan. Monitarkoitusvuoroissa, joissa tarvitaan useampi kuin yksi aliagentti, tämä kyky mahdollistaa ylimmän tason suunnitelluksen oikein ja välttää väärän aliagentin ohjaamisen väärään kysymykseen. |
interactionSummary (ulostulo) |
Lyhyt yhteenveto käyttäjälle toimitetusta vastauksesta. | Palauta se, kun aliagentti lähettää suoraan viestin käyttäjälle, jotta vanhempi tietää, mitä on viestitty, eikä toista sitä. |
findings (ulostulo) |
Vastaus scopedRequestiin, vanhemman toimitettavaksi käyttäjälle. | Palauta se, kun aliagentti pysyy hiljaa, jotta vanhemmalla on sisältö toimitettavaksi. |
openQuestions (ulostulo) |
Kaikki osa käyttäjän pyynnöstä, johon ei ole vastattu. | Palauta se kaikilta aliagentilta, jotka pystyvät täyttämään vain osan pyynnöstä, tai jos uusi pyyntö ilmenee aliagentin keskustelussa, jotta vanhempi agentti voi suorittaa loput ja jatkaa työkaluketjutusta. Aliagentin ei pitäisi arvata, kuka hoitaa loput. |
Valitse, mikä komponentti kommunikoi käyttäjän kanssa
Päätä, kommunikoiko emoagentti vai aliagentti käyttäjän kanssa. Useimmissa tapauksissa anna vanhemman agentin kommunikoida käyttäjän kanssa, jotta se voi yhdistää tulokset yhdeksi vastaukseksi. Anna aliagentin kommunikoida suoraan, kun sen täytyy antaa pitkä vastaus tai käydä monikierrosta keskustelua. Palauta tarpeeksi tietoa, jotta vanhempi voi hoitaa loput keskustelusta kontekstin avulla.
Mikä tahansa komponentti kommunikoi, lisää yksi ylimmän tason käsky, jotta orkestrointikerros tarkistaa kunkin aliagentin ulostulot ennen kuin vastaa.
Tämä esimerkki ylätason käskyistä toimii kaikissa tapauksissa, olipa aliagentti sitten viesti käyttäjälle suoraan tai pysyy hiljaisena. Muokkaa ja mukauta sitä tarpeen mukaan.
Aina kun jokin aihe tai agentti kutsutaan, etsi aina 'vastattu' boolean-tulos ennen kuin päätät, mitä vastata. Aiheilla ja agenteilla on oma viestintäkanavansa käyttäjän kanssa. Jos 'vastattu' on totta, oletetaan aina, että pyyntöön on vastattu asianmukaisesti vähintään yhdellä tulosmuuttujalla, ja tarkista mitkä niistä tuloskuvauksen perusteella. Älä esitä kömpelöä kuittausta vastattuun sisältöön. Anna vain vastaamattomia tuloksia ja jatka keskustelua luonnollisesti seuraavalla askeleella.
Termi kanava ei viittaa integraatiokanavaan. Se on kehotuslaite, joka kertoo orkestrointikerrokselle, että käyttäjä on saattanut jo nähdä vastauksen toisen komponentin kautta.
Kirjoita aliagentin kuvaus vanhemmalle orkestrointikerrokselle, jotta se tietää, milloin käyttää aliagenttia ja miten sen ulostulot luetaan. Esimerkkejä:
Handles payroll questions.
If its answered output is true, the user has already received their response and it should not be answered again.
Aseta vastatun tilan ja arvon tulokset jokaiselle aliagentille, lähettääkö aliagentti viestin käyttäjälle vai pysyy hiljaa, ja anna vanhemmalle yksi käsky lukea ne. Tällä lähestymistavalla agentti voi sekoittaa hiljaisia aliagentteja ja aliagentteja, jotka lähettävät viestin suoraan käyttäjälle, erotellen vain niiden ulostuloksista. Lue lisää artikkelista Suunnittele kattava ylätason ohje, jotta vältetään toistuvia viestejä.
Delegoi käyttäjäviestintä vanhemmalle
Harkitse kaikkien käyttäjien viestinnän reitittämistä emoagentin kautta aliagentin sijaan. Kerää aliagentin tarvitsemat syötteet ennen sen aloittamista, lue tuotetut tulokset sen jälkeen ja käske sitä olemaan lähettämättä viestiä suoraan käyttäjälle. Aliagentti, joka ei koskaan kirjoita käyttäjälle, ei voi vastata johonkin, mihin vanhempi on jo vastannut.
Käskekää aliagenttia pysymään hiljaa ja palauttamaan havaintonsa. Esimerkkejä:
Do NOT reply or communicate with the user directly.
Only fulfill the scopedRequest provided in the input and respond with the result.
Hiljainen aliagentti palauttaa findings ja openQuestions, molemmat kuvataan kohdassa Määritä tulot ja lähtöt, jotta vastaus voidaan antaa vanhemmalle ja merkitä jäljelle jääneet työt.
Palauta openQuestions-tulos. Se antaa orkestrointikerroksen viimeistellä loput käyttäjän pyynnöstä ja jatkaa työkaluketjutusta, kun aliagentti pystyy täyttämään vain osan pyydetystä.
Aliagentin hiljaisena pitäminen vaatii selkeän ohjeen. Oletuksena aliagentti voi lähettää viestin käyttäjälle itsenäisesti suorituksen aikana. After Running Completion -asetus ei estä näitä viestejä, koska se kertoo vanhemmalle vain, mitä tehdä, kun aliagentti on valmis.
Muistio
Sanomalla vanhemmalle agentille: "Sinä olet ainoa, joka puhuu käyttäjän kanssa", ei toimi. Emoagentti ei voi pysäyttää käynnissä olevaa aliagenttia, ja aliagentti voi silti lähettää viestin käyttäjälle itsenäisesti. Sen sijaan käske aliagenttia pysymään hiljaa ja testaa sitten varmistaaksesi asian.
Jotkut aliagentit joutuvat kommunikoimaan suoraan
Aliagentti, joka lähettää viestin suoraan käyttäjälle, on pätevä valinta, ei sääntöjen rikkomus, mutta se vaatii harkittua suunnittelua, jotta vanhemmalta tulee toistuvia viestejä.
Joissain käyttötapauksissa aliagentti vastaa suoraan käyttäjälle, joko antaa pitkän vastauksen ilman, että sitä kopioidaan vanhemman kontekstiin, tai käydä keskustelua. Välttääksesi toistuvat viestit ja kadonneet kontekstit, välitä konteksti vanhemmalle ulostuloissa.
Pyydä aliagenttia antamaan pitkä vastaus ja palauttamaan yhteenveto
Aliagentti antaa täyden vastauksensa suoraan käyttäjälle ja palauttaa vain lyhyen yhteenvedon tai huomautuksen vastauksen toimittamisesta. Käytä tätä lähestymistapaa pitkiin vastauksiin, kuten yksityiskohtaisiin analyyseihin, ja rajoita palautettavien tietojen määrä vanhemman kontekstiin. Tavoitteena on pitää vanhempien konteksti pienenä mutta tietoisena.
Palautus answered ja interactionSummary, molemmat kuvataan kohdassa Määritä tulot ja ulostulot.
Anna aliagentin käydä keskustelu käyttäjän kanssa
Aliagentti vaihtaa useita viestejä käyttäjän kanssa useiden vaiheiden aikana suorittaakseen laajennetun pyynnön. Suurin riski on, että vanhempi ei ole tietoinen välivaiheista keskusteluvaiheista, aliagentin työstä ja mahdollisista vastauksista tai uusista pyynnöistä. Tämän seurauksena vanhempi ei voi reagoida uusiin pyyntöihin tai vastata oikein myöhemmissä vaiheissa.
Palauta answered, scopedRequest, ja interactionSummary, kuten kuvataan kohdassa Määritä tulot ja lähtöt.
Ylätason ohje kattaa myös tämän käyttötapauksen.
Aiheeseen liittyvät tiedot
- Kontekstijakauma standardivaljassa
- Suunnittele parhaat käytännöt päällekkäisten viestien välttämiseksi
- Suunnittele aiheet mini-agentteina, jotka välttävät päällekkäiset viestit
- Kaksoisviestien ja puuttuvien vastausten vianmääritys
- Tutki moniagenttien orkestrointimalleja
- Hyödynnä generatiivisia orkestrointikykyjä
- Agenttiratkaisujen arkkitehtuuri: Periaatteet ja mallit