Course Content
Agentic AI Patterns
9 sections · 50 lessons
What is tool augmentation in Agentic AI, and how does it expand agent capabilities?
What you need to know
The four axes
| Axis | Without tools | With tools |
|---|---|---|
| Freshness | Knows only training data | Reads today's price, stock, ticket status |
| Precision | Estimates arithmetic, guesses facts | Runs SQL, a calculator, a pricing engine |
| Reach | Knows nothing about your company | Reads your CRM, claims system, wiki |
| Effect | Can only produce text | Books, refunds, files tickets, sends messages |
Good tool design
- Narrow and typed.
get_policy(policy_id)beatsquery_database(sql). Narrow tools are safer and easier for the model to choose. - Clear descriptions. The model reads the description to decide when to call the tool. Say when to use it and when not to.
- Enums over free text.
status: "open" | "closed"prevents invented values. - Shaped results. Return the fields the decision needs, IDs for the rest, and a size cap. Raw tool output is usually the biggest consumer of context.
- Honest failures. An empty result and a failed call must look different, or the model will report "no records found" when the API was down.
Tool count and selection
Models choose tools well from a small set. When tools overlap ("search_orders", "find_order", "lookup_order_status") or number in the dozens, wrong choices climb. Fixes: merge overlapping tools, split tools across sub-agents, or search a tool catalogue and load only the relevant definitions for each request.
MCP in one paragraph
MCP solves the "N agents times M systems" integration problem. Write a Jira MCP server once and any compatible host can use it. It does not make tools safe by itself: you still need permissions, trusted servers and review of tool descriptions.
A real-life example
A health insurer's claims agent started with no tools. It could explain policy wording in general, but it could not answer "is my claim approved?" and it made up plausible statuses.
The team added four tools:
get_claim(claim_id)returns status, amounts and missing documents, trimmed to 12 fields instead of the 140-field raw record.get_policy_clause(policy_id, topic)returns the exact clause text with its number.calculate_payable(claim_id)calls the real deduction engine; the model never does the co-pay arithmetic.request_document(claim_id, doc_type)withdoc_typeas an enum of 6 values.
Invented statuses dropped to near zero because the agent now had a real answer to read. One early bug: get_claim returned {} when the claims API timed out, and the agent told customers "no claim found". The fix was to return {"error": "claims system unavailable, try again"} instead.
Follow-up questions to expect
- "MCP versus plain function calling?" — Function calling is how a model asks for a tool. MCP is how tools are packaged, discovered and connected from separate servers. An MCP host turns MCP tools into ordinary function definitions for the model.
- "How do you stop a tool from flooding the context?" — Cap result size, paginate, return summaries plus IDs, and let the agent fetch details on request.
- "How do you know which tool is broken?" — Track call volume, error rate, latency and retry rate per tool. The broken tool shows up in metrics faster than in transcripts.