- Published on
Разработване на агенти на Anthropic: Простотата надделява над сложността
Дефиниция на интелигентни агенти
Концепцията за интелигентни агенти варира. Някои ги възприемат като „всемогъщи икономи“, способни да мислят самостоятелно, да вземат автономни решения и да използват инструменти за изпълнение на сложни задачи. Други ги виждат като „редовни служители“, които изпълняват предварително зададени работни процеси. Anthropic обединява тези под общото понятие интелигентни системи, като разграничава работните потоци от агентите:
- Работен поток: Система, която организира големи езикови модели (LLM) и инструменти чрез предварително определени пътища на код.
- Агент: Система, динамично ръководена от LLM, която управлява собствените си процеси и използването на инструменти, като автономно контролира начина, по който се изпълняват задачите.
Кога да изберете агент
Anthropic препоръчва при разработването на AI приложения да се следва принципът "ако може да бъде просто, не го прави сложно". Не всички случаи изискват изграждането на сложни интелигентни системи. Интелигентните системи са мощни, но могат да доведат до по-бавни отговори и увеличени разходи. Разработчиците трябва да балансират между функционалност и ефективност.
- Работен поток: Подходящ за ясни задачи, които изискват предвидимост и последователност.
- Агент: По-подходящ за мащабни сценарии, които изискват гъвкавост и вземане на решения, водени от модели.
В много случаи е достатъчно да се използват добри подкани, заедно с извличане на информация и контекстни примери, за да се задават въпроси директно към големия модел.
Използване на рамки
В момента на пазара съществуват множество рамки, които помагат на разработчиците да изграждат AI агенти, като например:
- LangGraph на LangChain
- AI Agent рамката на Amazon Bedrock
- Инструментът за изграждане на работни потоци с голям модел чрез плъзгане и пускане Rivet
- GUI инструментът Vellum за изграждане и тестване на сложни работни потоци
Тези рамки опростяват процеса на разработка, но също така добавят абстрактен слой към кода, което прави основната логика по-малко прозрачна, увеличава трудността при отстраняване на грешки и може да доведе до въвеждане на прекалено сложни решения в прости случаи.
Anthropic препоръчва разработчиците да започнат директно с използването на API на големите модели. Много модели могат да бъдат реализирани само с няколко реда код. Ако се избере използването на рамка, е важно да се разбере нейният основен принцип. Недостатъчното разбиране на основния механизъм на рамката е основна причина за проблеми при разработката.
Anthropic предоставя конкретни примери в своята Cookbook.
Градивни блокове, работни потоци и агенти
Основни градивни блокове: Разширен LLM
Основният градивен блок на интелигентните системи е разширен LLM, който има функции като извличане и запаметяване. Моделите на Anthropic могат активно да използват тези способности, като например генериране на заявки за търсене, избор на инструменти и решаване каква информация да се запази.
При разширяване на функционалността трябва да се обърне внимание на:
- Персонализиране на функциите според конкретния сценарий на приложение
- Осигуряване на прост и добре документиран интерфейс за модела
Наскоро публикуваният протокол за контекст на моделите на Anthropic улеснява интеграцията на AI моделите с екосистемата от инструменти на трети страни.
Работни потоци: Вериги от подкани
Веригите от подкани разделят сложните задачи на множество стъпки, като всяка стъпка извиква голям модел и последващите стъпки се основават на резултатите от предишната стъпка. Разработчиците могат да добавят контролни точки в междинните етапи, за да гарантират, че процесът протича по очаквания начин.
Веригите от подкани са подходящи за случаи, когато сложните задачи могат да бъдат ясно разделени на поредица от фиксирани подзадачи. Всеки модел се фокусира върху изпълнението на една проста задача, и въпреки че общото време за отговор може да е малко по-дълго, точността ще бъде значително по-висока.
Типични примери за приложение:
- Първо се генерира маркетингов текст, след което се превежда на други езици.
- Първо се пише конспект на документ и се извършва проверка за съответствие, след което се пише пълният документ въз основа на конспекта.
Работни потоци: Интелигентно разпределение
Технологията за разпределение определя типа на входящата задача и я разпределя към съответния модул. Този дизайн позволява всеки модул да бъде оптимизиран за конкретна задача, като се избягва взаимното влияние между различните типове задачи. Интелигентното разпределение е подходящо за случаи, когато задачите имат ясни класификационни характеристики. AI системата може да идентифицира точно типа на задачата и да я разпредели чрез голям езиков модел или традиционен алгоритъм.
Типични примери за приложение:
- В система за обслужване на клиенти, общите запитвания, заявленията за възстановяване на суми и техническата поддръжка се насочват към съответните процеси.
- Простите и често срещани въпроси се разпределят към по-малки модели, а трудните и редки въпроси - към по-мощни модели, за да се оптимизират разходите и скоростта.
Работни потоци: Паралелно изпълнение
Големите езикови модели могат да обработват задачи едновременно и да агрегират резултатите по програмен път. Характеристики на паралелните работни потоци:
- Разделяне на задачите: Задачите се разделят на подзадачи, които могат да се изпълняват паралелно, и накрая се обединяват резултатите.
- Механизъм за гласуване: Една и съща задача се изпълнява многократно, като се избира най-добрият резултат или се комбинират множество отговори.
Паралелният метод е много ефективен, когато подзадачите могат да се изпълняват паралелно, за да се увеличи скоростта, или когато са необходими множество опити от различни ъгли, за да се получи по-висока степен на доверие в резултата. За сложни задачи е по-ефективно всяко извикване да се фокусира върху обработката на конкретен аспект.
Типични примери за приложение:
- Разделяне на задачите:
- Защита на сигурността: Един модел обработва потребителската заявка, а друг извършва проверка на съдържанието.
- Оценка на производителността: Различни модели оценяват показателите за производителност на системата.
- Механизъм за гласуване:
- Проверка на сигурността на кода: Множество модели за откриване на уязвимости заедно откриват пропуски в кода.
- Проверка на съдържанието: Множество модели оценяват безопасността на съдържанието от различни ъгли.
Работни потоци: Лидер - Изпълнител
Централен голям езиков модел динамично разделя задачата, възлага я на модели изпълнители и обобщава резултатите.
Този работен поток е подходящ за сложни задачи, при които е трудно предварително да се определят конкретните стъпки. Разделянето на задачите не е фиксирано, а се определя динамично от AI системата в зависимост от ситуацията.
Типични примери за приложение:
- Програмиране, което изисква сложни промени в множество файлове.
- Търсене, което изисква събиране и анализ на информация от множество източници.
Работни потоци: Оценка - Оптимизация
Един LLM се извиква, за да генерира отговор, а друг предоставя оценка и обратна връзка, като се образува цикъл.
Този работен поток е особено ефективен, когато има ясни критерии за оценка и когато усъвършенстването чрез итерации може да доведе до значителна стойност. LLM може да предоставя обратна връзка, подобно на процеса на многократно преработване на текст от човек писател.
Типични примери за приложение:
- Литературен превод: Оценъчен модел открива пропуснати езикови различия в превода и предлага корекции.
- Сложно търсене: Оценъчен модел преценява дали е необходимо да се продължи с по-задълбочено търсене.
Интелигентни агенти
Интелигентните агенти се появяват с узряването на LLM в ключови способности като разбиране на сложни входове, планиране на разсъждения, използване на инструменти и възстановяване от грешки.
Работата на агента започва с команда или интерактивна дискусия от потребител. След като задачата е ясна, агентът планира и действа самостоятелно, като може да се наложи да поиска допълнителна информация или да остави на човека да вземе решение.
Всяка стъпка от процеса на изпълнение е от съществено значение за получаване на „реалността“ от околната среда. Агентите могат да спират при контролни точки или при срещане на блокаж, за да получат обратна връзка от човек. Задачите обикновено завършват след приключване, но често съдържат и условия за спиране.
Интелигентните агенти могат да се справят със сложни задачи, но тяхното изпълнение обикновено е просто, обикновено голям езиков модел, който използва инструменти въз основа на обратна връзка от околната среда в цикъл. Следователно е изключително важно да се проектира набор от инструменти и да се документира ясно и внимателно.
Интелигентните агенти са подходящи за отворени въпроси, при които е трудно да се предвиди броят на необходимите стъпки и не могат да се кодират фиксирани пътища. Автономността на агентите ги прави идеален избор за разширяване на задачи в надеждна среда. Автономността на агентите означава по-високи разходи и възможен риск от натрупване на грешки. Препоръчително е да се провеждат обширни тестове в песъчлива среда и да се поставят подходящи предпазни мерки.
Примери за приложение на интелигентни агенти:
- Кодов агент за решаване на задачи от SWE-bench, включващи редактиране на множество файлове въз основа на описание на задачата.
- Функцията "Използване на компютър" на Anthropic, при която Claude използва компютър за изпълнение на задачи.
Комбинации и персонализация
Тези градивни блокове не са нормативни и разработчиците могат да ги оформят и комбинират според употребата. Ключът към успеха е измерването на производителността и реализацията чрез итерации. Увеличаването на сложността трябва да се разглежда само когато по-простите решения не са възможни. Успехът в областта на LLM не се състои в изграждането на най-сложната система, а в изграждането на система, която отговаря на нуждите. Започнете с прости подкани, оптимизирайте ги с цялостна оценка и добавяйте многостъпкови системи за агенти, само когато по-простите решения не са възможни.
При внедряване на интелигентни агенти е необходимо да се спазват следните принципи:
- Поддържайте дизайна на агента прост.
- Приоритетно осигурете прозрачността на агента, като ясно показвате всяка планирана стъпка.
- Внимателно изградете интерфейса агент-компютър (ACI) чрез цялостна документация и тестване на инструментите.