Установка
llama-index-core версии 0.14.23 до 0.15. 0.14.23 — это релиз, где поток workflow начал переносить типизированные события агента, которые читает этот адаптер. Ниже него отсутствуют и имена моделей, и структура агента.
Инструментирование
async with, а также под with и производит идентичные события.
instrument() присоединяет обработчик событий и обработчик spans к глобальному диспетчеру LlamaIndex. Вместе они делают цикл агента видимым, а не только его вызовы модели.
Подсчеты токенов
FunctionAgent вызывает astream_chat, и llama-index-llms-openai не отправляет stream_options={"include_usage": True} при потоковой передаче. Поставщик поэтому никогда не отправляет chunk использования, и нечего читать никакому инструментированию.
Это поведение вышестоящего LlamaIndex. Отключите на вашей LLM:
Вызовы без потоковой передачи (
llm.chat, llm.achat) сообщают об использовании без конфигурации. Только путь потоковой передачи, который является путем агента по умолчанию, требует этого.
Что записывается
agent_id — это FunctionAgent.name, когда вы его установили, и имя класса workflow в противном случае. Под AgentWorkflow каждый агент, который берет ход, получает свой собственный вложенный span под workflow, поэтому handoff читается как два агента, а не один.
Выход retrieval суммируется, а не выводится. Retriever возвращает документы, и их сохранение в payload поместит ваш корпус в хранилище событий один раз за запрос. Вместо этого сохраняются количество, диапазон оценок и усеченные фрагменты.
Пример
init_run, setup_agent, run_agent_step, parse_agent_output, call_tool и aggregate_tool_results. Это собственный цикл framework, поэтому это hooks, а не agents, что делает agent_id значимым.
Назовите ваши spans
agent_id — это FunctionAgent.name, когда вы его установили, и имя класса workflow в противном случае.
AgentWorkflow это имя также записывается для каждого handoff:
agent_id говорит вам какой агент выполнил работу, а parent_id говорит вам к какому workflow он принадлежал. Агент, который позже вернул управление, открывает второй ход, а не переоткрывает свой первый.
Оберните run, чтобы переопределить его или сгруппировать несколько агентов под одним родителем:
agent_id с низкой кардинальностью. Это основной аспект на каждой поверхности приборной панели, поэтому используйте имя роли или workflow, никогда UUID или строку за запуск.
Контроль session
Этот адаптер не принимает опциюsession_id. Session поступает из окружающей области или в противном случае генерируется uuid4().hex на запуск workflow:
Опции
Human in the loop
Захватывается, когда ожидание происходит внутри инструмента:ctx.wait_for_event в простом workflow step не захватывается. Runtime ловит drop до того, как он достигнет диспетчера, поэтому step выходит и переустанавливается позже без сигнала на ключ pause. Паттерн FunctionAgent, который документирует LlamaIndex, ждет внутри инструмента и захватывается полностью.
Частые проблемы
Все подсчеты токенов — null
Все подсчеты токенов — null
Добавьте
additional_kwargs={"stream_options": {"include_usage": True}} к вашей LLM. См. Подсчеты токенов.Usage заполнено, но столбцы токенов пусты
Usage заполнено, но столбцы токенов пусты
LlamaIndex не имеет стандартного поля usage. Адаптер пробует несколько известных форм, и интеграция, которая называет свои счетчики чем-то новым, не будет соответствовать ни одной из них.Сырой dict всегда отправляется, поэтому проверьте
usage в payload, чтобы увидеть, как ваш поставщик их назвал.Заполненное usage рядом с пустыми столбцами токенов преднамеренно — это лучше, чем уверенное неправильное число.Временная шкала полна setup_agent и parse_agent_output
Временная шкала полна setup_agent и parse_agent_output
Это цикл FunctionAgent, один набор за итерацию. Фильтруйте по имени hook на приборной панели. Эти timings step обычно являются причиной использовать этот адаптер, а не только адаптер модели.
Ничего не записывается
Ничего не записывается
Проверьте по порядку:
instrument() запустился перед run; есть async with failproofai_sdk.session(): вокруг await; llama-index-core версии 0.14.23 или новее; FAILPROOFAI_SDK_STRICT=1 установлено, поэтому деградированный hook вызывает исключение вместо проглатывания.Далее
How it works
Пары, ids, session lifecycle и delivery.
Read a trace
Следите за причинностью через session, который вы только что захватили.
Other frameworks
LangGraph, CrewAI, Pydantic AI и custom agents.

