AI-контент-менеджер как цифровой сотрудник
AI-контент-менеджер автоматизирует публикацию, модерацию и аналитику контента: постинг по расписанию, адаптацию под разные каналы, ответы на комментарии, отчёты по вовлечённости. Управляет контентом 24/7 без выходных.
Архитектура агента
from openai import AsyncOpenAI
from datetime import datetime
import asyncio
client = AsyncOpenAI()
class ContentManagerAgent:
def __init__(self, channels: list[str], brand_context: dict):
self.channels = channels # ['telegram', 'vk', 'instagram', 'website']
self.brand = brand_context
self.scheduler = ContentScheduler()
self.publisher = MultiChannelPublisher()
self.moderator = CommentModerator()
async def run(self):
"""Основной цикл работы агента"""
tasks = [
self.process_content_queue(),
self.moderate_comments(),
self.generate_daily_report(),
]
await asyncio.gather(*tasks)
Адаптация контента под каналы
CHANNEL_FORMATS = {
"telegram": {"max_len": 4096, "supports_html": True, "emoji": True},
"vk": {"max_len": 16384, "supports_markup": True, "emoji": True},
"instagram": {"max_len": 2200, "hashtags": 30, "emoji": True},
"twitter_x": {"max_len": 280, "supports_threads": True},
"linkedin": {"max_len": 3000, "tone": "professional"},
}
async def adapt_content_for_channel(
original_content: str,
channel: str,
media_urls: list[str] = None
) -> dict:
fmt = CHANNEL_FORMATS[channel]
response = await client.chat.completions.create(
model="gpt-4o",
messages=[{
"role": "system",
"content": f"""Адаптируй контент для {channel}.
Максимум символов: {fmt['max_len']}.
Тон: {fmt.get('tone', 'conversational')}.
{'Добавь релевантные хэштеги.' if fmt.get('hashtags') else ''}
{'Используй эмодзи умеренно.' if fmt.get('emoji') else 'Без эмодзи.'}
Сохрани смысл, измени формат."""
}, {
"role": "user",
"content": original_content
}]
)
return {
"channel": channel,
"text": response.choices[0].message.content,
"media": media_urls or []
}
Автоматическая модерация комментариев
async def moderate_comment(comment: str, post_context: str) -> dict:
response = await client.chat.completions.create(
model="gpt-4o-mini",
messages=[{
"role": "system",
"content": """Модерируй комментарий. Верни JSON:
{
"action": "approve|delete|flag_review|auto_reply",
"reason": "...",
"auto_reply": "текст ответа если action=auto_reply"
}
Удалять: спам, реклама, оскорбления, нецензурная лексика.
Авто-ответ: вопросы о продукте, благодарности, жалобы (первичный ответ).
На рассмотрение: спорный контент, юридические вопросы."""
}, {
"role": "user",
"content": f"Контекст поста: {post_context[:200]}\nКомментарий: {comment}"
}],
response_format={"type": "json_object"}
)
return json.loads(response.choices[0].message.content)
Кросспостинг через API
class MultiChannelPublisher:
async def publish_telegram(self, text: str, media: list = None, channel_id: str = None):
import telegram
bot = telegram.Bot(token=TELEGRAM_TOKEN)
if media:
await bot.send_photo(chat_id=channel_id, photo=media[0], caption=text)
else:
await bot.send_message(chat_id=channel_id, text=text, parse_mode="HTML")
async def publish_vk(self, text: str, media: list = None, group_id: str = None):
import vk_api
vk = vk_api.VkApi(token=VK_TOKEN).get_api()
vk.wall.post(owner_id=f"-{group_id}", message=text)
async def publish_to_all(self, content_items: list[dict]):
tasks = []
for item in content_items:
if item["channel"] == "telegram":
tasks.append(self.publish_telegram(item["text"], item.get("media")))
elif item["channel"] == "vk":
tasks.append(self.publish_vk(item["text"], item.get("media")))
await asyncio.gather(*tasks)
Аналитика и отчётность
async def generate_weekly_content_report(analytics: dict) -> str:
response = await client.chat.completions.create(
model="gpt-4o",
messages=[{
"role": "system",
"content": "Создай недельный отчёт контент-менеджера. Структура: топ-посты, охват/вовлечённость, лучшие форматы, рекомендации."
}, {
"role": "user",
"content": json.dumps(analytics, ensure_ascii=False)
}]
)
return response.choices[0].message.content
Сроки: базовый агент с постингом по расписанию и адаптацией под 2–3 канала — 2–3 недели. Полная система с модерацией, аналитикой и интеграциями — 6–8 недель.







