惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
Recent Announcements
Recent Announcements
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The GitHub Blog
The GitHub Blog
MyScale Blog
MyScale Blog
爱范儿
爱范儿
GbyAI
GbyAI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
美团技术团队
Y
Y Combinator Blog
博客园 - 叶小钗
Apple Machine Learning Research
Apple Machine Learning Research
Martin Fowler
Martin Fowler
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
罗磊的独立博客
M
MIT News - Artificial intelligence
博客园 - Franky
V
Visual Studio Blog
I
InfoQ
V
V2EX
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
博客园 - 司徒正美
L
LangChain Blog

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания
12 факторов хорошего агента
ai_fucked_up · 2026-06-28 · via Все публикации подряд на Хабре

Средний

4 мин

527

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

1. Структурированный вывод

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

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

Но важно понимать ограничение: модель хорошо работает только с текстом. Все остальное — это логика вокруг модели, и ее пишет разработчик

2. Контроль промпта

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

Это особенно критично в агентных сценариях, где промпт формируется динамически: важно, чтобы в него попадало именно то, что нужно, и именно в том виде, в котором нужно

3. Контекст-инжиниринг

Управлять нужно не только промптом, но и всем, что его окружает: историей выполнения, результатами RAG, состоянием задачи. Это и есть контекст-инжиниринг. Разница с обычным промтингом в том, что здесь разработчик контролирует весь информационный поток, который поступает в модель, а не только текст инструкции. Качество работы агента сильно зависит от того, насколько точно сформирован этот контекст.

Context window — это бюджет внимания модели. После заполнения 40% контекста отдача падает: recall модели деградирует, а рассуждения начинают ломаться

4. Инструменты как структурированный вывод

Инструмент (tool) — это не функция, как может показаться. Это структурированный JSON, описывающий функцию. Модель ничего не вызывает сама: она возвращает объект с именем функции и аргументами, а дальше код вызывает реальную функцию и передает результат обратно.

Все, что происходит вокруг модели, — MCP, скиллы, произвольные функции — строится поверх этого же механизма

5. Хранение состояния

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

Это вытекает из предыдущего пункта: если вы управляете контекстом, то и данные, которые в него попадают, вы храните сами, а не полагаетесь на то, что агент их восстановит

6. Статус агента

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

Агент без управляемого состояния — это черный ящик: непонятно, что он делает прямо сейчас и на каком этапе находится

7. Участие человека в процессе

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

Human Layer считает этот фактор принципиальным, хотя он и вызывает споры: у части разработчиков есть возражения против обязательного присутствия пользователя в цикле

8. Компонуемость

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

Что именно даст лучший результат в конкретном случае — заранее неизвестно. Важна возможность менять порядок и состав компонентов и не переписывать всю систему

9. Работа с ошибками

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

Именно так работают современные агентные окружения, в том числе Cursor: он получает ошибку и пытается ее исправить, а не останавливается

10. Маленькие агенты

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

Подход тот же, что в микросервисах: маленький агент с четкой зоной ответственности проще отлаживать, заменять и тестировать. Для сложных задач несколько микро-агентов соединяются в детерминированный DAG.

Хорошо, если агент ограничен 3-20 шагами

11. Работа в среде пользователя

Агент взаимодействует с пользователем там, где пользователь работает. Если он работает в Slack — агент должен быть доступен через Slack. Не стоит создавать отдельное окружение только для взаимодействия с агентом.

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

12. Stateless-агенты

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

Один контекст — один запуск агента

Как 12-Factor App в свое время задала стандарты для облачной разработки, так и эти принципы могут стать ориентиром для тех, кто строит AI-native приложения. Они не привязаны к конкретному языку или фреймворку, а значит, могут работать на любом стеке.

А как вы строите своих агентов? Делитесь опытом в комментариях и заходите в канал, если еще не с нами.