Ты уверен, что твой агент вообще использовал твой скилл?
Observability и traceability — одна из по-настоящему нерешённых проблем в работе с агентами. На большом масштабе это выливается в истории вроде недавней у OpenAI, когда модель на оценке вышла из песочницы и взломала прод Hugging Face, чтобы украсть ответы бенчмарка. Но на маленьком масштабе проблема ровно та же — у разработчиков и новичков, которые просто хотят видеть, что делает их агент.
Для меня это был such a pain in the ass, когда я впервые склонировал несколько больших «Agent OS» реп с гихаба, наставил кучу скиллов, завел персистентную RAG-like memory — и в итоге понятия не имел, реально ли мой агент использовал скилл когда надо, достал ли нужные воспоминания и делал ли вообще то, что я просил, не лазея куда не надо.
Сначала думал сам написать, но потом посерчил рынок и понял что уже есть хорошие решения, такие как Langfuse например (не идеальный, но для старта точно пойдет)
Сначала подключил клода стандартным способом — через opentelemetry env vars. Данные пошли — и оказались малополезными и шли долго. Клод пишет телеметрию под своими именами атрибутов, Langfuse читает другие. И то и другое — «стандартный OTEL». А перевод между ними никем не покрывается. В итоге мои промпты падали в метадату вместо отведенных Input, Output полей, а кост показывал $0.00 на ходах ллм. Короче, всё что Langfuse строит поверх Input/Output и коста — реплей промптов, оценки через LLM-as-judge, поиск по содержимому — молча бы не работало из-за этого.
—————————-
Потом я нашёл, что у Langfuse есть оф. плагин для клода. Он вешает хук, который срабатывает после каждого ответа, читает json транскрипт сессии и переотправляет его через их SDK — уже в том виде, который Langfuse действительно ждёт. Результат совсем другой. Настоящий промпт в Input, настоящий ответ в Output, cost отображается, вызовы инструментов вложены под тот вызов модели, который их запросил, тайминг по каждому шагу. Одним словом красота.
P.S.: если работаешь с Клодом через терминал и по подписке с фикс. ценой, в таком случае бОльшая часть того, что даёт трейс — это видимость расходов, так как многое из ходов ты можешь и так увидеть в терминале . Ну а на подписке трейс стоимости который там отображен не особо релевантный, так что пользы не супер много, если только не привыкнуть к пропорциям коста и трат вашего usage лимита подписки. Ну и сессии в терминале откровенно плохо сохраняют историю long-term, что еще один + в сторону trace observe тулов. Но если говорить про любых других кастомных агентах, то тогда я считаю это мастхэв, потому что многие не пишут terminal-like history для своих агентов, да и зачем писать когда уже есть отличное готовое решение.
Также я искренне считаю что новичкам этот тул или любой другой аналог (другие просто не тестил пока) отлично подойдет, чтобы визуально увидеть и понять каким образом работают агенты, как выстраивается взаимосвязь между харнесами и LLM, и почему в целом граммотная система в связке memory + harness + LLM, главный принцип которых в реализации правильных и эффективных лупов для модели — это залог эффективности на 50-60% помимо самой модели (хотя я искренне считаю что процент даже выше)