Arkitektur för AI-assistent: LLM, minne, verktyg, routning, observabilitet
Så allvarliga assistenter faktiskt byggs.
Ett produktionsklart AI-assistent är inte “en LLM med en prompt”. Det är ett system som accepterar intentioner, behåller tillstånd, beslutar när det ska hämta data eller agera, och exponerar tillräckligt med runtime-detalyjer för att kunna felsöka fel.
Detta systemperspektiv är det som AI Systems-klustret utforskar när assistenter går bortom en enda modellanrop.
OpenAI beskriver agenter som applikationer som planerar, anropar verktyg, samarbetar och behåller tillräckligt med tillstånd för flerstegsarbeten, medan Anthropic beskriver samma problem som en hanterad ram som kan köra filer, kommandon, webbtillgång och kod på ett säkert sätt.
Den renaste arkitekturen delar upp ansvarsområdena i fem lager: LLM, Minne, Verktyg, Routing och Observabilitet. Denna uppdelning matchar de funktioner som exponeras av stora leverantörers API:er, av MCP, av självhostade runtimes som vLLM och llama.cpp, och av verkliga assistantsystem som OpenClaw och Hermes.

Minne bör behandlas som mer än “längre kontext”. Hämtningssystem (retrieval systems) omvandlar extern kunskap till explicit icke-parametriskt minne — samma designutrymme som behandlas ingående i Retrieval-Augmented Generation (RAG) — och både Anthropics kontextriktlinjer och papperet “Lost in the Middle” varnar för att bara stoppa in fler token i kontexten inte garanterar pålitlig återkallning.
Verktygsanvändning är en avtalsgräns, inte magi. OpenAIs function calling, Anthropics tool use och MCP bygger alla på samma mönster: modellen emitterar en strukturerad begäran, en runtime exekverar den, och resultatet flyter tillbaka till konversationen. Om denna gräns är slarvig blir också assistenten slarvig.
Min bias är enkel: börja tråkigt. En orkestrator, en hållbar minnesväg, en spår per begäran, och en explicit policy för verktygsexekvering. Multi-agent-grafer är användbara, men först efter att du kan förklara dina single-agent-fel utan att gissa.
Vad ett AI-assistentsystem är
En praktisk definition är denna: ett AI-assistentsystem är en runtime som omvandlar användarens intention till ett svar eller en handling genom att kombinera ett modellgränssnitt, kontextsamling, verktygsexekvering, tillståndshantering och telemetri. Det är därför de användbara dokumenten inte bara är model cards. De användbara dokumenten är API-referenser, verktygsavtal, hätningsguider, routingsdokument och spårdokument. OpenAIs Responses API exponerar tillståndsbaserade interaktioner, inbyggda verktyg och function calling. Anthropics Claude API exponerar direkt åtkomst till Messages samt Managed Agents. OpenClaw och Hermes går ett steg längre och visar vad som händer när man placerar dessa funktioner bakom persistenta gatewayar, kanaler, sessioner och minne.
Med andra ord har ett assistentsystem ett bredare avtal än en chatkomplettering. Ett bra internt avtal ser ut ungefär så här:
AssistantRequest = användarintention + identitet + session + bilagor + policy
AssistantResponse = svar + åtgärder + citat + tillståndsförändringar + spår-ID
Detta avtal är viktigt eftersom varje diskussion i produktionen till slut reduceras till en av dessa frågor: vilken kontext var synlig, vilket verktyg exekverades, vilken modell svarade, vilket minne lästes eller skrevs, och var spåret säger att systemet tillbringade tid. OpenTelemetry definierar spår (traces) som vägen för en begäran genom en applikation, vilket är exakt den abstraktion seriösa assistenter behöver. LangSmith och OpenLIT specialiserar sedan denna idé för LLM:er, verktyg, vektorlagring och agentarbetsflöden.
Kernkomponenter och gränssnitt
Komponentuppdelningen nedan är den jag finner mest hållbar. Det är också den uppdelning som passar bäst med de officiella API:erna och de open-source-runtimes som folk faktiskt driver.
| Lager | Huvudansvar | Typiskt gränssnitt | Exempel på teknologier |
|---|---|---|---|
| LLM-lager | Resonera, generera, besluta, emittera strukturerade anrop | Responses API, Messages API, OpenAI-kompatibla eller Anthropic-kompatibla slutpunkter | OpenAI, Anthropic, vLLM, llama.cpp, Ollama |
| Minneslager | Hålla sessionstillstånd, hållbara anteckningar och sökbar kunskap | Embeddings, vektorsökning, minnesläs-/skrivverktyg, hämtning-API:er | OpenAI embeddings och vektorlager, Pinecone, Weaviate, pgvector, Milvus, Hermes minne, OpenClaw minne |
| Verktygslager | Läs data och utför åtgärder utanför modellen | JSON-schema-verktyg, MCP-verktyg, fil- och websökning, inbyggda runtime-verktyg | OpenAI function calling, Anthropic tool use, MCP, LangChain-verktyg, LlamaIndex query-verktyg |
| Routingslager | Välj modell, backend, policy och tenant-väg | modellalias, failover-grupper, health checks, budgetar, kanalbindningar | LiteLLM, OpenClaw multi-agent routing, Hermes provider runtime resolution |
| Observabilitetslager | Förklara vad som hände och varför | spår, spans, loggar, metrik, eval-löppar | OpenTelemetry, LangSmith, OpenLIT |
Tabellen ovan är härledd från de officiella leverantörsgränssnitten, MCP, vektordatabasdokumentation och runtime-dokumentation för vLLM, llama.cpp, OpenClaw och Hermes.
LLM-lagret bör göra tre saker bra: konsumera en aktuell arbetskontext, emittera antingen ett slutgiltigt svar eller en strukturerad begäran om åtgärd, och returnera tillräckligt med metadata för att stödja omförsök och spårning. OpenAIs Responses API är explicit designat för tillståndsbaserade interaktioner plus inbyggda verktyg och function calling. Anthropics Messages API exponerar samma kärnloop genom tool_use-block och tool_result-returneringar, medan Managed Agents ger dig en hostad ram om du inte vill bygga loopen själv. Självhostade runtimes som vLLM och llama.cpp är viktiga eftersom de bevarar kända leverantörsgränssnitt medan de låter dig placera inferensen i din egen miljö.
Minneslagret bör mentalt delas upp i tre kategorier: arbetsminne, hållbart symboliskt minne och sökbar semantiskt minne. OpenAI embeddings returnerar vektorer som kan indexeras och sökas; OpenAI Retrieval och File Search lägger sedan semantisk och nyckordsbaserad sökning ovanpå vektorlagring. Pinecone, Weaviate, pgvector och Milvus representerar fyra vanliga lagringsformer: fullt hanterad, open-source vektornativ, Postgres-nativ och distribuerad vektordatabas. Hermes och OpenClaw lägger till en användbar påminnelse om att inte allt minne hör hemma i en vektordatabas: filbaserade anteckningar, granskade uppgraderingar och sessionsspecifika snapshotter är ofta en ärligare design — mönster som packas upp i Hermes Agent Memory System för begränsat kärnminne och frusna sessionssnapshotter.
Verktygslagret är där en assistent slutar vara en sammanfattare och börjar bli mjukvara. OpenAIs function calling behandlar verktyg som schemadefinerad funktionalitet som modellen kan besluta att anropa. Anthropic säger samma sak mer explicit: verktygsanvändning är ett avtal mellan din applikation och modellen, och modellen exekverar aldrig något på egen hand. MCP generaliserar detta avtal till ett klient-server-protokoll där värdar ansluter till en eller flera servrar som exponerar verktyg, prompts och resurser — samma gräns som beskrivs steg för steg i MCP Server in Go. LangChain och LlamaIndex passar bekvämt här som orkestreringsbibliotek: LangChain fokuserar på en färdig agentarkitektur och integrationer, medan LlamaIndex fokuserar på kontexttärkt dataåtkomst, querymotorer och arbetsflöden.
Routingslagret finns eftersom “vilken modell?” aldrig är den enda frågan. Du behöver också “vilken leverantörsstig, vilken tenant, vilken budget, vilken latensklass och vilken fallback?”. LiteLLM är användbart eftersom dess officiella dokumentation är uppfriskande konkret: vägd pick, minst upptagen, latensbaserad, kostnadsbaserad routing och begränsade failovers är alla förstaklasssmönster. OpenClaw utökar routing uppåt till kanal- och agentisolering, medan Hermes utökar den nedåt till modellslots för huvud- och hjälpuppgifter som sammanfattning, kontextkomprimering och MCP-verktygsrouting. Det är rätt mental modell: routern väljer mer än en modell, den väljer en exekveringsfil.
Observabilitetslagret är det som förhindrar att arkitektur blir till folklore. OpenTelemetry ger dig spårabstraktionen. LangSmith ger dig end-to-end-synlighet över LLM-applikationens steg och stödjer moln-, hybrid- och självhostade deploymentsformer. OpenLIT ger dig OpenTelemetry-nativ AI-observabilitet med zero-code- och manuell instrumenteringsalternativ, inklusive stöd för LLM:er, agentramverk, vektordatabaser och GPU:er. För produktionsmetrik, spår och SLO-mönster över inferens och agentarbetsflöden, se Observability for LLM Systems. Om din assistent inte har något spår per begäran, ingen span per modellanrop, och ingen evenemangshistorik för verktygsexekvering, har du inte riktigt en arkitektur än. Du har vibes.
Fånga, berika, svara
Sekvensen som ständigt dyker upp i verkliga system är fånga -> berika -> svara -> dokumentera. Olika ramverk wrapperar det på olika sätt, men flödet är stabilt nog för att behandlas som ryggraden.
sequenceDiagram
participant U as User or Channel
participant G as Gateway or UI
participant R as Router
participant M as Memory and Retrieval
participant L as LLM
participant T as Tools or MCP
participant O as Observability
U->>G: message, file, or command
G->>O: start root trace
G->>R: request + identity + session + policy
R->>M: load session state and retrieve context
M-->>R: notes, chunks, metadata
R->>L: prompt + context + tool schemas
L-->>R: answer or tool call
alt tool call
R->>T: execute tool or MCP action
T-->>R: tool result
R->>L: tool result + updated context
L-->>R: final answer
end
R->>M: persist session changes and memory candidates
R->>O: spans, metrics, eval events
G-->>U: response
Fångststeget är oftast viktigare än det ser ut. Både OpenClaw och Hermes placerar en persistent gateway framför assistenten eftersom ingress inte bara är textinmatning. Det inkluderar kanalmetadata, identiteter, auktorisering, sessionsgränser, direktmeddelanden, grupper, cron-ticks och leveranssemantik. Om du hoppar över detta lager och förlitar dig på en rå chat-widget-abstraktion, kommer du till slut att bulta tillbaka det som ad hoc-middleware ändå.
Berikningssteget är där mogna system divergerar från leksaksdemos. OpenAI Retrieval och File Search gör hämtning explicit genom vektorlager och sökanrop. LlamaIndex formaliserar samma mönster genom dataconnectors, index, querymotorer och arbetsflöden. Hermes går längre genom att dela upp modellbeståndet i huvud- och hjälpslots, och outsourcerar arbete som komprimering, sammanfattning och routing till mindre eller mer specialiserade modeller. Det är ett designmönster värt att stjäla: spendera inte dina dyraste modelltoken på trädgårdsskötsel.
Svarssteget är inte “generera text”. Det är “stäng den aktuella loopen”. Om modellen kan svara direkt gör den det. Om den behöver ett verktyg emitterar den en strukturerad begäran. Både Anthropics verktygsavtal och OpenAIs guide för function calling gör detta explicit. Anledningen till att detta är viktigt arkitekturellt är att utdata nu inkluderar både språk och kontrollflöde. Ditt svarsobjekt är delvis prosa och delvis runtime-plan.
Dokumenteringssteget är där konsistenssemantik dyker upp. Pinecone separerar skriv- och läsvägar och bearbetar skrifter efter hållbar bekräftelse. Hermes minne injiceras som en frusen snapshot per session så att det kan bevara prefix-cache-prestanda, vilket innebär att nya skrifter inte automatiskt dyker upp i den aktuella sessionsprompten. OpenClaws Dreaming-system befordrar endast granskade, förankrade kandidater till MEMORY.md, och det är opt-in snarare än alltid på. Den praktiska lärdomen är att minne sällan är verkligen read-after-write över varje lager. Du måste designa för stegvis synlighet.
OpenClaw och Hermes som referenssystem
OpenClaw och Hermes är användbara referensfall eftersom de inte bara är wrapper runt ett leverantörs-API. Båda presenterar en assistent som ett långvarigt system med gatewayar, sessioner, verktyg, minne och flera modellbackends.
| Arkitekturell fråga | OpenClaw-mappning | Hermes-mappning |
|---|---|---|
| Ingress och ytor | Självhostad gateway som kopplar chatappar och kanalytor | Enkel bakgrundsmessaginggateway som kopplar många externa plattformar |
| Orkestrering | Gateway-centrerad kontrollplan för kanaler och AI-interaktioner | AIAgent-loop som hanterar promptssamling, leverantörsval, verktygsdispatch, omförsök och failover |
| Routing | Multi-agent-routing binder inkommande trafik till isolerade agenter med separata arbetsplatser och sessioner | Huvud- och hjälpslots för modeller delar upp kärnresonemang från komprimering, sammanfattning, godkännanden och MCP-routing |
| Minne | Filbaserat minne plus valfritt aktivt minne och bakgrundsbaserad Dreaming-uppfrämjning | MEMORY.md och USER.md injicerade som en frusen sessionsnapshot, plus externa minnesleverantörer |
| Verktyg och expansion | Inbyggda verktyg, sessionsverktyg, leverantörspluginer, anpassade och självhostade slutpunkter | 40+ verktyg, inbyggd MCP-klient, verktygssätt, färdigheter och minnesleverantörspluginer |
Denna mappning är förankrad i de officiella OpenClaw- och Hermes-dokument och -repo. OpenClaw dokumenterar en gateway-arkitektur, multi-agent-routing, stöd för anpassade och självhostade leverantörer inklusive vLLM och Ollama, valfritt aktivt minne och Dreaming-baserad uppfrämjning. Hermes dokumenterar en messaginggateway, en central AIAgent-loop, huvud- och hjälpslots, inbyggt minne och native MCP-integration.
Min lite åsiktsstyrda tolkning är att båda systemen gör samma arkitekturella argument i olika accenter. OpenClaw är starkt gateway-first. Hermes är starkt agent-loop-first. Men båda avvisar den ytliga idén att en assistent bara är “prompt plus modell”. De modellerar kanaler, identiteter, minnessemantik, verktygsytor och backend-heterogenitet som förstaklasssfrågor. Det är exakt vad en produktionsarkitektur bör göra.
En praktisk hybridstack inspirerad av båda systemen ser ut så här:
edge:
gateway: hermes or openclaw
routing:
proxy: litellm
policy: latency and budget aware
tenancy: session and channel scoped
llm:
primary: openai responses or anthropic messages
local_fallback: vllm
local_dev: ollama or llama.cpp
memory:
session: sqlite or postgres
semantic: pgvector or weaviate
embeddings: openai embeddings or ollama embeddings
tools:
contract: json schema tools plus mcp
examples: filesystem, browser, web search, internal APIs
observability:
traces: opentelemetry
ai_dashboards: openlit or langsmith
evals: openai evals plus app-specific regression sets
Den här stacken är ett resonerat deploymentsmönster snarare än en leverantörsföreskriven blueprint. Den fungerar eftersom de officiella gränssnitten stämmer överens: OpenAI och Anthropic exponerar verktygsorienterade API:er, vLLM och llama.cpp emulerar leverantörsstilslutpunkter, Ollama hanterar lokala modeller och embeddings, MCP standardiserar externa verktyg, LiteLLM hanterar routing och failover, och OpenTelemetry-kompatibla plattformar kan spåra hela vägen.
Mönster, tabeller och avvägningar
Det finns några upprepbara assistentmönster som är värda att namnge. En hanterad assistent håller större delen av runtimen inne i leverantörs-API:er. En hämtning-first-assistent behandlar minne och sökning som den huvudsakliga differentiatorn. En verktyg-first-assistent beter sig mer som en operatör än en chatbot. En gateway-assistent prioriterar alltid-på-åtkomst genom messagingytor. Ett specialistnät dekomponerar arbete till flera agenter eller rutter. Officiella dokument över OpenAI, Anthropic, LlamaIndex, LiteLLM, OpenClaw och Hermes stödjer alla versioner av dessa mönster, även om de namger dem olika.
| Mönster | Vad det optimerar för | Bästa användningsfall | Dolda kostnader |
|---|---|---|---|
| Hanterad assistent | Leveranshastighet | Interna copiloter och supportbots | Leverantörsbindning och mindre kontroll över runtime-detalyjer |
| Hämtning-first-assistent | Förankrade svar över ägda data | Dokument, support, kunskapsarbete | Hämtkvalitet blir den verkliga produkten |
| Verktyg-first-assistent | Åtgärd framför konversation | Ops-arbetsflöden, datadrags, automationer | Sideffekter, omförsök och godkännanden blir kärnfrågor |
| Gateway-assistent | Allstädes närvaro | Personliga och teamassistenter över chatytor | Identitet, session och säkerhetskomplexitet |
| Specialistnät | Arbetsdelning | Komplexa arbetsflöden med verkliga ägargränser | Svårare felsökning, orkestrering och eval-design |
Denna mönstertabell är en syntes från leverantörsdokument, ramverksdokument och referenssystem snarare än ett påstående från någon enskild leverantör.
| Alternativform | Typiska komponenter | Styrka | Svaghet |
|---|---|---|---|
| Hanterad | OpenAI Responses eller Anthropic Managed Agents, hostad filesökning eller vektorlager | Snabbaste väg, färre rörliga delar, hostade verktyg | Lägst kontroll över datapå och runtime-semantik |
| Hybrid | Leverantörs-API plus självhostad router och vektorlager | God balans mellan hastighet och kontroll | Fler avtal att underhålla |
| Självhostad | vLLM eller llama.cpp eller Ollama, MCP, självhostad vektor-DB, OTel | Stark integritet och deploymentkontroll | Högst ops-börda, hardware- och tuningöverhead |
Tabellnoter: OpenAI hostad File Search är ett hanterat verktyg, Anthropic erbjuder en hanterad ram, Pinecone är en hanterad vektortjänst, medan vLLM, llama.cpp, Ollama, pgvector, Weaviate, Milvus, LangSmith självhostad och OpenLIT alla stödjer självhanterad eller hybrid drift i varierande grad.
| Vektorlager | Form | Varför team väljer det | Varning |
|---|---|---|---|
| Pinecone | Hanterad vektortjänst | Stark operativ enkelhet och skalbar hanterad arkitektur | Extern beroende och hanterad-tjänstekonomi |
| Weaviate | Open-source vektordatabas | Vektor plus inverterade index och flexibla indexval | Mer clustertuning än en endaste hostad väg |
| pgvector | Postgres-tillägg | Håll vektorer med relationell data och befintlig SQL-stack | Inte bäst lämpad för varje högskala ANN-arbetsbelastning |
| Milvus | Distribuerad vektordatabas | Sysselspecifik skala och ekosystem kring hanterad Zilliz Cloud | En annan specialistdatastore att driva |
Tabellnoter: Pinecone dokumenterar en hanterad kontrollplan och regionala dataplan. Weaviate dokumenterar vektor- och inverterade index med flera vektorindextyper. pgvector lägger till exakt och approximativ närmaste-grannen-sökning till Postgres. Milvus positionerar sig som en open-source högpresterande, skalbar vektordatabas, med Zilliz Cloud som den hanterade alternativet.
| LLM-alternativ | Gränssnittsstil | Bästa på | Varning |
|---|---|---|---|
| OpenAI Responses | Tillståndsbaserade svar plus inbyggda verktyg | Snabb start, hostade verktyg, strukturerade looper | Du ärver plattformspecifika abstraktioner |
| Anthropic Messages | Direkt modellåtkomst med explicit verktygsavtal | Tydliga verktygsgränser och god kontroll i anpassade looper | Mer runtime är ditt ansvar om du inte använder Managed Agents |
| vLLM | OpenAI-kompatibel och Anthropic-kompatibel självhostad server | Högkapacitets självhostad inferens | Verklig infrastruktur och modellserverarbete |
| Ollama | Enkel lokal modell- och embedding-runtime | Lokal utveckling och små självhostade stackar | Inte samma klass av serversystem som en finjusterad distribuerad runtime |
| llama.cpp | Lättviktig lokal server med leverantörs-kompatibla rutter | Edge, CPU-first, begränsade miljöer | Du gör mer manuell tuning och kapacitetsmatchning |
Tabellnoter: OpenAI dokumenterar Responses som sitt avancerade gränssnitt för tillståndsbaserade svar och inbyggda verktyg. Anthropic dokumenterar Messages API och verktygsavtalet separat från Managed Agents. vLLM exponerar en OpenAI-kompatibel server plus Anthropic Messages API-stöd. Ollama dokumenterar lokal embedding- och modellarbetsflöden. llama.cpp dokumenterar OpenAI-kompatibla chat, svar och embeddings-rutter, plus Anthropic-kompatibla chatkompletteringar.
| Begränsning eller avvägning | Bias mot hanterad | Bias mot självhostad | Praktisk mitigeringsåtgärd |
|---|---|---|---|
| Latens | Ofta bättre första iteration och färre lokala tuninguppgifter | Kan vinna när modell och data är colocerade och hålls varma | Använd routingtier, heta caches och mindre hjälpmodeLLer |
| Kostnad | Lätt att starta, variabel vid tokenskala | Bättre amortering vid stabil utnyttjning | Mät verklig trafik innan du optimerar efter instinkt |
| Integritet och residens | Enklare för icke-känslig data | Starkare kontroll för känsliga och reglerade flöden | Använd hybridgränser och håll bara det som måste flytta |
| Konsistens | Hostade verktyg har fortfarande stegvis synlighetsemantik | Självhostade minnespipelines stegvisar och främjar också data | Definiera read-after-write-regler explicit per lager |
| Skalning | Mindre kontrollplan-smärta | Bättre anpassning för stabil, specialiserad arbetsbelastning | Använd batching, köhantering och isolerade tenants |
| Felsökningsbarhet | Lätt att missa opaker leverantörsinternor | Lätt att drunkna i självskapad komplexitet | Spåra varje begäran och evalua varje rutt |
Denna avvägningsmatris är en arkitekturell inferens från de officiella dokumenten, inte en leverantörsbenchmark. Konsistensraden är viktigare än många blogginlägg erkänner: Pinecone separerar skriv- och läsvägar, Hermes fryser minnet i sessionsstartprompts, och OpenClaw främjar hållbart minne genom stegvis granskning. Det betyder att “minne uppdaterat” och “minne synligt för det aktuella svaret” ofta är olika sanningar.
Felmoder och mitigeringsåtgärder
De flesta assistenter misslyckas inte eftersom basmodellen är “dålig”. De misslyckas eftersom det omgivande systemet ljuger för modellen, svälter den för rätt kontext, låter verktyg drifta, eller gör felsökning omöjlig.
| Var det brister | Typisk symtom | Vanlig orsak | Mitigeringsåtgärd |
|---|---|---|---|
| Promptssamling | Självförtroende men felmålade svar | För mycket irrelevant kontext, dålig ordning | Budgetera kontext, omrangera, håll nyckelfakta högt upp |
| Hämtning | Rätt ton, fel fakta | Dålig chunkning, gammalt index, svaga filter | Evalua hämtning separat, lägg till metadatafilter och hybrid sökning |
| Verktygsgräns | Fel åtgärd eller dubbel åtgärd | Lösa scheman, omförsök utan idempotens | Täta scheman, idempotensnycklar, godkännandegardar |
| Routing | Vilt inkonsistent beteende per begäran | Kostnads- eller latensrouting utan kvalitetskontroller | Lägg till sticky sessions och per-rutt evals |
| Minne | Gammalt eller förgiftat återkall | Överdrivet ivriga skrifter, svag granskning, cross-session-läckage | Separera arbets- och hållbart minne, granska uppfrämjningar |
| Observabilitet | Ingen aning om vad som hände | Saknade spår eller ingen span-granularitet | Emittera root- och subspans för hämtning, modell och verktygsanrop |
| Hallucinationskontroll | Plausibla men osträvliga påståenden | Svag förankring eller ingen valideringstrans | Referensdokumentvalidering, självkonsistenskontroller, eval-gardar |
Evidensbasen för denna tabell är bred men konsekvent. Anthropics verktygsdokument gör det tydligt att verktygsanvändning är en avtalsgräns. OpenAI Guardrails inkluderar hallucinationsdetektering mot en referenskunskapsbas via File Search. SelfCheckGPT visar att självkonsistens över prover kan hjälpa till att detektera osträvliga påståenden. Resultaten från “Lost in the Middle” och Anthropics kontextriktlinjer förstärker båda samma operationella lärdom: fler token tar inte bort behovet av kontextkuratering.
Föredragen mitigeringsstack kan vara tråkig och repetitiv: spåra varje begäran, versionera prompts, evalua hämtning oberoende, håll verktyg idempotenta, och kör regressionsvals innan du ändrar rutter eller minnespolicy. OpenAIs Evals-dokument och repo är raka om varför: utan evals är det svårt och tidskrävande att förstå hur modell- eller promptförändringar påverkar ditt användningsfall. Det gäller lika mycket för routrar och hämtning som för prompts.
Mer läsning
Om du vill gå djupare finns de mest användbara primärkällorna att hålla öppna medan du designar eller granskar en assistentarkitektur.
-
OpenAI: Responses Overview, Function Calling, Using Tools, Retrieval, File Search, Evals och MCP för remote verktygsservrar.
-
Anthropic: API Overview, Tool Use, verktygsavtalet, Managed Agents, Context Windows och MCP-connectorn.
-
MCP självt: Architecture Overview och Specification är värda att läsas direkt, eftersom de förklarar värdar, klienter, servrar, verktyg, prompts, resurser, transporter och kapacitetsförhandling rent.
-
Ramverk och routing: LangChain Overview, LlamaIndex kontexttärkningsdokument, LiteLLM routingdokument, LangSmith observabilitetsdokument.
-
Självhostade runtimes och assistantsystem: vLLM, llama.cpp server, Ollama embeddings, OpenClaw dokument och repo, Hermes dokument och repo.
-
Lagring och observabilitet: Pinecone, Weaviate, pgvector, Milvus, OpenTelemetry, OpenLIT.
-
Forskningspapper: Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks, Lost in the Middle och SelfCheckGPT.