Exercise 5 of 10 · 0 passed
Tool Use (Function Calling)
Tools let Claude call your Python functions. The model decides when to call a tool and what arguments to pass — you execute it and feed the result back.
The loop:
- Send message with tool definitions
- If
stop_reason == "tool_use", execute the requested tools - Append the assistant turn + tool results and call again
- Repeat until
stop_reason == "end_turn"
Why care? This is how AI goes from chatbot to agent. Claude can look up live data, call external APIs, or run calculations mid-conversation — all while you stay in control of execution.
Task
Complete answer_with_tools(question, client). A get_exchange_rate function and its tool schema are already defined. Run the agentic loop until the model returns a final text answer.
Click "Run tests". First time loads Python in your browser (~5s). After that, runs are instant on this page and ~1s on the others.
Loading tests…
Pass the tests to reveal the reference solution.
The point of the exercise is the struggle, not the answer. Once your tests are green, the reference solution unlocks here so you can compare patterns.
Loading solution…
That's the warm-up.
You ran ten exercises against a mocked SDK. The cohort builds the real thing: an AI agent shipped to production with 150+ passing tests, Telegram bot, FastAPI, Streamlit, Docker. Six weeks. Every PR reviewed.
See the cohort → Next free live session
Get sharper at building with AI, every two weeks
A biweekly email on working with AI and building agentic systems in Python: the architecture, testing, and prompting patterns we use to ship real agents, the same ones behind the cohort. One focused read, no fluff. Plus first word when the next seats open.
No spam. Unsubscribe anytime.