追蹤代理步驟,監控執行狀況
你正在為一位籃球教練打造一個 smolagents 助理,協助分析包含球員數據、球探觀察與比賽策略的 PDF 報告。
這位教練會請代理回答像是:「我們對上他們的第二陣容時,該採用哪些防守策略?」
不過,教練不只要答案——他也想看見代理在幕後做了哪些事。
在這個練習中,你將撰寫一個動作 callback,在代理每次採取一步行動時執行,例如呼叫工具或使用模型。這個 callback 會:
- 顯示目前的步數,
- 若代理已完成,則顯示使用了多少權杖(tokens)。
這能幫助教練(也包括你!)監控代理的進度,以及它為了得出結論所做的工作量。
本練習屬於課程
使用 Hugging Face smolagents 的 AI 代理
練習說明
- 在函式簽章中加入
agent_step參數以完成定義。 - 使用
agent_step的.is_final_answer屬性,檢查目前這一步是否產生了最終答案。 - 若為最終答案,從
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: {____}")