Иллюстрация автоматизации и искусственного интеллекта на производственной линии.

Планирование-Кодирование-Выполнение: Разработка агентов, создающих собственные инструменты

Аргументы против готовых инструментов в агентных архитектурах

Делиться

b526ee3c0ad4b6571f5595fb893a72ca

Большинство современных агентных архитектур сосредоточены на том, как несколько агентов координируют свои действия, выбирая инструменты из заранее определенного набора. Хотя такая архитектура эффективна, она неявно предполагает, что инструменты, необходимые для выполнения задачи, известны заранее.

Давайте в этой статье подвергнем сомнению это предположение.

Современные специалисты в области линейного менеджмента уже умеют разбивать сложные задачи на многоэтапные планы, анализировать порядок выполнения и генерировать корректный, исполняемый код. Другими словами, они не просто используют инструменты — они могут их создавать .

В данной статье рассматривается использование агентной архитектуры типа «планирование-кодирование-выполнение» для создания сквозного агента объяснимости , в котором инструменты генерируются по запросу, что иллюстрируется на примере реального сценария.

a76de43ab021fbc84ead8092f5640745

Предложенная здесь архитектура легко адаптируется и к другим сценариям.

Сценарий

Мы рассмотрим результаты работы модели графовой нейронной сети (GNN) для прогнозирования спроса, которую я изучал в своей предыдущей статье. Для объяснения нам необходимы следующие данные:

  • Пространственные характеристики узлов (артикулы).
  • Временные характеристики (заказ на продажу, производство и т. д.) добавлены к узлам графа.
  • Результаты работы модели графовой нейронной сети, обученной прогнозировать спрос на определенный товар.
  • Результаты работы нейронной сети на основе графа (GNN), обученной для обнаружения аномалий в производственной среде.

Все это привело к появлению ряда анализов, результатов и диаграмм, которые необходимо объяснить целостно, с точки зрения планировщика, опираясь на факты и понимание предметной области.

Архитектура агента объяснимости

Мы создадим агентный рабочий процесс «планирование-кодирование-выполнение». Для обеспечения детального контроля, интерпретируемости и гибкости при создании инструментов мы будем создавать полностью настраиваемые агенты, а не работать с абстракциями одной из известных платформ оркестровки. Будут созданы следующие агенты:

1. Агент-аналитик

Нам нужен агент-аналитик, который будет «глазами» приложения. Его задача — определить среду (исходные данные, результаты модели, предыдущие выходные данные), которую будет использовать остальная часть приложения. Он предотвращает такие ошибки, как, например, предположение агента-планировщика о том, что файл продаж называется «sales.csv», тогда как правильное имя файла в наборе данных — «Sales Order.csv».

Помимо простого сканирования имеющихся данных, программа также открывает файлы и создает динамическую схему. Например, файл Sales Order.csv содержит столбцы [Дата, Сумма], а файл demand_vs_production.csv — [Прогнозируемое, Фактическое]. Это формирует контекст для агента планирования.

2. Планировщик

Планировщик получает основную цель пользователя и схему аналитика. Он функционирует как «мозг» приложения. Его задача — разложить запрос на граф зависимостей, состоящий из шагов. Для этого он сначала определяет намерение пользователя на основе его запроса. Если пользователь запрашивает «Точность», он знает, что нужно обратиться к папке «Результаты прогнозирования». Если он запрашивает «История продаж», он обращается к папке «Необработанные данные». Результатом является план в формате JSON, содержащий шаги, четко описывающие задачу, а также флаг с именем CODE или TEXT. Инструменты генерируются агентом Coder только для шагов CODE.

Пример выходных данных : план выполнения в формате JSON.

  • Шаг 1: Загрузите данные графа и найдите соседей SOS001L12P. (КОД)
  • Шаг 2: Сводные данные по продажам и производству за определенный период времени. (КОД)
  • Шаг 3: Рассчитайте WAPE. (КОД)
  • Шаг 4: Подготовка резюме (ТЕКСТ)

3. Программист

Программист — это «руки» приложения, выполняющие основную часть работы. Программист получает каждый шаг из плана и схемы. Для каждого шага плана он пишет автономный исполняемый скрипт на Python .

Он обрабатывает импорт библиотек (pandas, networkx), абсолютные пути и перехват ошибок. Он создает самодостаточное программное обеспечение, а не просто фрагменты кода.

4. Исполнитель завещания

Исполнитель запускает сгенерированный скрипт в контролируемой среде. Для этого он перехватывает стандартный вывод и стандартную ошибку. Если скрипт завершается с ошибкой (например, FileNotFound), журналы обеспечивают обратную связь для потенциальной самокоррекции (хотя из-за привязки к схеме аналитика этого не происходит).

5. Репортер

Наконец, репортер читает журналы и артефакты (CSV, PNG), созданные скриптами, и отвечает на исходный вопрос пользователя, используя тон, глубину и манеру речи, необходимые пользователю. Он выступает в роли «голоса» приложения.

Агенты вызываются последовательно с помощью простого скрипта оркестровки (main.py). Файл config.py содержит путь к папке с набором данных, содержащей информацию об узлах и ребрах, а также к папкам с результатами моделей прогнозирования спроса и обнаружения производственных аномалий. Каждый из агентов и скрипт оркестровки занимают менее 100 строк кода. Используемая LLM — gemini-2.5-flash.

Основная ошибка, выявленная в ходе тестирования, заключалась в том, что агент-кодировщик ссылался на отсутствующий источник данных (галлюцинация), поэтому я усилил подсказку кодировщика, чтобы она строго соответствовала контексту этапа планирования. Кроме того, агент-аналитик изначально отсутствовал и был добавлен в качестве подготовительного этапа перед планировщиком, чтобы предотвратить галлюцинации.

Вот код агента планировщика для справки: import json from ..llm.client import GeminiClient class Planner: def __init__(self): self.llm = GeminiClient() def create_plan(self, user_prompt, dataset_context=»»): «»»Разбивает запрос пользователя на этапы выполнения.»»» system_prompt = f»»» Вы — старший менеджер проектов в команде Data Science. Ваша цель — разбить высокоуровневый запрос пользователя на список конкретных, выполнимых шагов. — ДОСТУПНЫЙ НАБОР ДАННЫХ (Используйте ТОЧНЫЕ имена файлов) — {dataset_context} ———————————————— — РУКОВОДСТВО ПО НАБОРУ ДАННЫХ — — Набор данных содержит как «Исходные данные» (исторические), так и «Результаты модели» (прогнозы/аномалии). — ТЩАТЕЛЬНО определите, какой источник необходим, исходя из цели пользователя. — Пример: «Анализ продаж» -> Исходные данные. «Точность прогноза» -> Результаты модели. Формат вывода: JSON-список объектов с полями: — step_id: int — name: str (краткое название) — description: str (подробная инструкция для программиста) — type: «CODE» (если требуется написание скрипта) или «TEXT» (если это просто краткое описание) — ОГРАНИЧЕНИЯ ОБЛАСТИ ПРИМЕНЕНИЯ — — НЕ ИСПОЛЬЗУЙТЕ машинное обучение (линейная регрессия, обучение, случайный лес). — ИСПОЛЬЗУЙТЕ ТОЛЬКО статистический анализ (среднее, медиана, стандартное отклонение, Z-оценка, скользящие средние). — СОСРЕДОТОЧЬТЕСЬ на визуализации данных (линейные графики, гистограммы). — Если пользователь запрашивает «прогноз» или «точность», ПРЕДПОЧТИТЕ WAPE (взвешенный MAPE) стандартному MAPE. Пример: Пользователь: «Анализ SKU001» Вывод: [ {{«step_id»: 1, «name»: «Загрузка данных», «description»: «Загрузить Nodes.csv и отфильтровать по SKU001, чтобы получить основную информацию.»», «type»: «CODE»}}, {{«step_id»: 2, «name»: «Временной анализ», «description»: «Загрузить Production.csv и Sales.csv.» Рассчитать ежемесячный объем и тренд для SKU001.», «type»: «CODE»}} ] «»» full_prompt = f»{system_prompt}nnЗапрос пользователя: {user_prompt}nПлан JSON:» response = self.llm.generate_content(full_prompt) # базовая очистка блоков JSON Markdown clean_response = response.replace(««`json», «»).replace(««`», «»).strip() print(f»n[DEBUG] Исходный ответ планировщика:n{response}n») # Добавлено для отладки try: return json.loads(clean_response) except json.JSONDecodeError: print(f»Не удалось разобрать план: {response}») return []

Результаты эксперимента

Мы сосредоточимся на сквозной объяснимости для артикула SOS001L12P. Это узел с максимальным объемом продаж. Планировщики и руководство заинтересованы в выявлении проблем на ранних этапах, чтобы удовлетворить спрос и поддерживать качество обслуживания.

Мы обеспечим объяснимость в 4 этапа:

  • Проанализируйте общие связи данного артикула с его соседями в сети поставок.
  • Проанализируйте динамику объёма продаж.
  • Проведите корреляцию с сигналом о добыче, отметьте аномалии.
  • Создайте подробный отчет, объединяющий данные о качестве прогноза спроса, чтобы объяснить состояние данного товарного наименования.

Пространственный анализ

Цель, поставленная перед агентом, заключалась в следующем:

«Проведите тщательный анализ пространственной структуры вокруг узла SOS001L12P и предоставьте мне визуализацию графа».
«ребра с метками, связывающие этот артикул с его соседями».

Агент-планировщик разработал пятиэтапный план загрузки данных об узлах и ребрах, извлечения атрибутов соседей и ребер, подготовки визуализации графа с метками и создания отчета о пространственной структуре.

Вот план [ { «step_id»: 1, «name»: «Загрузка данных узлов и ребер», «description»: «Загрузите 'Nodes.csv', чтобы подтвердить, что 'SOS001L12P' является допустимым узлом. Загрузите все наборы данных ребер: 'Edges (Plant).csv', 'Edges (Product Group).csv', 'Edges (Product Sub-Group).csv' и 'Edges (Storage Location).csv'. Эти файлы содержат структурную информацию, необходимую для пространственного анализа.»», «type»: «CODE» }, { «step_id»: 2, «name»: «Извлечение прямых соседей и атрибутов ребер», «description»: «Пройдите по каждому загруженному набору данных ребер. Для каждого набора данных отфильтруйте строки, где 'SOS001L12P' присутствует либо в столбце 'node1', либо в столбце 'node2'. Для каждой соответствующей записи определите соседний узел и Извлеките конкретный атрибут ребра, определяющий связь (например, «Завод» из «Edges (Plant).csv», «GroupCode» из «Edges (Product Group).csv», «SubGroupCode» из «Edges (Product Sub-Group).csv», «Место хранения» из «Edges (Storage Location).csv»). Объедините всех уникальных соседей и соответствующие им помеченные связи в единую структуру.», «type»: «CODE» }, { «step_id»: 3, «name»: «Подготовка графа к визуализации», «description»: «Создайте объект графа (например, с помощью NetworkX) с «SOS001L12P» в качестве центрального узла. Добавьте всех идентифицированных прямых соседей в качестве узлов и создайте ребра между «SOS001L12P» и каждым соседом. Присвойте извлеченные атрибуты ребер (например, «Завод: Завод A», «GroupCode: «GRP1″) в качестве меток для этих ребер для большей наглядности визуализации.» «type»: «CODE» }, { «step_id»: 4, «name»: «Визуализация ребер графа с метками», «description»: «Создайте наглядную визуализацию пространственной структуры вокруг 'SOS001L12P'. На графике 'SOS001L12P' должен отображаться в центре, а его непосредственные соседи должны быть соединены ребрами. Каждое ребро должно быть явно помечено типом связи и его конкретным значением атрибута (например, 'Завод: P001', 'Группа продуктов: PG002'). Обеспечьте соответствующую компоновку и стиль для удобства чтения.» «type»: «CODE» }, { «step_id»: 5, «name»: «Краткое описание пространственной связности», «description»: «Предоставьте текстовое описание пространственной структуры вокруг 'SOS001L12P'. Опишите типы объектов, с которыми он связан (Заводы, Группы продуктов, Подгруппы продуктов, Места хранения), перечислите конкретных выявленных соседей и кратко объясните характер этих связей на основе меток ребер.», «тип»: «ТЕКСТ» } ]

Агент-программист создал 4 инструмента, по одному для каждого из этапов программирования.

c5662cf65812f54bb1c37688bcb1c5f8

Основной результат — это граф взаимосвязей данного артикула с его соседями, где указаны все связи, такие как общие заводы, места хранения, группы товаров и т. д.

13207f10a2c1bd9b4237edd515baa142

В результате составляется краткий отчет, в котором отмечается:

« Взаимосвязи между соседними узлами: анализ выявил 39 различных взаимосвязей, соединяющих SOS001L12P с 39 уникальными соседними узлами».

Полный отчет здесь. Завершен тщательный анализ пространственной структуры вокруг узла `SOS001L12P`. **Результаты анализа:** 1. **Проверка узла:** Узел `SOS001L12P` подтвержден как действительный узел в основных данных. 2. **Соседние связи:** В результате анализа выявлено 39 различных связей, соединяющих `SOS001L12P` с 39 уникальными соседними узлами. Эти связи классифицируются по `RelationshipType` и `RelationshipValue`: * **Завод:** `SOS001L12P` связан с несколькими соседними устройствами через различные коды «Завода» (например, 2103, 2111, 2112, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122). * **GroupCode:** `SOS001L12P` имеет общий 'GroupCode' 'S' с соседними объектами, такими как `SOS008L02P`, `SOS005L04P`, `SOS003L04P`, `SOS002L09P`, `SOS500M24P`, `SOS250M48P`, `SOP001L12P`, `SO0005L04P`, `SO0002L09P`, `SO0001L12P`, `SO0500M24P`, `SE500G24P` и `SE200G24P`. * **SubGroupCode:** `SOS001L12P` связан с узлами, такими как `SOS008L02P`, `SOS005L04P`, `SOS003L04P`, `SOS002L09P`, `SOS500M24P` и `SOS250M48P`. * **Местоположение хранилища:** `SOS001L12P` связан со своими соседями посредством различных кодов «Местоположение хранилища» (например, 330.0, 1130.0, 1230.0, 1430.0, 1530.0, 1630.0, 1730.0, 1830.0, 1930.0, 2030.0, 2130.0, 2230.0). Полный список соседей и их конкретных взаимосвязей можно найти в `C:/Auto-agent/workspace/outputSOS001L12P_neighbors_relationships.csv`. **Визуализация:** Создана графическая визуализация, центрированная на `SOS001L12P` и отображающая всех его непосредственных соседей и соединяющие их ребра с метками, указывающими `RelationshipType` и `RelationshipValue`. Полученный граф содержит 40 узлов (включая `SOS001L12P`) и 39 ребер. Визуализация доступна по адресу: `C:/Auto-agent/workspace/outputSOS001L12P_neighbor_graph.png`

Анализ сигнала о заказе на продажу (спросе).

Поскольку нас интересует точность модели прогнозирования спроса, важно проанализировать тенденции продаж. Была поставлена следующая задача:

«Провести анализ временного сигнала заказа на продажу SOS001L12P, отмечая тенденции, выбросы и любые отклонения в динамике объемов».

Специалист по планированию разработал шестиэтапный план для загрузки и обработки данных о продажах, создания скользящих средних за 7 и 30 дней, расчета выбросов, визуализации тенденций и подготовки отчета.

План действий выглядит следующим образом: [ { «step_id»: 1, «name»: «Загрузка данных заказа на продажу для SOS001L12P», «description»: «Загрузка файла 'Sales Order.csv' из C:\AnomalyGNN\dataset\Raw Dataset\Temporal Data\Unit\Sales Order.csv. Сосредоточьтесь на столбцах 'Date' и 'SOS001L12P', рассматривая 'SOS001L12P' как объем продаж.»», «type»: «CODE» }, { «step_id»: 2, «name»: «Предварительная обработка временных данных»», «description»: «Преобразовать столбец 'Date' в объекты datetime и установить его в качестве индекса DataFrame. Убедиться, что столбец объема продаж (SOS001L12P) является числовым. Обработать любые пропущенные значения, возможно, заполнив их нулями или используя прямое/обратное заполнение, если это необходимо для данных о продажах (укажите выбранный метод).»», «type»: «КОД» }, { «step_id»: 3, «name»: «Анализ тенденций объема продаж», «description»: «Рассчитать 7-дневные и 30-дневные скользящие средние для объема продаж 'SOS001L12P'. Это поможет выявить краткосрочные и долгосрочные тенденции в сигнале продаж. Сохраните их в виде новых столбцов в DataFrame.»», «type»: «КОД» }, { «step_id»: 4, «name»: «Выявление выбросов с помощью Z-показателя», «description»: «Рассчитать Z-показатель для объема продаж 'SOS001L12P'. Выявить потенциальные выбросы, отметив точки данных, где абсолютный Z-показатель превышает заданный порог (например, 2 или 3 стандартных отклонения). Сохранить Z-показатель и логический столбец 'Is_Outlier'.»», «type»: «КОД» }, { «step_id»: 5, «name»: «Визуализация заказа на продажу «Временной сигнал», «описание»: «Создайте линейный график временного ряда, показывающий объем продаж 'SOS001L12P' с течением времени. Наложите 7-дневное и 30-дневное скользящие средние. Выделите выявленные выбросы на графике, чтобы визуально представить аномалии в тенденциях объема.»», «тип»: «КОД» }, { «step_id»: 6, «имя»: «Сводка тенденций и аномалий», «описание»: «Предоставьте текстовую сводку наблюдаемых тенденций (например, сезонность, рост/снижение), частоту и величину выявленных выбросов, а также любые другие заметные аномалии или сдвиги в динамике объема продаж для SOS001L12P. Эта сводка должна интерпретировать визуализации и статистические показатели.»», «тип»: «ТЕКСТ» } ]

Программист создал 5 инструментов, и основным результатом работы конвейера является следующая тенденция. Примечательно, что во второй половине периода наблюдается нисходящий тренд, что может вызывать опасения и требует дальнейшего исследования.

b5f076d26c95b3283aed9a310466fc1c

В аналитическом отчете также отмечается эта тенденция к снижению.

« Устойчивое снижение: Последовательное снижение как ежедневных продаж, так и скользящих средних (за 7 и 30 дней) с января по август явно указывает на устойчивое снижение объема продаж SOS001L12P».

Здесь представлен полный отчет **Анализ временной динамики заказов на продажу SOS001L12P**. Данный анализ охватывает данные о продажах продукта SOS001L12P с 1 января 2023 года по 9 августа 2023 года. **1. Динамика объемов продаж за период:** Объем продаж SOS001L12P демонстрирует четкую и устойчивую тенденцию к снижению на протяжении всего анализируемого периода. * В начале января 2023 года ежедневные объемы продаж были высокими, достигая в отдельные дни 21 394 единиц. 30-дневное скользящее среднее составило приблизительно 12 629 единиц к 10 января. * К началу августа 2023 года объем продаж значительно снизился. 30-дневное скользящее среднее упало до приблизительно 5 165 единиц к 9 августа, что указывает на существенное снижение стабильной активности продаж за восьмимесячный период. **2. Устойчивое снижение и другие проблемы: * **Устойчивое снижение:** Устойчивое снижение как ежедневных продаж, так и скользящих средних (за 7 и 30 дней) с января по август явно указывает на устойчивое снижение объема продаж SOS001L12P. * **Аномалии:** Анализ выявил 14 конкретных дней, классифицированных как аномалии. Они характеризовались необычно низкими объемами продаж, либо из-за Z-показателя ниже -2,0, либо из-за трех последовательных дней отрицательного процентного изменения. К наиболее заметным серьезным падениям относятся: * 4 января 2023 г.: Продажи упали до 10 920,08. * 8 марта 2023 г.: Продажи зафиксировали исключительно низкое значение в 200,00. * **Нулевые продажи:** К концу анализируемого периода были зафиксированы случаи нулевых продаж (например, 8 и 9 августа), что еще больше усугубило тенденцию к снижению и выявило критические проблемы в показателях продаж.

Анализ производственного сигнала

Важно сопоставить отчет о производственных аномалиях, чтобы выявить причинно-следственную связь между снижением продаж и фактическим его снижением. Для этого мы поставили перед агентом следующую цель:

«Провести анализ временного сигнала производства SOS001L12P, выявив тенденцию, выбросы и любые аномалии в динамике объемов».

Был разработан семиэтапный план, аналогичный анализу продаж, для расчета тенденций и выбросов, а также для визуализации аномалий, выявленных моделью обнаружения аномалий.

Вот план [ { «step_id»: 1, «name»: «Загрузка производственных данных для SOS001L12P», «description»: «Загрузка файла 'Production.csv' из 'C:\AnomalyGNN\dataset\Raw Dataset\Temporal Data\Unit\' в DataFrame pandas. Выберите для анализа только столбцы 'Date' и 'SOS001L12P'.»», «type»: «CODE» }, { «step_id»: 2, «name»: «Очистка и подготовка производственных данных», «description»: «Преобразуйте столбец 'Date' в объекты datetime и установите его в качестве индекса DataFrame. Убедитесь, что столбец 'SOS001L12P' является числовым. Обработайте любые пропущенные значения в 'SOS001L12P', заполнив их нулями, предполагая, что отсутствие производственных данных означает нулевое количество произведенных единиц.»», «type»: «CODE» }, { «step_id»: 3, «name»: «Рассчитать скользящие средние для тренда», «description»: «Рассчитать 7-дневное и 30-дневное скользящее среднее для объема производства 'SOS001L12P'. Эти скользящие средние помогут визуализировать и выявить краткосрочные и долгосрочные тренды в данных.»», «type»: «CODE» }, { «step_id»: 4, «name»: «Визуализация объема производства и трендов», «description»: «Создать линейный график временного ряда, показывающий ежедневный объем производства 'SOS001L12P'. Наложить 7-дневное и 30-дневное скользящие средние на один график для визуального представления тренда. Обеспечьте правильную маркировку осей и четкий заголовок.»», «type»: «CODE» }, { «step_id»: 5, «name»: «Выявление выбросов с помощью Z-оценки», «description»: «Рассчитать Z-оценку для каждой точки данных в Объем производства 'SOS001L12P'. Выявите потенциальные выбросы, отметив точки данных, где абсолютное значение Z-балла превышает заданный порог (например, |Z-балл| > 2,5 или 3). Сохраните даты и значения этих выбросов.», «type»: «CODE» }, { «step_id»: 6, «name»: «Визуализация выбросов и аномалий», «description»: «Создайте линейный график временного ряда объема производства 'SOS001L12P'. На этом графике четко отметьте или раскрасьте точки данных, которые были определены как выбросы на предыдущем шаге, чтобы выделить аномалии в тенденциях объема.»», «type»: «CODE» }, { «step_id»: 7, «name»: «Сводка по тренду, выбросам и аномалиям», «description»: «Предоставьте текстовое резюме наблюдаемого общего тренда (например, рост, снижение, стабильность, сезонность), опишите характеристики выявленных выбросов (например, величина, частоту, конкретные даты), а также комментарии по любым заметным отклонениям в динамике объемов производства на основе визуализаций и статистического анализа.», «тип»: «ТЕКСТ» } ]

Были созданы и внедрены соответствующие инструменты, и получены результаты. Ниже представлена диаграмма производственных тенденций и, что более важно, диаграмма, показывающая значительное количество аномалий во второй половине периода, которые могут влиять на продажи.

fee4edaea07632f892f1236dab11e656
75feb9d96075581c00961eaa72418b26

Это отмечено в составленном отчете:

«Несмотря на отсутствие выбросов по Z-показателю, более совершенный метод обнаружения аномалий **выявил 17 аномальных точек данных** в производственной партии SOS001L12P».

Полный отчет здесь. Вот анализ временного сигнала производства для SOS001L12P: **1. Обзор данных:** Данные о производстве для SOS001L12P были успешно загружены и предварительно обработаны, охватывая 221 день с 1 января 2023 года по 9 августа 2023 года. Столбец «Дата» был корректно обработан, и подтверждено, что столбец «Объем производства SOS001L12P» содержит числовые данные без пропущенных значений. **2. Анализ трендов:** * **Скользящие средние:** Были рассчитаны 7-дневные и 30-дневные скользящие средние для сглаживания ежедневных колебаний и выявления основных трендов. * График `SOS001L12P_production_trends.png` (сохраненный в `C://Auto-agent/workspace/output`) визуально отображает ежедневный объем производства наряду с этими скользящими средними, позволяя наблюдать общий временной тренд. * Анализируя крайние значения данных, скользящие средние за 7 и 30 дней показывают общее снижение объема производства к концу наблюдаемого периода (начало августа): среднее значение за 30 дней упало с 5582,97 7 августа до 5075,73 9 августа, а среднее значение за 7 дней — с 3724,71 до 2911,00 за тот же период. **3. Выбросы (метод Z-оценки):** * При использовании порогового значения Z-оценки |Z-оценка| > 2,5 **потенциальных выбросов в данных о производстве SOS001L12P выявлено не было. Это говорит о том, что, хотя могут быть вариации, ни одна отдельная точка данных не отклонялась значительно от среднего значения (7480,90) более чем на 2,5 стандартных отклонения (4729,55). **4. Отклонения от нормы в объемах производства: ** * Несмотря на отсутствие выбросов по Z-показателю, более совершенный метод обнаружения аномалий **выявил 17 аномальных точек данных** в производстве SOS001L12P. * Эти аномалии визуализированы на графике `SOS001L12P_production_with_anomalies_plot.png` (сохранен в `C://Auto-agent/workspace/output`), который выделяет конкретные даты, когда объем производства демонстрировал необычное поведение по сравнению с его типичным паттерном. Например, значительное падение до 0 9 августа, вероятно, является одной из таких аномалий, указывающей на остановку или резкое сокращение производства.

Отчет планировщика сквозных поставок

Теперь, когда мы провели пространственно-временной анализ артикула SOS001L12P, следующим логическим шагом является сопоставление полученных результатов с моделью прогнозирования спроса, чтобы увидеть, как она адаптируется к тенденциям. И подготовка полного отчета о состоянии этого артикула, который планировщик сможет представить руководству.

Для этого мы поставили перед собой следующую цель:

«Я специалист по планированию цепочки поставок. Прошу вас, учитывая проведенный вами ранее анализ, а также другие источники данных, составить комплексный отчет по SOS001L12P. Я заметил, что во второй половине отчетного периода наблюдается тенденция к снижению объемов производства, а также множество аномалий в этот период. Сопоставьте данные о производстве с прогнозом спроса и прокомментируйте эффективность нашей модели прогнозирования в течение этого периода».

Планировщик разработал план по сопоставлению прогнозов производства, продаж и спроса, оценке эффективности модели прогнозирования с использованием основного показателя WAPE (взвешенная абсолютная процентная ошибка), а затем подготовил подробный отчет.

Вот план [ { «step_id»: 1, «name»: «Загрузка и консолидация данных SOS001L12P», «description»: «Загрузка следующих наборов данных для SOS001L12P: n1. Скользящие средние показатели производства: C:\Auto-agent\workspace\output\production analysis — 2\production_rolling_averages_SOS001L12P.csv (столбцы: Дата, SOS001L12P, SOS001L12P_7_day_avg, SOS001L12P_30_day_avg)n2. Z-баллы производства: C:\Auto-agent\workspace\output\production analysis — 2\SOS001L12P_production_z_scores.csv (столбцы: Дата, Фактическое производство, Z_Score)n3. Результаты обнаружения аномалий: C:\AnomalyGNN\results\top_sku_SOS001L12P_predictions.csv (столбцы: Дата, Is_Anomaly)n4. Прогноз спроса и производства: C:\GNN\results\demand_vs_production_SOS001L12P.csv (столбцы: Дата, Predicted_Demand, Actual_Sales, Actual_Production)nnОбъедините все эти датафреймы по столбцу «Дата», убедившись, что «Дата» преобразована в формат даты и времени для точного анализа временных рядов.»», «type»: «CODE» }, { «step_id»: 2, «name»: «Анализ и визуализация производственных тенденций и аномалий»», «description»: «Создайте линейный график временного ряда, показывающий «Фактическое производство» для SOS001L12P, наложенный на 'SOS001L12P_7_day_avg' и 'SOS001L12P_30_day_avg'. Выделите точки, где 'Is_Anomaly' истинно (из top_sku_SOS001L12P_predictions.csv) или где 'Z_Score' превышает определенный порог (например, |Z_Score| > 2 или 3), чтобы визуально подтвердить наблюдение пользователя о нисходящем тренде и аномалиях во второй половине рассматриваемого периода. Определите начальную дату «второй половины» на основе временного диапазона данных.», «type»: «CODE» }, { «step_id»: 3, «name»: «Корреляция прогноза производства, продаж и спроса», «description»: «Создать единый линейный график временного ряда, сравнивающий 'Фактическое производство', «Фактические продажи» и «Прогнозируемый спрос» для SOS001L12P. Проанализируйте визуальную корреляцию и отметьте периоды значительного расхождения или совпадения, особенно во второй половине года, когда наблюдались производственные аномалии и нисходящие тенденции.» «тип»: «КОД» }, { «идентификатор шага»: 4, «имя»: «Оценка эффективности модели прогнозирования (WAPE)», «описание»: «Рассчитайте средневзвешенную процентную ошибку (WAPE) для прогнозируемого спроса по отношению к фактическим продажам для SOS001L12P, используя консолидированные данные. Рассчитайте WAPE за весь период и отдельно за вторую половину периода (как определено на шаге 2), чтобы оценить, как модель работала в период наблюдаемых производственных проблем. Представьте значения WAPE и интерпретируйте их значение с точки зрения точности прогноза.» «тип»: «КОД» }, { «идентификатор шага»: 5, «name»: «Создать полный комплексный отчет по SOS001L12P», «description»: «Предоставить описательный отчет, обобщающий все выводы. n1. Подтвердить наблюдаемую тенденцию к снижению производства SOS001L12P во второй половине рассматриваемого периода, указав конкретные даты или периоды. n2. Подтвердить наблюдение пользователя о многочисленных аномалиях, указав количество или выделив ключевые даты аномалий. n3. Обсудить корреляцию между фактическим производством, фактическими продажами и прогнозируемым спросом, объяснив их взаимодействие, особенно во второй проблемной половине года. n4. Прокомментировать эффективность модели прогнозирования на основе рассчитанных значений WAPE, отметив любые существенные различия в точности между общим периодом и «второй половиной». n5. Предложить информацию о потенциальных причинах наблюдаемых тенденций или аномалий и их влиянии на планирование цепочки поставок.» «type»: «TEXT» } ]

В результате комплексного анализа получается готовая к использованию в планировании оценка, в заключении которой отмечается:

«Для товара SOS001L12P вторая половина анализируемого периода (с 21 апреля 2023 г. по 9 августа 2023 г.) характеризовалась повышенной волатильностью и нисходящей тенденцией фактического производства, сопровождавшейся многочисленными аномалиями. Фактическое производство в этот период также было ниже фактических продаж. Хотя модель прогнозирования спроса эффективно отразила тенденции фактических продаж (средневзвешенная ставка пропорционального роста (WAPE) составила 29,70% во второй половине года, что демонстрирует улучшение по сравнению с общим показателем в 35,44%), производство с трудом соответствовало этим требованиям, что привело к слабой корреляции между производством и продажами, а также прогнозируемым спросом. Эти расхождения, часто совпадающие с выявленными производственными аномалиями, указывают на потенциальные ограничения поставок или операционные сбои, влияющие на нашу способность стабильно удовлетворять спрос».

Полный отчет находится здесь. Здесь представлен полный отчет по артикулу SOS001L12P, учитывающий ваши наблюдения и результаты недавнего анализа. — ### **Полный отчет: Анализ артикула SOS001L12P (с 01.01.2023 по 09.08.2023)** **1. Обзор** В этом отчете обобщены данные недавнего анализа производства, выявления аномалий и прогнозирования спроса для артикула SOS001L12P за период с 1 января 2023 года по 9 августа 2023 года. Анализ конкретно фокусируется на тенденциях и производительности модели во второй половине этого периода, начиная примерно с 21 апреля 2023 года. **2. Тенденции и аномалии производства** Анализ подтверждает ваши наблюдения относительно тенденций производства во второй половине периода (с 21.04.2023). * **Нисходящий тренд и волатильность**: Хотя временной ряд в целом демонстрирует положительную визуальную корреляцию между фактическим производством, фактическими продажами и прогнозируемым спросом, фактическое производство, по-видимому, более волатильно и демонстрирует более резкое падение по сравнению с фактическими продажами и прогнозируемым спросом в некоторых сегментах второй половины года. * **Производство против продаж**: Во второй половине года фактическое производство (в среднем 4866 единиц) было заметно ниже фактических продаж (в среднем 5136 единиц). * **Аномалии**: Всего по всему набору данных было выявлено 17 комбинированных аномальных точек (на основе «Is_Anomaly=True» или |Z_Score| > 2,5). Некоторые из этих производственных аномалий были обнаружены во второй половине года, в частности, в такие даты, как 21.04.2023, 05.05.2023, 21.05.2023, 22.05.2023 и 23.05.2023. Эти периоды аномалий часто совпадают со значительными расхождениями, когда фактическое производство резко отклоняется от фактических продаж и прогнозируемого спроса. **3. Корреляция: производство, прогноз спроса и продажи** Корреляционный анализ во второй половине периода (начиная с 21.04.2023) выявляет четкие взаимосвязи: * **Сильная корреляция продаж и спроса**: Фактические продажи и прогнозируемый спрос демонстрируют сильную положительную корреляцию **0,85**. Это говорит о том, что модель прогнозирования в целом эффективна в отслеживании фактических изменений продаж. * **Слабая корреляция производства**: Корреляция фактического производства как с фактическими продажами, так и с прогнозируемым спросом значительно слабее: * Фактическое производство против фактических продаж: **0,35** * Фактическое производство против прогнозируемого спроса: **0,38** * **Расхождение**: Несмотря на общую визуальную корреляцию на протяжении всего периода, во второй половине наблюдаются заметные периоды, когда фактическое производство расходится с фактическими продажами и прогнозируемым спросом. Это особенно очевидно во время наблюдаемых аномалий, что указывает на то, что объем производства не всегда соответствовал рыночному спросу или продажам в этих случаях. **4. Эффективность модели прогнозирования спроса** Эффективность модели прогнозирования оценивалась с использованием средневзвешенной процентной ошибки (WAPE): * **Общая эффективность**: Общая WAPE для SOS001L12P за весь период составляет **35,44%**. * **Результаты за второе полугодие**: За второе полугодие (с 21 апреля 2023 г.) средневзвешенная прибыль на акцию (WAPE) составляет **29,70%**. * **Интерпретация**: Средневзвешенная прибыль на акцию во втором полугодии ниже, чем общая средневзвешенная прибыль на акцию. Это указывает на то, что, несмотря на наблюдаемые проблемы и аномалии в производстве в этот период, точность модели прогнозирования спроса фактически **улучшилась** во втором полугодии. Прогнозируемый спрос модели стабильно точно соответствует фактическим продажам, что свидетельствует о ее достаточной эффективности в выявлении закономерностей спроса для целей планирования. **Вывод** Для товара SOU001L12P второе полугодие анализируемого периода (с 21 апреля 2023 г. по 9 августа 2023 г.) характеризовалось повышенной волатильностью и нисходящей тенденцией фактического производства, сопровождавшейся многочисленными аномалиями. Фактическое производство в этот период также было ниже фактических продаж. Хотя модель прогнозирования спроса эффективно отразила тенденции фактических продаж (средневзвешенная ставка пропорционального роста (WAPE) составила 29,70% во втором полугодии, что свидетельствует об улучшении по сравнению с общим показателем в 35,44%), производство с трудом соответствовало этим требованиям, что привело к слабой корреляции между производством и продажами, а также прогнозируемым спросом. Эти расхождения, часто совпадающие с выявленными производственными аномалиями, указывают на потенциальные ограничения поставок или операционные сбои, влияющие на нашу способность стабильно удовлетворять спрос.

Это отчет производственного уровня, содержащий факты, цифры и ключевые показатели эффективности, подтверждающие сделанные выводы.

И всё это было достигнуто благодаря полностью гибкой агентной архитектуре, способной адаптироваться к любой желаемой цели обеспечения объяснимости.

Разработка и тестирование этого приложения, а также генерация вышеупомянутых отчетов и результатов обошлись менее чем в 1 доллар США в виде использования токенов.

Заключение

Будущее агентных систем — это не расширение каталогов инструментов или усложнение систем оркестровки. Это агенты, которые смогут решать, что должно существовать в первую очередь .

Когда планирование, кодирование и выполнение рассматриваются как этапы логического рассуждения, инструменты перестают быть статичными активами и становятся одноразовыми артефактами — создаваемыми, используемыми и выбрасываемыми по мере необходимости для решения задачи. Это смещает акцент в проектировании агентов от оперативной разработки, пытающейся привязать агентов и инструменты к системе оркестрации, к генерации программного обеспечения как основной функции.

Архитектура «планирование-кодирование-выполнение» демонстрирует, что анализ производственного уровня, основанный на фактических данных, может быть получен с помощью небольших, прозрачных агентов с минимальным количеством связующего кода и минимальными затратами. По мере совершенствования LLM наиболее ценными агентами станут те, которые могут автономно преобразовывать намерения в работающее программное обеспечение — без предварительного указания, как это сделать.

В этом смысле агенты автоматического планирования и автоматического кодирования — это не просто удобство. Это естественная эволюция агентных систем.

Более подробную информацию о модели GNN для прогнозирования спроса, упомянутой в этой статье, можно найти в моей статье здесь.

Свяжитесь со мной и поделитесь своими комментариями на сайте www.linkedin.com/in/partha-sarkar-lets-talk-AI

Ссылка

SupplyGraph: эталонный набор данных для планирования цепочки поставок с использованием графовых нейронных сетей: Авторы: Азмин Тушик Васи, доктор медицинских наук Шафикул Ислам, Адипто Райхан Акиб

Изображения, использованные в этой статье, сгенерированы с помощью Google Gemini. Диаграммы и соответствующий код созданы мной.

Источник: towardsdatascience.com

✅ Найденные теги: Выполнение, Инструменты, Кодирование, новости, Планирование, Планирование-Кодирование-Выполнение:, Разработка

ОСТАВЬТЕ СВОЙ КОММЕНТАРИЙ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Каталог бесплатных опенсорс-решений, которые можно развернуть локально и забыть о подписках

галерея

Звёздное небо с галактиками и туманностями, космос, Вселенная, астрофотография.
Женщина с длинными тёмными волосами в синем свете, нейтральный фон.
Спутник исследует черную дыру в космосе, испускающий световой луч.
Пикачу использует электрический разряд на фоне неба.
Черный углеродное волокно с текстурой плетения, отражающий свет.
Круглый экран с изображением замка и горы, рядом электронная плата.
Код на экране компьютера, программирование, интерфейс разработчика.
Статистика использования видеокарт NVIDIA RTX, показывающая изменения за октябрь-февраль.
Макросъемка клетки под микроскопом, текстура и форма на голубом фоне.
Image Not Found
Звёздное небо с галактиками и туманностями, космос, Вселенная, астрофотография.

Система оповещения обсерватории Рубина отправила 800 000 сигналов в первую ночь наблюдений.

Астрономы будут получать оповещения о небесных явлениях в течение нескольких минут после их обнаружения. Теренс О'Брайен, редактор раздела «Выходные». Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в ленту новостей на главной…

Мар 2, 2026
Женщина с длинными тёмными волосами в синем свете, нейтральный фон.

Расследование в отношении 61-фунтовой машины, которая «пожирает» пластик и выплевывает кирпичи.

Обзор компактного пресса для мягкого пластика Clear Drop — и что будет дальше. Шон Холлистер, старший редактор Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в ленту новостей на главной странице вашего…

Мар 2, 2026
Черный углеродное волокно с текстурой плетения, отражающий свет.

Материал будущего: как работает «бессмертный» композит

Учёные из Университета штата Северная Каролина представили композит нового поколения, способный самостоятельно восстанавливаться после серьёзных повреждений.  Речь идёт о модифицированном армированном волокном полимере (FRP), который не просто сохраняет прочность при малом весе, но и способен «залечивать» внутренние…

Мар 2, 2026
Круглый экран с изображением замка и горы, рядом электронная плата.

Круглый дисплей Waveshare для креативных проектов

Круглый 7-дюймовый сенсорный дисплей от Waveshare создан для разработчиков и дизайнеров, которым нужен нестандартный экран.  Это IPS-панель с разрешением 1 080×1 080 пикселей, поддержкой 10-точечного ёмкостного сенсора, оптической склейкой и защитным закалённым стеклом, выполненная в круглом форм-факторе.…

Мар 2, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых