Разработка AI-агента на базе LLM

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1Все 1566 услуг
Разработка AI-агента на базе LLM
Средний
от 1 недели до 3 месяцев
Часто задаваемые вопросы

Направления AI-разработки

Этапы разработки AI-решения

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1284
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1196
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    901
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1119
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    853

Разработка AI-агента на базе LLM

AI-агент на базе LLM — система, в которой языковая модель выступает «мозгом», принимающим решения: что делать дальше, какие инструменты использовать, как интерпретировать результаты. В отличие от RAG-системы или chatbot, агент не просто генерирует ответ — он выполняет последовательность действий для достижения цели.

Компоненты AI-агента

┌─────────────────────────────────────────┐
│                LLM (reasoning)           │
│  ┌─────────┐  ┌──────────┐  ┌────────┐ │
│  │Planning │  │ Tool     │  │Memory  │ │
│  │         │  │ Calling  │  │        │ │
│  └─────────┘  └──────────┘  └────────┘ │
└─────────────────────────────────────────┘
         ↓              ↓
    ┌─────────┐   ┌──────────────┐
    │ Actions │   │    Tools     │
    └─────────┘   ├──────────────┤
                  │ Web Search   │
                  │ Code Exec    │
                  │ DB Query     │
                  │ API Calls    │
                  │ File I/O     │
                  └──────────────┘

ReAct паттерн: основа большинства агентов

ReAct (Reasoning + Acting) — паттерн, где модель чередует рассуждение и действия:

Thought: Нужно найти текущий курс USD/RUB
Action: search_web("курс доллара ЦБ РФ сегодня")
Observation: По данным ЦБ РФ на 28.03.2026: 1 USD = 89.43 RUB

Thought: Нашёл курс. Теперь могу рассчитать сумму
Action: calculate(amount_usd=1500 * 89.43)
Observation: 134145.0

Thought: Расчёт выполнен. Итоговый ответ: 134 145 рублей
Final Answer: При курсе 89.43 руб/долл, 1500 USD = 134 145 руб.

Базовая реализация агента с OpenAI Tools

from openai import OpenAI
import json

client = OpenAI()

# Определение инструментов
tools = [
    {
        "type": "function",
        "function": {
            "name": "search_documents",
            "description": "Поиск информации в корпоративной базе знаний",
            "parameters": {
                "type": "object",
                "properties": {
                    "query": {"type": "string", "description": "Поисковый запрос"},
                    "doc_type": {"type": "string", "enum": ["contract", "policy", "faq"]},
                },
                "required": ["query"],
            },
        },
    },
    {
        "type": "function",
        "function": {
            "name": "execute_sql",
            "description": "Выполнить SQL-запрос к базе данных компании",
            "parameters": {
                "type": "object",
                "properties": {
                    "query": {"type": "string", "description": "SQL-запрос только SELECT"},
                },
                "required": ["query"],
            },
        },
    },
    {
        "type": "function",
        "function": {
            "name": "send_email",
            "description": "Отправить email",
            "parameters": {
                "type": "object",
                "properties": {
                    "to": {"type": "string"},
                    "subject": {"type": "string"},
                    "body": {"type": "string"},
                },
                "required": ["to", "subject", "body"],
            },
        },
    },
]

# Обработчики инструментов
def execute_tool(tool_name: str, tool_args: dict) -> str:
    if tool_name == "search_documents":
        results = vectorstore.similarity_search(tool_args["query"], k=3)
        return "\n".join([r.page_content for r in results])
    elif tool_name == "execute_sql":
        results = db.execute(tool_args["query"])
        return str(results[:20])  # Ограничиваем вывод
    elif tool_name == "send_email":
        email_service.send(**tool_args)
        return "Email отправлен успешно"
    return "Tool not found"

# Агентный цикл
def run_agent(user_message: str, max_iterations: int = 10) -> str:
    messages = [
        {"role": "system", "content": "Ты — корпоративный AI-ассистент. Используй инструменты для выполнения задач."},
        {"role": "user", "content": user_message},
    ]

    for iteration in range(max_iterations):
        response = client.chat.completions.create(
            model="gpt-4o",
            messages=messages,
            tools=tools,
            tool_choice="auto",
        )

        message = response.choices[0].message

        # Если нет вызовов инструментов — финальный ответ
        if not message.tool_calls:
            return message.content

        # Обрабатываем вызовы инструментов
        messages.append(message)

        for tool_call in message.tool_calls:
            tool_name = tool_call.function.name
            tool_args = json.loads(tool_call.function.arguments)

            result = execute_tool(tool_name, tool_args)

            messages.append({
                "role": "tool",
                "tool_call_id": tool_call.id,
                "content": result,
            })

    return "Превышено максимальное число итераций"

Практический кейс: агент для обработки запросов на закупку

Задача: агент получает запрос на закупку от сотрудника, проверяет бюджет, находит подходящих поставщиков в реестре, создаёт черновик договора, отправляет на согласование.

Инструменты агента:

  • check_budget(department, category) — проверка остатка бюджета
  • search_suppliers(category, requirements) — поиск поставщиков
  • generate_contract_draft(supplier_id, terms) — генерация договора
  • create_task_in_jira(title, description, assignee) — создание задачи
  • send_notification(user_id, message) — уведомление

Метрики за 3 месяца:

  • Время обработки запроса: 4.5 дня → 2.1 часа
  • Доля автоматически обработанных (без правок): 68%
  • Ошибки (неправильный поставщик/превышение бюджета): 4%

Guardrails: агент не выполняет финансовые операции напрямую — только подготовку документов и уведомления. Финальное утверждение — за человеком.

Memory: краткосрочная и долгосрочная

from langchain.memory import ConversationBufferWindowMemory, ConversationSummaryMemory

# Краткосрочная память: последние N сообщений
short_term = ConversationBufferWindowMemory(k=10, return_messages=True)

# Долгосрочная: суммаризованная история
long_term = ConversationSummaryMemory(llm=ChatOpenAI(), max_token_limit=2000)

# Семантическая память: важные факты в векторном хранилище
from langchain.memory import VectorStoreRetrieverMemory
semantic_memory = VectorStoreRetrieverMemory(
    retriever=vectorstore.as_retriever(search_kwargs={"k": 3})
)

Сроки

  • Разработка базового агента с 3–5 инструментами: 2–3 недели
  • Разработка корпоративного агента с интеграциями: 6–10 недель