Практические заметки: Инжиниринг контекста агентов: пошаговое руководство для машин
Пошаговое руководство по практическим заметкам: Инжиниринг контекста агентов: пошаговое руководство для машин, включающее контракты, проверки и готовые блоки кода для команд, использующих эту модель.
В следующих заметках описывается практический подход к изучению темы «Инжиниринг агентного контекста: пошаговое руководство для инженеров машинного обучения». Основное внимание уделяется контрактам, проверкам и шаблонам кода, а не мотивирующим аспектам. На этапе обзора сначала запишите контракт: необходимые входные данные, сигнал успешного выполнения и действия при частичной неудаче. Такой список поможет сохранять честность при последующих изменениях кода. Документируйте как успешный, так и восстановительный пути работы. Повторные попытки, проверки человеком и обработка неработоспособных сообщений являются частью продукта, а не элементами последующей доработки.
1. Начните с основного вопроса: что такое контекст?
Этап «Начните с 1» работает наилучшим образом, если рассматривать его как измеримую поверхность. Соберите один идеальный пример выполнения, один случай сбоя и записку о возврате к предыдущему состоянию перед расширением объема работ. Предпочитайте небольшие, тестируемые единицы кода вместо обширных скриптов. Когда какой-то шаг сбивается, причина сбоя должна указывать на конкретную ответственность, а не на запутанную цепочку операций. Сохраняйте структуру графа простой и типизированной. Вложенные структуры данных скрывают информацию о том, какой узел заполнил тот или иной поле, и мешают возобновлению работы после прерываний.
Context → LLM → Output
User question
+
Model configuration
+
Recent evaluation metrics
+
Training dataset statistics
+
Recent production images
+
Deployment history
+
Data distribution statistics
+
Recent code changes
↓
LLM
↓
Diagnosis
2. Инжиниринг подсказок — это не инжиниринг контекста
На этом этапе инжиниринга промптов лучше всего работает, когда его рассматривают как измеримую основу. Соберите один идеальный пример ответа, один случай сбоя и запись о возврате к предыдущему состоянию перед расширением объёма задачи. Рассматривайте этот этап как контракт между входными данными и проверенными результатами. Дайте названия создаваемым элементам, определите критерии успеха и не соглашайтесь на молчаливое частичное выполнение задачи. Установите лимит токенов на каждый ход и на всю сессию. Инструменты агентов активно расширяют контекст; строгие ограничения предотвращают появление неожиданных счетов.
Инжиниринг промптов
Этап инжиниринга промптов работает наилучшим образом, когда его рассматривают как измеримую основу. Соберите один идеальный пример взаимодействия, один случай сбоя и записку о возврате к предыдущему состоянию перед расширением объёма работ. Записывайте время выполнения и стоимость токенов или запросов рядом с функциональными результатами. Отслеживание затрат на раннем этапе предотвращает неожиданные счёты при переходе от демо-версии к общедоступным средам. Установите лимиты на количество токенов за один ход и за сессию. Инструменты агентного типа активно расширяют контекст; жёсткие ограничения не позволяют демо-версиям превращаться в неожиданные счёты. Этап инжиниринга промптов работает наилучшим образом, когда его рассматривают как измеримую основу. Соберите один идеальный пример взаимодействия, один случай сбоя и записку о возврате к предыдущему состоянию перед расширением объёма работ. Документируйте как успешный путь выполнения, так и пути восстановления. Повторные попытки, проверки человеком и обработка неработающих сообщений являются частью продукта, а не этапом последующей доработки.
You are an expert ML engineer.
Analyze the following anomaly detection results
and identify the most likely causes of the performance drop.
Consider:
1. Data distribution shift
2. Model degradation
3. Label quality
4. Hardware changes
5. Preprocessing changes
Инжиниринг контекста
На этапе проектирования контекста необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Лучше использовать небольшие, тестируемые единицы вместо обширных скриптов. При сбое шага он должен указывать на конкретную причину, а не на сложную структуру обработки данных. Внедрять человеческое утверждение для операций, связанных с расходованием средств или изменением производственных данных. Конфигурация на этапе компиляции не гарантирует полноты решения бизнес-задач.
┌──────────────┐
│ User Request │
└──────┬───────┘
↓
┌──────────────┐
│ Agent State │
└──────┬───────┘
↓
┌────────────┴────────────┐
↓ ↓
Retrieval Tools
↓ ↓
Documentation Metrics / DB
└────────────┬────────────┘
↓
┌──────────────┐
│ Context │
└──────┬───────┘
↓
LLM
↓
Action
3. Почему контекст становится сложным для агентов
В контексте метода «3 почему» этот этап представляет собой стадию, на которой необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии системы. Рассматривайте этот этап как контракт между входными данными и проверенными результатами. Дайте названия создаваемым элементам, определите критерии успеха и не допускайте молчаливого частичного завершения работ. Обеспечьте утверждение человеком тех операций, которые влекут за собой расходы денег или изменение производственных данных. Настройки, сделанные во время компиляции, не гарантируют полноты выполнения бизнес-задач.
User → LLM → Answer
User
↓
Agent
↓
Search documentation
↓
Read results
↓
Call database
↓
Analyze data
↓
Call another tool
↓
Observe result
↓
Modify hypothesis
↓
Search again
↓
Take action
↓
Final answer
4. Четыре основных проблемы контекста
На этапе Четырех фундаментальных принципов необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Записывайте время выполнения и стоимость токенов или запросов рядом с функциональными результатами. Отображение стоимости заранее предотвращает неожиданные счета при переходе от демо-среды к общедоступным средам. Внедряйте человеческое утверждение для операций, связанных с тратой денег или изменением производственных данных. Подключение компонентов во время компиляции не гарантирует полноты решения для бизнеса. На этапе Четырех фундаментальных принципов необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Документируйте одновременно «идеальный путь» и пути восстановления. Повторные попытки, человеческое утверждение и обработка некорректных сообщений являются частью продукта, а не элементами последующей доработки.
Проблема 1: Отсутствие контекста
При работе над этапом «Отсутствие контекста» в Проблеме 1 сначала запишите условия работы: необходимые входные данные, сигнал о успешном выполнении и последствия частичной неудачи. Такой чек-лист поможет сохранять честность при последующих изменениях кода. Предпочитайте небольшие, тестируемые единицы кода вместо обширных скриптов. Если какой-то шаг не сработает, причина неудачи должна указывать на конкретную ответственность, а не на запутанную цепочку операций. Выполняйте контрольные проверки после дорогостоящих шагов. Механизм возобновления работы не должен повторно оплачивать один и тот же вызов большой языковой модели, когда оператор пытается выполнить следующий элемент цепочки.
Agent:
"The model may be suffering from data drift."
Reality:
The model was recently changed from ViT-B to ViT-L.
Проблема 2: Неактуальный контекст
При работе над этапом «Нерелевантный контекст» в задаче 2 сначала запишите контракт: необходимые входные данные, сигнал о успехе и то, что происходит при частичной неудаче. Такой чек-лист помогает сохранять честность при последующих изменениях кода. Рассматривайте этот этап как контракт между входными данными и проверенными выходными данными. Дайте названия результатам обработки, определите критерии успеха и не допускайте молчаливого частичного выполнения задачи. Выполняйте контрольные точки после дорогостоящих операций. Система возобновления работы не должна снова оплачивать один и тот же вызов большой языковой модели, когда оператор пытается выполнить следующий этап.
Query
↓
Vector database
↓
50 documents
↓
LLM
Задача 3: Устаревший контекст
При работе над этапом «Устаревший контекст» задачи 3 сначала запишите условия использования: необходимые входные данные, сигнал о успешном выполнении и действия при частичной неудаче. Такой чек-лист поможет сохранять честность при последующих изменениях кода. Запишите также время выполнения и стоимость токенов или запросов рядом с функциональными результатами. Отображение затрат на раннем этапе предотвращает неожиданные счета при переходе с демо-среды в общедоступные среды. Выполняйте контрольные точки после дорогостоящих шагов. Функция возобновления работы не должна снова взимать плату за один и тот же вызов большой языковой модели, когда оператор пытается выполнить последующий узел заново. При работе над этапом «Устаревший контекст» задачи 3 сначала запишите условия использования: необходимые входные данные, сигнал о успешном выполнении и действия при частичной неудаче. Такой чек-лист поможет сохранять честность при последующих изменениях кода. Документируйте одновременно успешный сценарий работы и сценарий восстановления. Повторные попытки, проверки человеком и обработка неработающих сообщений являются частью продукта, а не элементами последующей доработки.
Current production model:
anomaly-detector-v4
Old documentation:
anomaly-detector-v2
Задача 4: Плохо структурированный контекст
Этап решения задачи 4 с плохо структурированным контекстом наилучшим образом работает, когда его рассматривают как измеримую поверхность. Соберите один идеальный пример работы, один случай сбоя и записку о возврате к предыдущему состоянию перед расширением объема работ. Предпочитайте небольшие, проверяемые единицы кода вместо обширных скриптов. Когда какой-то шаг сбивается, причина сбоя должна указывать на конкретную ответственность, а не на запутанную цепочку операций. Сохраняйте простую и типизированную структуру графа. Вложенные структуры данных маскируют информацию о том, какой узел заполнил тот или иной поле, и мешают возобновлению работы после прерываний.
Accuracy: 0.91
Accuracy: 0.87
Accuracy: 0.84
Model: anomaly-detector-v4
Dataset: Production
Metric: Image-level AUROC
Previous week: 0.91
Current week: 0.84
Change: -7.7 percentage pointsDeployment:
- Version: v4.2
- Date: 2026-08-12
- Preprocessing: resize=336
5. Полезная когнитивная модель: контекст как поток данных
Этап «5 A Useful Mental» работает наилучшим образом, если рассматривать его как измеримую поверхность. Соберите один пример успешного результата, один случай неудачи и запись о возврате к предыдущему состоянию перед расширением объема работ. Рассматривайте этот этап как контракт между входными данными и проверенными выходными результатами. Дайте названия создаваемым элементам, определите критерии успеха и не соглашайтесь на молчаливое частичное выполнение задачи. Установите лимиты на количество операций за раз и за сессию. Инструменты агентов активно расширяют контекст; жесткие ограничения предотвращают появление неожиданных счетов.
Raw Data
↓
Cleaning
↓
Feature Extraction
↓
Transformation
↓
Model
↓
Prediction
Raw Information
↓
Retrieval
↓
Filtering
↓
Ranking
↓
Transformation
↓
Compression
↓
Context Assembly
↓
LLM
↓
Action
↓
New Observation
↓
Context Update
6. Шаг 1 — Определение цели агента
Этап «6 Шагов 1 Определение» работает наилучшим образом, когда его рассматривают как измеримую структуру. Соберите один идеальный пример работы, один случай сбоя и запись о возврате к предыдущему состоянию до расширения объёма работ. Записывайте временные показатели, а также стоимость токенов или запросов рядом с функциональными результатами. Отображение стоимости на раннем этапе предотвращает неожиданные счёты при переходе от демо-среды к общедоступным средам. Сохраняйте структуру графа простой и типизированной. Вложенные структуры скрывают информацию о том, какой узел заполнил тот или иной поле, и могут нарушить возобновление работы после прерываний. Этап «6 Шагов 1 Определение» работает наилучшим образом, когда его рассматривают как измеримую структуру. Соберите один идеальный пример работы, один случай сбоя и запись о возврате к предыдущему состоянию до расширения объёма работ. Документируйте одновременно успешный путь выполнения и путь восстановления. Повторные попытки, проверки человеком и обработка неработающих сообщений являются частью продукта, а не элементами последующей доработки.
Objective:
Diagnose production degradation
7. Шаг 2 — Определение источников контекста
На этапе 7 Шаг 2 «Идентификация» необходимо заранее определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг, исходя из известной точки контроля, без необходимости угадывать скрытое состояние. Лучше использовать небольшие, тестируемые единицы кода вместо обширных скриптов. При сбое шага он должен указывать на конкретную причину, а не на сложную структуру обработки данных. Внедрять человеческое утверждение там, где происходит трата средств или изменение данных в продакшене. Наличие связей на этапе компиляции не гарантирует полноты решения бизнес-задач.
ML Debugging Agent
│
┌─────────────────┼─────────────────┐
↓ ↓ ↓
Metrics DB Git Repository Experiment DB
│ │ │
↓ ↓ ↓
Performance Code changes Experiments
│ │ │
└─────────────────┼─────────────────┘
↓
Context
Документы
На этапе обработки документов необходимо заранее определить входные данные, ответственного за выполнение шага и критерии завершения перед внесением изменений в код. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии системы. Рассматривайте этот этап как контракт между входными данными и проверенными результатами. Дайте названия создаваемым объектам, определите критерии успеха и не допускайте молчаливого частичного выполнения задачи. Обязательно включайте утверждение человека для операций, связанных с тратой денег или изменением производственных данных. Простая настройка во время компиляции не гарантирует полноты выполнения бизнес-задач.
Базы данных
На этапе работы с базами данных необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед внесением изменений в код. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии системы. Записывайте время выполнения операций, а также стоимость токенов или запросов рядом с функциональными результатами. Отображение стоимости на раннем этапе предотвращает неожиданные счета при переходе от демо-среды к общедоступным средам. Внедряйте человеческое утверждение для операций, связанных с расходами или изменением производственных данных. Настройки, сделанные во время компиляции, не гарантируют полноты функционала продукта. На этапе работы с базами данных необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед внесением изменений в код. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии системы. Документируйте как успешный, так и восстановительный сценарии работы. Повторные попытки, человеческое утверждение и обработка некорректных сообщений являются частью продукта, а не элементами, добавляемыми позже.
Инструменты
При работе на этапе инструментов сначала запишите условия контракта: необходимые входные данные, сигнал успешного выполнения и действия при частичной неудаче. Такой список помогает сохранять честность при последующих изменениях кода. Лучше использовать небольшие, тестируемые модули вместо обширных скриптов. Если какой-то шаг не сработает, причина должна быть связана с конкретной функцией, а не с запутанной цепочкой операций. Зафиксируйте название инструмента, хеш аргументов, время задержки и результат каждого вызова. Без такой информации отладка занимает часы.
Память
При работе на этапе памяти сначала запишите контракт: необходимые входные данные, сигнал о успехе и действия при частичной неудаче. Такой список помогает сохранять честность при последующих изменениях кода. Рассматривайте этот этап как контракт между входными данными и проверенными выходными результатами. Дайте названия элементам, определите критерии успеха и не допускайте молчаливого частичного выполнения задачи. Выполняйте контрольные точки после дорогостоящих операций. Система возобновления работы не должна снова взимать плату за один и тот же вызов LLM, когда оператор пытается выполнить следующий этап.
Среда
Во время работы на этапе среды сначала запишите условия использования: необходимые входные данные, сигнал о успешном выполнении и действия при частичной неудаче. Такой список помогает сохранять честность при последующих изменениях кода. Рядом с функциональными результатами записывайте время выполнения и стоимость токенов или запросов. Отображение затрат с самого начала предотвращает неожиданные счета при переходе от демо-среды к общедоступным средам. Выполняйте контрольные точки после дорогостоящих шагов. Функция возобновления работы не должна снова взимать плату за один и тот же вызов большой языковой модели при повторной попытке обработки последующего узла. Во время работы на этапе среды сначала запишите условия использования: необходимые входные данные, сигнал о успешном выполнении и действия при частичной неудаче. Такой список помогает сохранять честность при последующих изменениях кода. Документируйте как успешный, так и путь восстановления. Повторные попытки, проверки человеком и обработка неработоспособных сообщений являются частью продукта, а не элементами последующей доработки.
8. Шаг 3 — Получайте только необходимое
Этап 3 «Восстановление» из 8 шагов работает наилучшим образом, если рассматривать его как измеримую поверхность. Соберите один идеальный пример выполнения, один случай сбоя и записку о возврате к предыдущему состоянию перед расширением объема работ. Предпочитайте небольшие, тестируемые единицы кода вместо обширных скриптов. Когда какой-то шаг срабатывает некорректно, причина сбоя должна указывать на конкретную ответственность, а не на запутанную цепочку операций. Разделяйте политику разбиения на части и политику восстановления данных. Изменение одной из них не должно приводить к переписыванию другой при изменении показателей качества.
Question
↓
Embedding
↓
Vector DB
↓
Top 10 chunks
↓
LLM
1. Find current deployment
2. Find previous deployment
3. Compare configurations
4. Retrieve associated code changes
5. Retrieve metric changes
9. Шаг 4 — Использование структурированного контекста
Этап «9 Шаг 4 Использование» наилучшим образом функционирует, когда его рассматривают как измеримую поверхность. Соберите один идеальный пример работы, один случай сбоя и запись о возврате к предыдущему состоянию перед расширением объёма работ. Рассматривайте этот этап как контракт между входными данными и проверенными результатами. Дайте названия создаваемым элементам, определите критерии успеха и не соглашайтесь на молчаливое частичное выполнение задачи. Сохраняйте структуру графа простой и типизированной. Вложенные структуры скрывают информацию о том, какой узел заполнил тот или иной поле, и нарушают возможность продолжения работы после прерываний.
The deployment happened recently and the model seems
to have lower performance and there were some preprocessing
changes and the new version uses 336 resolution...
{
"model": "anomaly-detector-v4",
"deployment": "v4.2",
"deployment_date": "2026-08-12",
"image_size": 336,
"previous_image_size": 224,
"auroc_previous": 0.91,
"auroc_current": 0.84
}
image_size:
224 → 336
AUROC:
0.91 → 0.84
10. Шаг 5 — Разделение фактов, гипотез и действий
Этап «10 шагов, 5 разделений» работает наилучшим образом, если рассматривать его как измеримую поверхность. Соберите один идеальный пример работы, один случай сбоя и записку о возврате к предыдущему состоянию перед расширением объема работ. Записывайте временные показатели, а также стоимость токенов или запросов рядом с функциональными результатами. Отображение стоимости на раннем этапе предотвращает неожиданные счета при переходе от демо-среды к общедоступным средам. Сохраняйте структуру графа простой и типизированной. Вложенные структуры скрывают информацию о том, какой узел заполнил тот или иной поле, и могут нарушить возобновление работы после прерываний. Этап «10 шагов, 5 разделений» работает наилучшим образом, если рассматривать его как измеримую поверхность. Соберите один идеальный пример работы, один случай сбоя и записку о возврате к предыдущему состоянию перед расширением объема работ. Документируйте одновременно успешный путь выполнения и путь восстановления. Повторные попытки, проверки человеком и обработка неработающих сообщений являются частью продукта, а не элементами последующей доработки.
Факты
На этапе формирования фактов необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Лучше использовать небольшие, тестируемые единицы вместо обширных скриптов. При сбое шага он должен указывать на конкретную причину, а не на сложную структуру обработки данных. Внедрять человеческое утверждение для операций, связанных с расходованием средств или изменением производственных данных. Компиляционная настройка не заменяет полноту бизнес-логики.
Current AUROC = 0.84
Previous AUROC = 0.91
Image resolution changed from 224 to 336
Гипотезы
На этапе гипотез необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Рассматривайте этот этап как контракт между входными данными и проверенными выходными результатами. Дайте названия результатам работы, определите критерии успеха и не допускайте молчаливого частичного завершения задачи. Внедрите утверждение человека для операций, связанных с тратой денег или изменением производственных данных. Настройка на этапе компиляции не заменяет полного выполнения бизнес-задач.
Hypothesis:
The resolution change may have caused distribution mismatch.
Действия
На этапе действий необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Записывайте время выполнения и стоимость токенов или запросов рядом с функциональными результатами. Отображение стоимости заранее предотвращает неожиданные счета при переходе от демо-среды к общедоступным средам. Внедряйте человеческое утверждение для операций, связанных с тратой денег или изменением производственных данных. Подключение компонентов во время компиляции не гарантирует полноты функционала продукта. На этапе действий необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Документируйте одновременно «идеальный» путь выполнения и путь восстановления. Повторные попытки, человеческое утверждение и обработка некорректных сообщений являются частью продукта, а не элементами последующей доработки.
Action:
Evaluate v4.2 on the previous preprocessing configuration.
{
"facts": [
"AUROC dropped from 0.91 to 0.84",
"Image resolution changed from 224 to 336"
],
"hypotheses": [
{
"claim": "Resolution change caused degradation",
"confidence": 0.65
}
],
"actions_completed": [
"Compared deployment configurations"
],
"next_action": "Run controlled preprocessing experiment"
}
11. Шаг 6 — Сжатие контекста
При работе над этапом сжатия контекста в рамках 11-го шага сначала запишите условия работы: необходимые входные данные, сигнал успешного выполнения и действия при частичной неудаче. Такой список поможет сохранять честность при последующих изменениях кода. Предпочитайте небольшие, тестируемые единицы кода вместо обширных скриптов. При сбое на каком-либо этапе причина неудачи должна указывать на конкретную ответственность, а не на запутанную структуру обработки данных. Выполняйте проверку после дорогостоящих этапов. Система возобновления работы не должна повторно взимать плату за один и тот же вызов большой языковой модели, когда оператор пытается выполнить следующий элемент работы.
Investigation Summary
Objective:
Diagnose production AUROC degradation.Observed:
- AUROC decreased 0.91 → 0.84.
- Deployment v4.2 introduced 336px preprocessing.
- Model weights unchanged.
- Data volume unchanged.Ruled out:
- Model checkpoint change.
- Infrastructure failure.Current hypothesis:
Preprocessing change may be responsible.Next experiment:
Evaluate v4.2 using 224px preprocessing.
12. Шаг 7 — Предоставление агенту рабочей памяти
При работе над этапом «7 Give» из 12 шагов сначала запишите контракт: необходимые входные данные, сигнал успешного выполнения и действия при частичной неудаче. Такой чек-лист помогает сохранять честность при последующих изменениях кода. Рассматривайте этот этап как контракт между входными данными и проверенными выходными результатами. Укажите названия элементов, определите критерии успеха и не допускайте безусловного частичного завершения работы. Выполняйте контрольные точки после дорогостоящих операций. Система возобновления работы не должна снова взимать плату за один и тот же вызов большой языковой модели, когда оператор пытается выполнить следующий этап.
Agent Memory
│
┌──────────────┼──────────────┐
↓ ↓ ↓
Working Memory Long-Term External
Memory Knowledge
│ │ │
↓ ↓ ↓
Current task Past decisions Documents
Current facts User preferences Databases
Hypotheses Past results APIs
Рабочая память
При работе над этапом рабочей памяти сначала запишите условия использования: необходимые входные данные, сигнал о успехе и действия при частичной неудаче. Такой список помогает сохранять честность при последующих изменениях кода. Рядом с функциональными результатами записывайте время выполнения и стоимость токенов или запросов. Отображение затрат с самого начала предотвращает неожиданные счета при переходе от демо-среды к общедоступным средам. Выполняйте контрольные точки после дорогостоящих шагов. Функция возобновления работы не должна снова взимать плату за один и тот же вызов большой языковой модели, когда оператор пытается выполнить последующий узел заново. При работе над этапом рабочей памяти сначала запишите условия использования: необходимые входные данные, сигнал о успехе и действия при частичной неудаче. Такой список помогает сохранять честность при последующих изменениях кода. Документируйте одновременно успешный сценарий работы и сценарий восстановления. Повторные попытки, проверки человеком и обработка неработающих сообщений являются частью продукта, а не элементами последующей доработки.
Долгосрочная память
Этап долгосрочной памяти работает наилучшим образом, когда его рассматривают как измеримую структуру. Соберите один идеальный пример работы, один случай сбоя и запись о возврате к предыдущему состоянию перед расширением объёма задачи. Предпочитайте небольшие, проверяемые единицы кода вместо обширных скриптов. При сбое какого-либо шага причина должна указывать на конкретный элемент ответственности, а не на запутанную цепочку операций. Сохраняйте структуру графа простой и типизированной. Вложенные структуры данных маскируют информацию о том, какой узел заполнил тот или иной поле, и приводят к нарушению последовательности выполнения после перерывов.
Внешние знания
Этап внешних знаний работает наилучшим образом, когда его рассматривают как измеримую структуру. Соберите один идеальный пример работы, один случай сбоя и запись о возврате к предыдущему состоянию перед расширением объёма задачи. Рассматривайте этот этап как контракт между входными данными и проверенными результатами. Дайте названия всем элементам, определите критерии успеха и не соглашайтесь на молчаливое частичное выполнение задачи. Сохраняйте структуру графа простой и типизированной; вложенные структуры скрывают информацию о том, какой узел заполнил тот или иной поле, что приводит к нарушению последовательности выполнения после перерывов.
13. Шаг 8 — Позвольте агенту самому определить необходимый контекст
Этап 13 Шаг 8 «Let» работает наилучшим образом, когда рассматривается как измеримая среда. Соберите один идеальный пример работы, один случай сбоя и записку о возврате к предыдущему состоянию перед расширением объёма работ. Записывайте временные показатели, а также стоимость токенов или запросов рядом с функциональными результатами. Отображение стоимости на раннем этапе предотвращает неожиданные счёты при переходе от демо-среды к общедоступным средам. Сохраняйте структуру графа простой и типизированной. Вложенные структуры данных скрывают информацию о том, какой узел заполнил тот или иной поле, и могут нарушить возобновление работы после прерываний. Этап 13 Шаг 8 «Let» работает наилучшим образом, когда рассматривается как измеримая среда. Соберите один идеальный пример работы, один случай сбоя и записку о возврате к предыдущему состоянию перед расширением объёма работ. Документируйте одновременно успешный путь выполнения и путь восстановления. Повторные попытки, проверки человеком и обработка неработающих сообщений являются частью продукта, а не элементами последующей доработки.
Question
↓
Retrieve
↓
LLM
↓
Answer
Question
↓
LLM
↓
"What information am I missing?"
↓
Retrieve
↓
Observe
↓
"What else do I need?"
↓
Tool call
↓
Observe
↓
Update hypothesis
↓
Retrieve again
↓
Answer
I need:
1. Current metrics
2. Historical metrics
3. Recent deployments
I see a preprocessing change.
I now need:
4. Code/config diff
5. Evaluation by preprocessing version
The degradation occurs only on the new preprocessing path.
Hypothesis strengthened.
14. Конкретный пример: агент для отладки ИИ
На этапе «Конкретный пример» 14 необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Лучше использовать небольшие, тестируемые единицы кода вместо обширных скриптов. При сбое шага причина должна быть связана с конкретной областью ответственности, а не с запутанной цепочкой операций. Необходимо внедрять проверку человеком для операций, связанных с тратой денег или изменением производственных данных. Наличие связей во время компиляции не гарантирует полноты реализации бизнес-логики.
Image-level AUROC
Monday: 0.94
Tuesday: 0.93
Wednesday: 0.92
Thursday: 0.85
Исходный контекст
На этапе первоначального определения контекста необходимо заранее определить входные данные, ответственного за выполнение шага и критерии завершения перед внесением изменений в код. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Рассматривайте этот этап как контракт между входными данными и проверенными выходными результатами. Дайте названия создаваемым элементам, определите критерии успеха и не допускайте молчаливого частичного завершения работы. Обеспечьте утверждение человеком для операций, связанных с тратой денег или изменением производственных данных. Настройки, сделанные во время компиляции, не гарантируют полноты выполнения бизнес-задач.
Task:
Diagnose the AUROC degradation.
Current metric:
0.85Previous metric:
0.92
Вызов инструмента 1: система развертывания
На этапе развертывания Tool call 1 необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед внесением изменений в код. Операторы должны иметь возможность перезапустить шаг, исходя из известной точки контроля, без необходимости угадывать скрытое состояние. Рядом с функциональными результатами следует записывать время выполнения и стоимость токена или запроса. Отображение стоимости заранее помогает избежать неожиданных счетов при переходе с демо-среды в общедоступные среды. Аутентификация происходит на шлюзе, а повторная авторизация — на уровне обработки данных. Один только токен-носитель не является границей между тенантами.
Current model:
v4.2
Previous model:
v4.1
На этапе развертывания при использовании инструмента «Tool call 1» необходимо заранее определить входные данные, ответственного за выполнение шага и критерии завершения работы до внесения изменений в код. Операторы должны иметь возможность перезапустить шаг, исходя из известной точки контроля, без необходимости угадывания скрытого состояния. Необходимо одновременно задокументировать успешный сценарий выполнения и сценарий восстановления. Повторные попытки, проверки человеком и обработка неработоспособных сообщений являются частью продукта, а не элементами, добавляемыми позже.
Tool call 2: реестр моделей
При работе над этапом модели «Вызов инструмента 2» сначала запишите контракт: необходимые входные данные, сигнал успешного выполнения и действия при частичной неудаче. Такой чек-лист поможет сохранять честность при последующих изменениях кода. Предпочитайте небольшие, тестируемые единицы кода вместо обширных скриптов. Когда какой-то шаг терпит неудачу, ошибка должна указывать на конкретную ответственность, а не на запутанную цепочку операций. Храните в кэше стабильные инструкции системы и схемы инструментов. Повторная отправка одинакового преамбула — частая причина ресурсозатрат.
Weights:
v4.1 == v4.2
Вызов инструмента 3: сервис конфигурации
При работе над этапом настройки вызова инструмента 3 сначала запишите условия использования: необходимые входные данные, сигнал о успешном выполнении и действия при частичной неудаче. Такой чек-лист поможет избежать ошибок при последующих изменениях кода. Рассматривайте этот этап как договор между входными данными и проверенными выходными результатами. Дайте названия соответствующим элементам, определите критерии успешности и не допускайте молчаливого частичного выполнения задачи. Фиксируйте название инструмента, хеш аргументов, время задержки и результат каждого вызова. Без такой записи отладка занимает гораздо больше времени.
Resize:
224 → 336
Normalization:
unchanged
Вызов инструмента 4: сервис оценки
При работе над этапом оценки четвертого вызова инструмента сначала запишите условия использования: необходимые входные данные, сигнал о успешном выполнении и действия при частичной неудаче. Такой список помогает сохранять честность при последующих изменениях кода. Рядом с функциональными результатами записывайте время выполнения и стоимость токенов или запросов. Отслеживание затрат с самого начала предотвращает неожиданные счета при переходе с демо-среды в общедоступные среды. Зафиксируйте название инструмента, хэш аргументов, время задержки и результат каждого вызова. Без такой записи отладка циклов агента занимает часы.
v4.2 + 224px:
AUROC = 0.93
v4.2 + 336px:
AUROC = 0.85
При работе над этапом оценки четвертого вызова инструмента сначала запишите условия использования: необходимые входные данные, сигнал о успешном выполнении и действия при частичной неудаче. Такой список помогает сохранять честность при последующих изменениях кода. Одновременно задокументируйте успешный сценарий работы и сценарий восстановления. Повторные попытки, проверки человеком и обработка неработоспособных сообщений являются частью продукта, а не элементами последующей доработки.
Finding:
The performance degradation is strongly associated with
the preprocessing change from 224px to 336px.
Evidence:
- Model weights unchanged.
- Deployment introduced 336px preprocessing.
- 224px evaluation restores AUROC to 0.93.
- 336px evaluation produces AUROC of 0.85.Recommendation:
Roll back preprocessing to 224px while investigating
why the new preprocessing configuration causes degradation.
15. Инженерия контекста и RAG
Этап инженерии контекста работает наилучшим образом, если рассматривать его как измеримую структуру. Соберите один идеальный пример работы, один случай сбоя и запись о возврате к предыдущему состоянию перед расширением объема работ. Предпочитайте небольшие, тестируемые единицы кода вместо обширных скриптов. При сбое какого-либо шага причина должна быть связана с конкретной функцией, а не с запутанной цепочкой операций. Разделяйте правила формирования чанков и правила поиска информации. Изменение одних не должно принуждать к переписыванию других при изменении показателей качества.
Query
↓
Retriever
↓
Documents
↓
LLM
Goal
↓
Agent
↓
Determine missing context
↓
Retrieve / Query / Execute
↓
Evaluate results
↓
Update state
↓
Retrieve again
↓
Compress
↓
Assemble context
↓
LLM
↓
Action
16. Инженерия контекста схожа с инженерией функций
На этом этапе проектирования контекста лучше всего работать, рассматривая его как измеримую структуру. Соберите один идеальный пример вывода, один случай сбоя и запись о возврате к предыдущему состоянию перед расширением объёма работ. Рассматривайте этот этап как контракт между входными данными и проверенными выходными результатами. Дайте названия создаваемым элементам, определите критерии успеха и не соглашайтесь на молчаливое частичное выполнение задачи. Сохраняйте структуру графа простой и типизированной. Вложенные структуры данных скрывают информацию о том, какой узел заполнил тот или иной поле, что приводит к нарушению последовательности действий после перерывов.
Raw data
↓
Feature engineering
↓
Feature selection
↓
Model
↓
Prediction
Raw information
↓
Context retrieval
↓
Context filtering
↓
Context transformation
↓
Context selection
↓
LLM
↓
Decision
17. Оценка качества контекста
Bad retrieval
↓
Bad context
↓
Bad reasoning
↓
Bad action
↓
Bad answer
Качество поиска
Качество контекста
Качество логики
Качество действий
Успех окончательной задачи
Retrieval
↓
Context
↓
Reasoning
↓
Action
↓
Outcome
18. Распространённые ошибки
Ошибка 1: «Просто положите всё в промпт»
Ошибка 2: Рассматривание векторного поиска как единственного решения
Ошибка 3: Сохранение бесконечной истории диалогов
Recent details
+
Compressed historical state
+
Relevant retrieved information
Ошибка 4: Смешивание фактов с догадками
Ошибка 5: Игнорирование временного контекста
timestamp
version
deployment
experiment
data snapshot
environment
19. Практическая архитектура для вашего первого агента
┌──────────────┐
│ User │
└──────┬───────┘
↓
┌──────────────┐
│ Agent │
└──────┬───────┘
↓
┌─────────────────┐
│ Context Manager │
└───────┬─────────┘
↓
┌────────────┼────────────┐
↓ ↓ ↓
Search Database Tools
│ │ │
└────────────┼────────────┘
↓
Context Assembly
↓
LLM
↓
Action
↓
Observation
↓
Context Update
20. Куда развивается инжиниринг контекста для агентов
LLM + Tools
LLM
+
Memory
+
Retrieval
+
State
+
Tools
+
Environment
+
Context Management
Заключение
Prompt Engineering
↓
RAG
↓
Memory
↓
Tool Use
↓
State Management
↓
Agentic Context Engineering