Dynamic Tool Loading
~3 min read
Concept & How It Works
Why Does It Exist?
Enterprise agents connect to different SaaS tools per customer. Dynamic loading prevents prompt bloat and enforces per-tenant access control.
Real-World Analogy
Dynamic tool loading is a toolbox that materializes only the tools you have permission to use for today's job site.
Visual Workflows
What is Dynamic Tool Loading?
Example
Scenario
When a user connects their Salesforce account via OAuth, the agent dynamically loads create_lead, search_opportunities, and update_contact tools for that session only.
Solution
In Tool Calling & Function Calling, apply Dynamic Tool Loading to this scenario: When a user connects their Salesforce account via OAuth, the agent dynamically loads create_lead, search_opportunities, and update_contact tools for that session only. Identify the inputs, run the technique, validate the output, and note one thing you would monitor in production.
Practice Task
Do this before moving to the next module — reading alone is not enough.
Open the Code Walkthrough below and run it locally. Change one parameter related to Dynamic Tool Loading (e.g. model, temperature, top_k, or tool name), observe the difference in output, and write 2–3 sentences explaining what changed.
Code Walkthrough
Highlighted lines show where Dynamic Tool Loading happens in the code.
1# Dynamic Tool Loading — minimal example2from openai import OpenAI3
4client = OpenAI() # create API client5
6# Ask the model to explain this topic7response = client.chat.completions.create( # core API call for Dynamic Tool Loading8 model="gpt-4o-mini",9 messages=[10 {"role": "system", "content": "You explain dynamic tool loading clearly."},11 {"role": "user", "content": f"What is dynamic tool loading?"},12 ],13 temperature=0,14)15print(response.choices[0].message.content) # show output for debuggingCommands to Remember
Commands to Remember
client.chat.completions.create(..., tools=[...]) # pass tool schemas to APIjson.loads(response.choices[0].message.tool_calls[0].function.arguments) # parse tool argspip install pydantic # validate tool inputs with schemas
Common Mistakes
- Treating Dynamic Tool Loading as a black box without evaluation
- Ignoring cost and latency in production
- Skipping error handling for dynamic tool loading
Cheat Sheet
Quick recap — the most important points from this module.
Cheat Sheet
quick ref- •Dynamic Tool Loading
- •Lazy Loading
- •OAuth Scopes
- •MCP Discovery