Architektura asystenta AI: LLM, pamięć, narzędzia, routing, obserwowalność
Jak naprawdę buduje się poważnych asystentów.
Produkcja asystenta AI to nie „LLM z promptem”. To system, który przyjmuje intencję, utrzymuje stan, decyduje, kiedy pobierać dane lub wykonać działanie, oraz udostępnia wystarczająco szczegółowych informacji o czasie działania do debugowania awarii.
To systemowe podejście, o którym mówi klaster Systemów AI, jest tym, co eksplorujemy, gdy asystenci wychodzą poza pojedyncze wywołanie modelu.
OpenAI opisuje agenty jako aplikacje, które planują, wywołują narzędzia, współpracują i utrzymują wystarczająco dużo stanu dla pracy wielokrokowej, podczas gdy Anthropic ujęcie tego samego problemu jako zarządzanego środowiska, które może uruchamiać pliki, polecenia, dostęp do sieci i kod bezpiecznie.
Najczystsza architektura dzieli odpowiedzialności na pięć warstw: LLM, Pamięć, Narzędzia, Routing i Obserwowalność. To rozdzielenie pasuje do możliwości udostępnianych przez główne interfejsy API dostawców, przez MCP, przez samodzielnie hostowane środowiska wykonawcze, takie jak vLLM i llama.cpp, oraz przez rzeczywiste systemy asystentów, takie jak OpenClaw i Hermes.

Pamięć powinna być traktowana jako coś więcej niż „dłuższy kontekst”. Systemy wyszukiwania przekształcają zewnętrzną wiedzę w jawną pamięć nieparametryczną — tę samą przestrzeń projektową, która jest szczegółowo omawiana w Generowaniu Wspomagany Wyszukiwaniem (RAG) — i zarówno wskazówki kontekstowe Anthropic, jak i artykuł „Lost in the Middle” ostrzegają, że samo wciskanie większej liczby tokenów w kontekst nie gwarantuje niezawodnego przywołania.
Użycie narzędzi to granica kontraktu, a nie magia. Wywoływanie funkcji OpenAI, użycie narzędzi Anthropic i MCP polegają na tym samym wzorcu: model emituje strukturalne żądanie, pewne środowisko wykonawcze je wykonuje, a wynik wraca do rozmowy. Jeśli ta granica jest niechlujna, asystent staje się niechlujny.
Moje uprzedzenie jest proste: zacznij od nudnego. Jeden orkiestrator, jedna trwała ścieżka pamięci, jeden ślad na żądanie i jedna jawna polityka dla wykonania narzędzi. Grafy wieloagentowe są użyteczne, ale dopiero po tym, jak będziesz mógł wyjaśnić przypadki awarii pojedynczego agenta bez zgadywania.
Czym jest system asystenta AI
Praktyczna definicja brzmi tak: system asystenta AI to środowisko wykonawcze, które przekształca intencję użytkownika w odpowiedź lub działanie, łącząc interfejs modelu, składanie kontekstu, wykonanie narzędzi, zarządzanie stanem i telemetrię. Dlatego użyteczne dokumenty to nie tylko karty modeli. Użyteczne dokumenty to odwołania API, kontrakty narzędzi, przewodniki po wyszukiwaniu, dokumentacja routingu i dokumentacja śledzenia. Responses API OpenAI udostępnia interakcje ze stanem, wbudowane narzędzia i wywoływanie funkcji. API Claude Anthropic udostępnia bezpośredni dostęp do Messages oraz Managed Agents. OpenClaw i Hermes idą o krok dalej i pokazują, co się dzieje, gdy umieścisz te możliwości za trwałymi bramami, kanałami, sesjami i pamięcią.
Innymi słowy, system asystenta ma szerszy kontrakt niż uzupełnienie czatu. Dobry wewnętrzny kontrakt wygląda mniej więcej tak:
AssistantRequest = intencja użytkownika + tożsamość + sesja + załączniki + polityka
AssistantResponse = odpowiedź + działania + cytowania + zmiany stanu + ID śladu
Ten kontrakt ma znaczenie, ponieważ każda produkcyjna niezgoda ostatecznie sprowadza się do jednego z tych pytań: jaki kontekst był widoczny, które narzędzie zostało wykonane, który model odpowiedział, która pamięć została odczytana lub zapisana i gdzie ślad mówi, że system spędził czas. OpenTelemetry definiuje ślady jako ścieżkę żądania przez aplikację, co jest dokładnie abstrakcją, której potrzebują poważni asystenci. LangSmith i OpenLIT specjalizują następnie tę ideę dla LLM, narzędzi, magazynów wektorowych i przepływów agentów.
Podstawowe komponenty i interfejsy
Poniższy podział komponentów to ten, który uważam za najbardziej trwały. To również podział, który najlepiej koresponduje z oficjalnymi interfejsami API i otwartymi środowiskami wykonawczymi, które ludzie faktycznie eksploatują.
| Warstwa | Główna odpowiedzialność | Typowy interfejs | Przykładowe technologie |
|---|---|---|---|
| Warstwa LLM | Rozumowanie, generowanie, decydowanie, emitowanie strukturalnych wywołań | Responses API, Messages API, punkty końcowe zgodne z OpenAI lub Anthropic | OpenAI, Anthropic, vLLM, llama.cpp, Ollama |
| Warstwa pamięci | Przechowywanie stanu sesji, trwałych notatek i przeszukiwalnej wiedzy | wektory, wyszukiwanie wektorowe, narzędzia do odczytu/zapisu pamięci, API wyszukiwania | Wektory OpenAI i magazyny wektorowe, Pinecone, Weaviate, pgvector, Milvus, pamięć Hermes, pamięć OpenClaw |
| Warstwa narzędzi | Odczyt danych i wykonywanie działań na zewnątrz modelu | narzędzia schematu JSON, narzędzia MCP, wyszukiwanie plików i sieci, natywne narzędzia środowiska wykonawczego | Wywoływanie funkcji OpenAI, użycie narzędzi Anthropic, MCP, narzędzia LangChain, narzędzia zapytań LlamaIndex |
| Warstwa routingu | Wybór modelu, backendu, polityki i ścieżki najemcy | aliasy modeli, grupy awaryjne, testy stanu, budżety, powiązania kanałów | LiteLLM, routing wieloagentowy OpenClaw, rozwiązywanie dostawców Hermes |
| Obserwowalność | Wyjaśnienie, co się stało i dlaczego | ślady, spany, dzienniki, metryki, uruchomienia eval | OpenTelemetry, LangSmith, OpenLIT |
Powyższa tabela jest wyprowadzona z oficjalnych interfejsów dostawców, MCP, dokumentacji baz danych wektorowych oraz dokumentacji środowisk wykonawczych vLLM, llama.cpp, OpenClaw i Hermes.
Warstwa LLM powinna dobrze robić trzy rzeczy: konsumować bieżący kontekst roboczy, emitować ostateczną odpowiedź lub strukturalne żądanie działania oraz zwracać wystarczająco dużo metadanych do obsługi ponownych prób i śledzenia. Responses API OpenAI jest wyraźnie zaprojektowane dla interakcji ze stanem plus wbudowanych narzędzi i wywoływania funkcji. Messages API Anthropic udostępnia ten sam podstawowy cykl przez bloki tool_use i zwracane tool_result, podczas gdy Managed Agents daje Ci hostowane środowisko, jeśli nie chcesz budować tego cyklu samodzielnie. Samodzielnie hostowane środowiska wykonawcze, takie jak vLLM i llama.cpp, mają znaczenie, ponieważ zachowują znajome interfejsy stylu dostawcy, pozwalając Ci umieścić wnioskowanie w swoim własnym środowisku.
Warstwa pamięci powinna być mentalnie podzielona na trzy kategorie: pamięć roboczą, trwałą pamięć symboliczną i przeszukiwalną pamięć semantyczną. Wektory OpenAI zwracają wektory, które można indeksować i przeszukiwać; Wyszukiwanie i Wyszukiwanie Plików OpenAI nakłada następnie wyszukiwanie semantyczne i słów kluczowych na magazyny wektorowe. Pinecone, Weaviate, pgvector i Milvus reprezentują cztery wspólne kształty pamięci: w pełni zarządzane, otwarte wektorowo-native, Postgres-native i rozproszone bazy danych wektorowych. Hermes i OpenClaw dodają użyteczne przypomnienie, że nie cała pamięć należy do magazynu wektorowego: notatki oparte na plikach, przeglądane promocje i migawki zakresu sesji są często bardziej uczciwym projektem. Systemy pamięci w asystentach AI mapuje model międzyramowy; System pamięci agenta Hermes rozpakowuje ograniczoną pamięć rdzeniową i zamrożone migawki sesji w jednym produkcie.
Warstwa narzędzi to miejsce, gdzie asystent przestaje być podsumowaczem i zaczyna być oprogramowaniem. Wywoływanie funkcji OpenAI traktuje narzędzia jako funkcjonalność zdefiniowaną schematem, którą model może zdecydować się wywołać. Anthropic mówi to samo bardziej explicite: użycie narzędzi to kontrakt między Twoją aplikacją a modelem, a model nigdy nic nie wykonuje samodzielnie. MCP uogólnia ten kontrakt do protokołu klient-serwer, gdzie hosty łączą się z jednym lub więcej serwerami, które udostępniają narzędzia, prompty i zasoby — tę samą granicę opisaną krok po kroku w Serwer MCP w Go. LangChain i LlamaIndex swobodnie mieszczą się tutaj jako biblioteki orkiestracyjne: LangChain koncentruje się na wstępnie zbudowanej architekturze agenta i integracjach, podczas gdy LlamaIndex koncentruje się na dostępie do danych wzbogaconych o kontekst, silnikach zapytań i przepływach pracy.
Warstwa routingu istnieje, ponieważ „który model?” to nie jedyne pytanie. Potrzebujesz też „która ścieżka dostawcy, który najemca, który budżet, która klasa opóźnienia i który awaryjny?”. LiteLLM jest użyteczne, ponieważ jego oficjalne dokumenty są odświeżająco konkretne: ważony wybór, najmniej zajęty, routing oparty na opóźnieniu, oparty na koszcie i ograniczone awaryjne są to wszystko pierwsze klasowe wzorce. OpenClaw rozszerza routing w górę do izolacji kanałów i agentów, podczas gdy Hermes rozszerza go w dół do slotów modeli dla pracy głównej i pomocniczej, takiej jak kompresja, podsumowanie i routing narzędzi MCP. To jest właściwy model umysłowy: router wybiera więcej niż model, wybiera ścieżkę wykonania.
Warstwa obserwowalności to to, co zapobiega przekształceniu architektury w folklor. OpenTelemetry daje Ci abstrakcję śladu. LangSmith daje Ci widoczność od końca do końca nad krokami aplikacji LLM i obsługuje kształty wdrożeń chmurowych, hybrydowych i samodzielnie hostowanych. OpenLIT daje Ci obserwowalność AI natywną dla OpenTelemetry z opcjami instrumentacji zerokodowej i ręcznej, w tym obsługą LLM, frameworków agentów, baz danych wektorowych i GPU. Dla metryk produkcyjnych, śladów i wzorców SLO przez wnioskowanie i przepływy agentów, zobacz Obserwowalność dla Systemów LLM. Jeśli Twój asystent nie ma śladu na żądanie, spanu na wywołanie modelu i historii zdarzeń dla wykonania narzędzi, nie masz naprawdę architektury. Masz vibe.
Złap, wzbogać, odpowiedz
Sekwencja, która ciągle pojawia się w rzeczywistych systemach, to złap -> wzbogać -> odpowiedz -> nagraj. Różne frameworki owijają to inaczej, ale przepływ jest wystarczająco stabilny, aby traktować jako kręgosłup.
sequenceDiagram
participant U as Użytkownik lub Kanał
participant G as Brama lub UI
participant R as Router
participant M as Pamięć i Wyszukiwanie
participant L as LLM
participant T as Narzędzia lub MCP
participant O as Obserwowalność
U->>G: wiadomość, plik lub polecenie
G->>O: start głównego śladu
G->>R: żądanie + tożsamość + sesja + polityka
R->>M: załaduj stan sesji i pobierz kontekst
M-->>R: notatki, chunki, metadane
R->>L: prompt + kontekst + schematy narzędzi
L-->>R: odpowiedź lub wywołanie narzędzia
alt wywołanie narzędzia
R->>T: wykonaj narzędzie lub akcję MCP
T-->>R: wynik narzędzia
R->>L: wynik narzędzia + zaktualizowany kontekst
L-->>R: ostateczna odpowiedź
end
R->>M: utrwal zmiany sesji i kandydatów pamięci
R->>O: spany, metryki, zdarzenia eval
G-->>U: odpowiedź
Krok złap jest zazwyczaj ważniejszy, niż się wydaje. Zarówno OpenClaw, jak i Hermes umieszczają trwałą bramę przed asystentem, ponieważ wejście to nie tylko wprowadzanie tekstu. Obejmuje metadane kanału, tożsamości, autoryzację, granice sesji, wiadomości bezpośrednie, grupy, tiky cron i semantykę dostawy. Jeśli pominiesz tę warstwę i polegasz na abstrakcji surowego widżetu czatu, ostatecznie doczepisz ją z powrotem jako middleware ad hoc.
Krok wzbogać to miejsce, gdzie dojrzałe systemy różnią się od zabawek demo. Wyszukiwanie OpenAI i Wyszukiwanie Plików czynią wyszukiwanie jawnym przez magazyny wektorowe i wywołania wyszukiwania. LlamaIndex formalizuje ten sam wzorzec przez łączniki danych, indeksy, silniki zapytań i przepływy pracy. Hermes idzie dalej, dzieląc majątek modeli na sloty główne i pomocnicze, przenosząc pracę, taką jak kompresja, podsumowanie i routing, na mniejsze lub bardziej specjalizowane modele. To jest wzorzec projektowy wart skradzenia: nie wydawaj swoich najdroższych tokenów modelu na chory.
Krok odpowiedz to nie „generuj tekst”. To „zamknij bieżący cykl”. Jeśli model może odpowiedzieć bezpośrednio, robi to. Jeśli potrzebuje narzędzia, emituje strukturalne żądanie. Kontrakt użycia narzędzi Anthropic i przewodnik wywoływania funkcji OpenAI czynią to jawnym. Powód, dla którego to ma znaczenie architektonicznie, to to, że wyjścia obejmują teraz zarówno język, jak i przepływ sterowania. Twój obiekt odpowiedzi to częściowo proza, częściowo plan środowiska wykonawczego.
Krok nagraj to miejsce, gdzie pojawiają się semantyki spójności. Pinecone oddziela ścieżki zapisu i odczytu i przetwarza zapisy po trwałe potwierdzeniu. Pamięć Hermes jest wstrzykiwana jako zamrożona migawka na sesję, aby mogła zachować wydajność pamięci podręcznej prefiksów, co oznacza, że nowe zapisy nie pojawiają się automatycznie w bieżącym prompcie sesji. System Dreaming OpenClaw promuje tylko przeglądane, uziemione kandydaty do MEMORY.md, a jest opcjonalny, a nie zawsze włączony. Praktyczną lekcją jest to, że pamięć rzadko jest naprawdę odczyt-po-zapisie przez każdą warstwę. Musisz projektować dla stopniowej widoczności.
OpenClaw i Hermes jako systemy referencyjne
OpenClaw i Hermes są użytecznymi przypadkami referencyjnymi, ponieważ nie są tylko opakowaniami wokół jednego interfejsu API dostawcy. Oba prezentują asystenta jako system długotrwały z bramami, sesjami, narzędziami, pamięcią i wieloma backendami modeli.
| Kwestia architektoniczna | Mapowanie OpenClaw | Mapowanie Hermes |
|---|---|---|
| Wejście i powierzchnie | Samodzielnie hostowana brama łącząca aplikacje czatu i powierzchnie kanałów | Pojedyncza bramka wiadomości w tle łącząca wiele zewnętrznych platform |
| Orkiestracja | Kontrolny plan centrum bramowego dla kanałów i interakcji AI | Pętla AIAgent obsługująca składanie promptu, wybór dostawcy, dystrybucję narzędzi, ponowne próby i awarię |
| Routing | Routing wieloagentowy wiąże ruch przychodzący z izolowanymi agentami z oddzielnymi przestrzeniami roboczymi i sesjami | Sloty modeli główne i pomocnicze dzielą podstawowe wnioskowanie od kompresji, podsumowania, zatwierdzeń i routingu MCP |
| Pamięć | Pamięć oparta na plikach plus opcjonalna aktywna pamięć i tło promocji Dreaming | MEMORY.md i USER.md wstrzyknięte jako zamrożona migawka sesji, plus zewnętrzni dostawcy pamięci |
| Narzędzia i rozszerzenia | Wbudowane narzędzia, narzędzia sesyjne, wtyczki dostawców, niestandardowe i samodzielnie hostowane punkty końcowe | 40+ narzędzi, wbudowany klient MCP, zestawy narzędzi, umiejętności i wtyczki dostawców pamięci |
To mapowanie jest oparte na oficjalnych dokumentach i repozytoriach OpenClaw i Hermes. OpenClaw dokumentuje architekturę bramową, routing wieloagentowy, wsparcie dla niestandardowych i samodzielnie hostowanych dostawców, w tym vLLM i Ollama, opcjonalną aktywną pamięć i promocję opartą na Dreaming. Hermes dokumentuje bramkę wiadomości, centralną pętlę AIAgent, sloty modeli główne i pomocnicze, wbudowaną pamięć i natywną integrację MCP.
Moja nieco zdeterminowana interpretacja mówi, że oba systemy wypowiadają ten sam argument architektoniczny w różnych akcentach. OpenClaw jest mocno brama-pierwszy. Hermes jest mocno pętla-agenta-pierwszy. Ale oba odrzucają płytką ideę, że asystent to tylko „prompt plus model”. Modelują kanały, tożsamości, semantykę pamięci, powierzchnie narzędzi i heterogeniczność backendu jako kwestie pierwszej klasy. To jest dokładnie to, co powinna robić architektura produkcyjna.
Praktyczny stos hybrydowy inspirowany oboma systemami wygląda tak:
edge:
gateway: hermes lub openclaw
routing:
proxy: litellm
policy: świadomy opóźnień i budżetu
tenancy: zakres sesji i kanału
llm:
primary: openai responses lub anthropic messages
local_fallback: vllm
local_dev: ollama lub llama.cpp
memory:
session: sqlite lub postgres
semantic: pgvector lub weaviate
embeddings: wektory openai lub wektory ollama
tools:
contract: narzędzia schematu json plus mcp
examples: system plików, przeglądarka, wyszukiwanie sieci, wewnętrzne API
observability:
traces: opentelemetry
ai_dashboards: openlit lub langsmith
evals: evals openai plus specyficzne dla aplikacji zestawy regresji
Ten stos to rozsądny wzorzec wdrożenia, a nie blueprint narzucony przez dostawcę. Działa, ponieważ oficjalne interfejsy się zgadzają: OpenAI i Anthropic udostępniają interfejsy API zorientowane na narzędzia, vLLM i llama.cpp emulują punkty końcowe stylu dostawcy, Ollama obsługuje lokalne modele i wektory, MCP standaryzuje zewnętrzne narzędzia, LiteLLM obsługuje routing i awarię, a platformy zgodne z OpenTelemetry mogą śledzić całą ścieżkę.
Wzorce, tabele i kompromisy
Istnieje kilka powtarzalnych wzorców asystentów, które warto nazwać. Zarządzany asystent utrzymuje większość środowiska wykonawczego w interfejsach API dostawcy. Asystent wyszukiwania-pierwszy traktuje pamięć i wyszukiwanie jako główny wyróżnik. Asystent narzędzi-pierwszy zachowuje się bardziej jak operator niż czatbot. Asystent bramowy priorytetyzuje dostęp zawsze-włączony przez powierzchnie wiadomości. Siatka specjalistów dekomponuje pracę na wielu agentów lub trasy. Oficjalne dokumenty przez OpenAI, Anthropic, LlamaIndex, LiteLLM, OpenClaw i Hermes wspierają wersje tych wzorców, nawet jeśli nazywają je inaczej.
| Wzorzec | Co optymalizuje | Najlepszy przypadek użycia | Ukryty koszt |
|---|---|---|---|
| Zarządzany asystent | Szybkość dostawy | Wewnętrzne copiloty i boty wsparcia | Zamknięcie dostawcy i mniejsza kontrola nad szczegółami środowiska wykonawczego |
| Asystent wyszukiwania-pierwszy | Uziemione odpowiedzi na własne dane | Dokumentacja, wsparcie, praca z wiedzą | Jakość wyszukiwania staje się prawdziwym produktem |
| Asystent narzędzi-pierwszy | Działanie ponad rozmowę | Przepływy operacyjne, pobieranie danych, automatyzacje | Efekty uboczne, ponowne próby i zatwierdzenia stają się podstawowymi kwestiami |
| Asystent bramowy | Bezpośredni dostęp | Asystenci osobiste i zespołowe przez powierzchnie czatu | Skomplikowanie tożsamości, sesji i bezpieczeństwa |
| Siatka specjalistów | Podział pracy | Skomplikowane przepływy z rzeczywistymi granicami własności | Trudniejsze debugowanie, orkiestracja i projektowanie eval |
Ta tabela wzorców to syntez z dokumentów dostawców, dokumentów frameworków i systemów referencyjnych, a nie twierdzenie od jednego dostawcy.
| Kształt opcji | Typowe komponenty | Siła | Słabość |
|---|---|---|---|
| Zarządzany | OpenAI Responses lub Anthropic Managed Agents, hostowane wyszukiwanie plików lub magazyny wektorowe | Najszybsza ścieżka, mniej ruchomych części, hostowane narzędzia | Najniższa kontrola nad ścieżką danych i semantyką środowiska wykonawczego |
| Hybrydowy | API dostawcy plus samodzielnie hostowany router i magazyn wektorowy | Dobra równowaga między szybkością a kontrolą | Więcej kontraktów do utrzymania |
| Samodzielnie hostowany | vLLM lub llama.cpp lub Ollama, MCP, samodzielnie hostowana baza wektorowa, OTel | Silna prywatność i kontrola wdrożenia | Najwyższy ciężar operacyjny, nadmiar sprzętu i strojenia |
Noty tabeli: Hostowane Wyszukiwanie Plików OpenAI to zarządzane narzędzie, Anthropic oferuje zarządzane środowisko, Pinecone to zarządzana usługa wektorowa, podczas gdy vLLM, llama.cpp, Ollama, pgvector, Weaviate, Milvus, samodzielnie hostowany LangSmith i OpenLIT wspierają zarządzane lub hybrydowe operacje w różnym stopniu.
| Magazyn wektorowy | Kształt | Dlaczego zespoły go wybierają | Uwaga |
|---|---|---|---|
| Pinecone | Zarządzana usługa wektorowa | Silna prostota operacyjna i skalowalna zarządzana architektura | Zależność zewnętrzna i ekonomia usługi zarządzanej |
| Weaviate | Otwarta baza danych wektorowych | Wektory plus indeksy odwrotne i elastyczne wybory indeksów | Więcej strojenia klastra niż ścieżka tylko hostowana |
| pgvector | Rozszerzenie Postgres | Trzymaj wektory z danymi relacyjnymi i istniejącym stos SQL | Nie najlepszy dopasowanie dla każdego wysokiego skali ANN obciążenia |
| Milvus | Rozproszona baza danych wektorowych | Skala zaprojektowana specjalnie i ekosystem wokół zarządzanego Zilliz Cloud | Kolejny specjalistyczny magazyn danych do eksploatacji |
Noty tabeli: Pinecone dokumentuje zarządzany plan kontrolny i regionalne płaszczyzny danych. Weaviate dokumentuje wektory i indeksy odwrotne z wieloma typami indeksów wektorowych. pgvector dodaje dokładne i przybliżone wyszukiwanie najbliższych sąsiadów do Postgres. Milvus pozycjonuje się jako otwarta, wysokiej wydajności, skalowalna baza danych wektorowych, z Zilliz Cloud jako opcją zarządzaną.
| Opcja LLM | Styl interfejsu | Najlepszy w | Uwaga |
|---|---|---|---|
| OpenAI Responses | Odpowiedzi ze stanem plus wbudowane narzędzia | Szybki start, hostowane narzędzia, strukturalne pętle | Dziedziczysz abstrakcje specyficzne dla platformy |
| Anthropic Messages | Bezpośredni dostęp do modelu z jawnym kontraktem użycia narzędzi | Jasne granice narzędzi i dobra kontrola w niestandardowych pętlach | Więcej środowiska wykonawczego jest Twoją odpowiedzialnością, chyba że używasz Managed Agents |
| vLLM | Samodzielnie hostowane serwowanie zgodne z OpenAI i Anthropic | Wnioskowanie samodzielnie hostowane o wysokiej przepustowości | Rzeczywista infrastruktura i praca serwowania modeli |
| Ollama | Proste lokalne środowisko wykonawcze modeli i wektorów | Rozwój lokalny i małe samodzielnie hostowane stosy | Nie ta sama klasa systemu serwowania jak dostrojone rozproszone środowisko wykonawcze |
| llama.cpp | Lekki lokalny serwer z trasami zgodnymi z dostawcą | Krawędź, CPU-pierwszy, ograniczone środowiska | Robisz więcej ręcznego strojenia i dopasowywania możliwości |
Noty tabeli: OpenAI dokumentuje Responses jako swój zaawansowany interfejs dla odpowiedzi ze stanem i wbudowanych narzędzi. Anthropic dokumentuje Messages API i kontrakt użycia narzędzi oddzielnie od Managed Agents. vLLM udostępnia serwer zgodny z OpenAI plus wsparcie Messages API Anthropic. Ollama dokumentuje lokalne przepływy wektorów i modeli. llama.cpp dokumentuje czat zgodny z OpenAI, odpowiedzi i wektory, plus uzupełnienia czatu zgodne z Anthropic.
| Ograniczenie lub kompromis | Uprzedzenie do zarządzanego | Uprzedzenie do samodzielnie hostowanego | Praktyczne łagodzenie |
|---|---|---|---|
| Opóźnienie | Często lepsza pierwsza iteracja i mniej zadań strojenia lokalnego | Może wygrać, gdy model i dane są kolokowane i utrzymywane ciepłe | Używaj warstw routingu, gorących pamięci podręcznych i mniejszych modeli pomocniczych |
| Koszt | Łatwy start, zmienny w skali tokenów | Lepsza amortyzacja przy stabilnym wykorzystaniu | Mierz rzeczywisty ruch przed optymalizacją z instynktu |
| Prywatność i rezydencja | Prostszy dla danych niewrażliwych | Silniejsza kontrola dla danych wrażliwych i regulowanych | Używaj hybrydowych granic i trzymaj tylko to, co musi się przesuwać |
| Spójność | Hostowane narzędzia nadal mają semantykę stopniowej widoczności | Samodzielnie hostowane przepływy pamięci również stopniują i promują dane | Zdefiniuj zasady odczytu-po-zapisie jawnie według warstwy |
| Skalowanie | Mniejszy ból płaszczyzny kontrolnej | Lepsze dostosowanie do stabilnych, specjalistycznych obciążeń | Używaj batchingu, kolejkowania i izolowanych najemców |
| Debuggowalność | Łatwo przegapić nieprzejrzyste wewnętrzne dostawcy | Łatwo utonąć w samorobionej złożoności | Śledź każde żądanie i ewaluj każdą trasę |
Ta macierz kompromisów to wnioskowanie architektoniczne z oficjalnych dokumentów, a nie benchmark dostawcy. Wiersz spójności ma większe znaczenie, niż przyznaje wiele postów blogowych: Pinecone oddziela ścieżki zapisu i odczytu, Hermes zamraża pamięć w promptach startu sesji, a OpenClaw promuje trwałą pamięć przez stopniową recenzję. To oznacza, że „pamięć zaktualizowana” i „pamięć widoczna dla bieżącej odpowiedzi” to często różne prawdy.
Tryby awarii i łagodzenia
Większość asystentów nie zawodzi, ponieważ podstawowy model jest „zły”. Zawodzą, ponieważ otaczający system kłamie modelowi, głodzi go odpowiedniego kontekstu, pozwala narzędziom dryfować lub czyni debugowanie niemożliwym.
| Gdzie się psuje | Typowy objaw | Zwykła przyczyna | Łagodzenie |
|---|---|---|---|
| Składanie promptu | Pewna, ale nietrafiona odpowiedź | Za dużo nieistotnego kontekstu, słaba kolejność | Budżetuj kontekst, rerankuj, trzymaj kluczowe fakty na górze |
| Wyszukiwanie | Poprawny ton, błędne fakty | Zły chunking, przestarzały indeks, słabe filtry | Ewaljuj wyszukiwanie osobno, dodaj filtry metadanych i wyszukiwanie hybrydowe |
| Granica narzędzi | Błędne działanie lub zduplikowane działanie | Luźne schematy, ponowne próby bez idempotentności | Ścisłe schematy, klucze idempotentności, bramy zatwierdzeń |
| Routing | Dzikie niespójne zachowanie według żądania | Routing kosztu lub opóźnienia bez kontroli jakości | Dodaj lepkie sesje i ewalacje na trasę |
| Pamięć | Przestarzałe lub zatrute przywołanie | Nadgorliwe zapisy, słaba recenzja, przecieki między sesjami | Oddziel pamięć roboczą i trwałą, przeglądaj promocje |
| Obserwowalność | Brak pojęcia, co się stało | Brakujące ślady lub brak granularności spanów | Emituj główne i podspany dla wyszukiwania, modelu i wywołań narzędzi |
| Kontrola halucynacji | Prawdopodobne, ale nieobsługiwane twierdzenia | Słabe uziemienie lub brak walidacji | Walidacja dokumentów referencyjnych, kontrole samospójności, bramy eval |
Baza dowodów dla tej tabeli jest szeroka, ale spójna. Dokumenty narzędzi Anthropic czynią jasne, że użycie narzędzi to granica kontraktu. OpenAI Guardrails obejmuje wykrywanie halucynacji przeciwko referencyjnej bazie wiedzy przez Wyszukiwanie Plików. SelfCheckGPT pokazuje, że samospójność przez próbki może pomóc wykryć nieobsługiwane twierdzenia. Wyniki „Lost in the Middle” i wskazówki kontekstowe Anthropic wzmacniają tę samą lekcję operacyjną: więcej tokenów nie usuwa potrzeby kuracji kontekstu.
Preferowany stos łagodzenia może być nudny i powtarzalny: śledź każde żądanie, wersjonuj prompty, ewaluj wyszukiwanie niezależnie, trzymaj narzędzia idempotentne i uruchamiaj ewalacje regresji przed zmianą tras lub polityki pamięci. Dokumenty i repozytorium Evals OpenAI są bezpośrednie o przyczynie: bez evals jest trudno i czasochłonne zrozumienie, jak zmiany modelu lub promptu wpływają na Twój przypadek użycia. To dotyczy tyle samo routerów i wyszukiwania, co promptów.
Więcej do czytania
Jeśli chcesz wejść głębiej, oto najprzydatniejsze źródła pierwotne do trzymania otwartych podczas projektowania lub przeglądania architektury asystenta.
-
OpenAI: Przegląd Responses, Wywoływanie Funkcji, Używanie Narzędzi, Wyszukiwanie, Wyszukiwanie Plików, Evals i MCP dla zdalnych serwerów narzędzi.
-
Anthropic: Przegląd API, Użycie Narzędzi, kontrakt użycia narzędzi, Managed Agents, Okna Kontekstowe i łącznik MCP.
-
Samo MCP: Przegląd Architektury i Specyfikacja są warte czytania bezpośrednio, ponieważ wyjaśniają hosty, klientów, serwery, narzędzia, prompty, zasoby, transport i negocjacje możliwości czysto.
-
Frameworki i routing: Przegląd LangChain, dokumentacja wzbogacania kontekstu LlamaIndex, dokumentacja routingu LiteLLM, dokumentacja obserwowalności LangSmith.
-
Samodzielnie hostowane środowiska wykonawcze i systemy asystentów: vLLM, serwer llama.cpp, wektory Ollama, dokumentacja i repozytorium OpenClaw, dokumentacja i repozytorium Hermes.
-
Przechowywanie i obserwowalność: Pinecone, Weaviate, pgvector, Milvus, OpenTelemetry, OpenLIT.
-
Artykuły badawcze: Generowanie Wspomagane Wyszukiwaniem dla Zależnych od Wiedzy Zadań NLP, Lost in the Middle i SelfCheckGPT.