Отслеживание шагов агента и мониторинг действий
Вы создаёте ассистента на основе smolagents для тренера по баскетболу, которому нужна помощь в анализе PDF-отчётов с игровой статистикой, результатами скаутинга и игровыми стратегиями.
Тренер рассчитывает на агента при ответах на такие вопросы, как: «Какие защитные стратегии стоит применить против второго состава соперника?»
Однако тренеру нужны не только ответы — он хочет понимать, что агент делает «под капотом».
В этом упражнении вы напишете callback-функцию действия, которая запускается каждый раз, когда агент выполняет шаг: вызывает инструмент или обращается к модели. Этот callback будет:
- отображать номер текущего шага;
- и, если агент завершил работу, показывать количество использованных токенов.
Это поможет тренеру (и вам!) следить за ходом работы агента и оценивать, сколько усилий он затрачивает для получения ответа.
Это упражнение является частью курса
ИИ-агенты с Hugging Face smolagents
Инструкции к упражнению
- Завершите сигнатуру функции, добавив параметр
agent_step. - Проверьте, является ли текущий шаг финальным ответом, используя атрибут
.is_final_answerобъектаagent_step. - Если это финальный ответ, получите общее количество токенов из
total_tokensи выведите его.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Define an action callback that accepts the agent step and the agent
def action_callback(____, agent):
step_num = agent_step.step_number
print(f"Step {step_num}: Analyzing basketball data!")
# Check if the agent step includes token usage
if agent_step.____:
total_tokens = agent_step.token_usage.total_tokens
# Print how many tokens were used
print(f"Analysis complete! Total tokens used: {____}")