AI агент

Оператор, не чатбот

Панел на агента Запис

Създай смислено описание на английски за продукт „DRILL001“

Готово

-> GetProductBasic(main_id="DRILL001") -> 1 match

-> GetProductExtra(product_id=4182, tabs=["CORE", "TECH"]) -> 38 values

В продуктовия запис вече има всичко необходимо за описанието: безчетков двигател, 18 V, метален патронник 13 mm, въртящ момент 60 Nm, две скорости и тегло 1,7 kg с батерия 2,0 Ah. Съобразявам стила с останалите ви описания. По-долу е показан превод на генерираното английско описание.

Безчеткова бормашина за работа през целия ден. Въртящ момент 60 Nm, двускоростен редуктор и метален патронник 13 mm — за пробиване в зидария, дърво и стомана с подходящото свредло.

Всички твърдения в описанието се основават на продуктовите данни. Полето description_en е празно, така че ще го попълня, без да заменям съществуващ текст.

Да запиша ли това в description_en на DRILL001?

Запиши Първо да го редактирам

вашият отговор

-> UpdateProducts(ids=[4182], changes={"description_en": "…"}) -> 1 updated, 0 errors

Описанието е запазено. Промяната е отбелязана в историята на продукта като редакция от агента.

11 с · 6,4k вход / 512 изход · 3 кръга · 3 инструмента

Панел на агента Запис

Прегледай целия каталог и предложи структура от категории. Засега не създавай нищо.

Очаква вашия отговор

-> GetDashboardStats() -> 4,812 products · 148 fields · 0 categories

-> GetListProducts(offset=0, limit=200) -> 200 rows (× 25 pages)

Шест продуктови фамилии обхващат основната част от каталога. Полетата product_group и voltage определят третото ниво. Предлагам 41 категории на три нива:

Електроинструменти / Бормашини / Акумулаторни   1 204
Електроинструменти / Бормашини / Кабелни         318
Електроинструменти / Триони / Циркулярни         402
Електроинструменти / Ъглошлайфи                  611
Ръчни инструменти / Ключове                      488

За 1 204 продукта липсват данни, по които да се определи дали са акумулаторни или кабелни. Предлагам да останат в общата категория „Бормашини“, вместо да ги разпределям по предположение.

Да създам ли 41-те категории и да разпределя 3 608-те продукта, за които има достатъчно данни?

Създай категориите Първо ми покажи разпределението

Изпълнява се · 1 мин 12 с · 61k вход / 3,4k изход · 7 кръга · 27 инструмента

Панел на агента Запис

Премести всички продукти на доставчик NORTHFIELD в секция POWER, преобразувай въртящия момент в Nm и добави префикс NF- към основния идентификатор.

Готово

-> GetListProducts(filter={"supplier": "NORTHFIELD"}) -> 412 rows

-> GetFields(codes=["torque", "main_id"]) -> 2 definitions

Намерих 412 продукта. Полето torque е от тип NUMBER. При 388 продукта стойността е в lb-ft: ще я умножа по 1,3558 и ще сменя мерната единица на Nm. При останалите 24 тя вече е в Nm. Три основни идентификатора вече започват с NF-.

Да преместя ли 412-те продукта в секция POWER, да преобразувам въртящия момент на 388 от тях в Nm и да добавя префикс NF- към 409 идентификатора?

Приложи Откажи

вашият отговор

-> UpdateProducts(ids=[…412 ids…], changes={"tab": "POWER", "torque": …, "main_id": …}) -> 412 updated, 0 errors

Обновени са 412 продукта с една групова операция и един запис в одитната история. При грешка можете да отмените цялата операция, вместо да възстановявате всеки продукт поотделно.

24 с · 18,2k вход / 940 изход · 4 кръга · 3 инструмента

Панел на агента Запис

Импортирай supplier-q3.xlsx

Готово

-> RunListSheets(file="supplier-q3.xlsx") -> 4 sheets

Коя таблица във файла съдържа продуктите?

Products · 1 914 реда Pricing Legende Changelog

вашият отговор

-> RunAnalyzeImport(file_id=1207, sheet="Products") -> shape=one_x_row

Файлът съдържа по един продукт на ред. 41 колони съответстват на съществуващи полета, 9 съдържат измервания, а 5 — имена на файлове с изображения. За още 6 колони са необходими нови полета в секция IMPORT.

Пробният импорт показва: 1 742 продукта за обновяване, 172 нови продукта и 6 нови полета. Да изпълня ли импорта?

Импортирай Промени настройките за колоните

вашият отговор

-> RunImport(mapping_id=88, file_id=1207) -> 172 new · 1,742 updated · 0 errors

Проверката е свързана с контролната сума на този файл. При следващия файл настройките могат да се използват отново, но проверката се изпълнява наново.

2 мин 40 с · 88k вход / 5,1k изход · 9 кръга · 6 инструмента

Панел на агента Запис

Настрой експорта по шаблона на Grainger. Указанията им са в канала.

Готово

-> ListChannels() -> 6 channels

-> GetChannelHelperJson(channel_id=49) -> 74 column notes

-> GetExportDslReference()

Шаблонът съдържа 74 колони. 58 вземат данните директно от поле. 11 изискват трансформация: Pack Qty трябва да е цяло число, а в каталога се съхранява като текст; Long Description е ограничено до 4000 знака. 3 колони се попълват при определени условия — например Hazmat Code само когато има стойност в un_number. За 2 колони липсват източници: в схемата няма полета UNSPSC и Country of Origin.

-> SaveExportMapping(channel_id=49, columns=74, unsourced=2)

-> RunExport(channel_id=49, preview=true) -> 50 rows

Резултатът от пробния експорт е на страницата с канали. Двете колони без източник остават празни, докато не бъдат създадени съответните полета. С ваше потвърждение ще ги създам и ще довърша настройката на канала.

1 мин 05 с · 44k вход / 7,8k изход · 6 кръга · 5 инструмента

Панел на агента Запис

Задължителните данни в CORE са попълнени на 71%. Прегледай пропуските и попълни всичко, което можеш.

Готово

-> GetProductCompleteness(tab="CORE") -> 1,383 products below 100%

-> GetListProducts(filter={"missing": "CORE"}, limit=200) -> 200 rows (× 7 pages)

Пропуските са в три полета: weight липсва при 1190 продукта, country_of_origin — при 612, а hs_code — при 415. За тази демонстрация приемаме, че за 508 продукта има потвърдени стойности за държавата на произход и HS кода в изходните данни. Те не се определят само по brand и factory. Теглото е посочено в PDF файловете на доставчика; извличането му е отделна задача.

Да запиша ли потвърдените стойности за country_of_origin и hs_code за тези 508 продукта?

Запиши ги Покажи първо 20 продукта

вашият отговор

-> UpdateProducts(ids=[…508 ids…], changes={"country_of_origin": …, "hs_code": …}) -> 508 updated, 0 errors

Попълнените задължителни данни в CORE се увеличиха от 71% на 88%. Останалите 875 продукта са в core-gaps.csv, групирани според липсващата информация. За тях няма достатъчно данни, затова не направих промени.

3 мин 18 с · 121k вход / 4,2k изход · 11 кръга · 10 инструмента

Панел на агента Запис
Гласова команда, завършваща с „давай“

Задай статус „Неактивен“ на всички продукти в категория „Спрени от производство“… давай.

Готово

-> GetListCategories(cat_name="Discontinued") -> 1 match(es)

-> GetListProducts(cat_id=77) -> 306 rows

Завършихте с „давай“, затова приех командата, без да изчаквам натискане на бутона за изпращане. Преди да запиша промените, обаче е нужно потвърждение: те засягат 306 продукта, независимо дали командата е написана или изговорена.

Да задам ли статус „Неактивен“ на 306 продукта?

Да Не

вашият отговор

-> UpdateProducts(ids=[…306 ids…], changes={"status": "inactive"}) -> 306 updated, 0 errors

306 продукта вече са неактивни. Те ще продължат да се включват в експортите, настроени да съдържат неактивни продукти, и ще отпаднат от останалите.

19 с · 9,7k вход / 380 изход · 3 кръга · 3 инструмента

Панел на агента Запис

Всеки работен ден в 9:00 ми давай списък с продуктите, създадени след предишния списък.

Готово

Това е повтаряща се задача, затова ще я запазя като работен процес. Трябва да уточним часовата зона и къде да получавате списъка.

От понеделник до петък в 09:00 (часова зона Europe/Madrid). Къде да изпращам списъка?

В панела на агента И по имейл

вашият отговор

-> SaveWorkflow(name="New products since last run", cron="0 9 * * 1-5", tz="Europe/Madrid") -> workflow #12 armed

-> RunWorkflow(id=12, preview=true) -> GetListProducts(filter={"created_since": "last_run"}) -> 14 rows

DRILL-8842   Ударен винтоверт 18 V        17:41  импорт
NF-2201      Ъглошлайф 125 mm             17:52  импорт
HT-0916      Раздвижен ключ 250 mm        09:04  на ръка
…и още 11

Отчетът в понеделник обхваща петък, събота и неделя, т.е. всичко, създадено след предишното изпълнение. Ако графикът за работните дни пропускаше продуктите от уикенда, те никога нямаше да бъдат отчетени.

Този работен процес само чете данни и създава отчет — не променя каталога. Процес, който записва промени, ще изчака вашето потвърждение по същия начин като всяко друго изпълнение. Графикът не отменя тази проверка.

12 с · 5,8k вход / 420 изход · 3 кръга · 3 инструмента

Панел на агента Запис

Създай имейл до Боб със спецификацията на продукт ABC и прикачи цялата документация.

Готово

-> GetProductBasic(main_id="ABC") -> 1 match

-> GetProductExtra(product_id=915, tabs=["CORE", "TECH"]) -> 44 values

-> GetAssets(product_id=915, roles=["doc"]) -> 3 files (2.7 MB)

Подготвих таблица със спецификациите от секция TECH директно в текста на имейла, за да се чете лесно и на телефон. Трите прикачени документа са техническата спецификация, декларацията за съответствие и ръководството за поддръжка.

-> CreateGmailDraft(to="[email protected]", attachments=3) -> draft created

Имейлът е запазен като чернова във вашата поща. Не е изпратен — това става едва когато вие натиснете „Изпрати“.

28 с · 14,1k вход / 1,1k изход · 4 кръга · 4 инструмента

Панел на агента Запис

Изпрати имейл до екип „Маркетинг“ със списък на продуктите без описание.

Готово

-> GetUsers(group="Marketing") -> 4 users

Групата „Маркетинг“ съдържа четирима потребители с профили в този каталог. Съобщението ще бъде изпратено до тях. Този инструмент не позволява посочване на външен имейл адрес.

-> GetListProducts(filter={"missing": "description_en"}, limit=500) -> 318 rows

318 продукта са с празно поле description_en. От тях 47 са спрени от производство и не се нуждаят от ново описание. Отделих ги в самостоятелен списък, за да е ясен броят на продуктите, по които трябва да се работи.

Да изпратя ли на четиримата потребители в „Маркетинг“ списъка с 271 продукта без описание и отделно 47-те спрени от производство?

Изпрати Първо ми покажи писмото

вашият отговор

-> SendUserEmail(group="Marketing", subject="271 products still need a description", attachments=1) -> sent to 4

Имейлът е изпратен. Получателите са посочени в историята на изпълнението. Задачата може да бъде добавена към график за следващата седмица, вместо да я задавате отново.

26 с · 12,6k вход / 780 изход · 4 кръга · 3 инструмента

Панел на агента Запис

Задайте задача, за да видите разговора тук.

Изберете задача отляво, за да видите как се изпълнява.

Когато е нужно ваше решение

Когато не е сигурен, агентът пита вас

Агентът не гадае, когато решението е ваше. Пита директно в приложението: коя таблица да използва, коя колона идентифицира продукта, дали две полета означават едно и също или дали наистина искате да изтриете стотици продукти. След отговора ви работата продължава. Така запазвате контрол и можете да проследите всяко действие.

  • Въпроси, а не предположения

    При неяснота агентът ви задава въпрос с конкретни възможности за избор. Не взема решение по предположение, отбелязано единствено в историята.

  • Контрол при рискови действия

    Действията, които изтриват данни или засягат много записи, винаги изискват изрично потвърждение.

  • Преглед преди записване

    Преди изпълнение виждате резултата от пробния импорт или експорт и списъка с продукти, които груповата редакция ще засегне. Преглеждате промените, преди да бъдат приложени.

Защо можете да го оставите да работи

Защитни механизми

Групови операции за запис
Инструментите за запис работят с група записи и набор от промени. Агентът не редактира продуктите един по един в продължителна поредица от действия, при която общият обхват остава неясен.
История на всяко изпълнение
За всяко изпълнение се запазват използваните инструменти, параметрите и резултатите. Можете да проверите какво е направил агентът в приложението, без да търсите в технически логове.
Проверка на конкретния файл
Агентът не може да използва резултата от проверката на един файл, за да импортира друг. Всеки нов файл се проверява отделно, дори когато използва запазени настройки.
Същите правила като за човек
За агента важат същите ограничения, задължителни полета и права за достъп като за потребителя. Той не може да ги заобикаля.
Вашият доставчик, вашите ключове
Свържете агента с доставчика на AI модел, с когото работите, чрез собствените си ключове. Така каталогът ви не зависи от бъдещата достъпност или цените на един конкретен доставчик.
Контрол върху достъпните инструменти
Вие определяте до кои групи инструменти има достъп агентът. Можете да изключите тези, които не искате да използва.

Проверете с реална задача

Дайте на агента задача с реални продуктови данни и прегледайте какво е направил в историята на изпълнението. Ще организираме демонстрацията заедно с вас.