Toolkits & Structured Tool Inputs
Bundle related tools into reusable toolkits and define structured, typed arguments with schemas so agents call your tools reliably with the right parameters.
Toolkits & Structured Tool Inputs is a free AI Agents with LangChain & Autonomous Workflows lesson on CoddyKit — lesson 4 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the AI Agents with LangChain & Autonomous Workflows learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Beyond Single Tools
Real integrations rarely need just one function. A database integration needs list-tables, run-query, and describe-schema together.
A toolkit groups related tools so an agent gets a coherent capability in one bundle.
The Single-String Limitation
A basic tool takes one string input. But many actions need multiple typed arguments — a date range, a user id, a limit.
Structured tools let the agent pass several validated parameters instead of cramming them into one string.
Defining an Input Schema
Use a Pydantic model to describe the arguments. The field descriptions guide the LLM on how to fill them.
from pydantic import BaseModel, Field
class SearchArgs(BaseModel):
query: str = Field(description='Search keywords')
limit: int = Field(description='Max results', default=5)Attaching the Schema to a Tool
Pass args_schema so the agent knows the exact shape it must produce.
from langchain.tools import StructuredTool
def search(query: str, limit: int = 5):
return run_search(query, limit)
tool = StructuredTool.from_function(
func=search,
name='search',
description='Search the catalog',
args_schema=SearchArgs
)The @tool Decorator Shortcut
The @tool decorator infers a schema from your type hints and docstring, the quickest way to make a structured tool.
from langchain.tools import tool
@tool
def get_weather(city: str, units: str = 'metric') -> str:
'Get current weather for a city.'
return fetch_weather(city, units)Why Descriptions Matter
The LLM chooses tools and fills arguments from your name and descriptions. Vague text causes wrong tool choice or bad parameters.
- Say what the tool does and when to use it
- Describe each field clearly
- Mention units and formats
Building a Toolkit
A toolkit subclass exposes a get_tools() method returning the grouped tools. Shared config (like a client) lives on the toolkit.
from langchain.tools import BaseToolkit
class CrmToolkit(BaseToolkit):
client: object
def get_tools(self):
return [list_contacts, create_contact, add_note]Giving Tools to an Agent
Expand a toolkit into the agent's tool list. The agent now has the whole capability set at once.
toolkit = CrmToolkit(client=crm)
agent = create_agent(llm, toolkit.get_tools())Validation Protects You
Because the schema is enforced, malformed agent output is rejected before your function runs. This stops invalid types or missing required fields from reaching your integration.
Handling Tool Errors
Tools can fail (network, bad input). Catch exceptions and return a helpful message so the agent can recover or ask the user, instead of crashing the run.
@tool
def fetch_order(order_id: str) -> str:
'Look up an order by id.'
try:
return api.get(order_id)
except NotFound:
return 'No order found with that id.'Reusability
Toolkits make integrations portable: build a GitHubToolkit once and drop it into any agent. Combine multiple toolkits to give an agent broad, well-defined powers.
Quick Check
Test your tools knowledge.
Recap
You learned to build robust integrations:
- Structured tools accept multiple typed arguments via an
args_schema - The
@tooldecorator infers schemas from hints - Clear descriptions drive correct tool use
- Toolkits bundle related tools for reuse
- Validation and error handling keep agents stable
Well-structured tools are the backbone of dependable agent integrations.
Frequently asked questions
Is the “Toolkits & Structured Tool Inputs” lesson free?
Yes — the full text of “Toolkits & Structured Tool Inputs” is free to read here on the web, and the AI Agents with LangChain & Autonomous Workflows course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the AI Agents with LangChain & Autonomous Workflows course, upgrade to CoddyKit PRO.
What will I learn in “Toolkits & Structured Tool Inputs”?
Bundle related tools into reusable toolkits and define structured, typed arguments with schemas so agents call your tools reliably with the right parameters. You practise AI Agents with LangChain & Autonomous Workflows with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start AI Agents with LangChain & Autonomous Workflows?
No prior experience is required. AI Agents with LangChain & Autonomous Workflows on CoddyKit is structured for beginners through advanced learners; this is — lesson 4 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Toolkits & Structured Tool Inputs” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this AI Agents with LangChain & Autonomous Workflows lesson?
Yes. Every AI Agents with LangChain & Autonomous Workflows lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- Creating Custom LangChain Tools
- Integrating with External APIs
- Web Scraping and Data Augmentation
- Toolkits & Structured Tool Inputs