Архитектура ИИ-ассистента: LLM, память, инструменты, маршрутизация, наблюдаемость

Как на самом деле создаются серьезные ассистенты.

Содержимое страницы

Продолжающий работу ИИ-ассистент — это не «языковая модель с промптом». Это система, которая принимает намерения пользователя, сохраняет состояние, принимает решения о том, когда извлекать данные или выполнять действия, и предоставляет достаточно деталей времени выполнения для отладки сбоев.

Системный взгляд на эту архитектуру рассматривается в кластере «Системы ИИ», когда ассистенты выходят за рамки единого вызова модели.

OpenAI описывает агентов как приложения, которые планируют, вызывают инструменты, сотрудничают и поддерживают достаточное состояние для многоступенчатой работы, в то время как Anthropic рассматривает ту же проблему как управляемую среду, способную безопасно запускать файлы, команды, доступ к веб-ресурсам и код.

Наиболее чистая архитектура разделяет ответственность на пять слоев: LLM (языковая модель), Память, Инструменты, Маршрутизация и Наблюдаемость. Такое разделение соответствует возможностям, предоставляемым API основных провайдеров, протоколом MCP, локальными средами выполнения, такими как vLLM и llama.cpp, а также реальными системами ассистентов, такими как OpenClaw и Hermes.

иллюстрация в светлых тонах многоуровневой архитектуры ИИ-ассистента с линиями потока данных, узлами памяти и серверами, без текста.

Память следует рассматривать не просто как «более длинный контекст». Системы поиска превращают внешние знания в явную непараметрическую память — ту же область дизайна, которая подробно рассматривается в статье о Генерации, дополненной поиском (RAG) — и как руководства Anthropic по контексту, так и статья «Lost in the Middle» предупреждают, что простое впихивание большего количества токенов в контекст не гарантирует надежного запоминания.

Использование инструментов — это контрактная граница, а не магия. Вызов функций OpenAI, использование инструментов Anthropic и MCP опираются на один и тот же паттерн: модель генерирует структурированный запрос, среда выполнения выполняет его, а результат возвращается в разговор. Если эта граница размыта, ассистент становится ненадежным.

Моя позиция проста: начинайте с простого. Один оркестратор, один путь к долговременной памяти, одна трассировка на запрос и одна явная политика для выполнения инструментов. Многоагентные графы полезны, но только после того, как вы сможете объяснить случаи отказа одного агента без догадок.

Что такое система ИИ-ассистента

Практическое определение таково: система ИИ-ассистента — это среда выполнения, которая преобразует намерения пользователя в ответ или действие, комбинируя интерфейс модели, сборку контекста, выполнение инструментов, управление состоянием и телеметрию. Именно поэтому полезные документы — это не просто карточки моделей. Полезные документы — это справочники по API, контракты инструментов, руководства по поиску, документы по маршрутизации и трассировке. API Responses от OpenAI предоставляет взаимодействия с сохранением состояния, встроенные инструменты и вызов функций. API Claude от Anthropic предоставляет прямой доступ к Сообщениям, а также Управляемых Агентов. OpenClaw и Hermes идут на шаг дальше и показывают, что происходит, когда вы выводите эти возможности за стойкие шлюзы, каналы, сессии и память.

Другими словами, у системы ассистента контракт шире, чем у простого завершения чата. Хороший внутренний контракт выглядит примерно так:

AssistantRequest  = намерение пользователя + идентификатор + сессия + вложения + политика
AssistantResponse = ответ + действия + цитаты + изменения состояния + идентификатор трассировки

Этот контракт важен, потому что каждое производственное разногласие в конечном итоге сводится к одному из этих вопросов: какой контекст был видим, какой инструмент был выполнен, какая модель ответила, какая память была прочитана или записана, и где трассировка показывает, что система потратила время. OpenTelemetry определяет трассировки как путь запроса через приложение, что является именно той абстракцией, которая нужна серьезным ассистентам. LangSmith и OpenLIT затем специализируют эту идею для LLM, инструментов, векторных хранилищ и рабочих процессов агентов.

Основные компоненты и интерфейсы

Разделение компонентов, приведенное ниже, является наиболее устойчивым, как мне кажется. Кроме того, это разделение лучше всего согласуется с официальными API и открытыми средами выполнения, которые люди действительно используют.

Слой Основная ответственность Типичный интерфейс Примеры технологий
Слой LLM Рассуждать, генерировать, принимать решения, испускать структурированные вызовы Responses API, Messages API, конечные точки, совместимые с OpenAI или Anthropic OpenAI, Anthropic, vLLM, llama.cpp, Ollama
Слой памяти Хранить состояние сессии, долговременные заметки и searchable знания эмбеддинги, векторный поиск, инструменты чтения/записи памяти, API поиска Эмбеддинги и векторные хранилища OpenAI, Pinecone, Weaviate, pgvector, Milvus, память Hermes, память OpenClaw
Слой инструментов Читать данные и выполнять действия вне модели Инструменты JSON-schema, инструменты MCP, поиск по файлам и веб, нативные инструменты среды выполнения Вызов функций OpenAI, использование инструментов Anthropic, MCP, инструменты LangChain, инструменты запросов LlamaIndex
Слой маршрутизации Выбирать модель, бэкенд, политику и путь арендатора псевдонимы моделей, группы переключения, проверки работоспособности, бюджеты, привязки каналов LiteLLM, многоагентная маршрутизация OpenClaw, разрешение провайдеров в среде выполнения Hermes
Слой наблюдаемости Объяснять, что произошло и почему трассировки, спаны, журналы, метрики, прогоны оценок OpenTelemetry, LangSmith, OpenLIT

Таблица выше основана на официальных интерфейсах провайдеров, MCP, документации по векторным базам данных и документации по средам выполнения vLLM, llama.cpp, OpenClaw и Hermes.

Слой LLM должен хорошо выполнять три вещи: потреблять текущий рабочий контекст, испускать либо окончательный ответ, либо структурированный запрос на действие, и возвращать достаточно метаданных для поддержки повторных попыток и трассировки. API Responses от OpenAI явно разработан для взаимодействий с сохранением состояния, а также для встроенных инструментов и вызова функций. API Messages от Anthropic предоставляет тот же основной цикл через блоки tool_use и возвраты tool_result, в то время как Управляемые Агенты дают вам размещенную среду, если вы не хотите создавать цикл самостоятельно. Локальные среды выполнения, такие как vLLM и llama.cpp, важны, потому что они сохраняют знакомые интерфейсы в стиле провайдеров, позволяя вам размещать вывод внутри своей собственной среды.

Слой памяти следует мысленно разделить на три категории: рабочая память, долговременная символическая память и семантическая память, доступная для поиска. Эмбеддинги OpenAI возвращают векторы, которые можно индексировать и искать; Поиск файлов и документов OpenAI затем накладывает семантический и ключевой поиск поверх векторных хранилищ. Pinecone, Weaviate, pgvector и Milvus представляют четыре распространенные формы хранения: полностью управляемые, векторно-нативные с открытым исходным кодом, нативные для Postgres и распределенные векторные базы данных. Hermes и OpenClaw добавляют полезное напоминание о том, что не вся память должна находиться в векторном хранилище: заметки на основе файлов, проверенные продвижения и снимки сессии часто являются более честным дизайном. Системы памяти в ИИ-ассистентах отображает кросс-фреймворковую модель; Система памяти агента Hermes раскрывает ограниченную базовую память и замороженные снимки сессии в одном продукте.

Слой инструментов — это место, где ассистент перестает быть суммаризатором и начинает быть программным обеспечением. Вызов функций OpenAI рассматривает инструменты как функциональность, определенную схемой, которую модель может решить вызвать. Anthropic говорит то же самое более явно: использование инструментов — это контракт между вашим приложением и моделью, и модель никогда не выполняет ничего самостоятельно. MCP обобщает этот контракт в клиент-серверный протокол, где хосты подключаются к одному или нескольким серверам, которые предоставляют инструменты, промпты и ресурсы — ту же границу, которая описана пошагово в Сервер MCP на Go. LangChain и LlamaIndex комфортно уживаются здесь как библиотеки оркестровки: LangChain фокусируется на предварительно созданной архитектуре агентов и интеграциях, в то время как LlamaIndex фокусируется на доступе к данным с дополнением контекста, движках запросов и рабочих процессах.

Слой маршрутизации существует потому, что вопрос «какая модель?» никогда не является единственным. Вам также нужны «какой путь провайдера, какой арендатор, какой бюджет, какой класс задержки и какой резервный вариант?». LiteLLM полезен, потому что его официальная документация поразительно конкретна: взвешенный выбор, наименее загруженный, маршрутизация на основе задержки, маршрутизация на основе стоимости и ограниченные переключения являются первоклассными паттернами. OpenClaw расширяет маршрутизацию вверх до изоляции каналов и агентов, в то время как Hermes расширяет ее вниз до слотов моделей для основных и вспомогательных задач, таких как суммаризация, сжатие контекста и маршрутизация инструментов MCP. Это правильная ментальная модель: маршрутизатор выбирает не только модель, он выбирает полосу выполнения.

Слой наблюдаемости — это то, что предотвращает превращение архитектуры в фольклор. OpenTelemetry дает вам абстракцию трассировки. LangSmith дает вам сквозную видимость шагов приложения LLM и поддерживает облачные, гибридные и локальные формы развертывания. OpenLIT дает вам нативную наблюдаемость ИИ на базе OpenTelemetry с вариантами без кода и ручной инструментации, включая поддержку LLM, фреймворков агентов, векторных баз данных и GPU. Для производственных метрик, трассировок и паттернов SLO по всему выводу и рабочим процессам агентов см. Наблюдаемость для систем LLM. Если у вашего ассистента нет трассировки на запрос, нет спана на вызов модели и нет истории событий для выполнения инструментов, у вас еще нет архитектуры. У вас есть лишь ощущения.

Захват, обогащение, ответ

Последовательность, которая постоянно встречается в реальных системах: захват -> обогащение -> ответ -> запись. Разные фреймворки обертывают его по-разному, но поток достаточно стабилен, чтобы рассматривать его как основу.

sequenceDiagram participant U as Пользователь или Канал participant G as Шлюз или UI participant R as Маршрутизатор participant M as Память и Поиск participant L as LLM participant T as Инструменты или MCP participant O as Наблюдаемость U->>G: сообщение, файл или команда G->>O: начать корневую трассировку G->>R: запрос + идентификатор + сессия + политика R->>M: загрузить состояние сессии и извлечь контекст M-->>R: заметки, фрагменты, метаданные R->>L: промпт + контекст + схемы инструментов L-->>R: ответ или вызов инструмента alt вызов инструмента R->>T: выполнить инструмент или действие MCP T-->>R: результат инструмента R->>L: результат инструмента + обновленный контекст L-->>R: окончательный ответ end R->>M: сохранить изменения сессии и кандидатов в память R->>O: спаны, метрики, события оценки G-->>U: ответ

Шаг захвата обычно важнее, чем кажется. И OpenClaw, и Hermes помещают стойкий шлюз перед ассистентом, потому что входной трафик — это не просто ввод текста. Он включает метаданные канала, идентификаторы, авторизацию, границы сессии, прямые сообщения, группы, таймеры cron и семантику доставки. Если вы пропустите этот слой и полагаетесь на абстракцию виджета чата, вы в конечном итоге прикрутите его обратно как ad-hoc посредника.

Шаг обогатения — это место, где зрелые системы расходятся с демонстрационными примерами. Поиск и Поиск файлов OpenAI делают поиск явным через векторные хранилища и вызовы поиска. LlamaIndex формализует тот же паттерн через коннекторы данных, индексы, движки запросов и рабочие процессы. Hermes идет дальше, разделяя парк моделей на основные и вспомогательные слоты, перекладывая такие задачи, как сжатие, суммаризация и маршрутизация, на более маленькие или специализированные модели. Это паттерн дизайна, который стоит украсть: не тратьте токены самой дорогой модели на рутину.

Шаг ответа — это не «генерация текста». Это «закрытие текущего цикла». Если модель может ответить напрямую, она это делает. Если ей нужен инструмент, она испускает структурированный запрос. Контракт использования инструментов Anthropic и руководство по вызову функций OpenAI делают это явным. Причина, по которой это важно с архитектурной точки зрения, заключается в том, что выходные данные теперь включают как язык, так и поток управления. Ваш объект ответа — это частично проза, а частично план выполнения среды.

Шаг записи — это место, где проявляются семантики согласованности. Pinecone разделяет пути записи и чтения и обрабатывает записи после долговременного подтверждения. Память Hermes инъектируется как замороженный снимок для каждой сессии, чтобы сохранить производительность префиксного кэша, что означает, что новые записи не появляются автоматически в промпте текущей сессии. Система Dreaming от OpenClaw продвигает только проверенные, обоснованные кандидаты в MEMORY.md, и это опция, а не всегда включенная функция. Практический урок заключается в том, что память редко бывает истинно «чтение после записи» на каждом слое. Вам нужно проектировать для поэтапной видимости.

OpenClaw и Hermes как референсные системы

OpenClaw и Hermes являются полезными референсными случаями, потому что они не являются просто обертками вокруг одного API провайдера. Оба представляют ассистента как долгоживущую систему с шлюзами, сессиями, инструментами, памятью и несколькими бэкендами моделей.

Архитектурная проблема Отображение в OpenClaw Отображение в Hermes
Входной трафик и поверхности Локальный шлюз, соединяющий приложения чата и поверхности каналов Единый фоновый шлюз сообщений, соединяющий многие внешние платформы
Оркестрация Контрольная плоскость, ориентированная на шлюз, для каналов и взаимодействий ИИ Цикл AIAgent, обрабатывающий сборку промпта, выбор провайдера, диспетчирование инструментов, повторные попытки и переключение
Маршрутизация Многоагентная маршрутизация связывает входящий трафик с изолированными агентами с отдельными рабочими пространствами и сессиями Основные и вспомогательные слоты моделей разделяют базовое рассуждение на сжатие, суммаризацию, утверждения и маршрутизацию MCP
Память Память на основе файлов плюс опциональная активная память и фоновое продвижение Dreaming MEMORY.md и USER.md инъектируются как замороженный снимок сессии, плюс внешние провайдеры памяти
Инструменты и расширения Встроенные инструменты, инструменты сессии, плагин провайдеров, кастомные и локальные конечные точки 40+ инструментов, встроенный клиент MCP, наборы инструментов, навыки и плагины провайдеров памяти

Это отображение основано на официальной документации и репозиториях OpenClaw и Hermes. OpenClaw документирует архитектуру шлюза, многоагентную маршрутизацию, поддержку кастомных и локальных провайдеров, включая vLLM и Ollama, опциональную активную память и продвижение на основе Dreaming. Hermes документирует шлюз сообщений, центральный цикл AIAgent, основные и вспомогательные слоты моделей, встроенную память и нативную интеграцию MCP.

Моя слегка предвзятая интерпретация такова, что обе системы выдвигают один и тот же архитектурный аргумент с разными акцентами. OpenClaw сильно ориентирован на шлюз. Hermes сильно ориентирован на цикл агента. Но оба отвергают поверхностную идею о том, что ассистент — это просто «промпт плюс модель». Они моделируют каналы, идентификаторы, семантику памяти, поверхности инструментов и гетерогенность бэкендов как первоклассные проблемы. Именно это и должна делать производственная архитектура.

Практический гибридный стек, вдохновленный обеими системами, выглядит так:

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

Этот стек является обоснованным паттерном развертывания, а не прописанным вендором чертежом. Он работает, потому что официальные интерфейсы согласуются: OpenAI и Anthropic предоставляют ориентированные на инструменты API, vLLM и llama.cpp эмулируют конечные точки в стиле провайдеров, Ollama обрабатывает локальные модели и эмбеддинги, MCP стандартизирует внешние инструменты, LiteLLM обрабатывает маршрутизацию и переключение, а совместимые с OpenTelemetry платформы могут трассировать весь путь.

Паттерны, таблицы и компромиссы

Существует несколько повторяющихся паттернов ассистентов, которые стоит назвать. Управляемый ассистент держит большую часть среды выполнения внутри API провайдеров. Ассистент, ориентированный на поиск, рассматривает память и поиск как главное отличие. Ассистент, ориентированный на инструменты, ведет себя больше как оператор, чем как чат-бот. Ассистент шлюза приоритизирует постоянный доступ через поверхности сообщений. Специализированная сеть декомпозирует работу на нескольких агентов или маршруты. Официальная документация OpenAI, Anthropic, LlamaIndex, LiteLLM, OpenClaw и Hermes поддерживает версии этих паттернов, даже если они называют их по-разному.

Паттерн На что он оптимизирован Лучший случай использования Скрытая стоимость
Управляемый ассистент Скорость доставки Внутренние ко-пилоты и боты поддержки Привязка к провайдеру и меньший контроль над деталями среды выполнения
Ассистент, ориентированный на поиск Обоснованные ответы на основе собственных данных Документация, поддержка, интеллектуальная работа Качество поиска становится реальным продуктом
Ассистент, ориентированный на инструменты Действие, а не разговор Операционные рабочие процессы, выгрузка данных, автоматизация Побочные эффекты, повторные попытки и утверждения становятся ключевыми проблемами
Ассистент шлюза Вездесущий доступ Персональные и командные ассистенты через поверхности чата Сложность идентификаторов, сессий и безопасности
Специализированная сеть Разделение труда Сложные рабочие процессы с реальными границами владения Более сложная отладка, оркестровка и дизайн оценок

Паттерн специализированной сети перерастает в отдельную инженерную дисциплину по мере роста количества агентов. Для шести канонических паттернов координации — оркестратор-работник, последовательный конвейер, веерный выход, иерархический, рой и сеть — с конкретными режимами отказа и рамками принятия решений для продакшена, см. Паттерны оркестровки многоагентных систем.

Эта таблица паттернов является синтезом из документации провайдеров, документации фреймворков и референсных систем, а не утверждением какого-либо одного вендора.

Форма опции Типичные компоненты Сила Слабость
Управляемая OpenAI Responses или Anthropic Managed Agents, размещенный поиск файлов или векторные хранилища Самый быстрый путь, меньшее количество движущихся частей, размещенные инструменты Наименьший контроль над путем данных и семантикой среды выполнения
Гибридная API провайдера плюс локальный маршрутизатор и векторное хранилище Хороший баланс скорости и контроля Больше контрактов для поддержки
Локальная vLLM или llama.cpp или Ollama, MCP, локальная векторная база данных, OTel Сильная конфиденциальность и контроль развертывания Наибольшая операционная нагрузка, накладные расходы на оборудование и настройку

Примечания к таблице: Размещенный поиск файлов OpenAI — это управляемый инструмент, Anthropic предлагает управляемую среду, Pinecone — управляемая векторная служба, в то время как vLLM, llama.cpp, Ollama, pgvector, Weaviate, Milvus, локальный LangSmith и OpenLIT поддерживают самостоятельное или гибридное управление в той или иной степени.

Векторное хранилище Форма Почему команды выбирают его На что обратить внимание
Pinecone Управляемая векторная служба Сильная операционная простота и масштабируемая управляемая архитектура Внешняя зависимость и экономика управляемой службы
Weaviate Векторная база данных с открытым исходным кодом Векторные и инвертированные индексы и гибкий выбор индексов Больше настройки кластера, чем путь только для хостинга
pgvector Расширение Postgres Храните векторы с реляционными данными и существующим стеком SQL Не лучший вариант для каждой высокостатной задачи ANN
Milvus Распределенная векторная база данных Специализированный масштаб и экосистема вокруг управляемого Zilliz Cloud Еще один специализированный хранилище данных для управления

Примечания к таблице: Pinecone документирует управляемую контрольную плоскость и региональные плоскости данных. Weaviate документирует векторные и инвертированные индексы с несколькими типами векторных индексов. pgvector добавляет точный и приблизительный поиск ближайших соседей в Postgres. Milvus позиционирует себя как высокопроизводительную масштабируемую векторную базу данных с открытым исходным кодом, с Zilliz Cloud как управляемым вариантом.

Опция LLM Стиль интерфейса Лучшее в На что обратить внимание
OpenAI Responses Состоятельные ответы плюс встроенные инструменты Быстрый старт, размещенные инструменты, структурированные циклы Вы наследуете специфичные для платформы абстракции
Anthropic Messages Прямой доступ к модели с явным контрактом использования инструментов Четкие границы инструментов и хороший контроль в кастомных циклах Больше среды выполнения является вашей ответственностью, если вы не используете Managed Agents
vLLM Локальный сервер, совместимый с OpenAI и Anthropic Высокопроизводительный локальный вывод Реальная инфраструктура и работа по обслуживанию модели
Ollama Простая локальная среда выполнения модели и эмбеддингов Локальная разработка и небольшие локальные стеки Не тот же класс системы обслуживания, что и настроенная распределенная среда выполнения
llama.cpp Легкий локальный сервер с маршрутами, совместимыми с провайдерами Края, CPU-first, ограниченные среды Вам нужно больше ручной настройки и соответствия возможностей

Примечания к таблице: OpenAI документирует Responses как свой продвинутый интерфейс для состоятельных ответов и встроенных инструментов. Anthropic документирует API Messages и контракт использования инструментов отдельно от Managed Agents. vLLM предоставляет сервер, совместимый с OpenAI, плюс поддержку API Messages Anthropic. Ollama документирует локальные рабочие процессы эмбеддингов и моделей. llama.cpp документирует чат, ответы и маршруты эмбеддингов, совместимые с OpenAI, плюс чат-завершения, совместимые с Anthropic.

Ограничение или компромисс Склонность к управляемой Склонность к локальной Практическое смягчение
Задержка Часто лучшая первая итерация и меньше задач локальной настройки Может выиграть, когда модель и данные расположены вместе и согреваются Используйте уровни маршрутизации, горячие кэши и меньшие вспомогательные модели
Стоимость Легко начать, переменная в масштабе токенов Лучшая амортизация при стабильной утилизации Измеряйте реальный трафик перед оптимизацией по инстинкту
Конфиденциальность и резидентность Проще для несекретных данных Более сильный контроль для секретных и регулируемых потоков Используйте гибридные границы и храните только то, что должно двигаться
Согласованность Размещенные инструменты все еще имеют семантику поэтапной видимости Локальные конвейеры памяти также готовят и продвигают данные Определите правила «чтения после записи» явно по слоям
Масштабирование Меньше боли с контрольной плоскостью Лучшая настройка для стабильных, специализированных рабочих нагрузок Используйте пакетную обработку, очереди и изолированных арендаторов
Отлаживаемость Легко упустить непрозрачные внутренние механизмы провайдера Легко утонуть в самоделанной сложности Трассируйте каждый запрос и оценивайте каждый маршрут

Эта матрица компромиссов является архитектурным выводом из официальной документации, а не бенчмарком вендора. Строка согласованности важнее, чем многие блоги признают: Pinecone разделяет пути записи и чтения, Hermes замораживает память в промпты начала сессии, а OpenClaw продвигает долговременную память через поэтапный обзор. Это означает, что «память обновлена» и «память видна текущему ответу» часто являются разными истинами.

Режимы отказа и смягчения

Большинство ассистентов не терпят неудачи из-за того, что базовая модель «плохая». Они терпят неудачу, потому что окружающая система обманывает модель, лишает ее правильного контекста, позволяет инструментам дрейфовать или делает отладку невозможной.

Где ломается Типичный симптом Обычная причина Смягчение
Сборка промпта Уверенный, но неточный ответ Слишком много нерелевантного контекста, плохой порядок Бюджет контекста, переупорядочивание, держите ключевые факты вверху
Поиск Правильный тон, неправильные факты Плохое разбиение на фрагменты, устаревший индекс, слабые фильтры Оценивайте поиск отдельно, добавляйте метаданные фильтры и гибридный поиск
Граница инструмента Неправильное действие или дублирование действия Рыхлые схемы, повторные попытки без идемпотентности Тightly схемы, ключи идемпотентности, шлюзы утверждения
Маршрутизация Дикий несоответствующий поведение по запросу Маршрутизация по стоимости или задержке без контроля качества Добавьте липкие сессии и оценки по маршруту
Память Устаревшее или отравленное воспоминание Чрезмерно жадные записи, слабый обзор, утечка между сессиями Разделяйте рабочую и долговременную память, обзоры продвижений
Наблюдаемость Нет понятия, что произошло Отсутствие трассировок или нет гранулярности спанов Испускайте корневые и под-спаны для поиска, модели и вызовов инструментов
Контроль галлюцинаций Правдоподобные, но необоснованные утверждения Слабое обоснование или отсутствие валидации Валидация справочных документов, проверки само-согласованности, шлюзы оценок

База доказательств для этой таблицы широка, но последовательна. Документация инструментов Anthropic ясно дает понять, что использование инструментов — это контрактная граница. Ограждения OpenAI включают обнаружение галлюцинаций по справочной базе знаний через Поиск файлов. SelfCheckGPT показывает, что само-согласованность по образцам может помочь обнаружить необоснованные утверждения. Результаты «Lost in the Middle» и руководство Anthropic по контексту оба усиливают тот же операционный урок: больше токенов не устраняют необходимость в кураторстве контекста.

Предпочтительный стек смягчения может быть скучным и повторяющимся: трассируйте каждый запрос, версионируйте промпты, оценивайте поиск независимо, держите инструменты идемпотентными и запускайте регрессионные оценки перед изменением маршрутов или политики памяти. Документация и репозиторий оценок OpenAI прямо говорят, почему: без оценок трудно и затратно понять, как изменения модели или промпта влияют на ваш случай использования. Это применимо так же к маршрутизаторам и поиску, как и к промптам.

Дополнительное чтение

Если вы хотите углубиться, то вот самые полезные первоисточники, которые следует держать открытыми при проектировании или обзоре архитектуры ассистента.

  • OpenAI: Обзор Responses, Вызов функций, Использование инструментов, Поиск, Поиск файлов, Оценки и MCP для удаленных серверов инструментов.

  • Anthropic: Обзор API, Использование инструментов, контракт использования инструментов, Управляемые Агенты, Контекстные окна и коннектор MCP.

  • Сам MCP: Обзор архитектуры и Спецификация заслуживают прямого чтения, потому что они чисто объясняют хосты, клиенты, серверы, инструменты, промпты, ресурсы, транспорты и переговоры о возможностях. Для практического сравнения MCP с протоколом Agent2Agent и когда многоагентная система нуждается в обоих слоях, см. A2A vs MCP: Действительно ли ИИ-агентам нужны оба протокола? и для самих концепций A2A — Карточки Агентов, жизненный цикл задач, сообщения, части и артефакты — см. Что такое протокол A2A? Объяснение Карточек Агентов и Задач.

  • Фоновые и проактивные ассистенты: слой инструментов — это только часть того, как ассистенты действуют. Для того, как сделать ассистента, который наблюдает, решает и действует самостоятельно — планировщики, рабочие на основе очередей, протоколы претензий, долговременные рабочие процессы и семантическое опросы — см. Агенты опроса в ИИ-ассистентах: 11 паттернов реализации.

  • Протокол A2A и принятие: когда агенты развернуты независимо и должны сотрудничать через границы владения, A2A становится актуальным. Для практического взгляда 2026 года на то, где A2A действительно имеет поддержку, вопросы безопасности, которые он вызывает, и рамки принятия решений о том, когда его применять, см. Протокол Google A2A в 2026 году: Принятие, Гипс и Реальность. Когда эти агенты обмениваются долгоживущими задачами, а не одиночными ходами чата, Потоковая передача A2A и асинхронные задачи для долгоживущих рабочих процессов агентов охватывает SSE, push и дизайн input_required на границе протокола.

  • Фреймворки и маршрутизация: Обзор LangChain, документация LlamaIndex по дополнению контекста, документация LiteLLM по маршрутизации, документация LangSmith по наблюдаемости.

  • Локальные среды выполнения и системы ассистентов: vLLM, сервер llama.cpp, эмбеддинги Ollama, документация и репозиторий OpenClaw, документация и репозиторий Hermes.

  • Хранение и наблюдаемость: Pinecone, Weaviate, pgvector, Milvus, OpenTelemetry, OpenLIT.

  • Исследовательские статьи: Генерация, дополненная поиском, для задач NLP, интенсивно использующих знания, Lost in the Middle и SelfCheckGPT.

Подписаться

Получайте новые материалы про системы, инфраструктуру и AI engineering.