263 lines
13 KiB
Python
263 lines
13 KiB
Python
"""
|
||
GREENFOOD Crew - Оголошення 13 агентів
|
||
|
||
Кожен агент має чітку роль, мету та інструкції з системного промпту.
|
||
"""
|
||
|
||
from crewai import Agent
|
||
from typing import List
|
||
|
||
from .greenfood_prompts import (
|
||
GREENFOOD_ASSISTANT_PROMPT,
|
||
PRODUCT_CATALOG_PROMPT,
|
||
BATCH_QUALITY_PROMPT,
|
||
VENDOR_SUCCESS_PROMPT,
|
||
WAREHOUSE_PROMPT,
|
||
LOGISTICS_PROMPT,
|
||
SELLER_PROMPT,
|
||
CUSTOMER_CARE_PROMPT,
|
||
FINANCE_PRICING_PROMPT,
|
||
SMM_CAMPAIGNS_PROMPT,
|
||
SEO_WEB_PROMPT,
|
||
ANALYTICS_BI_PROMPT,
|
||
COMPLIANCE_AUDIT_PROMPT,
|
||
)
|
||
|
||
|
||
# 1. GREENFOOD Assistant - головний оркестратор
|
||
greenfood_assistant = Agent(
|
||
name="GREENFOOD Assistant",
|
||
role="Фронтовий оркестратор ERP GREENFOOD",
|
||
goal="Розуміти роль користувача, виявляти намір і делегувати задачі доменним агентам.",
|
||
backstory="Єдина точка входу до екосистеми GREENFOOD для комітентів, складів, логістів, маркетологів, бухгалтерів і покупців. Координує роботу 12 спеціалізованих агентів.",
|
||
verbose=True,
|
||
memory=True,
|
||
allow_delegation=True, # Може делегувати завдання іншим агентам
|
||
tools=[], # TODO: Додати інструменти для доступу до API, БД, контексту користувача
|
||
llm_config={"temperature": 0.7}, # Баланс між креативністю та точністю
|
||
)
|
||
greenfood_assistant.backstory = GREENFOOD_ASSISTANT_PROMPT
|
||
|
||
|
||
# 2. Product & Catalog Agent - менеджер каталогу товарів
|
||
product_catalog_agent = Agent(
|
||
name="Product & Catalog Agent",
|
||
role="Менеджер каталогу товарів",
|
||
goal="Створювати та підтримувати чистий і структурований каталог товарів GREENFOOD без дублів.",
|
||
backstory="Відповідає за карточки товарів, атрибути, медіа, структуру каталогу. Працює з комітентами для забезпечення повноти та якості даних про продукцію.",
|
||
verbose=True,
|
||
memory=True,
|
||
allow_delegation=False,
|
||
tools=[], # TODO: ProductCatalogAPI, ImageUploadTool, DuplicateDetectorTool
|
||
llm_config={"temperature": 0.3}, # Точність важливіша за креативність
|
||
)
|
||
product_catalog_agent.backstory = PRODUCT_CATALOG_PROMPT
|
||
|
||
|
||
# 3. Batch & Quality Agent - менеджер партій та якості
|
||
batch_quality_agent = Agent(
|
||
name="Batch & Quality Agent",
|
||
role="Менеджер партій та якості",
|
||
goal="Вести партії товарів, контролювати якість та строки придатності на всіх етапах.",
|
||
backstory="Забезпечує трасованість кожної партії товару від виробника до покупця. Стежить за якістю, строками придатності та інцидентами.",
|
||
verbose=True,
|
||
memory=True,
|
||
allow_delegation=False,
|
||
tools=[], # TODO: BatchTrackingAPI, QualityCheckTool, ExpiryAlertTool
|
||
llm_config={"temperature": 0.2}, # Максимальна точність для критичних даних
|
||
)
|
||
batch_quality_agent.backstory = BATCH_QUALITY_PROMPT
|
||
|
||
|
||
# 4. Vendor Success Agent - менеджер успіху комітентів
|
||
vendor_success_agent = Agent(
|
||
name="Vendor Success Agent",
|
||
role="Менеджер успіху комітентів (виробників)",
|
||
goal="Забезпечити швидкий onboarding та зростання виробників разом із GREENFOOD.",
|
||
backstory="Проактивний партнер для комітентів. Веде чеклісти onboarding'у, виявляє слабкі місця та пропонує конкретні кроки для покращення.",
|
||
verbose=True,
|
||
memory=True,
|
||
allow_delegation=False,
|
||
tools=[], # TODO: VendorOnboardingAPI, ChecklistTool, RecommendationEngine
|
||
llm_config={"temperature": 0.6}, # Баланс між аналізом та рекомендаціями
|
||
)
|
||
vendor_success_agent.backstory = VENDOR_SUCCESS_PROMPT
|
||
|
||
|
||
# 5. Warehouse Agent - начальник складу
|
||
warehouse_agent = Agent(
|
||
name="Warehouse Agent",
|
||
role="Начальник складу",
|
||
goal="Завжди мати коректні й актуальні залишки товарів на всіх складах і хабах.",
|
||
backstory="Керує залишками, рухом товарів, структурою складів та зон. Працює в тісній зв'язці з партіями та логістикою.",
|
||
verbose=True,
|
||
memory=True,
|
||
allow_delegation=False,
|
||
tools=[], # TODO: WarehouseAPI, InventoryTool, StockMovementTool, ZoneManagementTool
|
||
llm_config={"temperature": 0.2}, # Точність критична для залишків
|
||
)
|
||
warehouse_agent.backstory = WAREHOUSE_PROMPT
|
||
|
||
|
||
# 6. Logistics & Delivery Agent - логіст і диспетчер
|
||
logistics_delivery_agent = Agent(
|
||
name="Logistics & Delivery Agent",
|
||
role="Логіст і диспетчер доставок",
|
||
goal="Організовувати доставку замовлень з мінімальними затримками та витратами.",
|
||
backstory="Керує маршрутами, статусами доставок, інтеграціями з перевізниками. Тримає зв'язок між складом та покупцем.",
|
||
verbose=True,
|
||
memory=True,
|
||
allow_delegation=False,
|
||
tools=[], # TODO: LogisticsAPI, DeliveryTrackerTool, CourierIntegrationTool
|
||
llm_config={"temperature": 0.3}, # Точність для маршрутів та статусів
|
||
)
|
||
logistics_delivery_agent.backstory = LOGISTICS_PROMPT
|
||
|
||
|
||
# 7. Seller (Sales) Agent - менеджер з продажу
|
||
seller_agent = Agent(
|
||
name="Seller Agent",
|
||
role="Менеджер з продажу",
|
||
goal="Допомагати покупцям і B2B-клієнтам оформляти замовлення й підбирати оптимальний набір товарів.",
|
||
backstory="Розуміє контекст клієнта (роздріб/опт, новий/постійний), формує кошик, пропонує альтернативи та допомагає з оформленням.",
|
||
verbose=True,
|
||
memory=True,
|
||
allow_delegation=False,
|
||
tools=[], # TODO: SalesAPI, BasketTool, RecommendationEngine, PricingTool
|
||
llm_config={"temperature": 0.5}, # Баланс між аналізом та пропозиціями
|
||
)
|
||
seller_agent.backstory = SELLER_PROMPT
|
||
|
||
|
||
# 8. Customer Care Agent - служба підтримки
|
||
customer_care_agent = Agent(
|
||
name="Customer Care Agent",
|
||
role="Служба підтримки покупців",
|
||
goal="Швидко й коректно відповідати на питання клієнтів і вирішувати проблеми.",
|
||
backstory="Першалінія підтримки. Ідентифікує клієнта, його замовлення, відповідає на питання, фіксує рекламації та пропонує наступні кроки.",
|
||
verbose=True,
|
||
memory=True,
|
||
allow_delegation=False,
|
||
tools=[], # TODO: SupportAPI, OrderLookupTool, ComplaintTool, TicketingTool
|
||
llm_config={"temperature": 0.5}, # Емпатія та точність
|
||
)
|
||
customer_care_agent.backstory = CUSTOMER_CARE_PROMPT
|
||
|
||
|
||
# 9. Finance & Pricing Agent - бухгалтер і фінансовий стратег
|
||
finance_pricing_agent = Agent(
|
||
name="Finance & Pricing Agent",
|
||
role="Бухгалтер і фінансовий стратег",
|
||
goal="Забезпечити прозорі взаєморозрахунки і здорову економіку платформи, хабів і комітентів.",
|
||
backstory="Веде баланси, моделі ціноутворення, комісії, взаєморозрахунки. Працює з токенами (DAAR/DAARION) та фіатом.",
|
||
verbose=True,
|
||
memory=True,
|
||
allow_delegation=False,
|
||
tools=[], # TODO: FinanceAPI, PricingEngine, BalanceTool, PayoutCalculator
|
||
llm_config={"temperature": 0.1}, # Максимальна точність для фінансів
|
||
)
|
||
finance_pricing_agent.backstory = FINANCE_PRICING_PROMPT
|
||
|
||
|
||
# 10. SMM & Campaigns Agent - маркетолог та контент-агент
|
||
smm_campaigns_agent = Agent(
|
||
name="SMM & Campaigns Agent",
|
||
role="Маркетолог та контент-агент",
|
||
goal="Допомагати просувати комітентів, їхні товари та хаби через цифрові канали.",
|
||
backstory="Створює контент для соцмереж, розсилок, банерів. Працює з реальними даними про товари, запаси та акції.",
|
||
verbose=True,
|
||
memory=True,
|
||
allow_delegation=False,
|
||
tools=[], # TODO: ContentGeneratorTool, CampaignAPI, SocialMediaTool, ImageGeneratorTool
|
||
llm_config={"temperature": 0.8}, # Креативність для маркетингу
|
||
)
|
||
smm_campaigns_agent.backstory = SMM_CAMPAIGNS_PROMPT
|
||
|
||
|
||
# 11. SEO & Web Experience Agent - SEO-оптимізатор
|
||
seo_web_agent = Agent(
|
||
name="SEO & Web Experience Agent",
|
||
role="SEO-оптимізатор та веб-архітектор",
|
||
goal="Зробити сторінки товарів, комітентів та хабів видимими в пошуку і зрозумілими для користувачів.",
|
||
backstory="Оптимізує заголовки, описи, сніпети, URL, метадані. Покращує структуру контенту для SEO та UX.",
|
||
verbose=True,
|
||
memory=True,
|
||
allow_delegation=False,
|
||
tools=[], # TODO: SEOAnalyzerTool, MetaGeneratorTool, ContentStructureTool
|
||
llm_config={"temperature": 0.6}, # Баланс між SEO та читабельністю
|
||
)
|
||
seo_web_agent.backstory = SEO_WEB_PROMPT
|
||
|
||
|
||
# 12. Analytics & BI Agent - аналітик даних
|
||
analytics_bi_agent = Agent(
|
||
name="Analytics & BI Agent",
|
||
role="Аналітик даних (Business Intelligence)",
|
||
goal="Перетворювати дані продажів, складів, маркетингу й фінансів на actionable insights.",
|
||
backstory="Формує зрозумілі звіти, виявляє тренди, сезонність, аномалії. Пропонує варіанти дій із вказанням ризиків.",
|
||
verbose=True,
|
||
memory=True,
|
||
allow_delegation=False,
|
||
tools=[], # TODO: AnalyticsAPI, ReportGeneratorTool, TrendAnalyzerTool, ForecastingTool
|
||
llm_config={"temperature": 0.4}, # Точність для аналізу даних
|
||
)
|
||
analytics_bi_agent.backstory = ANALYTICS_BI_PROMPT
|
||
|
||
|
||
# 13. Compliance & Audit Agent - внутрішній аудитор
|
||
compliance_audit_agent = Agent(
|
||
name="Compliance & Audit Agent",
|
||
role="Внутрішній аудитор",
|
||
goal="Стежити за тим, щоб дії в системі відповідали політикам, правилам безпеки та бізнес-логіці.",
|
||
backstory="Аналізує логи подій, виявляє ризикові операції, формує попередження та рекомендації для адміністраторів.",
|
||
verbose=True,
|
||
memory=True,
|
||
allow_delegation=False,
|
||
tools=[], # TODO: AuditLogTool, RiskDetectorTool, ComplianceCheckerTool
|
||
llm_config={"temperature": 0.2}, # Об'єктивність та точність
|
||
)
|
||
compliance_audit_agent.backstory = COMPLIANCE_AUDIT_PROMPT
|
||
|
||
|
||
# Експорт всіх агентів
|
||
GREENFOOD_AGENTS: List[Agent] = [
|
||
greenfood_assistant, # 1. Головний оркестратор
|
||
product_catalog_agent, # 2. Каталог товарів
|
||
batch_quality_agent, # 3. Партії та якість
|
||
vendor_success_agent, # 4. Успіх комітентів
|
||
warehouse_agent, # 5. Склад
|
||
logistics_delivery_agent, # 6. Логістика
|
||
seller_agent, # 7. Продажі
|
||
customer_care_agent, # 8. Підтримка
|
||
finance_pricing_agent, # 9. Фінанси
|
||
smm_campaigns_agent, # 10. Маркетинг
|
||
seo_web_agent, # 11. SEO
|
||
analytics_bi_agent, # 12. Аналітика
|
||
compliance_audit_agent, # 13. Аудит
|
||
]
|
||
|
||
|
||
# Експорт агентів по категоріях для зручності
|
||
CORE_AGENTS = [greenfood_assistant]
|
||
OPERATIONS_AGENTS = [
|
||
product_catalog_agent,
|
||
batch_quality_agent,
|
||
warehouse_agent,
|
||
logistics_delivery_agent,
|
||
]
|
||
SALES_SUPPORT_AGENTS = [
|
||
seller_agent,
|
||
customer_care_agent,
|
||
]
|
||
FINANCE_AGENTS = [finance_pricing_agent]
|
||
MARKETING_AGENTS = [
|
||
smm_campaigns_agent,
|
||
seo_web_agent,
|
||
]
|
||
ANALYTICS_GOVERNANCE_AGENTS = [
|
||
analytics_bi_agent,
|
||
compliance_audit_agent,
|
||
]
|
||
SUCCESS_AGENTS = [vendor_success_agent]
|
||
|