Articles

Команда для обсуждения идей на CrewAI

Команда для обсуждения идей на CrewAI
Mikhail
Автор
Mikhail
Опубликовано 19.08.2025
5,0
Views 10

Команда для обсуждения идей на CrewAI

Команда состоит из 4 агентов: критик, прагматик, представитель пользователей, генератор идей (Оптимист).

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

Подготовка проекта CrewAI

1) Установите crewai по инструкции из документации.

2) Создайте Crew crewai create crew team При установке выберите своего поставщика API и модель, укажите API ключ.

Если вы используете локальную LLM, например ollama, выберите ollama и любую модель. Затем в файле .env укажите нужную вам модель, например:

MODEL=ollama/qwen3:8b
API_BASE=http://localhost:11434

4) Перейдите в директорию с проектом. 5) Активируйте виртуальное окружение.

Linux\Mac

.venv/Scripts/bin

Windows

.venv\Scripts\activate

6) Установите crewai

crewai install

Пример реализации команды агентов

Файл config/agents.yaml

critic:
  role: >
    Критик
  goal: >
    Анализировать идеи критически, выявлять слабые места и потенциальные проблемы
  backstory: >
    Опытный аналитик с острым умом, который всегда находит недостатки и риски в любых предложениях

pragmatist:
  role: >
    Прагматик
  goal: >
    Оценивать практическую реализуемость идей и предлагать конкретные шаги
  backstory: >
    Практичный специалист, который фокусируется на том, как реально воплотить идеи в жизнь

user_advocate:
  role: >
    Представитель пользователей
  goal: >
    Защищать интересы пользователей и оценивать идеи с их точки зрения
  backstory: >
    Эксперт по пользовательскому опыту, который всегда думает о потребностях и удобстве конечных пользователей

idea_generator:
  role: >
    Генератор идей (Оптимист)
  goal: >
    Развивать и улучшать идеи, находить новые возможности и перспективы
  backstory: >
    Креативный мыслитель-оптимист, который видит потенциал в любой идее и умеет её развить

Файл config/tasks.yaml

discussion_task:
  description: >
    Проведите коллективное обсуждение идеи: {idea}

    ВАЖНО: Это должна быть настоящая дискуссия с диалогом между участниками!

    Процесс:
    1. Критик высказывает свои опасения
    2. Генератор идей отвечает на критику и предлагает решения
    3. Прагматик оценивает предложенные решения
    4. Представитель пользователей добавляет свою точку зрения
    5. Все участники обсуждают спорные моменты
    6. Приходят к общему выводу

    Каждый участник должен реагировать на мнения других и вести диалог!
    Организуйте настоящий диалог, а не просто сбор мнений!
  expected_output: >
    Всестороннее обсуждение идеи с выводами от каждого агента
  agent: idea_generator
  human_input: true

Файл crew.py

from typing import List

from crewai import Agent, Crew, Process, Task
from crewai.project import CrewBase, agent, crew, task
from crewai.agents.agent_builder.base_agent import BaseAgent


@CrewBase
class Team:
    """Команда для обсуждения идей с разными ролями"""

    agents: List[BaseAgent]
    tasks: List[Task]

    @agent
    def critic(self) -> Agent:
        return Agent(
            config=self.agents_config['critic'], 
            verbose=True
        )

    @agent
    def pragmatist(self) -> Agent:
        return Agent(
            config=self.agents_config['pragmatist'], 
            verbose=True
        )

    @agent
    def user_advocate(self) -> Agent:
        return Agent(
            config=self.agents_config['user_advocate'], 
            verbose=True
        )

    @agent
    def idea_generator(self) -> Agent:
        return Agent(
            config=self.agents_config['idea_generator'], 
            verbose=True
        )

    @task
    def discussion_task(self) -> Task:
        return Task(
            config=self.tasks_config['discussion_task']
        )

    @crew
    def crew(self) -> Crew:
        return Crew(
            agents=self.agents,
            tasks=self.tasks,
            process=Process.sequential,
            verbose=True
        )

Файл main.py

import warnings

from team.crew import Team


warnings.filterwarnings("ignore", category=SyntaxWarning, module="pysbd")


def run():
    """Run the crew."""
    idea = input("Ваш запрос (например, 'Открыть кофейню'): ")
    try:
        Team().crew().kickoff(inputs={"idea": idea})
    except Exception as e:
        raise Exception(f"An error occurred while running the crew: {e}")

Запустить проект

crewai run

Чтобы удобнее было воспользоваться кодом команды для обсуждения идей. Ссылка на GitHub

Авторизуйтесь, чтобы оставить комментарий.

Комментариев: 0

Нет комментариев.