Ga naar de hoofdinhoud
Ask Titan Engineering Deep Dive · Deel 5 van 7

Hoe we conversatiestatus beheren en LLM-context in Ask Titan

Een gesprek moet genoeg onthouden voor de volgende vraag. Het model heeft niet iedere eerdere toolcall en ieder resultaat nodig in de volgende prompt.

Een implementatieblik op LangGraph-checkpoints, thread-scoped conversatiehistorie, het vormgeven van tijdelijke messages en oversized tooloutputs.

LangGraphCheckpointingConversatiememoryContext engineeringMongoDB

Ask Titan Engineering Deep Dive

Zeven artikelen, één architectuur

Deel 5 gaat de runtime in: wat de conversatie bewaart versus wat het model ziet. Daarna verkennen we documentretrieval en antwoordtraceerbaarheid.

Het engineeringprobleem

Een lange conversatie is niet één steeds groeiende prompt

Een enterprise-assistent kan een vraag beantwoorden via een SQL-tool, Power BI-semantisch model of documentretriever. Een vervolgvraag moet genoeg van die uitwisseling behouden om “die klanten” of “vorige maand” te interpreteren. Maar iedere toolrequest en het volledige resultaat opnieuw afspelen in iedere volgende modelcall maakt de prompt steeds groter.

Het ontwerpprobleem heeft twee verschillende levensduren: duurzame conversatiestate en de tijdelijke context die voor één inference-stap wordt samengesteld. Het beheren van het ene beheert niet automatisch het andere.

Naïeve aanpak

Replay alles

Iedere afgeronde tooluitwisseling wordt opnieuw verstuurd, zelfs wanneer alleen het definitieve antwoord relevant is voor de nieuwe vraag.

Ask Titan-aanpak

Bewaar state; bouw een view

Gebruik thread-scoped checkpoints voor conversatiecontinuïteit en bereid direct vóór het aanroepen van het model een kleinere berichtenlijst voor.

Kernprincipe: Opgeslagen conversatiestatus is niet hetzelfde als de context die naar de LLM wordt gestuurd.

Twee lagen · verschillende verantwoordelijkheden

Wat we bewaren en wat we versturen

De LangGraph-state legt de werkconversatie vast, inclusief messageobjects die door agent- en toolnodes worden geschreven. Een aparte message-buildingstap kiest de vorige turns en actieve exchange die voor de huidige modelinvocation worden gebruikt. Dat onderscheid is bewust en geen automatisch gevolg van MongoDB.

Persistent · graph state

Conversatiecontinuïteit

  • • Berichthistorie opgebouwd door LangGraph
  • • Agent- en toolstappen weergegeven in graph state
  • • Aanvullende runtimevelden die door orchestration worden gebruikt

AI-tool

Tijdelijk · modelview

Eén inference-stap

  • • Geselecteerde eerdere user/final-answer-paren
  • • Actieve gebruikersbeurt, inclusief de huidige tooluitwisseling
  • • Te grote toolpayloads weergegeven met een korte melding
  • • Runtime-instructies toegevoegd voor de call

Deze view wordt samengesteld voor inference. Minder berichten selecteren verwijdert oudere checkpoints niet vanzelf.

Dit artikel gebruikt context om de message/instruction-payload voor een modelcall te bedoelen. Deel 4 gebruikt businesscontext om de semantische betekenis van bedrijfsdata te bedoelen. Beide zijn vormen van context engineering, maar lossen verschillende problemen op.

State persistence

Het conversation ID is de thread-boundary

Ask Titan start zijn LangGraph-orchestrator met een conversatiespecifieke threadidentifier en compileert de graph met een MongoDB-backed asynchrone checkpointer. Wanneer een vervolgvraag dezelfde thread gebruikt, kan LangGraph de bestaande state laden voordat het nieuwe gebruikersbericht wordt verwerkt.

Er is ook een aparte, applicatiegerichte conversation record die gebruikers- en assistentberichten presenteert. Die moet niet worden verward met LangGraph's technische checkpoint- en intermediate-write-records. Beide bestaan voor verschillende consumers.

Belangrijk: Checkpointing geeft de runtime het mechanisme om een thread te hervatten. Op zichzelf bewijst het geen exactly-once uitvoering van externe tools en garandeert het niet dat een onderbroken operatie veilig opnieuw kan worden afgespeeld.

Conversatielifecycle

01 · Thread-identiteit

Gebruiker opent een gesprek

De applicatie wijst een conversation ID toe dat ook als LangGraph thread-boundary wordt gebruikt.

02 · Checkpoint-persistentie

Orchestrator draait en bewaart state

De graph verwerkt berichten en toolresponses en slaat daarna zijn technische state op via de MongoDB-backed checkpointer.

03 · Vervolgvraag

Dezelfde thread, nieuwe modelpass

Wanneer een vervolgvraag in dezelfde thread binnenkomt, kan LangGraph eerst de opgeslagen checkpoint-state laden. De modelweergave voor de volgende beurt wordt daarna afzonderlijk samengesteld.

Opgeslagen representaties
Applicatiehistorie

Gebruikersgericht gespreksrecord waarmee berichten en antwoorden worden weergegeven.

LangGraph-checkpoints

Technologie

De applicatieconversatiehistorie en LangGraph-checkpoints zijn afzonderlijke persisted representaties. Ze dienen verschillende runtime- en UI-doelen.

Promptassembly

Afgeronde turns en de actieve turn worden verschillend behandeld

Ask Titan zoekt het meest recente gebruikersbericht. Eerdere, afgeronde turns worden een beperkte reeks van gebruikersvraag- en definitieve assistent-antwoordparen. Tussentijdse tool calls en hun responses worden voor die afgeronde turns niet opnieuw afgespeeld. De actieve turn behoudt zijn tool-call-uitwisseling zodat het model kan doorredeneren met de toolrespons die het net heeft ontvangen.

Opgeslagen state Volledig gesprek
Afgeronde turn Bewaard in state
Gebruiker

Waarom daalde de marge?

Assistant tool call

Roep Power BI-tool aan

Toolresponse

Gedetailleerd resultaat + metadata

Definitief antwoord van de assistent

Margedaling verklaard

Actieve beurt In uitvoering
Gebruiker

Welke klanten veroorzaakten dit?

Assistant tool call

Roep specialistische tool aan

Toolresponse

Huidig resultaat

Context

vormgeven

Selecteer berichten, verwijder geen state

Modelcontext Huidige modelpass
Afgeronde turn Vraag + antwoord
Gebruiker

Waarom daalde de marge?

Definitief antwoord van de assistent

Margedaling verklaard

Eerdere tool calls en resultaten worden in deze modelpass niet opnieuw afgespeeld.

Actieve beurt Tool exchange bewaard
Gebruiker

Welke klanten veroorzaakten dit?

Assistant tool call

Roep specialistische tool aan

Toolresponse

Huidig resultaat of korte melding

State wordt bewaard. Modelcontext wordt geselecteerd. Afgeronde turns dragen hun vraag en definitieve antwoord bij. De actieve turn houdt de assistant-tool-call gekoppeld aan de response zodat het model de uitwisseling kan voortzetten.

Ask Titan-conversatieflow voor vervolgvragen Een eerste antwoord wordt opgeslagen in de conversatiethread. Een vervolgvraag gebruikt dezelfde thread en een nieuw samengestelde modelcontext. De agent roept een toegestane specialistische tool aan, ontvangt het resultaat en produceert het definitieve antwoord. 01 · EERSTE BEURT Eerste vraag Antwoord opgeslagen in threadstatus 02 · VERVOLGVRAAG Modelpass Dezelfde thread · geselecteerde context 03 · SPECIALISTISCHE TOOL Toegestane tool uitvoeren Resultaat terugsturen naar agent 04 · AGENTANTWOORD Definitief antwoord Gebruikt resultaat · werkt threadstatus bij TOOL-CALL RESULTAAT

Eén conversatie · twee turns

Wat gebeurt er wanneer de gebruiker een vervolgvraag stelt?

Een vervolgvraag gaat verder in dezelfde LangGraph-thread. Ask Titan herstelt de opgeslagen checkpoint-state en bouwt een nieuwe modelweergave op uit geselecteerde eerdere beurten en de huidige vraag.

Als de agent een toegestane specialist aanroept, komt het resultaat terug voor een volgende modelpass voordat het definitieve antwoord wordt geproduceerd. Het nieuwe antwoord wordt onderdeel van de opgeslagen state, terwijl eerdere tooluitwisselingen niet opnieuw aan het model hoeven te worden aangeboden.

Grote toolresultaten

Een resultaat kan te groot zijn om in de volgende modelcall te plakken

AI-assisted planning

Dat is een prompt-view-substitutie. Het oorspronkelijke toolbericht wordt door deze specifieke shapingfunctie niet herschreven. Het betekent ook niet dat de volledige data automatisch wordt samengevat of dat ieder resultaat altijd via een aparte retrieval API beschikbaar is.

Ontwerp-trade-off: Zodra een groot toolresultaat door een melding is vervangen, kan het model niet redeneren over de weggelaten rijen. Een smallere vervolgquery of bewust ontworpen result-summary-mechanisme is nodig als die details van belang zijn.

Eén toolresultaat · twee representaties

Tooloutput in graphstate Origineel behouden

Gedetailleerde rijen · metadata · tussentijds bewijs

Prompt-view-shaping
Toolbericht naar LLM gestuurd Korte termijn

“Deze tooloutput was te groot om volledig op te nemen. Vraag om een smallere of samengevatte weergave.”

Het model ontvangt de melding, niet de weggelaten rijen.

Dit mechanisme schat individuele toolberichten. Het garandeert niet dat de complete modelcontext binnen een totale tokenbudget blijft.

Operationele beslissingen

Wat dit ontwerp doet

Context shaping is nuttig, maar geen vervanging voor lifecycle-, security- en quality-controls. Deze verschillen zijn belangrijk wanneer je een werkende assistent omzet in een productieservice.

AandachtspuntHuidig Ask Titan-mechanismeGrens / engineeringoverweging
ThreadcontinuïteitLangGraph graph state ondersteund door MongoDB-checkpoints.Een gedeelde thread moet nog steeds worden benaderd via autorisatie op applicatieniveau voor gebruiker en conversatie.
ModelinputgrootteSelectie van afgeronde turns en benadering van de omvang per tool-payload.Dit bewijst niet dat iedere mogelijke request binnen het totale context window van een model past.
MemoryretentieAfgeronde turns worden uit een promptview weggelaten wanneer ze niet zijn geselecteerd.Prompt-omissie is geen deletion, retention control of garantie dat checkpointdata is gewist.
SamenvattingenAfgeronde turns bewaren vraag-/antwoordparen in plaats van door het LLM gegenereerde samenvattingen.Hier wordt geen general-purpose automatische conversatiesamenvatter geclaimd.
Herstarten en replayenCheckpoints ondersteunen het laden van eerdere graph-state.Externe side effects en idempotency vereisen eigen afhandeling; checkpointing alleen is onvoldoende.
Gevoelige contentApplicatiegerichte conversatierecords en technische checkpoints zijn afzonderlijke stores/representaties.Elk vereist een expliciete review van access, encryption, logging en retention; het ene beveiligt het andere niet automatisch.

Wat we meten

De orchestrator registreert benaderende aantallen voor volledige state en de samengestelde modelview en verzamelt gerapporteerde model-usage-metadata waar beschikbaar. Die metingen helpen contextgroei te herkennen; benaderend tellen is geen contractuele tokenlimiet of performancebenchmark.

Engineeringconclusie

Memory is een stateprobleem. Context is een selectieprobleem.

LangGraph en MongoDB bewaren conversatiecontinuïteit. Ask Titan stelt daarna voor iedere model-call een nieuwe message view samen: recente afgeronde gebruiker/final-answer-paren, de actieve tooluitwisseling en begrensde representaties van te grote tooloutputs.

De architecturale winst is niet 'oneindig geheugen'. Het is een expliciete boundary tussen duurzame state en de informatie die een model op dit moment nodig heeft. Die boundary kan onafhankelijk worden getest, geobserveerd en ontwikkeld.

Het ontwerp in één zin

Bewaar genoeg om door te kunnen gaan.
Stuur alleen wat helpt om te antwoorden.

Volgende in de serie · Deel 6 van 7

Enterprise-documenten & RAG in Ask Titan

Hoe Ask Titan relevante informatie uit bedrijfsdocumenten ophaalt en toevoegt aan de context die wordt gebruikt om een antwoord te genereren.

Lees deel 6

FAQ

Vragen over LangGraph-conversatiegeheugen en LLM-context

Praktische antwoorden over checkpointing, threadcontinuïteit, promptselectie, toolmessages en contextgroei.

Wat is het verschil tussen LangGraph-state en LLM-context?

State is de verzamelde werkdata van de graph, via checkpoints in een thread bewaard. LLM-context bestaat uit de geselecteerde berichten en instructies die aan één modelcall worden meegegeven; Ask Titan construeert die vanuit state zonder de twee gelijk te stellen.

Hoe onthoudt Ask Titan een vervolgvraag?

De orchestrator gebruikt het conversation ID als LangGraph threadidentifier en een asynchrone MongoDB-backed checkpointer. Hergebruik van dezelfde thread laat de volgende invocation doorgaan vanuit de opgeslagen graphstate.

Stuurt Ask Titan ieder vorig toolresultaat terug naar de LLM?

Nee. In afgeronde turns houdt de prompt-view recente gebruikersberichten en definitieve assistant-antwoorden. De actieve turn behoudt de tooluitwisseling, onder voorbehoud van substitutie voor oversized output.

Vat Ask Titan oude conversaties automatisch samen?

De geïnspecteerde orchestrator condenseert afgeronde turns door question/final-answer-paren te selecteren; hij gebruikt geen algemene LLM-gegenereerde conversatiesamenvatting in het geobserveerde pad.

Worden oude berichten verwijderd wanneer ze uit de context worden gehouden?

Nee. Prompt-view-selectie verwijdert niet automatisch berichten of checkpoints. Retention en deletion vereisen aparte lifecycle-controls.

Wat gebeurt er wanneer een toolresultaat te groot is?

De runtime schat de grootte van individuele toolberichten. Als die boven de prompt-view-threshold uitkomt, ontvangt het model een korte uitlegmelding in plaats van de volledige payload. De shapingoperatie wijzigt het oorspronkelijke opgeslagen toolbericht zelf niet.

Garandeert een MongoDB-checkpointer exactly-once tooluitvoering?

Nee. Checkpointing ondersteunt opgeslagen graph state en hervatting. Idempotency en externe side-effect-handling vereisen aanvullend application-level ontwerp.

Is context management hetzelfde als business-context engineering?

Nee. Context management gaat hier over welke conversatieberichten de LLM bereiken. In deel 4 gaat business-context engineering over bedrijfsspecifieke definities, metadata en betekenis die een Power BI-specialist gebruikt.

Stateful AI-architectuur

Alleen meten is niet hetzelfde als verbeteren

Ask Titan combineert stateful orchestration, specialistische capabilities en beheerde datatoegang. Bespreek hoe je een LangGraph-prototype omzet in een assistent die je teams bij echte businessvragen kunnen blijven gebruiken.

Vier afzonderlijke engineeringverantwoordelijkheden

01Bewaar thread-scoped graph state
02Bouw modelinput voor de huidige turn
03Houd de actieve tooluitwisseling coherent
04Meet groei en review lifecycle-controls

Technische runtimestate en tijdelijke writes die worden gebruikt om de thread voort te zetten.

Productspecifieke observaties zijn gebaseerd op de aangeleverde Ask Titan-repository. Deze primaire bronnen leggen LangGraph-persistence, message selection en het verschil tussen tijdelijke modelcontext en duurzame state uit. De pseudocode en diagrammen zijn bewust vereenvoudigd.