Главная / Статьи / Практические замечания: приложения ИИ-агентов с самосовершенствованием — цикл обратной связи

Практические замечания: приложения ИИ-агентов с самосовершенствованием — цикл обратной связи

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

4517 слов

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

Agent produces answer
        ↓
LLM reflects on answer
        ↓
Agent learns

Агент не должен быть системой обучения

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

Agent made mistake
        ↓
Agent reflects
        ↓
"Always retrieve state policy"
        ↓
Write lesson to memory
        ↓
Future agents use lesson
Production failure
        ↓
Capture evidence
        ↓
Evaluate the run
        ↓
Identify recurring failure
        ↓
Generate lesson candidate
        ↓
Gather supporting and contradicting evidence
        ↓
Validate
        ↓
Canary test
        ↓
Activate

Три разных цикла обратной связи

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

+------------------------------------------------+
|                RUNTIME PLANE                   |
|                                                |
| plan -> act -> validate -> repair -> respond   |
+-----------------------+------------------------+
                        |
                        v
+------------------------------------------------+
|                LEARNING PLANE                  |
|                                                |
| evaluate -> diagnose -> cluster -> learn       |
+-----------------------+------------------------+
                        |
                        v
+------------------------------------------------+
|                CONTROL PLANE                   |
|                                                |
| test -> approve -> canary -> rollout -> rollback|
+------------------------------------------------+

1. Автономное восстановление во время выполнения

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

.

Tool failed
   ↓
Retry
   ↓
Retry
   ↓
Retry
User Request
     |
     v
Clarification Gate
     |
     v
Retrieve Context
     |
     v
Plan
     |
     v
Proposed Action
     |
     v
Action Guard
     |
     v
Execute Tool
     |
     v
Sanitize Tool Result
     |
     v
Validate Tool Result
     |
     v
Reason
     |
     v
Validate Answer
     |
     +------ uncertain ------> Critic
     |                           |
     |                           v
     |                      Policy Router
     |                     /    |    |    \
     |                  PASS REPAIR HUMAN FAIL
     |                           |
     +---------------------------+
     |
     v
Response

Проверяйте данные до выполнения действия, а не только после него

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

Результаты работы инструментов также считаются ненадежными входными данными

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

External Tool
     |
     v
Tool Result
     |
     v
Sanitizer
     |
     v
Validator
     |
     v
LLM

Разделяйте модуль проверки и модуль оценки

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

Schema correct?
Required fields present?
Allowed value?
Business invariant satisfied?
Evidence exists?
Policy satisfied?
Known contradiction detected?
{
  "correctness": 0.61,
  "groundedness": 0.92,
  "uncertainty": 0.73,
  "defects": [
    "missing_authoritative_evidence"
  ]
}
PASS
REPAIR
HUMAN REVIEW
SAFE FAIL

Ремонт должен изменить стратегию

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

Search policy
    ↓
Generate recommendation
    ↓
Fail validation
Search policy
    ↓
Generate recommendation
failure signature
strategy fingerprint
attempt ID
repair strategy
remaining budget
quality delta
same failure
+
same strategy
+
same evidence
=
do not retry

Определите, действительно ли ремонт помог

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

quality score = 0.54
quality score = 0.55
quality score = 0.56
delta = score_after_repair - score_before_repair
small delta
+
small delta
=
human review or safe failure

Участие человека — это стратегия маршрутизации, а не исключение

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

Human
                   |
       +-----------+-----------+
       |           |           |
    Approve       Edit       Reject
       |           |           |
     Continue    Validate    Safe Fail
              Request Repair
                    |
                    v
                  Repair

2. Опыт обучения в ходе выполнения задач

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

run_completed
      |
      v
Evaluation worker
      |
      v
Gather feedback
      |
      v
Reflection
      |
      v
Candidate lesson

Отзывы — это не правда

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

thumbs up != correct
thumbs down != incorrectuser correction != authoritative rule
Authoritative business outcome
          >
Expert human label
          >
Deterministic rule
          >
Calibrated evaluator
          >
User feedback
          >
Agent self-confidence

Некоторые из лучших отзывов поступают позже

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

Agent recommends payroll code
        |
        v
Payroll system accepts
        |
        v
Two weeks later
        |
        v
Audit rejects transaction

Управление потребностями в памяти

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

Память профиля

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

Эпизодическая память

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

Процедурная память

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

Observation
     ↓
Candidate lesson
     ↓
Supporting evidence
     +
Counterexamples
     ↓
Validation
     ↓
Active lesson

Изученная память никогда не должна переопределять авторитетные знания

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

Authoritative policy
        >
Tenant configuration
        >
Approved procedural lesson
        >
Episodic example
        >
User preference
        >
Unverified claim
        >
LLM reflection

Память может устаревать

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

candidate
   ↓
validated
   ↓
active
   ↓
pending revalidation
   ↓
deprecated
   ↓
retired

3. Плоскость офлайн-обучения

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

Runs
+
User Feedback
+
Human Reviews
+
Downstream Outcomes
+
Evaluation Scores
        |
        v
Failure Classification
        |
        v
Failure Clustering
missing state policy        178
wrong tool selected          63
bad tool argument            52
unsupported inference        41
output schema failure        11

Не каждая ошибка является проблемой с подсказками

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

Graph rule:
Policy retrieval must occur before this decision.
retrieval
tool schema
validator rule
routing
memory policy
clarification logic
action guard
model configuration

Оценка — основа цикла обратной связи

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

Correctness
Groundedness
Retrieval relevance
Completeness
Tool selection
Tool arguments
Trajectory efficiency
Repair effectiveness
Safety
Latency
Cost
Business outcome
Agent A
search -> answer
Agent B
search
-> wrong tool
-> retry
-> timeout
-> second search
-> repair
-> answer

Не доверяйте одному судье из числа ИИ-моделей

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

Deterministic checks
+
Business outcomes
+
Human labels
+
Multiple evaluator rubrics
+
LLM judges

Наблюдаемость является частью архитектуры обучения

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

Agent Run
 |
 +-- Retrieve Context
 |
 +-- Planner
 |
 +-- Tool Call
 |
 +-- Tool Result Validator
 |
 +-- Repair
 |
 +-- Critic
 |
 +-- Final Answer
LangGraph execution
MongoDB events
Vertex AI calls
Evaluation results
Human feedback
Downstream outcomes

Почему важны события агента с режимом добавления только

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

run_id
agent
release
outcome
latency
tool count
repair count
cost
run.started
retrieval.completed
tool.called
validation.failed
repair.started
human_review.requested
run.completed

Для обеспечения воспроизводимости требуется нечто большее, чем просто версия запроса

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

model
generation settings
graph version
tool definitions
validator rules
critic rubric
retrieval configuration
memory rules
security rules
agent_release_43
    |
    +-- graph v12
    +-- prompt v43
    +-- Gemini configuration
    +-- tools v17
    +-- validator v11
    +-- retrieval config v9
    +-- memory policy v5
    +-- evaluation suite v8

Плоскость управления: где улучшения дают доступ к продакшену

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

Candidate Improvement
        |
        v
Historical Replay
        |
        v
Regression Evaluation
        |
        v
Shadow Production
        |
        v
Canary
        |
        v
Progressive Rollout
        |
        v
Production

Канарейские версии необходимы и для извлечения уроков

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

Historical replay
     ↓
5% canary
     ↓
Measure outcome
     ↓
25%
     ↓
Measure
     ↓
100%

Итоговая архитектура

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

USER
                          |
                          v
+------------------------------------------------------+
|                    RUNTIME                           |
|                                                      |
| clarify -> retrieve -> plan -> action guard          |
|                            |                         |
|                            v                         |
|                           tool                       |
|                            |                         |
|                       sanitize                       |
|                            |                         |
|                      validate                        |
|                            |                         |
|                         reason                       |
|                            |                         |
|                    answer validate                   |
|                            |                         |
|                   critic if needed                   |
|                            |                         |
|                    policy router                     |
|                 /       |       \                    |
|              repair   human     pass                 |
+--------------------------+---------------------------+
                           |
                      agent events
                           |
                           v
+------------------------------------------------------+
|                    LEARNING                          |
|                                                      |
| traces + feedback + outcomes                         |
|            |                                         |
|            v                                         |
|         evaluate                                     |
|            |                                         |
|     classify failures                                |
|            |                                         |
|         cluster                                      |
|        /       \                                     |
|    lessons    improvement candidates                 |
+--------+----------------------+----------------------+
         |                      |
         v                      v
+------------------------------------------------------+
|                    CONTROL                           |
|                                                      |
| validate -> replay -> shadow -> canary -> rollout    |
|                                |                     |
|                              monitor                 |
|                                |                     |
|                             rollback                 |
+------------------------------------------------------+

Как это влияет на концепцию «самосовершенствующегося ИИ»

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

Observe
   ↓
Measure
   ↓
Diagnose
   ↓
Propose
   ↓
Test
   ↓
Promote
   ↓
Monitor

Практическая последовательность реализации

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

Эмо в общие среды.

Reliability
   ↓
Observability
   ↓
Evaluation
   ↓
Learning
   ↓
Controlled adaptation

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

production behavior
        ↓
evidence
        ↓
evaluation
        ↓
learning
        ↓
experimentation
        ↓
controlled production change

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

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

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

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

Записывайте время выполнения операций, а также стоимость токенов или запросов рядом с функциональными результатами. Ясность стоимости на ранних этапах предотвращает неожиданные счета при переходе от демо-среды к общедоступным средам.

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

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

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