<НА ГЛАВНУЮ

Создание автономного многосайтового писательского пайплайна

Научитесь создавать систему совместной работы AI-агентов с использованием CrewAI и Gemini.

Обзор

В этом учебном пособии мы реализуем мощную систему из двух агентов CrewAI, которые сотрудничают с использованием модели Gemini Flash. Мы настраиваем среду, безопасно аутентифицируемся, определяем специализированных агентов и организуем задачи от исследования до структурированного письма. Этот практический опыт показывает современные рабочие процессы агентов на основе LLM и демонстрирует, как многосайтовые пайплайны могут быть практичными, модульными и удобными для разработчиков.

Настройка окружения

Мы начинаем с установки необходимых пакетов CrewAI, чтобы все работало гладко в Colab:

import os
import sys
import getpass
from textwrap import dedent
 
print("Установка CrewAI и инструментов... (это может занять 1-2 минуты)")
!pip install -q crewai crewai-tools
 
from crewai import Agent, Task, Crew, Process, LLM

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

Аутентификация с помощью API Gemini

Далее мы аутентифицируем нашу систему, безопасно получая или вводя ключ API Gemini:

print("\n--- Аутентификация API ---")
api_key = None
 
try:
   from google.colab import userdata
   api_key = userdata.get('GEMINI_API_KEY')
   print("✅ Ключ GEMINI_API_KEY найден в секретах Colab.")
except Exception:
   pass
 
if not api_key:
   print("ℹ Ключ не найден в секретах.")
   api_key = getpass.getpass("🔑 Введите ваш ключ API Google Gemini: ")
 
os.environ["GEMINI_API_KEY"] = api_key
 
if not api_key:
   sys.exit("❌ Ошибка: Ключ API не предоставлен. Пожалуйста, перезапустите и введите ключ.")

Это обеспечивает надежную связь между нашим каркасом агентов и LLM.

Настройка модели Gemini Flash

Теперь мы настраиваем модель Gemini Flash, от которой зависят наши агенты:

gemini_flash = LLM(
   model="gemini/gemini-2.0-flash",
   temperature=0.7
)

Эта конфигурация балансирует креативность и точность, становясь общей интеллектуальной основой для выполнения задач агентов.

Определение агентов в системе

Затем мы определяем наших двух специализированных агентов:

researcher = Agent(
   role='Технический исследователь',
   goal='Выявить передовые разработки в области AI-агентов',
   backstory=dedent("""
Вы ветеран-теханалитик с knack'ом находить новые тренды до их популяризации. Вы специализируетесь на автономных AI-агентах и больших языковых моделях.
"""),
   verbose=True,
   allow_delegation=False,
   llm=gemini_flash
)
 
writer = Agent(
   role='Технический писатель',
   goal='Написать краткий, увлекательный блог о находках исследователя',
   backstory=dedent("""
Вы превращаете сложные технические концепции в увлекательные повествования. Вы пишете для разработчиков, ищущих практические идеи без излишества.
"""),
   verbose=True,
   allow_delegation=False,
   llm=gemini_flash
)

Эти агенты работают в тандеме — один извлекает инсайты, в то время как другой преобразует их в хорошо написанное содержание.

Создание задач для агентов

Далее мы создаем задачи, которые четко определяют ответственность для каждого агента:

research_task = Task(
   description=dedent("""
Провести симулированный анализ исследования на тему 'Будущее агентного ИИ в 2025 году'. Выявить три ключевых тренда: 1. Оркестрация многосайтов 2. Нейро-символический ИИ 3. Исполнение агентов на устройстве. Предоставить краткое содержание для каждого на основе ваших 'экспертных знаний'.
"""),
   expected_output="Структурированный список из 3 ключевых трендов ИИ с краткими описаниями.",
   agent=researcher
)
 
write_task = Task(
   description=dedent("""
Используя находки исследователя, напишите краткий блог пост (примерно 200 слов). Пост должен включать: - Привлекательный заголовок - Введение - Три пункта - Заключение о том, почему это важно для разработчиков.
"""),
   expected_output="Блог-пост в формате markdown.",
   agent=writer,
   context=[research_task]
)

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

Запуск многоагентного рабочего процесса

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

tech_crew = Crew(
   agents=[researcher, writer],
   tasks=[research_task, write_task],
   process=Process.sequential,
   verbose=True
)
 
print("\n--- 🤖 Запуск команды ---")
result = tech_crew.kickoff()
 
from IPython.display import Markdown
print("\n\n########################")
print("##   ФИНАЛЬНЫЙ ВЫВОД     ##")
print("########################\n")
display(Markdown(str(result)))

Этот финальный этап демонстрирует реальное сотрудничество наших агентов.

Ценность многосайтового сотрудничества

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

🇬🇧

Switch Language

Read this article in English

Switch to English