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

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

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

Промышленный ИИ-ассистент — это не «LLM с промптом». Это система, которая принимает намерение, сохраняет состояние, принимает решения о поиске или выполнении действий и предоставляет достаточно информации о времени выполнения для отладки сбоев.

Именно этот системный взгляд исследует Клuster ИИ-систем в тех случаях, когда ассистенты выходят за рамки единого вызова модели.

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

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

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

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

Использование инструментов — это граница контракта, а не магия. OpenAI function calling, Anthropic tool use и MCP опираются на одну и ту же схему: модель выпускает структурированный запрос, какое-то время выполнения (runtime) выполняет его, а результат возвращается в разговор. Если эта граница нечеткая, ассистент становится неуклюжим.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Уровень Наблюдаемости — это то, что предотвращает превращение архитектуры в фольклор. OpenTelemetry дает вам абстракцию трассировки. LangSmith дает вам сквозную видимость шагов приложения LLM и поддерживает формы развертывания в облаке, гибридного и self-hosted. 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: спаны, метрики, события eval G-->>U: ответ

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

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

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

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

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

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

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

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

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

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

edge:
  gateway: hermes или openclaw

routing:
  proxy: litellm
  policy: осведомленная о задержке и бюджете
  tenancy: ограниченная сеансом и каналом

llm:
  primary: openai responses или anthropic messages
  local_fallback: vllm
  local_dev: ollama или llama.cpp

memory:
  session: sqlite или postgres
  semantic: pgvector или weaviate
  embeddings: openai embeddings или ollama embeddings

tools:
  contract: инструменты json schema плюс mcp
  examples: файловая система, браузер, веб-поиск, внутренние API

observability:
  traces: opentelemetry
  ai_dashboards: openlit или langsmith
  evals: openai evals плюс специфичные для приложения наборы регрессии

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

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

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

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

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

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

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

Примечания к таблице: OpenAI hosted File Search — это управляемый инструмент, Anthropic предлагает управляемый каркас, Pinecone — это управляемый векторный сервис, в то время как vLLM, llama.cpp, Ollama, pgvector, Weaviate, Milvus, LangSmith self-hosted и OpenLIT все поддерживают self-managed или гибридную работу в различных степенях.

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

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

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

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

Ограничение или компромисс Склонность к управляемому Склонность к self-hosted Практическое смягчение
Задержка Часто лучше первая итерация и меньше задач локальной настройки Может выиграть, когда модель и данные локализованы и хранятся теплыми Используйте маршрутные уровни, горячие кэши и более мелкие вспомогательные модели
Стоимость Легко начать, переменчиво на уровне токенов Лучшая амортизация при устойчивой утилизации Измеряйте реальный трафик перед оптимизацией по интуиции
Приватность и резидентность Проще для нечувствительных данных Сильнее контроль для чувствительных и регулируемых потоков Используйте гибридные границы и держите только то, что должно двигаться
Согласованность Хостированные инструменты все еще имеют семантики поэтапной видимости Self-hosted конвейеры памяти также поэтапно продвигают данные Явно определяйте правила read-after-write по уровню
Масштабирование Меньше боли с управляющей плоскостью Лучшая настройка под устойчивые, специализированные рабочие нагрузки Используйте пакетирование, очередь и изолированные тенанты
Отладимость Легко упустить неясные внутренние дела провайдера Легко утонуть в self-made сложности Трассируйте каждый запрос и оценивайте каждый маршрут

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

Режимы сбоя и смягчения

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

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

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

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

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

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

  • OpenAI: Responses Overview, Function Calling, Using Tools, Retrieval, File Search, Evals и MCP для удаленных серверов инструментов.

  • Anthropic: API Overview, Tool Use, контракт использования инструментов, Managed Agents, Context Windows и коннектор MCP.

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

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

  • Полномочия принятия решений: о том, какие решения модель должна принимать, рекомендовать или только информировать — пять ролей решений, маршрутизация на основе доверия к наименьшему компетентному уровню и шлюзы согласования, sized по blast radius — см. Решающие LLM: Когда модель должна решать — и когда не должна.

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

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

  • Self-hosted среды выполнения и системы ассистентов: vLLM, сервер llama.cpp, встраивания Ollama, документы и репозиторий OpenClaw, документы и репозиторий Hermes.

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

  • Исследовательские статьи: Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks, Lost in the Middle и SelfCheckGPT.

Подписаться

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