Agentit 🇷🇺 04.08.2026 05:01

Kehittäjä rakentaa FSM-pohjaisen kehyksen, joka saa LLM-chatbotit noudattamaan skriptejä luotettavasti ja edullisesti

Kehittäjä kuvailee oman avoimen lähdekoodin kirjaston rakentamista, joka pakottaa LLM-pohjaiset chatbotit noudattamaan tiukasti ennalta määritettyä vuoropuheluskriptiä yhdistämällä äärellisen tilakoneen kielimalliin, sen sijaan että luotettaisiin kalliisiin monikutsuttaviin agenttiarkkitehtuureihin. Projekti, nimeltään tg-statemachine-bot, jakaa keskustelut vaiheisiin, jotka on määritelty YAML-tiedostoissa, syöttäen mallille vain nykyiseen vaiheeseen liittyvät ohjeet pitääkseen kontekstin pienenä ja käyttäytymisen ennustettavana.
Kirjoittaja, joka työskenteli yritysbotin parissa, huomasi, että suuret kielimallit eivät luotettavasti noudata pitkiä ja yksityiskohtaisia käsikirjoituksia, koska niiden laaja kontekstiikkuna aiheuttaa rakenteen katoamisen pitkissä ohjeissa. Lisäksi olemassa olevat agenttipohjaiset ratkaisut, jotka jakavat tehtävät vaiheisiin, moninkertaistavat mallikutsujen määrän ja siten dialogin kustannukset. Ratkaistakseen tämän edullisesti kirjoittaja rakensi avoimen lähdekoodin kirjaston, jossa äärellinen tilakone (FSM) hallinnoi keskustelun kokonaisgraafia ja määrää, mitkä vaihekohtaiset ohjeet välitetään kielimallille kulloinkin, joten malli näkee vain kyseiseen vaiheeseen liittyvät ohjeet eikä koko käsikirjoitusta. Arkkitehtuuri koostuu kolmesta moduulista: FSM-moduuli, joka seuraa keskustelugraafia ja käyttäjän tilaa; vars_memory-moduuli, joka tallentaa keskustelumuuttujat muutoshistorioineen; ja conversation_core-moduuli, joka koordinoi kielimallin kutsut. Jokaisella kierroksella mallin on vastattava kiinteällä nelikenttäisellä sopimuksella: viesti käyttäjälle, siirtymäsignaali, strukturoidut vaihetulokset ja vaiheen yhteenveto. Jos malli rikkoo tätä sopimusta (virheellinen JSON, olemattomat siirtymäsignaalit, puuttuvat tulokset), järjestelmä lähettää automaattisesti korjaavan jatkokyselyn. Keskustelun jatkuvuus vaihesiirtymien yli säilytetään käyttämällä OpenAI:n Responses API:n previous_response_id-ketjutusta, joka myös alentaa kustannuksia halvemman välimuistiluvun hinnoittelun ansiosta. Koko keskustelukäsikirjoitus kuvataan YAML-tiedostossa, ja yksityiskohtaiset vaiheohjeet pidetään erillisissä tiedostoissa, mikä mahdollistaa taustamoottorin uudelleenkäytön eri chatbot-sovellusalueilla ilman muutoksia. Hallitakseen YAML:n manuaalisen muokkauksen monimutkaisuutta kirjoittaja rakensi skriptin, joka muuntaa YAML:n draw.io-kaavioksi helpottaen ihmisen suorittamaa tarkistusta. Lisäksi hän loi lokikatseluohjelman, jonka avulla testikeskusteluja voi tarkastella chat-tyylisessä muodossa laajennettavine järjestelmälokeineen, mukaan lukien reaaliaikaiset päivitykset paikallisessa debugauksessa. Esimerkkinä repoon sisältyy 'analyst bot' -niminen botti, joka auttaa yksittäisiä kehittäjiä määrittelemään projektin vaatimuksia. Kirjoittajan mukaan botti vaati vain noin 1,03 kielimallikutsua käyttäjäviestiä kohden, mutta noudatti silti luotettavasti käsikirjoitusta ja keräsi strukturoitua tietoa, vaikka esittelybotin promptisuunnittelu jätettiin viimeistelemättä.
Lähde: Habr — хаб NLP — Alkuperäinen
Aiemmat aiheeseen liittyvät kirjoituksemme ↓
Tuoreet uutiset