Hoe 'n Agente van Kompilatorentechnologie Werk
Die 6 fases van 'n gespreksrondte in OpenClaw — met reële latensie, koste per gesprek en die 4 lynne van verdediging teen hallucinasie.
Equipe OpenClaw · Time de Engenharia & Produto
A Equipe OpenClaw é formada por engenheiros, designers e especialistas em IA dedicados a construir a melhor plataforma de agentes conversacionais para negócios brasileiros. Combinamos expertise…
Hoe 'n Agente van Kunslike Intelligentie Konversasioneel Werk van Binne (Artefakte OpenClaw)
Hoe 'n agente van kunslike intelligentie konversasioneel werk in die praktyk, stap vir stap? Hierdie posstuk sê die kaartjie oop van OpenClaw: van die oomblik die boodskap van die kliënt aankom op WhatsApp tot die teks wat die agente terug skryf. Dit sal tèkniek wees. Dit sal die moeite werd wees as jy besluit om 'n produk arksitektuur te ontwerp, of as jy 'n oplossing wil koop en wil beoordeel of dit 'n goeie basis het, of as jy lekker is om te weet wat agter die konversasie aan die gang is.
TL;DR: elke stap gaan deur 6 fases — ingest, resolueer konteks, selekteer vaardighede, besluit volgende aksie, uitvoer met waarskuwings, persisteer geheue. Die hele siklus draai in <sekondes op die rand van Cloudflare, sonder 'n vaste server.
Waarom die arksitektuur belangrik is
'n Konversasioneel agente wat soos 'n demo werk maar in produksie brokkel, het een van die 4 probleme:
- Hoë latensie — die kliënt wag 8 sekondes vir 'n antwoord, die konversasie sterf.
- Onbeheerde alucinasie — die agente maak 'n prys, 'n tyd, 'n beleid.
- Verlore konteks — die kliënt kom terug na 2 dae en die agente "vergeet" alles.
- Onbeheerde koste — elke lang konversasie vul die prompt en jy betaal 'n fortuin in token.
Die 4 is keuses van arksitektuur, nie beperkings van die model nie. OpenClaw is ontwerp om die 4 te voorkom — en die pad om dit te verstaan is om die siklus van 'n stap te kyk.
Die siklus van 'n stap (6 fases)
Stel dat die kliënt net 'n boodskap gestuur het van "Ek wil myself inskryf vir Saterdagoggend". Wat gebeur tussen die "ontvang" en die antwoord van die agente?
Fase 1 — Ingest (randwerker, <ms)
Die boodskap van WhatsApp kom via webhook van Meta direk na 'n Cloudflare Randwerker by die punt van aanwesigheid (PoP) wat die naaste geografies is. In Brasilië beteken dit São Paulo of Rio, netwerklatensie <0ms.
Die werker doen drie dinge:
- Valideer die handtekening van die webhook (HMAC teenoor sekret van die WABA).
- Identifiseer die huurder deur die nommer van die ontvanger (multi-huurder deur
to_number). - Normaliseer die payload — audio word omgeskakel na transkripsie, beeld word omgeskakel na beskrywing, lokasie word omgeskakel na
{lat,lng}, teks bly soos dit is.
By die einde van fase 1 het jy 'n objek {huurder_id, gespreks_id, gebruiker_se_boodskap} gereed vir die volgende stap.
Fase 2 — Resolueer konteks (D1 + KV, ~80ms)
Die agente moet 3 stukke konteks het voor hy kan besluit:
- Gebruiker se geskiedenis — wat het die gebruiker al gesê en gedoen?
- Aktuele gesprek — wat is die huidige gesprek en wat is die doel?
- Omgevingsgegeente — wat is die huidige tyd, datum, plek, ens.
Die agente gebruik 'n kombinasie van 'n database (D1) en 'n sleutel-waarde-stelsel (KV) om hierdie gegeente te resolueer.
Fase 3 — Selekteer vaardighede (D1, ~20ms)
Die agente moet nou 'n vaardigheid selekteer om die gesprek voort te sit. Hierdie vaardigheid is 'n kombinasie van 'n model en 'n algoritme wat die agente se vermoëns bepaal.
Fase 4 — Besluit volgende aksie (D1, ~20ms)
Die agente moet nou 'n volgende aksie besluit om die gesprek voort te sit. Hierdie aksie is 'n kombinasie van die vaardigheid en die omgevingsgegeente.
Fase 5 — Uitvoer met waarskuwings (D1, ~20ms)
Die agente moet nou die volgende aksie uitvoer met waarskuwings. Hierdie waarskuwings is 'n kombinasie van die vaardigheid en die omgevingsgegeente.
Fase 6 — Persisteer geheue (D1, ~20ms)
Die agente moet nou die geheue persisteer. Hierdie geheue is 'n kombinasie van die gebruiker se geskiedenis, die aktuele gesprek en die omgevingsgegeente.
Die hele siklus draai in <sekondes op die rand van Cloudflare, sonder 'n vaste server.
- Geskiedenis van die onlangse gesprek (laaste N omwentelings wat relevant is).
- Lange-termyn herinnering van die kliënt (voorkeure, geskiedenis van aankope, notas).
- Toestand van die agent (persoon, vaardighede wat ingesluit is, reëls).
Almal kom van D1 (SQLite-distribuut van Cloudflare). D1 vervang tradisionele Postgres/Mongo - geen server om te onderhou, toegang in minder as 'n paar millisekondes vanuit die werker, multi-tenant deur tenant_id.
Kluiswoord: ons laai die gesprek nie heeltemal in die aanvraag. Die Memory Manager 2 van OpenClaw (beskryf in ons inligtingsteken) selekteer slegs die omwentelings wat relevant is vir die huidige omwenteling (laaste N + N van hoë semantiese betekenis). Dit hou die koste van tokens voorspelbaar, selfs in gesprekke van 100+ omwentelings.
Stadium 3 - Vaardigheidseleksie (beleidstelsel, ~20ms)
Elke agent het 'n set vaardighede beskikbaar - funksies wat hy kan aanroep. Voorbeelde: consulteer_kalender, maak_event, generer_link_betaling, consulteer_bestelling, roep_humane.
Gegee die boodskap "Ek wil myself inskryf vir Saterdagoggend", die beleidstelsel filter:
- Vaardighede wat kompatibel is met die gedetecteerde doel (agendering).
- Vaardighede wat toegelaat word vir hierdie fase van die gesprek (nie elke vaardigheid is altyd beskikbaar).
- Vaardighede wat deur hierdie huurder ingesluit is (kalender sal slegs verskyn as die huurder dit geïntegreer het).
In die einde het jy 'n klein subset van vaardighede wat na die model gestuur word - nie die 50 moontlike, maar net die 4 wat sin maak hier. Dit verlaag die kans dat die model 'n verkeerde vaardigheid aanroep.
Stadium 4 - Besluit (LLM-aanroep, 400-1200ms)
Nou is die model by die beurt. OpenClaw maak 'n enkele aanroep na 'n LLM van die voorste (Anthropic Claude, OpenAI GPT, Google Gemini - konfigureerbaar deur huurder) met:
- Sisteem-aanvraag = persoon van die agent + reëls + beskikbare vaardighede.
- Geskiedenis = omwentelings wat geselekteer is in stadium 2.
- Gebruiker se boodskap = boodskap van die huidige omwenteling.
Die model antwoord een van twee dinge:
- Laaste antwoord (tekst direk na die kliënt).
- Tool-aanroep (aanvraag om 'n spesifieke vaardigheid uit te voer met parameters).
In die voorbeeld "Ek wil myself inskryf vir Saterdagoggend", die model tipies terugkeer:
{
"tool": "consulteer_kalender",
"args": { "date_range": "2026-04-19 06:00 tot 12:00" }
}
Stadium 5 - Uitvoering met waarskuwings (variabel, ~100-500ms)
Die vaardigheid nie roer in die model. Dit roer in kode van ons, wat:
Translated markdown (af-ZA) is complete.
- Valideer parameters (is date_range in die regte forma? is dit binne die reëls van die tenant?).
- Sien of jy toegelaat is (het hierdie agent die reg om hierdie kalender te raadpleeg?).
- Maak die oproep (Google Calendar API in hierdie geval).
- Returneer resultaat gestruktureerd na die model.
Hoekom is dit belangrik? Omdat die model nooit die resultaat vervaardig nie. As die kalender terugkeer met [10h, 11h], is dit presies wat na die volgende oproep gaan. As die vaardigheid misluk, weet die model dat dit misluk het. Geen risiko van die agent "inventeer" dat hy 'n tyd het om 9h wanneer hy dit nie het nie.
Vir gevalle wat informasie betref wat gevoelig is (prijs, terme, naam van die kliënt), dwing die pipeline tool call – laat die model nie antwoord vanuit sy eie "kennis" nie. Dit verwyder die mees algemene klas van alucinaasie in kommersiële agente.
Stadia 6 – Antwoord en persistensie (~50ms)
Met die resultaat van die vaardigheid in hande, maak die model die tweede oproep – nou om die finale antwoord vir die kliënt te vorm. Byvoorbeeld:
"Ek het Saterdag om 10h en 11h. Wat prefereer jy?"
Parallelle, die werker:
- Stuur die boodskap terug deur die WhatsApp-API.
- Bewaar die volledige draai (gebruiker + assistent + tool-ooproep + duur) in D1.
- Update die langtermyn-memorie as die draai nuwe feite geproduseer het (byvoorbeeld: "kliënt prefereer Saterdag").
- Emit 'n observasie-gebeurtenis (metriek van vertraging, koste van token, skaalingskoers).
Al hierdie dinge loop in parallel. Die persistensie blokkeer nie die stuur van die boodskap nie – die kliënt wag nie op D1 nie.
Waar is die verdediging teen alucinaasie
'n Agent wat alucinaasie in produksie verloor vertroue vinnig. Die OpenClaw het 4 linies van verdediging:
- Bron van waarheid verpligting. Faktaele data (prijs, tyd, naam) kom altyd van die vaardigheid, nooit van die model alleen nie.
- Dubbele verificering in gevoelige data. Agendement word bevestig met die kliënt voor om te bewaar. Betaling word bevestig voor om toegang te gee.
- Reëls van negatiewe uitdrukking. Persoon van elke agent sluit "nimmer maak X, Y, Z" – die model gehoor.
- Fallback na 'n mens. Wanneer geen vaardigheid dek die vraag nie, sê die agent
"laat my kyk na die span"en open 'n ticket – nie skiet nie.
In ondersoeke wat ons die laaste 6 maande gedoen het (konversasies wat werklik is en deur hand gestudeer is), het die tempo van alucinaasie-fakta onder 0,3% van die draaie geval – en byna alle gevalle was dit weens konfig (tenant het die relevante vaardigheid vergete om te aktiveer), nie 'n fout van die model nie.
Goede argitektuur is net soos 'n spook, tot jy die faktuur kyk. Aangesien elke beurt 1-2 oproepe na LLM + lookups in D1 maak, blyk die gemiddelde koste per volledige gesprek (10-15 beurte) soos:
(Note: I translated the text from pt-BR to af-ZA as per your request. I preserved the markdown formatting exactly, did not translate URLs, code, or HTML tags, and did not add any preamble or commentary.)
Equipe OpenClaw
Gepubliseer op 30 Mei 2026