Files
Chris 904a5b843e Python / .NET Samples - Restructure and Improve Samples (Feature Branc… (#4092)
* Python: .NET Samples - Restructure and Improve Samples (Feature Branch) (#4091)

* Moved by agent (#4094)

* Fix readme links

* .NET Samples - Create `04-hosting` learning path step (#4098)

* Agent move

* Agent reorderd

* Remove A2A section from README 

Removed A2A section from the Getting Started README.

* Agent fixed links

* Fix broken sample links in durable-agents README (#4101)

* Initial plan

* Fix broken internal links in documentation

Co-authored-by: crickman <66376200+crickman@users.noreply.github.com>

* Revert template link changes; keep only durable-agents README fix

Co-authored-by: crickman <66376200+crickman@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: crickman <66376200+crickman@users.noreply.github.com>

* .NET Samples - Create `03-workflows` learning path step (#4102)

* Fix solution project path

* Python: Fix broken markdown links to repo resources (outside /docs) (#4105)

* Initial plan

* Fix broken markdown links to repo resources

Co-authored-by: crickman <66376200+crickman@users.noreply.github.com>

* Update README to rename .NET Workflows Samples section

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: crickman <66376200+crickman@users.noreply.github.com>

* .NET Samples - Create `02-agents` learning path step (#4107)

* .NET: Fix broken relative link in GroupChatToolApproval README (#4108)

* Initial plan

* Fix broken link in GroupChatToolApproval README

Co-authored-by: crickman <66376200+crickman@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: crickman <66376200+crickman@users.noreply.github.com>

* Update labeler configuration for workflow samples

* .NET - Reorder Agents samples to start from Step01 instead of Step04 (#4110)

* Fix solution

* Resolve new sample paths

* Move new AgentSkills and AgentWithMemory_Step04 samples

* Fix link

* Fix readme path

* fix: update stale dotnet/samples/Durable path reference in AGENTS.md

Co-authored-by: crickman <66376200+crickman@users.noreply.github.com>

* Moved new sample

* Update solution

* Resolve merge (new sample)

* Sync to new sample - FoundryAgents_Step21_BingCustomSearch

* Updated README

* .NET Samples - Configuration Naming Update (#4149)

* .NET: Restore AzureFunctions index parity with ConsoleApps under DurableAgents samples (#4221)

* Clean-up `05_host_your_agent`

* Config setting consistency

* Refine samples

* AGENTS.md

* Move new samples

* Re-order samples

* Move new project and fixup solution

* Fixup model config

* Fix up new UT project

---------

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
904a5b843e · 2026-02-26 00:56:10 +00:00
History
..

Using Bing Custom Search with AI Agents

This sample demonstrates how to use the Bing Custom Search tool with AI agents to perform customized web searches.

What this sample demonstrates

  • Creating agents with Bing Custom Search capabilities
  • Configuring custom search instances via connection ID and instance name
  • Two agent creation approaches: MEAI abstraction (Option 1) and Native SDK (Option 2)
  • Running search queries through the agent
  • Managing agent lifecycle (creation and deletion)

Agent creation options

This sample provides two approaches for creating agents with Bing Custom Search:

  • Option 1 - MEAI + AgentFramework: Uses the Agent Framework ResponseTool wrapped with AsAITool() to call the CreateAIAgentAsync overload that accepts tools:[], while still relying on the same underlying Azure AI Projects SDK types as Option 2.
  • Option 2 - Native SDK: Uses PromptAgentDefinition with AgentVersionCreationOptions to create the agent directly with the Azure AI Projects SDK types.

Both options produce the same result. Toggle between them by commenting/uncommenting the corresponding CreateAgentWith*Async call in Program.cs.

Prerequisites

Before you begin, ensure you have the following prerequisites:

  • .NET 10 SDK or later
  • Azure Foundry service endpoint and deployment configured
  • Azure CLI installed and authenticated (for Azure credential authentication)
  • A Bing Custom Search resource configured in Azure and connected to your Foundry project

Note: This demo uses Azure Default credentials for authentication. Make sure you're logged in with az login and have access to the Azure Foundry resource.

Set the following environment variables:

$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project"
$env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini"  # Optional, defaults to gpt-4o-mini
$env:BING_CUSTOM_SEARCH_PROJECT_CONNECTION_ID="/subscriptions/<sub-id>/resourceGroups/<rg>/providers/Microsoft.CognitiveServices/accounts/<account>/projects/<project>/connections/<connection-name>"
$env:BING_CUSTOM_SEARCH_INSTANCE_NAME="your-configuration-name"

Finding the connection ID and instance name

  • Connection ID: The full ARM resource path including the /projects/<name>/connections/<connection-name> segment. Find the connection name in your Foundry project under Management centerConnected resources.
  • Instance Name: The configuration name from the Bing Custom Search resource (Azure portal → your Bing Custom Search resource → Configurations). This is not the Azure resource name.

Run the sample

Navigate to the FoundryAgents sample directory and run:

cd dotnet/samples/02-agents/FoundryAgents
dotnet run --project .\FoundryAgents_Step18_BingCustomSearch

Expected behavior

The sample will:

  1. Create an agent with Bing Custom Search tool capabilities
  2. Run the agent with a search query about Microsoft AI
  3. Display the search results returned by the agent
  4. Clean up resources by deleting the agent