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

Практические замечания: инжиниринг промптов мертв для ИИ-агентов — вот что нужно знать

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

1533 слов

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

Проблема, которую никто не называет, пока она не нанесет ущерб

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

Что на самом деле представляет собой инжиниринг контекста

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

Как это выглядит в пайплайне LangGraph

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

from typing import TypedDict, Optional, List
from langgraph.graph import StateGraph

class ResearchAgentState(TypedDict):
    # Persistent context — set once, never overwritten
    user_goal: str
    domain_constraints: List[str]
    session_id: str

    # Time-sensitive context — updated by retrieval/tool nodes
    retrieved_docs: List[str]
    current_findings: str
    last_tool_result: Optional[str]

    # Transient context — cleared after use
    raw_api_payload: Optional[str]   # cleared after parsing
    intermediate_reasoning: Optional[str]  # cleared after synthesis

Та часть, о которой никто не говорит: качество контекста

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

Где возникают проблемы

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

Начните с этого, а не с командной строки системы

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

Хотите углубиться?

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

Справки

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

Чек-лист операционной деятельности

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

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

Храните в кэше стабильные системные инструкции и схемы инструментов. Повторная отправка идентичных данных является распространенной причиной повреждений системы.

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

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

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

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

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

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

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

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

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

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

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

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

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