Buckets:
| # Понимание AI Агентов через цикл Мысль - Действие - Наблюдение. | |
| В предыдущих разделах мы узнали: | |
| - **Как инструменты становятся доступны агенту в системной подсказке**. | |
| - **Как AI агенты являются системами, которые могут 'рассуждать', планировать и взаимодействовать с окружающей средой**. | |
| В этом разделе **мы рассмотрим рабочий процесс агента AI полностью**, цикл, который мы определили как "Мысль - Действие - Наблюдение". | |
| А затем мы углубимся в каждый из этих этапов. | |
| ## Основные компоненты | |
| Агенты работают в непрерывном цикле: **думать (Мысль) → действовать (Действие) и наблюдать (Наблюдение)**. | |
| Давайте разложим эти действия на составляющие: | |
| 1. **Мысль**: LLM-часть Агента решает, каким должен быть следующий шаг. | |
| 2. **Действие:** Агент выполняет действие, вызывая инструменты с соответствующими аргументами. | |
| 3. **Наблюдение:** Модель размышляет над ответом, полученным от инструмента. | |
| ## Цикл "Мысль-Действие-Наблюдение" | |
| Все три компонента работают вместе в непрерывном цикле. Если воспользоваться аналогией из программирования, агент использует **цикл while**: цикл продолжается до тех пор, пока не будет выполнена поставленная перед агентом задача. | |
| Визуально это выглядит следующим образом: | |
| Во многих фреймворках Агентов **правила и рекомендации встраиваются непосредственно в системную подсказку**, гарантируя, что каждый цикл будет следовать определенной логике. | |
| В упрощенном варианте наша системная подсказка может выглядеть следующим образом: | |
| Здесь мы видим, что в системном сообщении мы определили : | |
| - *Поведение Агента*. | |
| - *Инструменты, к которым имеет доступ наш Агент*, как мы описали в предыдущем разделе. | |
| - Цикл *Мысль-Действие-Наблюдение*, который мы заложили в инструкции LLM. | |
| Давайте рассмотрим небольшой пример, чтобы понять суть процесса, прежде чем углубляться в каждый его шаг. | |
| ## Альфред, Агент сообщающий погоду | |
| Мы создали Альфреда, погодного агента. | |
| Пользователь спрашивает Альфреда: «Какая сегодня погода в Нью-Йорке?». | |
| Задача Альфреда - ответить на этот запрос, используя инструмент API погоды. | |
| Вот как выглядит этот цикл: | |
| ### Мысль | |
| **Внутренние рассуждения:** | |
| Получив запрос, внутренний диалог Альфреда может быть таким: | |
| *"Пользователю нужна текущая информация о погоде в Нью-Йорке. У меня есть доступ к инструменту, который получает данные о погоде. Сначала мне нужно обратиться к API погоды, чтобы получить актуальную информацию."* | |
| Этот шаг показывает, что агент разбивает проблему на этапы: сначала собирает необходимые данные. | |
| ### Действие | |
| **Использование инструмента:**. | |
| Основываясь на своих рассуждениях и на том факте, что Альфред знает об инструменте `get_weather`, Альфред подготавливает команду в формате JSON, которая вызывает инструмент API погоды. Например, его первым действием может быть: | |
| Мысль: Мне нужно проверить текущую погоду в Нью-Йорке. | |
| ``` | |
| { | |
| "action": "get_weather", | |
| "action_input": { | |
| "location": "New York" | |
| } | |
| } | |
| ``` | |
| Здесь действие четко указывает, какой инструмент следует вызвать (например, get_weather) и какой параметр передать ("location": "New York"). | |
| ### Наблюдение | |
| **Обратная связь от окружающей среды:**. | |
| После вызова инструмента Альфред получает наблюдение. Это могут быть необработанные данные о погоде из API, например: | |
| *"Текущая погода в Нью-Йорке: частично облачно, 15°C, влажность 60%."* | |
| Это наблюдение затем добавляется к подсказке в качестве дополнительного контекста. Оно функционирует как обратная связь в реальном мире, подтверждая успешность действия и предоставляя необходимые детали. | |
| ### Обновленная мысль | |
| **Рефлексия:** | |
| Получив данные наблюдения, Альфред обновляет свои внутренние рассуждения: | |
| *"Теперь, когда у меня есть данные о погоде в Нью-Йорке, я могу подготовить ответ для пользователя."* | |
| ### Финальное Действие | |
| Затем Алфред генерирует окончательный ответ, отформатированный так, как мы ему сказали: | |
| Мысль: У меня есть данные о погоде. Текущая погода в Нью-Йорке частично облачная, температура 15 °C и влажность 60 %». | |
| Окончательный ответ : Текущая погода в Нью-Йорке частично облачно с температурой 15 °C и влажностью 60 %. | |
| Это заключительное действие возвращает ответ пользователю, закрывая цикл. | |
| Что мы видим в этом примере: | |
| - **Агенты проходят цикл до тех пор, пока цель не будет достигнута:** | |
| **Процесс Альфреда цикличен**. Он начинает с мысли, затем действует, вызывая инструмент, и, наконец, наблюдает за результатом. Если бы наблюдение показало ошибку или неполноту данных, Альфред мог бы снова войти в цикл, чтобы скорректировать свой подход. | |
| - **Интеграция инструментов:** | |
| Способность вызывать инструменты (например, API погоды) позволяет Альфреду выходить **за пределы статических знаний и получать данные в реальном времени**, что является важным аспектом многих AI Агентов. | |
| - **Динамическая адаптация:** | |
| Каждый цикл позволяет агенту включать свежую информацию (наблюдения) в свои рассуждения (мысли), гарантируя, что окончательный ответ будет хорошо обоснованным и точным. | |
| Этот пример демонстрирует основную концепцию цикла *ReAct* (концепцию, которую мы будем развивать в следующем разделе): **взаимодействие мыслей, действий и наблюдений позволяет AI агентам решать сложные задачи итеративно**. | |
| Понимая и применяя эти принципы, вы сможете разрабатывать агентов, которые не только рассуждают о своих задачах, но и **эффективно используют внешние инструменты для их выполнения**, при этом постоянно совершенствуя свои действия на основе обратной связи от окружающей среды. | |
| --- | |
| Теперь давайте углубимся в изучение Мысли, Действия, Наблюдения как отдельных этапов этого процесса. | |
Xet Storage Details
- Size:
- 9.83 kB
- Xet hash:
- e37348f7094eff440b18070190f54690844991601c16c90d754e8f2075d80235
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.