Arkitektur för AI-assistent: LLM, minne, verktyg, routing, observabilitet
Så allvarliga assistenter faktiskt byggs.
En produktionsklar AI-assistent är inte “en LLM med en prompt”. Det är ett system som tar emot avsikt, behåller tillstånd, beslutar när det ska hämta information eller utföra åtgärder, och exponerar tillräckligt med detaljer om körningen för att kunna felsöka fel.
Detta systemperspektiv är vad AI Systems-klustret utforskar när assistenter går bortom en enkel modellanrop.
OpenAI beskriver agenter som applikationer som planerar, anropar verktyg, samarbetar och behåller tillräckligt med tillstånd för arbetsflöden med flera steg, medan Anthropic beskriver samma problem som ett hanterat ramverk som kan köra filer, kommandon, webbtillgång och kod på ett säkert sätt.
Den renaste arkitekturen delar upp ansvar i fem lager: LLM, Minne, Verktyg, Ruttning och Observabilitet. Denna uppdelning matchar de funktioner som exponeras av stora leverantörs-API:n, av MCP, av självhostade körmiljöer som vLLM och llama.cpp, och av verkliga assistentsystem 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 utrymme som täcks ingående i Retrieval-Augmented Generation (RAG) — och både Anthropics kontextguidering och papperet “Lost in the Middle” varnar för att det inte räcker att bara stoppa in fler token i kontexten för att garantera pålitlig återkallelse.
Verktygsanvändning är en kontraktsgräns, inte magi. OpenAIs funktionanrop (function calling), Anthropics verktygsanvändning och MCP bygger alla på samma mönster: modellen emitterar en strukturerad begäran, en körmiljö utför den, och resultatet flödar tillbaka i samtalet. Om denna gräns är slarvig blir assistenten slarvig.
Min bias är enkel: börja tråkigt. En orkestrator, en hållbar minnesväg, en spårning 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-felfall utan att gissa.
Vad ett AI-assistentsystem är
En praktisk definition är denna: ett AI-assistentsystem är en körmiljö som omvandlar användarens avsikt till ett svar eller en åtgärd genom att kombinera ett modellgränssnitt, kontextsammanställning, verktygsexekvering, tillståndshantering och telemetri. Det är därför de användbara dokumentationen inte bara är modellkort (model cards). Den användbara dokumentationen är API-referenser, verktygsavtal, hämtningsguider, ruttningdokumentation och spårningsdokumentation. OpenAIs Responses API exponerar tillståndsbundna interaktioner, inbyggda verktyg och funktionanrop. 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 beständiga gateways, kanaler, sessioner och minne.
Med andra ord har ett assistentsystem ett bredare avtal än en enkel chatkomplettering. Ett bra internt avtal ser ut ungefär så här:
AssistantRequest = användaravsikt + identitet + session + bilagor + policy
AssistantResponse = svar + åtgärder + källhänvisningar + 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årningen säger att systemet spenderade tid. OpenTelemetry definierar spårningar (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, vektordatabaser och agentarbetsflöden.
Kernkomponenter och gränssnitt
Komponentuppdelningen nedan är den jag finner mest hållbar. Det är också den uppdelning som bäst stämmer överens med de officiella API:na och de open-source-körmiljöer 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 endpoints | OpenAI, Anthropic, vLLM, llama.cpp, Ollama |
| Minneslager | Hålla sessionstillstånd, bestående anteckningar och sökbar kunskap | Embeddings, vektorsökning, minnesläs-/skrivverktyg, hämtning-API:er | OpenAI embeddings och vektorlagring, 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 körmiljöverktyg | OpenAI function calling, Anthropic tool use, MCP, LangChain-verktyg, LlamaIndex query tools |
| Ruttlager | Välj modell, backend, policy och tenantväg | modellalias, failover-grupper, health checks, budgetar, kanalbindningar | LiteLLM, OpenClaw multi-agent routing, Hermes provider runtime resolution |
| Observabilitet | Förklara vad som hände och varför | spårningar, spans, loggar, metrik, eval-körningar | OpenTelemetry, LangSmith, OpenLIT |
Tabellen ovan är härledd från de officiella leverantörsgränssnitten, MCP, vektordatabasdokumentation och körmiljödokumentation för vLLM, llama.cpp, OpenClaw och Hermes.
LLM-lagret bör göra tre saker väl: konsumera en aktuell arbetskongtext, emittera antingen ett slutgiltigt svar eller en strukturerad åtgärdsbegäran, 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åndsbundna interaktioner plus inbyggda verktyg och funktionanrop. Anthropics Messages API exponerar samma kärnloop genom tool_use-block och tool_result-returneringar, medan Managed Agents ger dig ett hostat ramverk om du inte vill bygga loopen själv. Självhostade körmiljöer som vLLM och llama.cpp är viktiga eftersom de bevarar bekanta leverantörsliknande gränssnitt samtidigt som de låter dig placera inferensen i din egen miljö.
Minneslagret bör mentalt delas upp i tre kategorier: arbetsminne, bestående symboliskt minne och sökbar semantiskt minne. OpenAI embeddings returnerar vektorer som kan indexeras och sökas i; OpenAI Retrieval och File Search lagerar 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 förbättringar och sessionsspecifika ögonblicksbilder är ofta en ärligare design. Memory Systems in AI Assistants karterar den tvärvägsmodellen; Hermes Agent Memory System bryter ner begränsat kärnminne och frusna sessionssnappschots i en produkt.
Verktygslagret är där en assistant slutar vara en sammanfattare och börjar vara mjukvara. OpenAIs function calling behandlar verktyg som schemadefinierad 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 sitter bekvämt här som orkestreringsbibliotek: LangChain fokuserar på en färdig agentarkitektur och integrationer, medan LlamaIndex fokuserar på kontextutökad dataåtkomst, querymotorer och arbetsflöden.
Ruttlagret existerar eftersom “vilken modell?” aldrig är den enda frågan. Du behöver också “vilken leverantörsväg, vilken tenant, vilken budget, vilken latensklass och vilken fallback?”. LiteLLM är användbart eftersom dess officiella dokumentation är uppfriskande konkret: viktad val, minst upptagen, latensbaserad, kostnadsbaserad ruttning och begränsade failovers är alla förstaklasssmönster. OpenClaw utökar ruttningen uppåt till kanal- och agentisolering, medan Hermes utökar den nedåt till modellslots för huvud- och hjälpuppgifter som sammanfattning, kontextkompression och MCP-verktygsruttning. Det är den rätta mentala modellen: routern väljer mer än en modell, den väljer en exekveringsfil.
Observabilitetslagret är det som förhindrar att arkitektur blir till folktro. OpenTelemetry ger dig spårningsabstraktionen. LangSmith ger dig end-to-end-synlighet över steg i LLM-applikationer och stödjer moln-, hybrid- och självhostade deployments. 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 produktionsmetriker, spårningar och SLO-mönster över inferens och agentarbetsflöden, se Observability for LLM Systems. Om din assistant inte har ett 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 -> registrera. Olika ramverk paketerar det olika, men flödet är stabilt nog för att behandlas som ryggraden.
Fågningssteget (capture) är oftast viktigare än det ser ut. Både OpenClaw och Hermes placerar en beständig 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 abstraktion för en rå chattwidget, kommer du till slut att borra fast den tillbaka som ad hoc-middleware ändå.
Berikningssteget (enrich) är där mogna system skiljer sig från lekdemo. OpenAI Retrieval och File Search gör hämtning explicit genom vektordatabaser och sökanrop. LlamaIndex formaliserar samma mönster genom dataconnectorer, index, querymotorer och arbetsflöden. Hermes går längre genom att dela upp modellbeståndet i huvud- och hjälpslots, och outsourcar arbete som kompression, sammanfattning och ruttning till mindre eller mer specialiserade modeller. Det är ett designmönster värt att stjäla: spendera inte dina dyraste modelltoken på hushållsarbete.
Svarssteget (respond) ä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. Anthropics verktygsavtal och OpenAIs guide för funktionanrop gör detta explicit. Anledningen till att detta är arkitektoniskt viktigt är att utdata nu inkluderar både språk och kontrollflöde. Ditt svarsobjekt är delvis prosa och delvis körmiljöplan.
Registreringssteget (record) är där konsistenssemantik dyker upp. Pinecone separerar skriv- och läsvägar och bearbetar skrivningar efter bestående bekräftelse. Hermes minne injeceras som en frusen ögonblicksbild per session så att det kan bevara prefix-cache-prestanda, vilket innebär att nya skrivningar inte automatiskt dyker upp i den aktuella sessionsprompten. OpenClaws Dreaming-system främjar 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 behöver 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 gateways, sessioner, verktyg, minne och flera modellbackends.
| Arkitektonisk fråga | OpenClaw-mappning | Hermes-mappning |
|---|---|---|
| Ingress och ytor | Självhostad gateway som ansluter chattappar och kanalytor | Enkel bakgrundsmeldingsgateway som ansluter många externa plattformar |
| Orkestrering | Gateway-centrerad kontrollplan för kanaler och AI-interaktioner | AIAgent-loop som hanterar promptassembly, leverantörsval, verktygsdispatch, omförsök och failover |
| Ruttning | 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 kompression, sammanfattning, godkännanden och MCP-ruttning |
| Minne | Filbaserat minne plus valfritt aktivt minne och bakgrundsförädling via Dreaming | MEMORY.md och USER.md injeceras som en frusen sessionssnappschot, plus externa minnesleverantörer |
| Verktyg och extension | Inbyggda verktyg, sessionverktyg, leverantörsplugins, anpassade och självhostade endpoints | 40+ verktyg, inbyggd MCP-klient, verktygssnitt, färdigheter och minnesleverantörsplugins |
Denna mappning är förankrad i den officiella OpenClaw- och Hermes-dokumentationen och repos. 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 förädling. Hermes dokumenterar en meldingsgateway, en central AIAgent-loop, huvud- och hjälpslots för modeller, inbyggt minne och native MCP-integration.
Min lite åsiktsstyrda tolkning är att båda systemen gör samma arkitektoniska argument med 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örstaklasssförhållanden. 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 resonant deploymentsmönster snarare än en leverantörsförskrivna blueprint. Det fungerar eftersom de officiella gränssnitten stämmer överens: OpenAI och Anthropic exponerar verktygsorienterade API:er, vLLM och llama.cpp emulerar leverantörsliknande endpoints, Ollama hanterar lokala modeller och embeddings, MCP standardiserar externa verktyg, LiteLLM hanterar ruttning 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 behåller mestadels körmiljön inuti leverantörs-API:er. En retrieval-first assistent behandlar minne och sökning som den huvudsakliga differentieraren. En tool-first assistent beter sig mer som en operatör än en chattbot. En gateway assistent prioriterar always-on-åtkomst via meddelandeytor. Ett specialistnät dekomponerar arbete till flera agenter eller rutter. Officiell dokumentation över OpenAI, Anthropic, LlamaIndex, LiteLLM, OpenClaw och Hermes stödjer versioner av dessa mönster, även om de namger dem olika.
| Mönster | Vad det optimerar för | Bästa användningsfall | Dold kostnad |
|---|---|---|---|
| Hanterad assistent | Hastighet i leverans | Interna copiloter och supportbottar | Leverantörsbundenhet och mindre kontroll över körmiljödetaljer |
| Retrieval-first assistent | Förankrade svar över ägda data | Dokument, support, kunskapsarbete | Hämtkvalitet blir den verkliga produkten |
| Tool-first assistent | Åtgärd framför konversation | Ops-arbetsflöden, datautdrag, automationer | Sideffekter, omförsök och godkännanden blir kärnfrågor |
| Gateway assistent | Ubiquitös åtkomst | Personliga och teamassistenter över chattytor | 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örsdokumentation, ramverksdokumentation och referenssystem snarare än ett påstående från någon enskild leverantör.
| Alternativ form | Typiska komponenter | Styrka | Svaghet |
|---|---|---|---|
| Hanterad | OpenAI Responses eller Anthropic Managed Agents, hostad filesökning eller vektordatabaser | Snabbast väg, färre rörliga delar, hostade verktyg | Lägst kontroll över datapath och körmiljösemantik |
| Hybrid | Leverantörs-API plus självhostad router och vektordatabas | 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 deploymentskontroll | Högst ops-börda, hårdvaru- och tuningöverhead |
Tabellanteckningar: OpenAI hostad File Search är ett hanterat verktyg, Anthropic erbjuder ett hanterat ramverk, 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 olika grad.
| Vektordatabas | Form | Varför team väljer den | 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 endast hostad väg |
| pgvector | Postgres-utökning | Håll vektorer med relationell data och befintlig SQL-stack | Passar inte bäst för varje högskalig ANN-arbetsbelastning |
| Milvus | Distribuerad vektordatabas | Syftad skala och ekosystem kring hanterad Zilliz Cloud | Ytterligare ett specialiserat dataatt att driva |
Tabellanteckningar: 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åndsbundna svar plus inbyggda verktyg | Snabb start, hostade verktyg, strukturerade looper | Du ärvt plattformspecifika abstraktioner |
| Anthropic Messages | Direkt modellåtkomst med explicit verktygsavtal | Klara verktygsgränser och god kontroll i anpassade looper | Mer körmiljö är ditt ansvar om du inte använder Managed Agents |
| vLLM | OpenAI-kompatibel och Anthropic-kompatibel självhostad serving | Högkapacitets självhostad inferens | Verklig infrastruktur- och modellserveringarbete |
| Ollama | Enkel lokal modell- och embedding-körmiljö | Lokal utveckling och små självhostade stackar | Inte samma klass av serversystem som en finjusterad distribuerad körmiljö |
| llama.cpp | Lättviktig lokal server med leverantörscompatibla routes | Kant, CPU-first, begränsade miljöer | Du gör mer manuell tuning och kapacitetsmatchning |
Tabellanteckningar: OpenAI dokumenterar Responses som sitt avancerade gränssnitt för tillståndsbundna 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-kompatibel chatt, svar och embeddings-routes, plus Anthropic-kompatibla chattkompletteringar.
| Begränsning eller avvägning | Bias mot hanterad | Bias mot självhostad | Praktisk dämpning |
|---|---|---|---|
| Latens | Ofta bättre första iteration och färre lokala tuninguppgifter | Kan vinna när modell och data är colokalerade och hålls varma | Använd ruttningstier, heta cachar 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 på instinkt |
| Integritet och bosättning | Enklare för icke-känslig data | Starkare kontroll för känsliga och reglerade flöden | Använd hybridgränser och behåll bara det som måste flytta |
| Konsistens | Hostade verktyg har fortfarande stegrad synlighetsemantik | Självhostade minnespipelines skapar också stegvis och främjar data | Definiera read-after-write-regler explicit per lager |
| Skalning | Mindre kontrollplanssmärta | Bättre anpassning för stabil, specialiserad arbetsbelastning | Använd batching, köer och isolerade tenants |
| Felsökningsbarhet | Lätt att missa opake leverantörsinternier | Lätt att drunkna i självskapad komplexitet | Spåra varje begäran och evaliera varje rutt |
Denna avvägningsmatris är en arkitektonisk inferens från den officiella dokumentationen, 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 bestående minne genom stegrad granskning. Det betyder att “minne uppdaterat” och “minne synligt för det aktuella svaret” ofta är olika sanningar.
Felmoder och dämpningar
De flesta assistenter misslyckas inte för att basmodellen är “dålig”. De misslyckas för att det omgivande systemet ljuger för modellen, svälter den för rätt kontext, låter verktyg driva iväg, eller gör felsökning omöjlig.
| Var det bryter | Typisk symtom | Vanlig orsak | Dämpning |
|---|---|---|---|
| Promptassembly | Självförtroende men felriktat svar | För mycket irrelevant kontext, dålig ordning | Budgetera kontext, omrangning, håll nyckelfakta högt |
| Hämtning (Retrieval) | Rätt ton, fel fakta | Dålig chunking, gammalt index, svaga filter | Evaliera 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ännandegates |
| Ruttning | Vilt inkonsekvent beteende per begäran | Kostnads- eller latensruttning utan kvalitetskontroller | Lägg till sticky sessions och per-rutt evals |
| Minne | Gammalt eller förgiftat minne | För ivriga skrivningar, svag granskning, cross-session-läckage | Separera arbets- och bestående minne, granska förädling |
| Observabilitet | Ingen aning om vad som hände | Saknade spårningar eller ingen span-granularitet | Emittera root- och subspans för hämtning, modell och verktygsanrop |
| Hallucinationskontroll | Troliga men ostödda påståenden | Svag förankring eller ingen valideringspass | Validering mot referensdokument, självkonsistenskontroller, eval-gates |
Bevisbasen för denna tabell är bred men konsekvent. Anthropics verktygsdokumentation gör det tydligt att verktygsanvändning är en kontraktsgräns. OpenAI Guardrails inkluderar hallucinationsdetektering mot en referenskunskapsbas via File Search. SelfCheckGPT visar att självkonsistens över prover kan hjälpa till att detektera ostödda påståenden. Resultaten från “Lost in the Middle” och Anthropics kontextguidering förstärker båda samma operativa lektion: fler token tar inte bort behovet av kontextkuratering.
En föredragen dämpningsstack kan vara tråkig och repetitiv: spåra varje begäran, versionera prompts, evaliera hämtning oberoende, håll verktyg idempotenta, och kör regressionsevals innan du ändrar rutter eller minnespolicy. OpenAIs Evals-dokumentation och repo är slätta om varför: utan evals är det svårt och tidskrävande att förstå hur ändringar i modell eller prompt påverkar ditt användningsfall. Det gäller lika mycket för rutter och hämtning som för prompts.
Mer läsning
Om du vill gå djupare finns här 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 remota verktygservrar.
-
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 ruttning: LangChain Overview, LlamaIndex dokumentation för kontextutökning, LiteLLM ruttningdokumentation, LangSmith observabilitetsdokumentation.
-
Självhostade körmiljöer och assistentsystem: vLLM, llama.cpp server, Ollama embeddings, OpenClaw dokumentation och repo, Hermes dokumentation 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.