Рабочие процессы против агентов: кто должен выбирать следующий шаг исследования?
Рабочие процессы против агентов в исследованиях: когда следует жестко задать путь, а когда модель должна выбирать следующее поисковое действие, с примером проектирования веб-инструментов на LangGraph и Anthropic.
Источники: Workflows vs. Agents: Who Should Choose the Next Step?
Исследовательский агент находит фразу «LangGraph поддерживает надежную работу», ставит галочку в таблице сравнения и рекомендует эту платформу. Вы запускаете локальное приложение — процесс прерывается, и ничего не возобновляется. Что пошло не так?
Было проигнорировано одно из условий. «Поддержка сохранения данных» — это не то же самое, что «сохранение данных реализовано в этом приложении». Полезный агент для сбора рыночной информации должен заметить эту разницу, прочитать не только названия функций, но и иногда изменить свой следующий вопрос в зависимости от полученных данных.
Ранее в этой серии основное внимание уделялось самому времени выполнения. Здесь же вопрос заключается в том, какую свободу имеет модель внутри этого времени выполнения.
Два способа исследования одного задания
Предположим, что задание требует определить связь между LangGraph и Deep Agents, а также выяснить, что необходимо Python-сервису для восстановления после перезапуска, используя только официальную документацию.
Один из подходов — это фиксированный процесс. Вы предоставляете нужные страницы, выделяете ключевые утверждения, сравниваете сопутствующие ограничения и составляете краткий отчет с ссылками. Это и есть рабочий процесс.
Другой подход позволяет модели самой выбирать следующий шаг. Она ищет информацию, открывает страницу, замечает отсутствующее условие и решает, что исследовать дальше. Это и есть агент.
И тот, и другой подход могут использовать модели, инструменты, ветки и возможность повторных попыток. Настоящее различие заключается в том, кто определяет путь. В примечании LangGraph о рабочих процессах и агентах эта грань четко обозначена.
Практическое правило:
- Документы и шаги уже известны: предпочтите рабочий процесс.
- Полезные источники появляются только в процессе исследования: попробуйте использовать агента с ограничениями.
- Результат должен быть предсказуемым, а процесс исследования — нет: сочетайте оба подхода.
Этот проект относится ко второй категории.
Когда результат исследования меняет сам вопрос
На первый взгляд краткое описание кажется соревнованием между фреймворками. Однако обзор Deep Agents показывает, что он работает на среде выполнения LangGraph. Таким образом, направление исследования меняется.
Старый вопрос: какой фреймворк победит?
Новое открытие: они работают на разных уровнях.
Лучший вопрос: какие задачи должны выполняться непосредственно в приложении, а какие — в более высокоуровневом инструменте?
Для обеспечения сохранности данных требуется такое же внимание. В документации описано настройка контрольных точек и идентификация потоков для локальных графов. Также различаются хранилища в памяти и те, что основаны на базе данных; отмечается, что Agent Server самостоятельно управляет инфраструктурой сохранности. См. разделы «Сохранность данных» и «Контрольные точки».
Полезный ответ учитывает все эти условия. Галочка в таблице функций — нет. Все, что приведено ниже, основано на прямом чтении документации, а не на записи диалога агента.
Форма системы: рабочий процесс, охватывающий исследователя
Приложение определяет задачу, допустимые источники, лимиты запросов и способ обработки результатов. В рамках этого процесса модель выбирает необходимые поиски и документы. Исследование остается гибким, а результаты предоставляются четко и ясно.
Участвующие компоненты:
- LangGraph выполняет внешние этапы приложения.
- SDK Anthropic предоставляет модели встроенные инструменты для поиска в Интернете и загрузки данных.
- Сохраняемый отчет фиксирует источники, записи цитат, статистику использования и ошибки инструментов.
Один вызов поставщика может включать несколько действий поиска и чтения. LangGraph управляет общим процессом, но не формирует каждый запрос самостоятельно. Один исследователь может легко контролировать ход работы. Глубокие агенты могут ждать, пока не потребуется дополнительное управление контекстом и делегирование задач. Изменение поставщика также потребует переписывания контрактов на использование инструментов и форматирование цитат.
Поиск находит страницы; загрузка их читает
Запрос использует оба инструмента:
tools = [
{
"type": "web_search_20250305",
"name": "web_search",
"max_uses": 3,
},
{
"type": "web_fetch_20250910",
"name": "web_fetch",
"max_uses": 4,
"max_content_tokens": 6000,
"citations": {"enabled": True},
},
]
Эти определения взяты из сопутствующего кода и не представляют собой полную программу. Выбранный вами модель должен поддерживать указанные в документации версии инструментов. Anthropic описывает оба инструмента в разделах Agents и Tools на своем сайте для разработчиков; там вы найдете актуальные спецификации по поиску и получению данных.
Дизайн определяется тремя ограничениями.
- Лимиты действуют за каждый запрос. Разрешается не более двух вызовов SDK, включая продолжение после паузы, причем повторные попытки SDK запрещены.
- Цитирование при получении данных включено намеренно, чтобы сохранялись записи о цитатах, а не только текст ответа.
- Код HTTP 200 не является доказательством наличия данных. API может вернуть успех, в то время как операция получения данных провалится, поэтому необходимо также проверять блоки с результатами работы инструмента.
Эти лимиты ограничивают количество запросов и используемых инструментов. Они не являются верхней границей расходов и не представляют собой строгого временного лимита.
Цитаты всё ещё могут помочь
Представьте отчет, утверждающий, что приложение автоматически восстанавливается после сбоя, с ссылкой на страницу, посвященную настройке сохранения данных. Ссылка действительна. Однако утверждение выходит за рамки имеющихся доказательств.
Базовая проверка включает четыре вопроса с вариантами ответа «да»/«нет»: завершилась ли работа модели нормально? Загрузила ли она хотя бы один документ? Вернула ли она текст ответа? Содержит ли окончательный ответ ссылки на исходные источники? В случае успешного прохождения статус становится needs_review; при неудаче по обязательной проверке — incomplete.
Ни один из этих статусов не означает, что утверждения верны. Ссылки могут указывать на индексы и местоположения фрагментов текста, а не на URL-адреса, причем прототип хранит эти записи, не определяя способ их соответствия.
Полезная привычка при анализе: возьмите одно существенное утверждение и откройте его источник. Какое условие, исключение или ограничение может изменить рекомендацию?
Увеличивайте сложность только тогда, когда можете измерить полученную выгоду
Длительные исследования могут требовать выборочной загрузки контекста, кратких заметок или отдельных исследователей для независимых направлений работы. Эти идеи встречаются в публикациях Anthropic о компактной организации контекста для агентов и о многоагентных исследовательских системах. В этом приложении это варианты для оценки, а не обновления, предустановленные по умолчанию.
Четыре проверки позволяют сделать справедливую первоначальную оценку:
- Объясняется ли здесь связь между LangGraph и Deep Agents?
- Сохраняются ли условия для восстановления после перезапуска?
- Фиксируется ли ситуация, когда загрузка документа не удалась?
- Признается ли, что одних только документов недостаточно для определения самого дешевого варианта развертывания?
Разместите процесс обработки предоставленных документов рядом с поиском, основанным на моделях. Оставьте модель и требования к ответам неизменными, четко определите, какие источники доступны каждой стороне, и ведите учет фактического использования. Оценивайте найденные результаты, отсутствующие условия и действительную степень неопределенности, а не только количество цитат.
Текущее состояние: десять тестов на интеграцию прошли с использованием реального SDK и среды выполнения LangGraph с имитацией HTTP-запросов. Живой запуск API еще не проводился, поскольку учетные данные не были настроены, поэтому отсутствуют показатели качества, задержек или затрат.
Перспективы
Теперь существует концепция, достойная тестирования: исследователь, способный следовать за доказательствами, встроенный в программное обеспечение, которое оставляет проверяемый след. Следующая проблема возникает, когда процесс прерывается на полпути. Сохранённые файлы ответов помогают понять, что произошло, но они не возобновляют обработку. В следующей части рассматривается возможность сохранения состояния выполнения и тестирование восстановления в новом процессе, при этом по-прежнему используется это приложение для веб-исследований.