Агенты, которые делают агентов
Мой главный принцип в работе — фокус. Обычно самое важное кроется только в одной ключевой вещи, а всё остальное можно сделать потом, другими людьми или не делать вообще (чаще всего можно не делать).
Мы долго пытались найти эту вещь в разработке агентов. Кажется, нашли. Эта ключевая вещь — контекст. А точнее, способ его построения. Неважно, какой у вас оркестратор. Не очень важно, какая под ним LLM — если у неё нет правильного контекста, даже самая мощная модель не справится. И уж совсем неважно, в какой Ui-ке вы всё это рисуете.
Почему нельзя просто взять и написать контекст
Потому что непонятно, что именно нужно написать.
Заранее вы не можете знать что у LLM было в претрейне, а что нужно объяснить про вашу задачу. Знает ли этот стандарт принятый у вас в разработке? А этот аспект права? А слышала ли про новый банковский продукт? Поэтому проще считать, что LLM не знает ничего про вашу задачу.
Самое наивное тогда решение — прийти к бизнес-эксперту и попросить выписать вообще все. Какие правила процесса, какие есть API, как их вызывать. Но эксперт не может проверить, что выдал реально всё. У любого человека есть знания, которые для него настолько очевидны, что он даже не подумает их проговорить. И вот на них агент сломается, потому что не будет знать, как действовать
Как мы делаем вместо этого
Не нужно разово пытаться вытащить знания из головы эксперта. Нужно строить процесс, который проверяет, насколько контекст полный.
Берём ground truth — например, реальные ответы человека. Разбиваем его на отдельные утверждения. И проверяем другим агентом: подтверждается ли каждое утверждение тем контекстом, который у нас уже есть? Если не подтверждается — это сигнал. Либо бизнес-эксперту нужно дописать правило, либо разработке нужно сделать недостающий тул. И процент за процентом контекст наполняется — до состояния, с которым первый агент может работать.
По сути, это и есть обучение на ответах. Только не через градиентный спуск, а через тексты. Мы восстанавливаем правила, зашитые в головах людей, в текстовый контент.
Куда это все идет
Команда (горжусь вами) придумала это довольно давно, но я до сих пор в шоке. Этот нехитрый трюк — самый простой способ строить агентские системы в принципе.
Возьмите классификатор. Запускаете одну модель с промптом на тестовом множестве. Другая модель читает её рассуждения, смотрит на ошибки, выделяет кластеры типовых промахов, правит промпт первой модели. Повторяете до сходимости. Это чистый backprop через изменение контекста.
Я не вижу ни одной причины, почему уже сейчас не делать так всегда. Если вы построили эвал, то сразу можете замкнуть цикл обратной связи на другом агенте и пойти делать что-то другое. Например, читать этот канал.
Хватит рисовать агентов в вашем любимом n8n. Они уже неплохо справляются с этим сами.
Post #143
5.41K
- ❤ 37
- 🔥 22
- 👍 10
- ❤🔥 8
- 🤩 3
- 💯 3
- 🤝 2
- 🐳 1