## TL;DR

For "Invalid tool value: azure_function": users confirmed creating the agent this way resolves the error, because the template creates the capability hosts.

```text
Invalid tool value: azure_function
```

## Steps

1. What was reported:
Issue Azure/azure-sdk-for-python#39778 (closed, 36 comments): Hi all, I have been trying to create an agent with an azure function (queue trigger) deployed into azure with the azure ai foundry SDK. The only problem is when i create an agent with tool as the azure function, it fails saying: "Invalid tool value(s): azure_function" Pasting the code for reference: ``` import os from azure.ai.projects import AIProjectClient from azure.identity import DefaultAzureCredential from dotenv import load_dotenv load_dotenv() project_connection_string = os.getenv("PROJECT_CONNECTION_STRING") model=os.getenv("MODEL_DEPLOYMENT_NAME") storage_connection_string =...

2. What works:
The `Invalid tool value: azure_function` error means the Azure AI Foundry hub/project is missing its capability host, which is required for the Azure Functions tool. Two confirmed fixes:

3. Deploy (or redeploy) your resources with the Standard Agent setup template from the Azure docs. Users confirmed creating the agent this way resolves the error, because the template creates the capability hosts.
2. For an existing hub, create the capability host directly from Cloud Shell or the CLI:

4. az ml capability-host create --name NAME --resource-group GROUP --workspace-name WORKSPACE

5. Note: the later `internal server error` discussion in the thread is a separate, unresolved problem with the function-app integration itself, not this tool-value error.

## When to use

You are seeing this: What was reported: Issue Azure/azure-sdk-for-python#39778 (closed, 36 comments): Hi all, I have been trying to create an agent with an azure function (queue trigger) deployed into azure with the azure ai foundry SDK. Use this skill when you run into "AI Project client says "Invalid tool value(s): azure_function"".

## When not to use

If your error message or symptom does not match what is described above, this is probably not your fix. Search for your exact error text instead of forcing this one to fit.

## Versions

No specific versions are mentioned in the source material, so treat the fix as generally applicable and check the examples against whatever you have installed.

## Why this happens

The original report does not dig into a root cause. It documents the symptom and the fix that resolved it.
