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


Команда для обсуждения идей на 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
Авторизуйтесь, чтобы оставить комментарий.
Нет комментариев.