How to keep humans in the loop and limit what an agent's tools can do.
From Ultra Transcenders AI-103 by Tony Rough (publishing soon)
Agents can call tools and take real-world actions, so beyond content filtering you need controls over which tools they may call, who approves a call and what credentials they use. These settings live on the tools and guardrails in Foundry Agent Service.
mcp tool): require_approval defaults to always. You can also set it to never, {"never": [tools]} (listed tools skip approval) or {"always": [tools]} (only listed tools need approval).mcp_approval_request item with the tool name and arguments. The app replies with previous_response_id and approve: true (or rejects the call).allowed_tools restricts which tools on an MCP server the agent may call. If you leave it out, every tool on the server is allowed.tools/list entry carries _meta.tool_configuration.require_approval. The toolbox MCP endpoint does not block tools/call, so your agent runtime must pause, show the tool and arguments, and resume or reject that exact call.never unless your runtime can do this.Common trap: Assuming
require_approval: alwayson a toolbox tool stops the call server-side - the toolbox endpoint still executes the call unless your agent runtime enforces the approval.
https://ai.azure.com/.default). A per-agent identity keeps the tool’s permissions scoped to that agent (least privilege).This note is one section of Ultra Transcenders AI-103: Developing AI Apps and Agents on Azure, an independent study guide that explains every topic the exam covers by technology, with comparison tables, diagrams and the common traps, plus a glossary linked to Microsoft Learn.
Publishing soon on Amazon in Kindle and paperback editions.
About the book · Free AI-103 glossary · All AI-103 study notes
Where guardrails check an agent run, what Prompt Shields catch, and when to block or annotate.
File search, Azure AI Search, Bing grounding, function, OpenAPI, MCP and code interpreter tools compared.
System messages, few-shot examples, chain of thought and grounding, and which fix suits which prompt problem.
The indexer pipeline stages, built-in and custom skills, and knowledge store projections.
Vector fields and profiles, HNSW vs exhaustive KNN, hybrid queries with RRF, and the semantic ranker.
Prebuilt and custom analyzers, field extraction methods and Markdown output for RAG.
What Sora 2 can generate, its parameters and limits, and how the asynchronous jobs work.