awesome-everything EN
↑ Обратно к восхождению

AI / LLM

Агенты: собрать ограниченного, наблюдаемого агента

Суть Практический проект — собрать ограниченного, наблюдаемого ReAct-агента с реальными guardrails, затем загнать его в runaway-цикл и доказать, что защиты держат, измеряя успешность задачи.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 240 min

Читать про трейс на $12 — не то же самое, что не дать ему случиться. Соберите небольшого ReAct-агента над парой инструментов, намеренно загоните его в режимы отказа из юнита — runaway-цикл, thrash на идентичном вызове, переполнение контекста — и докажите, что ваши guardrails ловят каждый, пока вы всё же решаете задачу.

Цель

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

Проект
0 из 7
Цель

Собрать ReAct-агента над 2–3 реальными инструментами, который выполняет многошаговую задачу, полностью наблюдаем на каждой итерации цикла и не может выйти из-под контроля: он всегда завершается в пределах жёсткого бюджета по шагам, wall-clock и токенам, никогда не молотит идентичный вызов и никогда молча не роняет собственные инструкции — что доказано трейсами и eval успешности задачи.

Требования
Критерии приёмки
  • Трейс цикла для одного нормального и одного состязательного прогона, каждый показывает токены на итерацию (виден накопленный рост) и точную причину сработавшего выхода.
  • Сравнение до/после: тот же агент БЕЗ защит (или со снятым лимитом) на состязательном вводе уходит в runaway или thrash; С защитами он завершается ограниченно в пределах бюджета по шагам/wall-clock/токенам.
  • Таблица eval: доля решений по 8–12 задачам плюс средние шаги, средние токены и средняя стоимость на задачу — измеренные, а не оценённые на глаз.
  • Доказательство, что защита контекста работает: долгий прогон, остающийся под окном с системными/задачными сообщениями, всё ещё присутствующими на финальном шаге (без молчаливой обрезки инструкций).
  • Абзац-разбор: какой выход защищает какой режим отказа, почему одного лимита шагов мало и одна задача, где скрипт бьёт агента.
Senior-стретч
  • Добавьте динамический лимит шагов/ходов, подстраивающийся под оценочную сложность задачи вместо фиксированного, и измерьте компромисс стоимость/доля решений против фиксированного лимита.
  • Добавьте on-call runbook: как читать трейс цикла, сигнатуры runaway / thrash / overflow и какую защиту проверить или ужесточить для каждой.
  • Добавьте тест guardrail против prompt-injection: подайте результат инструмента, который пытается переопределить системные инструкции, и покажите, что агент его игнорирует; залогируйте попытку.
  • Реализуйте шаг памяти «суммаризировать середину» и сравните успешность задачи и стоимость против наивной обрезки на тех же долгих задачах.
Итог

Это цикл, который вы прогоняете на каждом реальном агенте: соберите голый движок ReAct, сделайте каждую итерацию наблюдаемой, чтобы квадратичный рост был виден, затем добавьте независимые выходы — естественный stop, лимит шагов, бюджет wall-clock/токенов, dedup — чтобы ни одна отсутствующая дверь не стала runaway. Закрепите инструкции и обрезайте середину, чтобы агент не забывал задачу; защищайте ввод инструментов и относитесь к их выводу как к недоверенным данным; и оценивайте успешность задачи средними шагами, токенами и стоимостью, чтобы «работает» было числом, а не ощущением. Сделав это однажды на игрушечном агенте, вы доводите продакшен-версию до мышечной памяти.

Продолжить восхождение ↑LLM-evals: регрессионный тест для недетерминированной фичи
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources2
expand
  1. 01
  2. 02

Trademarks belong to their respective owners. Editorial reference only.