En av de första agenterna jag byggde var extremt enkel: Den hämtade information från en vektorlagring, formaterade den som HTML och skickade den via e-post till användaren. Det blir inte enklare än så här, och ändå misslyckades den här agenten ungefär 1% av gångerna. Inget fel. Ingen förvarning. Det gav bara tillbaka skräp. Här är den hårda sanningen: Agenter misslyckas ofta. Och de misslyckas tyst. Hela tiden. Man kan helt enkelt inte lita på att en LLM gör rätt varje gång. Vid det här laget har jag byggt och distribuerat ett par dussin agenter, och här är några av de saker som faktiskt fungerar: 1. Observerbarhet från dag ett. Om du inte kan se vad din agent gör kan du inte felsöka det, förbättra det eller lita på det. Varje agent bör producera spår som visar hela förfrågningsflödet, modellinteraktioner, tokenanvändning och timingmetadata. 2. Räcken för in- och utgångar. Allt som går in i och ut ur en LLM bör kontrolleras med deterministisk kod. Även saker som inte sannolikt går sönder kommer så småningom att gå sönder. 3. LLM-som-domare-utvärdering. Du kan bygga en enkel domare med hjälp av en LLM för att automatiskt utvärdera din agents resultat. Märk en datamängd, skriv utvärderingsprompten och iterera tills din domare upptäcker de flesta misslyckanden. 4. Felanalys. Du kan samla in felprover, kategorisera dem och diagnostisera de vanligaste misstagen. 5. Kontextingenjörskonst. Ofta misslyckas agenter eftersom deras kontext är brusig, överbelastad eller irrelevant. Att lära sig hålla kontexten relevant är enormt. 6. Mänskliga återkopplingsslingor. Ibland är den bästa räcket en människa som är med i loopen, särskilt vid beslut med höga insatser.