Agendi tsükkel (Mayros)
Agendi tsükkel on agendi täielik "reaalne" käitamine: sisend → konteksti kokkupanek → mudeli järeldus → tööriista täitmine → voogedastamise vastused → püsivus. See on autentne tee, mis muudab sõnumi toiminguteks ja lõplikuks vastuseks, hoides sessiooni oleku järjepidevana.
Mayros-is on tsükkel üks, seeriaviiseline käitamine sessiooni kohta, mis emiteerib elutsükli ja voo sündmusi, kui mudel mõtleb, kutsub tööriistu ja voogedastab väljundit. See dokument selgitab, kuidas see autentne tsükkel on ühendatud otsast otsani.
Sissepääsupunktid
- Gateway RPC:
agentjaagent.wait. - CLI:
agentkäsk.
Kuidas see toimib (kõrgel tasemel)
agentRPC valideerib parameetreid, lahendab sessiooni (sessionKey/sessionId), säilitab sessiooni metaandmeid, tagastab{ runId, acceptedAt }kohe.agentCommandkäivitab agendi:- lahendab mudeli + thinking/verbose vaikeväärtused
- laadib oskuste hetktõmmise
- kutsub
runEmbeddedPiAgent(pi-agent-core runtime) - emiteerib elutsükli end/error kui manustatud tsükkel seda ei emiteeri
runEmbeddedPiAgent:- seeriavistab käitamisi sessiooni kohta + globaalsete järjekordade kaudu
- lahendab mudeli + auth profiili ja ehitab pi sessiooni
- tellib pi sündmusi ja voogedastab assistendi/tööriista deltasid
- jõustab ajalõpu -> katkestab käitamise kui ületatud
- tagastab kasulikud koormused + kasutuse metaandmed
subscribeEmbeddedPiSessionühendab pi-agent-core sündmused Mayrosagentvooga:- tööriista sündmused =>
stream: "tool" - assistendi deltad =>
stream: "assistant" - elutsükli sündmused =>
stream: "lifecycle"(phase: "start" | "end" | "error")
- tööriista sündmused =>
agent.waitkasutabwaitForAgentJob:- ootab elutsükli end/error
runIdjaoks - tagastab
{ status: ok|error|timeout, startedAt, endedAt, error? }
- ootab elutsükli end/error
Järjekord + samaaegsus
- Käitamised on seeriaviisistatud sessiooni võtme (sessiooni rada) ja valikuliselt globaalse raja kaudu.
- See väldib tööriista/sessiooni võidujookse ja hoiab sessiooni ajaloo järjepidevana.
- Sõnumivahetuse kanalid saavad valida järjekorra režiimid (collect/steer/followup), mis toidavad seda raja süsteemi. Vaata Käsujärjekord.
Sessioon + tööruumi ettevalmistus
- Tööruum lahendatakse ja luuakse; liivakasti käitamised võivad ümber suunata liivakasti tööruumi juurde.
- Oskused laetakse (või taaskasutatakse hetktõmmisest) ja süstitakse env ja viiba.
- Bootstrap/konteksti failid lahendatakse ja süstitakse süsteemi viiba aruandesse.
- Sessiooni kirjutuslukk omandatakse;
SessionManageravatakse ja valmistatakse ette enne voogedastamist.
Viiba kokkupanek + süsteemi viip
- Süsteemi viip ehitatakse Mayros baasviibast, oskuste viibast, bootstrap kontekstist ja käitamise kohta alistustest.
- Mudelipõhised piirid ja kompakteerimise reservi tokenid jõustatakse.
- Vaata Süsteemi viip, mida mudel näeb.
Konksupunktid (kus saad vahele sekkuda)
Mayros-il on kaks konksu süsteemi:
- Sisemised konksud (Gateway konksud): sündmusepõhised skriptid käskude ja elutsükli sündmuste jaoks.
- Plugina konksud: laienduspunktid agendi/tööriista elutsükli ja gateway torujuhtme sees.
Sisemised konksud (Gateway konksud)
agent:bootstrap: käib bootstrap failide ehitamise ajal enne süsteemi viiba lõpetamist. Kasuta seda bootstrap konteksti failide lisamiseks/eemaldamiseks.- Käsukonksud:
/new,/reset,/stopja teised käsu sündmused (vaata Hooks dok).
Vaata Konksud seadistuse ja näidete jaoks.
Plugina konksud (agendi + gateway elutsükkel)
Need käivad agendi tsükli või gateway torujuhtme sees:
before_model_resolve: käib enne sessiooni (polemessages), et deterministlikult alistada pakkuja/mudel enne mudeli lahendamist.before_prompt_build: käib pärast sessiooni laadimist (koosmessages), et süstidaprependContext/systemPromptenne viiba esitamist.before_agent_start: pärand ühilduvuse konks, mis võib käia mõlemas faasis; eelista ülaltoodud selgesõnalisi konkse.agent_end: kontrolli lõplikku sõnumite loendit ja käitamise metaandmeid pärast lõpetamist.before_compaction/after_compaction: jälgi või annoteeri kompakteerimise tsükleid.before_tool_call/after_tool_call: vahele sekku tööriista parameetrite/tulemuste vahel.tool_result_persist: sünkroonselt transforma tööriista tulemusi enne nende kirjutamist sessiooni transkripti.message_received/message_sending/message_sent: sissetulevate + väljaminevate sõnumite konksud.session_start/session_end: sessiooni elutsükli piirid.- **
gateway_start/ `gateway_stop``: gateway elutsükli sündmused.
Vaata Pluginad konksu API ja registreerimise üksikasjade jaoks.
Voogedastamine + osalised vastused
- Assistendi deltad voogedastatakse pi-agent-core'st ja emiteeritakse
assistantsündmustena. - Bloki voogedastamine saab emiteerida osalisi vastuseid kas
text_endvõimessage_endjärel. - Arutluse voogedastamist saab emiteerida eraldi voona või bloki vastustena.
- Vaata Voogedastamine tükeldamise ja bloki vastuse käitumise jaoks.
Tööriista täitmine + sõnumivahetuse tööriistad
- Tööriista start/update/end sündmused emiteeritakse
toolvoos. - Tööriista tulemused saniteeritakse suuruse ja pildi kasulike koormuste suhtes enne logimist/emiteerimist.
- Sõnumivahetuse tööriista saadised jälgitakse, et summutada topelt assistendi kinnitusi.
Vastuse kujundamine + summuteerimine
- Lõplikud kasulikud koormused koostatakse:
- assistendi tekst (ja valikuline arutlus)
- sisestatud tööriista kokkuvõtted (kui verbose + lubatud)
- assistendi vea tekst kui mudel vigastab
NO_REPLYkäsitletakse vaikse tokenina ja filtreeritakse väljaminevatest kasulikkest koormustest.- Sõnumivahetuse tööriista duplikaadid eemaldatakse lõplikust kasulike koormuste loendist.
- Kui renderdatavaid kasulikke koormusi ei jää ja tööriist vigastas, emiteeritakse tagavarauks tööriista vea vastus (välja arvatud juhul, kui sõnumivahetuse tööriist saatis juba kasutajale nähtava vastuse).
Kompakteerimine + kordamised
- Automaatne kompakteerimine emiteerib
compactionvoo sündmusi ja võib käivitada kordamise. - Kordamisel lähtestatud mälu puhvrid ja tööriista kokkuvõtted, et vältida topelt väljundit.
- Vaata Kompakteerimine kompakteerimise torujuhtme jaoks.
Sündmuste vood (täna)
lifecycle: emiteeritudsubscribeEmbeddedPiSessionpoolt (ja tagavaraukse puhulagentCommand)assistant: voogedastatud deltad pi-agent-core'sttool: voogedastatud tööriista sündmused pi-agent-core'st
Vestluskanali käsitsemine
- Assistendi deltad puhverdatakse vestluse
deltasõnumitest. - Vestluse
finalemiteeritakse elutsükli end/error järel.
Ajalõpud
agent.waitvaikimisi: 30s (ainult ootamine).timeoutMsparameeter alistab.- Agendi runtime:
agents.defaults.timeoutSecondsvaikimisi 600s; jõustatudrunEmbeddedPiAgentkatkestamise taimeris.
Kus asjad saavad vara lõppeda
- Agendi ajalõpp (katkestamine)
- AbortSignal (tühistamine)
- Gateway lahtiühendamine või RPC ajalõpp
agent.waitajalõpp (ainult ootamine, ei peata agenti)