跟踪 Agent 步骤,监控动作
您正为一位篮球教练构建一个 smolagents 助手,用于分析包含球员数据、球探见解和比赛策略的 PDF 报告。
教练依赖该代理来回答类似这样的问题:"对方第二阵容我们该采用哪些防守策略?"
不过,教练不只想要答案——他们还希望了解代理在幕后做了什么。
在本练习中,您将编写一个动作回调,每当代理执行一步(例如调用工具或使用模型)时就会运行。该回调将:
- 显示当前已执行的步骤数,
- 如果代理已结束,还会显示共使用了多少个 token。
这将帮助教练(也包括您!)监控代理的推进情况,以及它为得出结论所做的工作量。
本练习是课程的一部分
使用 Hugging Face smolagents 的 AI Agents
练习说明
- 补全函数签名,添加
agent_step参数。 - 使用
agent_step的.is_final_answer属性检查当前步骤是否已产生最终答案。 - 若为最终答案,从
total_tokens获取 token 总数并打印出来。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# 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: {____}")