Files
microsoft--agent-framework/python/samples/02-agents/providers
Giles Odigwe c89a539c02 Python: [BREAKING] Make all SkillsProvider tools require approval by default (#6754)
* Python: [BREAKING] Make all SkillsProvider tools require approval by default

All tools exposed by SkillsProvider (load_skill, read_skill_resource,
run_skill_script) now require approval by default. Previously only
run_skill_script could be gated, and only when require_script_approval=True.

- Register all three tools with approval_mode="always_require"
- Add read_only_tools_auto_approval_rule and all_tools_auto_approval_rule
  static rules plus tool-name constants (mirrors FileAccessProvider)
- Remove the require_script_approval option from __init__ and from_paths
- Add skills_auto_approval sample; update script_approval sample/docs

Closes #6728

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address PR review: batch skill approval responses and tidy sample

- Collect a response for every approval request and send them in a single
  agent.run so the approval loop always makes progress (no infinite loop when
  a request lacks a function_call); reject non-function requests instead of
  skipping them. Applied to both the skills_auto_approval and script_approval
  samples.
- Extract ToolApprovalMiddleware into a local variable in skills_auto_approval
  for readability.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address PR review: add approval handling to remaining skills samples

The secure-by-default change makes all SkillsProvider tools require approval,
which left the other skills samples emitting approval requests instead of the
documented answers. Add ToolApprovalMiddleware with the all-tools auto-approval
rule (and a session, which the middleware requires) so these samples run
unattended as before:

- code_defined_skill, file_based_skill, class_based_skill, mixed_skills,
  skill_filtering, mcp_based_skill
- providers/foundry/foundry_chat_client_with_toolbox_skills

The dedicated script_approval (manual) and skills_auto_approval (selective)
samples continue to demonstrate interactive approval handling.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address PR review: simplify "host approval" wording to "approval"

Apply maintainer suggestions dropping "host" from the skill-approval
docstrings, and align the matching SkillsProvider docstring/AGENTS.md note for
consistency.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-29 14:14:45 +00:00
..

Provider Samples Overview

This directory groups provider-specific samples for Agent Framework.

Folder What you will find
anthropic/ Anthropic Claude samples using both AnthropicClient and ClaudeAgent, including tools, MCP, sessions, and Foundry Anthropic integration.
amazon/ AWS Bedrock samples using BedrockChatClient, including tool-enabled agent usage.
azure/ Azure OpenAI chat completion samples using OpenAIChatCompletionClient, including basic usage, explicit configuration, tools, and sessions.
copilotstudio/ Microsoft Copilot Studio agent samples, including required environment/app registration setup and explicit authentication patterns.
custom/ Framework extensibility samples for building custom BaseAgent and BaseChatClient implementations, including layer-composition guidance.
foundry/ Microsoft Foundry and Foundry Local samples using FoundryChatClient, FoundryAgent, RawFoundryAgentChatClient, and FoundryLocalClient for hosted agents, Responses API, local inference, tools, MCP, and sessions.
github_copilot/ GitHubCopilotAgent samples showing basic usage, session handling, permission-scoped shell/file/url access, and MCP integration.
ollama/ Local Ollama samples using OllamaChatClient (recommended) plus OpenAI-compatible Ollama setup, including reasoning and multimodal examples.
openai/ OpenAI provider samples for Chat and Chat Completion clients, including tools, structured output, sessions, MCP, web search, and multimodal tasks.

Each folder has its own README with setup requirements and file-by-file details.