CAMEL Implementation for Multi-Agent Interaction

We design and deploy artificial intelligence systems: from prototype to production-ready solutions. Our team combines expertise in machine learning, data engineering and MLOps to make AI work not in the lab, but in real business.
Showing 1 of 1 servicesAll 1566 services
CAMEL Implementation for Multi-Agent Interaction
Medium
from 1 business day to 3 business days
FAQ
AI Development Areas
AI Solution Development Stages
Latest works
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1161
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1041
  • image_logo-advance_0.png
    B2B Advance company logo design
    561
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    823
  • image_logo-aider_0.jpg
    AIDER company logo development
    762
  • image_crm_chasseurs_493_0.webp
    CRM development for Chasseurs
    848

CAMEL for Multi-Agent Interaction

CAMEL (Communicative Agents for "Mind" Exploration of Large Scale Language Model Society) — исследовательский фреймворк для изучения ролевых взаимодействий между LLM-агентами. Ключевая концепция: Role-Playing с явно заданными ролями (AI User / AI Assistant), где агенты ведут структурированный диалог для решения задачи. Полезен для генерации синтетических диалогов, обучающих данных и multi-step reasoning.

Базовый Role-Playing

# pip install camel-ai
from camel.agents import ChatAgent, RolePlaying
from camel.configs import ChatGPTConfig
from camel.messages import BaseMessage
from camel.types import ModelType, RoleType, TaskType

# Конфигурация ролевой игры
role_play_session = RolePlaying(
    assistant_role_name="Python разработчик",
    user_role_name="Product Manager",
    assistant_agent_kwargs={"model": ModelType.GPT_4O},
    user_agent_kwargs={"model": ModelType.GPT_4O},
    task_prompt="""Разработай план реализации API для сервиса уведомлений.
Требования: WebSocket для real-time, REST для CRUD, поддержка push/email/SMS каналов.""",
    with_task_specify=True,   # LLM уточняет задачу перед началом
    task_type=TaskType.AI_SOCIETY,
)

# Инициализация
init_assistant_msg, init_user_msg = role_play_session.init_chat()

# Диалог
n_turns = 0
max_turns = 8

while n_turns < max_turns:
    assistant_response, user_response = role_play_session.step(init_user_msg)

    if assistant_response.terminated or user_response.terminated:
        print("Диалог завершён")
        break

    print(f"\n=== Разработчик (ход {n_turns + 1}) ===")
    print(assistant_response.msg.content)

    print(f"\n=== PM (ход {n_turns + 1}) ===")
    print(user_response.msg.content)

    init_user_msg = user_response.msg
    n_turns += 1

Кастомные агенты с инструментами

from camel.agents import ChatAgent
from camel.messages import BaseMessage
from camel.types import RoleType
from camel.toolkits import OpenAIFunction

# Определение инструментов
def search_codebase(query: str, file_pattern: str = "*.py") -> str:
    """Поиск по кодовой базе проекта."""
    results = code_search.search(query=query, pattern=file_pattern)
    return str(results[:5])

def run_tests(test_file: str) -> str:
    """Запустить тесты и вернуть результат."""
    result = subprocess.run(["pytest", test_file, "-v"], capture_output=True, text=True)
    return result.stdout[-2000:]  # Последние 2000 символов

# Агент с инструментами
system_message = BaseMessage.make_assistant_message(
    role_name="Senior Software Engineer",
    content="""Ты — опытный инженер-программист.
Используй инструменты для анализа кода и написания решений.""",
)

engineer_agent = ChatAgent(
    system_message=system_message,
    model=ModelType.GPT_4O,
    tools=[
        OpenAIFunction(search_codebase),
        OpenAIFunction(run_tests),
    ],
)

response = engineer_agent.step(
    BaseMessage.make_user_message(
        role_name="User",
        content="Найди все места где используется устаревший метод `process_legacy_data` и предложи рефакторинг",
    )
)

Генерация синтетических данных диалогов

Одно из ключевых применений CAMEL — генерация данных для fine-tuning:

from camel.synthetic_datagen import SyntheticDataGenerator

# Генерация диалогов для файнтюнинга
generator = SyntheticDataGenerator(
    model=ModelType.GPT_4O,
    output_format="sharegpt",  # sharegpt, alpaca, openai
)

topics = [
    "Объяснение паттернов проектирования на Python",
    "Отладка асинхронного кода",
    "Оптимизация SQL-запросов",
]

dataset = generator.generate(
    topics=topics,
    n_samples_per_topic=50,
    assistant_role="Senior Python Developer",
    user_role="Junior Developer",
    max_turns_per_dialog=6,
)

dataset.save("training_data_software.jsonl")

Practical Case: генерация обучающих данных

Задача: компания файнтюнила корпоративного ассистента, но не хватало диалоговых данных для обучения — только документы.

Решение CAMEL: генерация синтетических диалогов вопрос-ответ по корпоративным документам.

# Из документов → диалоги
for doc in company_docs:
    session = RolePlaying(
        user_role_name="Новый сотрудник",
        assistant_role_name="Опытный сотрудник компании",
        task_prompt=f"Ответь на вопросы новичка по следующему документу:\n{doc[:2000]}",
        max_num_messages=8,
    )
    dialogs.append(session.run())

Результат: 3 200 синтетических диалогов из 80 документов → fine-tuning на GPT-4o-mini → quality score +28% по сравнению с базовой моделью.

Сроки

  • Базовый role-playing и первые эксперименты: 1–2 дня
  • Кастомные агенты с инструментами: 3–5 дней
  • Пайплайн генерации синтетических данных: 1 неделя