A unified Azure platform for creating and managing AI models, agents, and applications with built‑in enterprise security, monitoring, and governance
Hi Jubin,
Yes, the behavior can be different when the agent is used through Teams.
require_approval="never" only means the tool call does not require human approval. It does not force the model to call the tool, and it also does not automatically execute local/custom function code in every channel.
For function calling, the usual pattern is:
- Agent decides a function is needed.
- Agent returns a function call with arguments.
- Your application/backend executes the function.
- Your application sends the function output back to the agent.
- Agent returns the final answer.
In the Foundry playground, this can appear to work because the test environment/session is handling the tool flow. In a Teams published channel, your local SDK function implementation is not automatically available unless the tool is exposed as something the published agent can actually call.
For Teams, I would use one of these patterns instead of a local custom function:
- Azure Functions tool
- OpenAPI tool
- Logic Apps action
- MCP server/tool endpoint
- A custom bot/backend that handles the function call and submits tool outputs back to the agent
Also check that the active published agent version is the same version where the tool was added. If you changed the agent after publishing, update the active version or republish/update the Teams agent.Hi Jubin,