Главная / Статьи / Практические замечания: системы с несколькими агентами — это бэкенд-системы с недетерминистичным поведением

Практические замечания: системы с несколькими агентами — это бэкенд-системы с недетерминистичным поведением

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

1633 слов

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

Каждому элементу нужен контракт

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

{
  "status": "needs_clarification",
  "question": "Which dataset should be used?",
  "required_input": "dataset"
}
Domain workflow
  ↓
Structured clarification request
  ↓
User interaction layer
  ↓
User

Рассматривайте запросы как параметры конфигурации

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

Контекст — это ресурс

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

instructions
+ available capabilities
+ examples
+ conversation history
+ artifacts
+ previous outputs
+ workflow state

Один агент, одна роль

На этапе «Один агент, одна роль» сначала запишите условия контракта: необходимые входные данные, сигнал о успешном выполнении и действия при частичной неудаче. Такой список помогает избегать ошибок при последующих изменениях кода. Рядом с функциональными результатами записывайте время выполнения и стоимость токенов или запросов. Отображение затрат с самого начала предотвращает неожиданные счета при переходе от демо-среды к общедоступным средам. Выполняйте контрольные точки после дорогостоящих шагов. Функция возобновления работы не должна снова взимать плату за один и тот же вызов большой языковой модели, если оператор попытается выполнить последующий узел заново.

Ваша схема имеет состояние

При работе над этапом «Ваша графика имеет состояние» сначала запишите условия работы: необходимые входные данные, сигнал о успешном выполнении и действия при частичной неудаче. Такой чек-лист поможет сохранять честность при последующих изменениях кода. Храните конфигурацию вне кода приложения. Файлы с настройками окружения, хранилища секретов и флаги функций должны находиться в одном месте, чтобы операторы могли их проверять, не читая всю графику. Создавайте контрольные точки после дорогостоящих операций. Функция возобновления работы не должна снова взимать плату за один и тот же вызов большой языковой модели, когда оператор пытается выполнить более поздний узел.

Large artifact
  ↓
Graph state
  ↓
Step
  ↓
Step
  ↓
Step
Large artifact
      ↓
External storage
      ↓
Reference + metadata
      ↓
Graph state

Надежность — это в первую очередь инженерия

На этапе, когда работа над надежностью в основном является инженерной, сначала запишите условия работы: необходимые входные данные, сигнал о успешном выполнении и действия при частичной неисправности. Такой список помогает сохранять честность при последующих изменениях кода. Документируйте как успешный, так и путь восстановления работы. Повторные попытки, проверки человеком и обработка неработоспособных сообщений являются частью продукта, а не последующими доработками. Выполняйте контрольные точки после дорогостоящих операций. Система возобновления работы не должна снова взимать плату за один и тот же вызов большой языковой модели, когда оператор пытается выполнить последующий этап. На этапе, когда работа над надежностью в основном является инженерной, сначала запишите условия работы: необходимые входные данные, сигнал о успешном выполнении и действия при частичной неисправности. Такой список помогает сохранять честность при последующих изменениях кода. Рассматривайте этот этап как контракт между входными данными и проверенными выходными результатами. Дайте названия соответствующим элементам, определите критерии успешности и не допускайте безответственного частичного выполнения задач.

Выбор модели — это решение, связанное с проектированием системы

Наиболее эффективно работает этот этап выбора модели, когда он рассматривается как измеримая характеристика. Соберите один идеальный пример работы, один случай сбоя и запись о возврате к предыдущему состоянию перед расширением объёма работ. Записывайте временные показатели, а также стоимость токенов или запросов рядом с функциональными результатами. Отслеживание затрат на раннем этапе предотвращает неожиданные счёты при переходе от демо-версии к общедоступным средам. Установите лимиты на количество токенов за один ход и за сессию. Инструменты агентного типа активно расширяют контекст; жёсткие ограничения не позволяют демо-версиям превращаться в неожиданные счёты.

Инженерные решения для учёта недетерминизма

Инженерные решения, связанные с недетерминизмом, работают наилучшим образом, когда их рассматривают как измеримую структуру. Соберите один идеальный пример работы, один случай сбоя и запись о возврате к предыдущему состоянию перед расширением объёма работ. Храните конфигурацию вне кода приложения: файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, чтобы операторы могли их проверять, не читая весь код. Сохраняйте структуру графа простой и типизированной: вложенные структуры данных мешают понять, какой узел заполнил тот или иной поле, и приводят к нарушению последовательности выполнения после перерывов.

Чек-лист операционной работы

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

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

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

Фиксируйте версии зависимостей и записывайте хэш изображения, с использованием которого выполнялась демонстрация. Воспроизводимость важнее устного опыта сотрудников.

Рассматривайте этот этап как контракт между входными данными и проверенными результатами. Давайте названия файлам, определим критерии успеха и не допускайте молчаливого частичного выполнения задачи.

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

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

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

Примечание по усилению безопасности на этапе 0 работает лучше всего, когда рассматривается как измеримая область. Соберите один эталонный транскрипт, один пример сбоя и запись о возврате к предыдущему состоянию перед расширением объёма работ. Храните конфигурацию вне кода приложения; файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, которое операторы могут проверять, не читая весь код.

Подробность усиления безопасности 0/875: измеряйте время выполнения, класс ошибки и расход токенов для этого примечания, затем принимайте решение о сохранении изменений на основе фиксированного набора критериев, а не на основе устных замечаний.

На этапе 1 процедуры укрепления безопасности необходимо заранее определить входные данные, ответственного за выполнение шага и критерии завершения перед внесением изменений в код. Операторы должны иметь возможность перезапустить шаг, исходя из известной точки контроля, без необходимости угадывать скрытое состояние системы. Желательно использовать небольшие, тестируемые единицы кода вместо обширных скриптов. При сбое шага причина должна быть связана с конкретной областью ответственности, а не с запутанной структурой обработки данных.

Подробность укрепления безопасности 1/875: измерьте время выполнения, класс ошибки и количество потраченных токенов для данной процедуры, затем решите, следует ли сохранять изменения, опираясь на заранее установленный набор критериев, а не на субъективные оценки.

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

Подробности усиления безопасности 2/875: измерьте время выполнения, класс ошибки и расход токенов для данной записки, затем решите, следует ли сохранять изменение на основе фиксированного набора критериев, а не на основе устных оценок.

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

Подробности усиления безопасности 3/875: измерьте время обработки стены, класс ошибки и расход токенов для этой записи, затем решите, следует ли сохранять изменения на основе фиксированного набора вопросов, а не на основе единичных примеров.