
OpenTelemetry за AI агенте: један траг спаја модел, алат и трошак

Да би развојни тим видео где AI агент греши, који је алат позвао и шта је потрошио, позив агента треба да обухвати операције модела и извршавање алата у једном OpenTelemetry трагу. Конвенција за агентске распоне описује операције invoke_agent и execute_tool, укључујући име алата и бележење грешке. Повезани распони смештају застој или неуспех у одређени корак тока.
Употреба токена са сваког позива модела служи за процену новчаног трошка према тарифама које тим плаћа; број токена сам по себи није износ на рачуну. За основну дијагностику довољни су редослед корака, модел, алат, трајање, грешке, употреба токена и оцена одговора. Пуне поруке и резултате алата не треба бележити само да би се добио тај преглед.
Коренски распон држи задатак на окупу
За агента који се извршава у апликацији отворите распон чији је gen_ai.operation.name постављен на invoke_agent. Додајте gen_ai.agent.name када агент има стабилно име. Тај распон нека обухвати задатак од пријема захтева до исхода; позив удаљеног агентског сервиса користи исту операцију, али другу врсту распона.
Условни ток изгледа овако: агент позива модел, модел затражи алат, агент изврши алат и његов резултат врати у наредни позив модела. Позиви модела и извршавање алата тада су подређени истом агентском распону. Њихова трајања показују да ли је време отишло на генерисање одговора, извршавање алата или чекање између корака. Ако алат позове други сервис, пренесите контекст трага и на тај позив да би се кашњење видело у истом низу.
Име распона треба да означава операцију, а не да садржи кориснички захтев. Стабилна имена омогућавају груписање сличних токова, док идентификатор трага издваја појединачно извршавање. Идентификатор разговора може да помогне када један разговор обухвата више задатака, али га треба преузети из апликације, не изводити из текста поруке.
Позив модела даје меру употребе и основу за обрачун
Конвенција за позив модела предвиђа атрибуте за операцију, добављача, тражени и стварно коришћени модел, разлог завршетка и број улазних и излазних токена. На распону су посебно корисни gen_ai.request.model, gen_ai.response.model, gen_ai.usage.input_tokens и gen_ai.usage.output_tokens. Разлика између траженог и стварно коришћеног модела важна је и за дијагностику и за избор тарифе.
Забележите употребу за сваки позив модела, па је саберите на нивоу задатка. gen_ai.usage.cache_read.input_tokens означава улазне токене прочитане из кеша; они су већ обухваћени укупним бројем улазних токена и не додају се поново. И токени потрошени на резоновање могу бити подскуп излазних токена. Разлог завршетка помаже да се одговор прекинут због ограничења дужине разликује од оног који је модел редовно завршио.
За новчану процену примените уговорену цену на одговарајуће категорије употребе и стварно коришћени модел. Ако добављач посебно наплаћује кеш, алат или другу услугу, та правила треба додати обрачуну; универзална цена не постоји у самом трагу. Резултат означите као процену док га не ускладите са рачуном добављача. Заједничка имена атрибута олакшавају праћење различитих добављача, али примена тих атрибута зависи од инструментације коју тим користи.
Позив алата раздваја избор од исхода
На распону извршавања алата поставите gen_ai.operation.name на execute_tool и забележите gen_ai.tool.name. Ако модел или добављач пошаље идентификатор позива, gen_ai.tool.call.id повезује захтев за алатом са његовим извршавањем. Тако се види који је алат агент изабрао и да ли је грешка настала током његовог позива. За неуспело извршавање забележите статус распона и класу грешке у error.type.
Технички успешан позив може да врати празан или за задатак неупотребљив резултат. Ако је та разлика важна, додајте кратку, доследну категорију исхода коју дефинише ваша апликација, на пример да је резултат празан. То је допуна стандардним атрибутима, а не ново значење OpenTelemetry статуса. Пун садржај резултата није неопходан да би се уочило да је агент одабрао алат, колико је позив трајао и да ли се извршавање завршило грешком.
Атрибути gen_ai.tool.call.arguments и gen_ai.tool.call.result могу да помогну у истрази погрешних улаза или неочекиваних одговора алата, али се бележе по избору. Резултат је податак уз позив алата, не обавезно засебан распон. Ако алат приступа пословним записима или подацима корисника, аргументи и резултат могу да открију више него што је потребно за редовно праћење рада агента.
Оцена мора да припада конкретном одговору
Конвенција за догађај евалуације предвиђа gen_ai.evaluation.result уз распон операције чији се одговор оцењује; када та веза није доступна, може да се користи gen_ai.response.id. Догађај носи име мерила у gen_ai.evaluation.name и, када је применљиво, бројчану оцену или кратку ознаку. Ова конвенција је у развоју, а подршка за догађаје није једнака у свим програмским језицима.
У условном току где модел одговара после алата, оцену вежите за тај завршни одговор. Тада се може издвојити случај у ком је алат извршен без грешке, али је коначан одговор добио ниску оцену. Та комбинација усмерава пажњу на избор алата, употребљивост његовог резултата и начин на који је модел искористио добијене податке; сама оцена не утврђује који је од тих корака узрок.
Име мерила и његова скала морају остати доследни. Иста бројчана вредност може да значи различит квалитет код различитих евалуатора, па кратка ознака оцене може бити кориснија при поређењу трагова. Слободно текстуално објашњење оцене додајте само када доноси дијагностичку корист и када су осетљиви делови уклоњени.
Садржај порука захтева посебну одлуку
gen_ai.input.messages, gen_ai.output.messages и gen_ai.system_instructions могу да садрже личне податке, пословне документе и поверљива упутства. Иста опасност постоји у аргументима и резултатима алата: безопасно формулисан кориснички захтев може да покрене приступ осетљивом запису. Зато структура трага и бројачи употребе могу бити подразумевани слој телеметрије, док снимање садржаја захтева засебно образложење и контролу.
Када је садржај неопходан за отклањање проблема, уклоните осетљива поља пре извоза, ограничите приступ и одредите колико дуго се чува. Друга могућност је да се садржај држи у одвојеном систему са сопственим правилима приступа, а да траг садржи само контролисану референцу. Идентификатор или референца такође могу бити осетљиви ако омогућавају приступ запису, па њихов облик и права приступа треба промислити.
Минималан употребљив траг зато има јасну границу: повезује агентски задатак, позиве модела, извршавање алата, употребу токена и оцену одговора. Из тих записа тим може да издвоји спор или неуспео корак и да израчуна процену трошка, док се садржај порука укључује само за питања која без њега не могу да се разреше.
Прочитајте и:
Повезани чланци


Cloudflare Turnstile није готов после widget-а — Siteverify затвара рупу

AI агент или радни ток: аутономија пада на тесту поновљивости

Promptfoo или DeepEval: безбедносни напад и Python тест траже различит алат

Webex Dialog памти цео однос с клијентом — бета чека 2027.

NIST тражи „личну карту“ за AI агенте — стигло је више од 600 одговора
Претплатите се на наш билтен
Добијајте најновије вести о Web3, AI-у и криптовалутама директно у пријемно сандуче.