0
Phase 6

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.
    Loading diagram...

    Visual Workflows

    What is Dynamic Tool Loading?

    Loading diagram...

    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.

    Dynamic Tool Loading
    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 debugging

    Commands to Remember

    Commands to Remember

    • client.chat.completions.create(..., tools=[...]) # pass tool schemas to API
    • json.loads(response.choices[0].message.tool_calls[0].function.arguments) # parse tool args
    • pip 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