Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los modelos de fundición tienen un límite de conocimiento. No pueden acceder a información nueva más allá de un momento dado fijo. Mediante el uso de Grounding con Bing Search y Grounding con Bing Custom Search (versión preliminar), los agentes pueden incorporar datos web públicos en tiempo real al generar respuestas. Con estas herramientas, puede formular preguntas como "cuál es la noticia de ia más importante hoy".
El proceso de puesta en tierra implica varios pasos clave:
- Formulación de consultas: el agente identifica lagunas de información y construye consultas de búsqueda.
- Ejecución de búsqueda: la herramienta de base envía consultas a los motores de búsqueda y recupera los resultados.
- Síntesis de información: el agente procesa los resultados de búsqueda e integra los resultados en las respuestas.
- Atribución de origen: el agente proporciona transparencia al citar los orígenes de búsqueda.
Importante
- Los servicios de búsqueda con Bing y de búsqueda personalizada con Bing son Servicios de consumo de primera parte con términos para servicios en línea. Se rigen por los términos de uso de ‘Grounding with Bing’ y la Declaración de Privacidad de Microsoft.
- El Microsoft Data Protection Addendum no se aplica a los datos enviados a Grounding con Bing Search o Grounding con Bing Custom Search. Al usar estos servicios, los datos fluyen fuera del cumplimiento de Azure y el límite geográfico. Esto también significa que el uso de estos servicios renuncia a todos los compromisos elevados de cumplimiento y seguridad de la comunidad pública en la nube, incluida la soberanía de datos y el soporte basado en la ciudadanía, según corresponda.
- El uso de Grounding con Bing Search y Grounding con Bing Custom Search conlleva costos. Consulte precios para obtener más información.
- Consulte la sección manage para obtener información sobre cómo los administradores de Azure pueden administrar el acceso para usar Grounding con Bing Search y Grounding con Bing Custom Search.
Nota
Comience con la herramienta de búsqueda web. Obtenga más información sobre las diferencias entre la búsqueda web y la integración ("Grounding") con Bing Search (o con Bing Custom Search) en la visión general de la integración web.
Soporte de uso
En la tabla siguiente se muestra la compatibilidad con el SDK y la configuración.
| compatibilidad con Microsoft Foundry | SDK de Python | C# SDK | JavaScript SDK | SDK de Java | REST API | Configuración básica del agente | Configuración del agente estándar |
|---|---|---|---|---|---|---|---|
| ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Nota
No todos los modelos admiten Grounding con Bing Search o Grounding con Bing Custom Search. Para obtener una lista completa de los modelos que admiten estas herramientas, consulte Compatibilidad de herramientas por región y modelo.
Requisitos previos
Antes de comenzar, asegúrese de que tiene:
- Una suscripción Azure con los permisos adecuados.
- Roles de control de acceso basado en roles (RBAC) de Azure:
- Colaborador o Propietario en el nivel de suscripción o grupo de recursos para crear recursos de Bing y obtener claves de recursos.
- rol Azure AI Project Manager para crear conexiones de proyecto en Foundry. Para obtener más información, consulte control de acceso basado en roles para Microsoft Foundry.
- Un proyecto Foundry creado con un punto de conexión configurado.
- Un modelo de IA implementado en el proyecto.
- SDK instalado para su idioma preferido:
- Python:
azure-ai-projects - C#:
Azure.AI.Extensions.OpenAI - TypeScript/JavaScript:
@azure/ai-projects - Java:
com.azure:azure-ai-agents:2.0.0
- Python:
- Azure credenciales configuradas para la autenticación (como
DefaultAzureCredential).- Para los ejemplos de REST, configura las variables de entorno:
-
FOUNDRY_PROJECT_ENDPOINT: la dirección URL del punto de conexión del proyecto Foundry. -
FOUNDRY_MODEL_DEPLOYMENT_NAME: nombre del modelo implementado. -
BING_PROJECT_CONNECTION_ID: Su ID de conexión del proyecto de Grounding con Bing Search. -
BING_CUSTOM_SEARCH_PROJECT_CONNECTION_ID: tu identificador de conexión del proyecto de Bing Custom Search. -
BING_CUSTOM_SEARCH_INSTANCE_NAME: nombre de la instancia de búsqueda personalizada. -
AGENT_TOKEN.
-
- Para los ejemplos de REST, configura las variables de entorno:
- Un recurso Bing Grounding o Bing Custom Search creado y conectado al proyecto Foundry. Se requiere una suscripción de pago para crear un recurso de Grounding con Bing Search o Bing Custom Search.
- La herramienta Grounding with Bing Search funciona en un proyecto foundry protegido por la red, pero se comporta como un punto de conexión público. Tenga en cuenta este comportamiento al usar la herramienta en un entorno protegido por red.
Configuración
En esta sección, agregará una conexión de proyecto para el recurso de Bing y capturará los valores usados en los ejemplos. Los ejemplos del SDK usan el nombre de la conexión del proyecto y resuelven el identificador de conexión en tiempo de ejecución. Los ejemplos de REST usan el identificador de conexión del proyecto. Puede usar esta plantilla de bicep para crear un agente básico con la herramienta Grounding con Bing Search habilitada.
Si ya tiene un identificador de conexión de proyecto para el recurso de Bing que desea usar, omita esta sección.
Agregue la conexión adecuada al proyecto.
Para obtener instrucciones paso a paso, consulte Adición de una nueva conexión al proyecto.
Importante
- Necesita el rol Colaborador o Propietario en el nivel de suscripción o grupo de recursos para crear recursos de Bing y obtener claves de recursos.
- Para buscar las claves de recursos, vaya al recurso Grounding with Bing en el portal Azure>Resource Management>Keys.
Obtenga el nombre y el identificador de la conexión del proyecto de los detalles de la conexión y, a continuación, establezca los valores como variables de entorno.
- Para obtener ejemplos del SDK:
- Para la conexión a tierra con Bing Search, configure
BING_PROJECT_CONNECTION_NAME. - Para Puesta en tierra con Bing Custom Search: establezca
BING_CUSTOM_SEARCH_PROJECT_CONNECTION_NAME.
- Para la conexión a tierra con Bing Search, configure
- Para obtener ejemplos de REST:
- Para la conexión a tierra con Bing Search, configure
BING_PROJECT_CONNECTION_ID. - Para Puesta en tierra con Bing Custom Search: establezca
BING_CUSTOM_SEARCH_PROJECT_CONNECTION_ID.
- Para la conexión a tierra con Bing Search, configure
El identificador de conexión del proyecto usa el formato :
/subscriptions/{{subscriptionID}}/resourceGroups/{{resourceGroupName}}/providers/Microsoft.CognitiveServices/accounts/{{foundryAccountName}}/projects/{{foundryProjectName}}/connections/{{foundryConnectionName}}
Herramientas disponibles
| Herramienta | Descripción | Caso de uso |
|---|---|---|
| Fundamento con Bing Search | Proporciona a los agentes acceso estándar a las funcionalidades de búsqueda de Bing. | Escenarios que requieren un acceso amplio a los conocimientos. |
| Fundamentación con Bing Custom Search (versión preliminar) | Permite a los agentes buscar dentro de un conjunto configurable de dominios web públicos. Defina los elementos de la web de los que desea extraer para que los usuarios solo vean los resultados pertinentes de los dominios que elija. | Escenarios que requieren administración de información. |
Nota
Consulte los procedimientos recomendados para obtener información sobre cómo optimizar el uso de herramientas.
Ejemplos de código
Nota
- Necesita el paquete de SDK más reciente. Consulte el inicio rápido para obtener más información.
- En los ejemplos del SDK, use el nombre de la conexión del proyecto. En los ejemplos de REST, use el identificador de conexión del proyecto con el formato
/subscriptions/{{subscriptionID}}/resourceGroups/{{resourceGroupName}}/providers/Microsoft.CognitiveServices/accounts/{{foundryAccountName}}/projects/{{foundryProjectName}}/connections/{{foundryConnectionName}}.
En los ejemplos siguientes se muestra cómo crear un agente con herramientas de Grounding con Bing Search y cómo usar el agente para responder a las consultas de usuario.
Fundamento con Bing Search
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import (
PromptAgentDefinition,
BingGroundingTool,
BingGroundingSearchToolParameters,
BingGroundingSearchConfiguration,
)
# Format: "https://resource_name.ai.azure.com/api/projects/project_name"
PROJECT_ENDPOINT = "your_project_endpoint"
BING_CONNECTION_NAME = "my-bing-connection"
# Create clients to call Foundry API
project = AIProjectClient(
endpoint=PROJECT_ENDPOINT,
credential=DefaultAzureCredential(),
)
openai = project.get_openai_client()
# Get connection ID from connection name
bing_connection = project.connections.get(BING_CONNECTION_NAME)
agent = project.agents.create_version(
agent_name="MyAgent",
definition=PromptAgentDefinition(
model="gpt-4.1-mini",
instructions="You are a helpful assistant.",
tools=[
BingGroundingTool(
bing_grounding=BingGroundingSearchToolParameters(
search_configurations=[
BingGroundingSearchConfiguration(
project_connection_id=bing_connection.id
)
]
)
)
],
),
description="You are a helpful agent.",
)
print(f"Agent created (id: {agent.id}, name: {agent.name}, version: {agent.version})")
stream_response = openai.responses.create(
stream=True,
tool_choice="required",
input="What is today's date and weather in Seattle?",
extra_body={"agent_reference": {"name": agent.name, "type": "agent_reference"}},
)
for event in stream_response:
if event.type == "response.created":
print(f"Follow-up response created with ID: {event.response.id}")
elif event.type == "response.output_text.delta":
print(f"Delta: {event.delta}")
elif event.type == "response.text.done":
print(f"\nFollow-up response done!")
elif event.type == "response.output_item.done":
if event.item.type == "message":
item = event.item
if item.content[-1].type == "output_text":
text_content = item.content[-1]
for annotation in text_content.annotations:
if annotation.type == "url_citation":
print(f"URL Citation: {annotation.url}")
elif event.type == "response.completed":
print(f"\nFollow-up completed!")
print(f"Full response: {event.response.output_text}")
Qué hace este código
En este ejemplo se crea un agente con conexión a tierra mediante la herramienta Bing Search que puede recuperar información en tiempo real de la web. Al ejecutar el código:
- Crea una
AIProjectClienty se autentica mediante las credenciales de Azure. - Crea un agente con la herramienta de integración de Bing configurada a través de tu conexión de Bing.
- Envía una consulta que pregunta sobre la fecha actual y el tiempo en Seattle.
- El agente usa la herramienta de puesta a tierra de Bing para buscar en la web y transmite la respuesta.
- Extrae y muestra las citas url de los resultados de la búsqueda.
Entradas necesarias
- Actualice las
PROJECT_ENDPOINTconstantes yBING_CONNECTION_NAMEen el código con sus valores. - Credenciales Azure configuradas para
DefaultAzureCredential.
Salida esperada
Agent created (id: asst_abc123, name: MyAgent, version: 1)
Follow-up response created with ID: resp_xyz789
Delta: Today
Delta: 's date
Delta: is December 12, 2025...
Follow-up response done!
URL Citation: https://www.weather.gov/seattle/
Follow-up completed!
Full response: Today's date is December 12, 2025, and the weather in Seattle is...
Fundamentación con Bing Custom Search (versión preliminar)
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import (
PromptAgentDefinition,
BingCustomSearchPreviewTool,
BingCustomSearchToolParameters,
BingCustomSearchConfiguration,
)
# Format: "https://resource_name.ai.azure.com/api/projects/project_name"
PROJECT_ENDPOINT = "your_project_endpoint"
CUSTOM_SEARCH_CONNECTION_NAME = "my-custom-search-connection"
CUSTOM_SEARCH_INSTANCE_NAME = "my-custom-search-instance"
# Create clients to call Foundry API
project = AIProjectClient(
endpoint=PROJECT_ENDPOINT,
credential=DefaultAzureCredential(),
)
openai = project.get_openai_client()
# Get connection ID from connection name
bing_custom_connection = project.connections.get(CUSTOM_SEARCH_CONNECTION_NAME)
bing_custom_search_tool = BingCustomSearchPreviewTool(
bing_custom_search_preview=BingCustomSearchToolParameters(
search_configurations=[
BingCustomSearchConfiguration(
project_connection_id=bing_custom_connection.id,
instance_name=CUSTOM_SEARCH_INSTANCE_NAME,
)
]
)
)
agent = project.agents.create_version(
agent_name="MyAgent",
definition=PromptAgentDefinition(
model="gpt-4.1-mini",
instructions="""You are a helpful agent that can use Bing Custom Search tools to assist users.
Use the available Bing Custom Search tools to answer questions and perform tasks.""",
tools=[bing_custom_search_tool],
),
)
print(f"Agent created (id: {agent.id}, name: {agent.name}, version: {agent.version})")
user_input = input(
"Enter your question for the Bing Custom Search agent " "(e.g., 'Tell me more about foundry agent service'): \n"
)
# Send initial request that will trigger the Bing Custom Search tool
stream_response = openai.responses.create(
stream=True,
input=user_input,
extra_body={"agent_reference": {"name": agent.name, "type": "agent_reference"}},
)
for event in stream_response:
if event.type == "response.created":
print(f"Follow-up response created with ID: {event.response.id}")
elif event.type == "response.output_text.delta":
print(f"Delta: {event.delta}")
elif event.type == "response.text.done":
print(f"\nFollow-up response done!")
elif event.type == "response.output_item.done":
if event.item.type == "message":
item = event.item
if item.content[-1].type == "output_text":
text_content = item.content[-1]
for annotation in text_content.annotations:
if annotation.type == "url_citation":
print(
f"URL Citation: {annotation.url}, "
f"Start index: {annotation.start_index}, "
f"End index: {annotation.end_index}"
)
elif event.type == "response.completed":
print(f"\nFollow-up completed!")
print(f"Full response: {event.response.output_text}")
Qué hace este código
En este ejemplo se crea un agente con la herramienta Grounding with Bing Custom Search que busca dentro de un conjunto configurable de dominios web públicos. Al ejecutar el código:
- Crea una
AIProjectClienty se autentica mediante las credenciales de Azure. - Crea un agente con la herramienta Bing Custom Search utilizando tu instancia de búsqueda personalizada.
- Solicita al usuario que proporcione información sobre temas específicos dentro de los dominios configurados.
- El agente usa la herramienta Bing Custom Search para buscar solo los dominios especificados y transmite la respuesta.
- Extrae y muestra citas url con posiciones iniciales y finales de los resultados de búsqueda personalizados.
Entradas necesarias
- Actualice las constantes
PROJECT_ENDPOINT,CUSTOM_SEARCH_CONNECTION_NAMEyCUSTOM_SEARCH_INSTANCE_NAMEen el código con sus valores. - Credenciales Azure configuradas para
DefaultAzureCredential. - Entrada del usuario en tiempo de ejecución.
Salida esperada
Agent created (id: asst_abc123, name: MyAgent, version: 1)
Enter your question for the Bing Custom Search agent (e.g., 'Tell me more about foundry agent service'):
Tell me more about foundry agent service
Follow-up response created with ID: resp_xyz789
Delta: Microsoft
Delta: Foundry
Delta: Agent Service...
Follow-up response done!
URL Citation: https://learn.microsoft.com/azure/ai-foundry/agents, Start index: 45, End index: 120
Follow-up completed!
Full response: Microsoft Foundry Agent Service enables you to build...
En los siguientes ejemplos de C# se muestra cómo crear un agente con la herramienta Grounding with Bing Search y cómo usar el agente para responder a las consultas de usuario. Estos ejemplos usan llamadas sincrónicas para simplificar. Para obtener ejemplos asincrónicos, consulte los ejemplos de C# de agent tools.
Para permitir que su Agente use la API de búsqueda de Bing, use BingGroundingTool.
Fundamento con Bing Search
// Format: "https://resource_name.ai.azure.com/api/projects/project_name"
var projectEndpoint = "your_project_endpoint";
var bingConnectionName = "my-bing-connection";
// Create project client to call Foundry API
AIProjectClient projectClient = new(
endpoint: new Uri(projectEndpoint),
tokenProvider: new DefaultAzureCredential());
// Get connection ID from connection name
AIProjectConnection bingConnection = projectClient.Connections.GetConnection(connectionName: bingConnectionName);
// Create the agent version with Bing grounding tool
BingGroundingTool bingGroundingAgentTool = new(new BingGroundingSearchToolOptions(
searchConfigurations: [new BingGroundingSearchConfiguration(projectConnectionId: bingConnection.Id)]
)
);
DeclarativeAgentDefinition agentDefinition = new(model: "gpt-4.1-mini")
{
Instructions = "You are a helpful agent.",
Tools = { bingGroundingAgentTool, }
};
AgentVersion agentVersion = projectClient.AgentAdministrationClient.CreateAgentVersion(
agentName: "myAgent",
options: new(agentDefinition));
// Output the agent version info
ProjectResponsesClient responseClient = projectClient.ProjectOpenAIClient.GetProjectResponsesClientForAgent(agentVersion.Name);
ResponseResult response = responseClient.CreateResponse("How does wikipedia explain Euler's Identity?");
// Extract and format URL citation annotations
string citation = "";
foreach (ResponseItem item in response.OutputItems)
{
if (item is MessageResponseItem messageItem)
{
foreach (ResponseContentPart content in messageItem.Content)
{
foreach (ResponseMessageAnnotation annotation in content.OutputTextAnnotations)
{
if (annotation is UriCitationMessageAnnotation uriAnnotation)
{
citation = $" [{uriAnnotation.Title}]({uriAnnotation.Uri})";
}
}
}
}
}
// Validate and print the response
Assert.That(response.Status, Is.EqualTo(ResponseStatus.Completed));
Console.WriteLine($"{response.GetOutputText()}{citation}");
// Clean up resources by deleting the agent version
projectClient.AgentAdministrationClient.DeleteAgentVersion(agentName: agentVersion.Name, agentVersion: agentVersion.Version);
Qué hace este código
En este ejemplo se crea un agente que usa la herramienta Grounding con Bing Search y se muestra el control de respuesta sincrónica. Al ejecutar el código:
- Crea un AIProjectClient mediante el punto de conexión del proyecto.
- Recupera la configuración de conexión de Bing del proyecto.
- Crea un agente con la herramienta de integración de Bing ya configurada.
- Envía una consulta que pregunta cómo Wikipedia explica la identidad de Euler.
- El agente utiliza la herramienta de referencia de Bing para buscar y devolver resultados formateados con citas URL.
- Limpia eliminando la versión del agente.
Entradas necesarias
- Actualice las
projectEndpointconstantes ybingConnectionNameen el código con sus valores. - Credenciales Azure configuradas para
DefaultAzureCredential.
Salida esperada
Euler's identity is considered one of the most elegant equations in mathematics... [Euler's identity - Wikipedia](https://en.wikipedia.org/wiki/Euler%27s_identity)
Fundamento con Bing en escenarios de streaming
// Format: "https://resource_name.ai.azure.com/api/projects/project_name"
var projectEndpoint = "your_project_endpoint";
var bingConnectionName = "my-bing-connection";
// Create project client to call Foundry API
AIProjectClient projectClient = new(
endpoint: new Uri(projectEndpoint),
tokenProvider: new DefaultAzureCredential());
// Get connection ID from connection name
AIProjectConnection bingConnection = projectClient.Connections.GetConnection(connectionName: bingConnectionName);
// Create the agent version with Bing grounding tool
BingGroundingTool bingGroundingAgentTool = new(new BingGroundingSearchToolOptions(
searchConfigurations: [new BingGroundingSearchConfiguration(projectConnectionId: bingConnection.Id)]
)
);
DeclarativeAgentDefinition agentDefinition = new(model: "gpt-4.1-mini")
{
Instructions = "You are a helpful agent.",
Tools = { bingGroundingAgentTool }
};
AgentVersion agentVersion = projectClient.AgentAdministrationClient.CreateAgentVersion(
agentName: "myAgent",
options: new(agentDefinition));
// Stream the response from the agent version
ProjectResponsesClient responseClient = projectClient.ProjectOpenAIClient.GetProjectResponsesClientForAgent(agentVersion.Name);
string annotation = "";
string text = "";
// Parse the streaming response and output the results
foreach (StreamingResponseUpdate streamResponse in responseClient.CreateResponseStreaming("How does wikipedia explain Euler's Identity?"))
{
if (streamResponse is StreamingResponseCreatedUpdate createUpdate)
{
Console.WriteLine($"Stream response created with ID: {createUpdate.Response.Id}");
}
else if (streamResponse is StreamingResponseOutputTextDeltaUpdate textDelta)
{
Console.WriteLine($"Delta: {textDelta.Delta}");
}
else if (streamResponse is StreamingResponseOutputTextDoneUpdate textDoneUpdate)
{
text = textDoneUpdate.Text;
}
else if (streamResponse is StreamingResponseOutputItemDoneUpdate itemDoneUpdate)
{
if (annotation.Length == 0)
{
// Extract and format URL citation annotations
if (itemDoneUpdate.Item is MessageResponseItem messageItem)
{
foreach (ResponseContentPart content in messageItem.Content)
{
foreach (ResponseMessageAnnotation messageAnnotation in content.OutputTextAnnotations)
{
if (messageAnnotation is UriCitationMessageAnnotation uriAnnotation)
{
annotation = $" [{uriAnnotation.Title}]({uriAnnotation.Uri})";
}
}
}
}
}
}
else if (streamResponse is StreamingResponseErrorUpdate errorUpdate)
{
throw new InvalidOperationException($"The stream has failed: {errorUpdate.Message}");
}
}
Console.WriteLine($"{text}{annotation}");
// Clean up resources by deleting the agent version
projectClient.AgentAdministrationClient.DeleteAgentVersion(agentName: agentVersion.Name, agentVersion: agentVersion.Version);
Qué hace este código
En este ejemplo se crea un agente con base mediante la herramienta Bing Search y se muestra la gestión de respuestas en streaming. Al ejecutar el código:
- Crea un AIProjectClient mediante el punto de conexión del proyecto.
- Recupera la configuración de conexión de Bing del proyecto.
- Crea un agente con la herramienta de integración de Bing ya configurada.
- Envía una consulta que pregunta cómo Wikipedia explica la identidad de Euler.
- El agente usa la herramienta de puesta a tierra de Bing y transmite la respuesta en tiempo real.
- Procesa eventos de streaming, incluidas las actualizaciones de texto delta y la extracción de citas.
- Limpia eliminando la versión del agente.
Entradas necesarias
- Actualice las
projectEndpointconstantes ybingConnectionNameen el código con sus valores. - Credenciales Azure configuradas para
DefaultAzureCredential.
Salida esperada
Stream response created with ID: resp_xyz789
Delta: Euler
Delta: 's
Delta: Identity
Delta: is one of the most...
Euler's Identity is one of the most elegant equations in mathematics... [Euler's identity - Wikipedia](https://en.wikipedia.org/wiki/Euler%27s_identity)
Los siguientes ejemplos de API REST muestran cómo usar Grounding con Bing Search y Grounding con herramientas de Bing Custom Search (versión preliminar) para responder a las consultas de los usuarios.
Fundamento con Bing Search
Configuración de autenticación
Antes de ejecutar llamadas a la API REST, configure la autenticación:
Establecer variables de entorno:
-
FOUNDRY_PROJECT_ENDPOINT: la dirección URL del punto de conexión del proyecto Foundry. -
FOUNDRY_MODEL_DEPLOYMENT_NAME: nombre del modelo implementado. -
BING_PROJECT_CONNECTION_ID: Su ID de conexión del proyecto de Grounding con Bing Search.
-
Obtenga un token de portador:
export AGENT_TOKEN=$(az account get-access-token --scope "https://ai.azure.com/.default" --query accessToken -o tsv)curl --request POST \ --url "$FOUNDRY_PROJECT_ENDPOINT/openai/v1/responses" \ -H "Authorization: Bearer $AGENT_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "model": "'$FOUNDRY_MODEL_DEPLOYMENT_NAME'", "input": "How does Wikipedia explain Euler\u0027s identity?", "tool_choice": "required", "tools": [ { "type": "bing_grounding", "bing_grounding": { "search_configurations": [ { "project_connection_id": "'$BING_PROJECT_CONNECTION_ID'", "count": 7, "market": "en-US", "set_lang": "en", "freshness": "7d" } ] } } ] }'
Qué hace este código
Esta solicitud de API REST crea una respuesta mediante Grounding con Bing Search. La solicitud:
- Envía una solicitud POST al endpoint de respuestas de Foundry.
- Incluye la implementación del modelo y la entrada del usuario en el cuerpo de la solicitud.
- Configura la herramienta de puesta a tierra de Bing con parámetros de búsqueda (recuento, mercado, idioma, actualización).
- Devuelve una respuesta con resultados y citas de búsqueda web.
Entradas necesarias
- Variables de entorno:
FOUNDRY_PROJECT_ENDPOINT,AGENT_TOKEN,FOUNDRY_MODEL_DEPLOYMENT_NAME,BING_PROJECT_CONNECTION_ID. - Token de portador (bearer token) válido con los permisos adecuados.
Salida esperada
Respuesta JSON con:
-
id: identificador de respuesta -
output_text: texto generado con información fundamentada -
citations: matriz de citas URL usadas para generar la respuesta.
Fundamentación con Bing Custom Search (versión preliminar)
curl --request POST \
--url "$FOUNDRY_PROJECT_ENDPOINT/openai/v1/responses" \
-H "Authorization: Bearer $AGENT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "'$FOUNDRY_MODEL_DEPLOYMENT_NAME'",
"input": "How does Wikipedia explain Euler\u0027s identity?",
"tool_choice": "required",
"tools": [
{
"type": "bing_custom_search_preview",
"bing_custom_search_preview": {
"search_configurations": [
{
"project_connection_id": "'$BING_CUSTOM_SEARCH_PROJECT_CONNECTION_ID'",
"instance_name": "'$BING_CUSTOM_SEARCH_INSTANCE_NAME'",
"count": 7,
"market": "en-US",
"set_lang": "en",
"freshness": "7d"
}
]
}
}
]
}'
Qué hace este código
Esta solicitud de API REST crea una respuesta mediante Grounding con Bing Custom Search. La solicitud:
- Envía una solicitud POST al endpoint de respuestas de Foundry.
- Incluye la implementación del modelo y la entrada del usuario en el cuerpo de la solicitud.
- Configura la herramienta Bing Custom Search con el nombre de la instancia y los parámetros de búsqueda.
- Devuelve una respuesta con resultados de búsqueda personalizados limitados a los dominios configurados.
Entradas necesarias
- Variables de entorno:
FOUNDRY_PROJECT_ENDPOINT,AGENT_TOKEN,FOUNDRY_MODEL_DEPLOYMENT_NAME, ,BING_CUSTOM_SEARCH_PROJECT_CONNECTION_IDBING_CUSTOM_SEARCH_INSTANCE_NAME - Token de portador (bearer token) válido con los permisos adecuados.
- Instancia de Bing Custom Search ya configurada con dominios de destino
Salida esperada
Respuesta JSON con:
-
id: identificador de respuesta -
output_text: texto generado con información del conjunto de dominios personalizado -
citations: matriz de citas url de los dominios configurados
En los siguientes ejemplos de TypeScript se muestra cómo crear un agente con Grounding con las herramientas de Bing Search y Bing Custom Search (versión preliminar) y cómo usar el agente para responder a las consultas de los usuarios. Para obtener ejemplos de JavaScript, consulte los ejemplos de JavaScript de las herramientas agent tools en el repositorio de SDK de Azure para JavaScript en GitHub.
Fundamento con Bing Search
import { DefaultAzureCredential } from "@azure/identity";
import { AIProjectClient } from "@azure/ai-projects";
// Format: "https://resource_name.ai.azure.com/api/projects/project_name"
const PROJECT_ENDPOINT = "your_project_endpoint";
const BING_CONNECTION_NAME = "my-bing-connection";
export async function main(): Promise<void> {
// Create clients to call Foundry API
const project = new AIProjectClient(PROJECT_ENDPOINT, new DefaultAzureCredential());
const openai = project.getOpenAIClient();
// Get connection ID from connection name
const bingConnection = await project.connections.get(BING_CONNECTION_NAME);
const agent = await project.agents.createVersion("MyBingGroundingAgent", {
kind: "prompt",
model: "gpt-4.1-mini",
instructions: "You are a helpful assistant.",
tools: [
{
type: "bing_grounding",
bing_grounding: {
search_configurations: [
{
project_connection_id: bingConnection.id,
},
],
},
},
],
});
console.log(`Agent created (id: ${agent.id}, name: ${agent.name}, version: ${agent.version})`);
// Send request that requires current information from the web
const streamResponse = await openai.responses.create(
{
input: "What is today's date and weather in Seattle?",
stream: true,
},
{
body: {
agent: { name: agent.name, type: "agent_reference" },
tool_choice: "required",
},
},
);
// Process the streaming response
for await (const event of streamResponse) {
if (event.type === "response.created") {
console.log(`Follow-up response created with ID: ${event.response.id}`);
} else if (event.type === "response.output_text.delta") {
process.stdout.write(event.delta);
} else if (event.type === "response.output_text.done") {
console.log("\n\nFollow-up response done!");
} else if (event.type === "response.output_item.done") {
if (event.item.type === "message") {
const item = event.item;
if (item.content && item.content.length > 0) {
const lastContent = item.content[item.content.length - 1];
if (lastContent.type === "output_text" && lastContent.annotations) {
for (const annotation of lastContent.annotations) {
if (annotation.type === "url_citation") {
console.log(
`URL Citation: ${annotation.url}, Start index: ${annotation.start_index}, End index: ${annotation.end_index}`,
);
}
}
}
}
}
} else if (event.type === "response.completed") {
console.log("\nFollow-up completed!");
}
}
// Clean up resources by deleting the agent version
// This prevents accumulation of unused resources in your project
console.log("\nCleaning up resources...");
await project.agents.deleteVersion(agent.name, agent.version);
console.log("Agent deleted");
console.log("\nBing grounding agent sample completed!");
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
});
Qué hace este código
En este ejemplo se crea un agente con conexión a tierra mediante la herramienta Bing Search que puede recuperar información en tiempo real de la web. Al ejecutar el código:
- Crea una
AIProjectClienty se autentica mediante las credenciales de Azure. - Crea un agente con la herramienta de integración de Bing configurada a través de tu conexión de Bing.
- Envía una consulta que pregunta sobre la fecha actual y el tiempo en Seattle con la opción de herramienta establecida en "obligatorio".
- El agente usa la herramienta de puesta a tierra de Bing para buscar en la web y transmite la respuesta.
- Procesa eventos de streaming y extrae citas de dirección URL con sus posiciones en el texto.
- Limpia eliminando la versión del agente.
Entradas necesarias
- Actualice las
PROJECT_ENDPOINTconstantes yBING_CONNECTION_NAMEen el código con sus valores. - Credenciales Azure configuradas para
DefaultAzureCredential.
Salida esperada
Agent created (id: asst_abc123, name: MyBingGroundingAgent, version: 1)
Follow-up response created with ID: resp_xyz789
Today's date is December 12, 2025, and the weather in Seattle...
Follow-up response done!
URL Citation: https://www.weather.gov/seattle/, Start index: 45, End index: 120
Follow-up completed!
Cleaning up resources...
Agent deleted
Bing grounding agent sample completed!
Fundamentación con Bing Custom Search (versión preliminar)
import { DefaultAzureCredential } from "@azure/identity";
import { AIProjectClient } from "@azure/ai-projects";
import * as readline from "readline";
// Format: "https://resource_name.ai.azure.com/api/projects/project_name"
const PROJECT_ENDPOINT = "your_project_endpoint";
const CUSTOM_SEARCH_CONNECTION_NAME = "my-custom-search-connection";
const CUSTOM_SEARCH_INSTANCE_NAME = "my-custom-search-instance";
export async function main(): Promise<void> {
// Create clients to call Foundry API
const project = new AIProjectClient(PROJECT_ENDPOINT, new DefaultAzureCredential());
const openai = project.getOpenAIClient();
// Get connection ID from connection name
const bingCustomConnection = await project.connections.get(CUSTOM_SEARCH_CONNECTION_NAME);
const agent = await project.agents.createVersion("MyAgent", {
kind: "prompt",
model: "gpt-4.1-mini",
instructions:
"You are a helpful agent that can use Bing Custom Search tools to assist users. Use the available Bing Custom Search tools to answer questions and perform tasks.",
tools: [
{
type: "bing_custom_search_preview",
bing_custom_search_preview: {
search_configurations: [
{
project_connection_id: bingCustomConnection.id,
instance_name: CUSTOM_SEARCH_INSTANCE_NAME,
},
],
},
},
],
});
console.log(`Agent created (id: ${agent.id}, name: ${agent.name}, version: ${agent.version})`);
// Prompt user for input
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const userInput = await new Promise<string>((resolve) => {
rl.question(
"Enter your question for the Bing Custom Search agent (e.g., 'Tell me more about foundry agent service'): \n",
(answer) => {
rl.close();
resolve(answer);
},
);
});
// Send initial request that will trigger the Bing Custom Search tool
const streamResponse = await openai.responses.create(
{
input: userInput,
stream: true,
},
{
body: {
agent: { name: agent.name, type: "agent_reference" },
},
},
);
// Process the streaming response
for await (const event of streamResponse) {
if (event.type === "response.created") {
console.log(`Follow-up response created with ID: ${event.response.id}`);
} else if (event.type === "response.output_text.delta") {
process.stdout.write(event.delta);
} else if (event.type === "response.output_text.done") {
console.log("\n\nFollow-up response done!");
} else if (event.type === "response.output_item.done") {
if (event.item.type === "message") {
const item = event.item;
if (item.content && item.content.length > 0) {
const lastContent = item.content[item.content.length - 1];
if (lastContent.type === "output_text" && lastContent.annotations) {
for (const annotation of lastContent.annotations) {
if (annotation.type === "url_citation") {
console.log(
`URL Citation: ${annotation.url}, Start index: ${annotation.start_index}, End index: ${annotation.end_index}`,
);
}
}
}
}
}
} else if (event.type === "response.completed") {
console.log("\nFollow-up completed!");
}
}
// Clean up resources by deleting the agent version
// This prevents accumulation of unused resources in your project
console.log("\nCleaning up resources...");
await project.agents.deleteVersion(agent.name, agent.version);
console.log("Agent deleted");
console.log("\nBing Custom Search agent sample completed!");
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
});
Qué hace este código
En este ejemplo se crea un agente con la herramienta Grounding with Bing Custom Search que busca en los dominios configurados. Al ejecutar el código:
- Crea una
AIProjectClienty se autentica mediante las credenciales de Azure. - Crea un agente con la herramienta Bing Custom Search utilizando tu instancia de búsqueda personalizada.
- Solicita la entrada del usuario en tiempo de ejecución a través de la línea de comandos.
- El agente usa la herramienta Bing Custom Search para buscar solo los dominios especificados y transmite la respuesta.
- Procesa eventos de streaming y extrae citas de dirección URL con sus posiciones en el texto.
- Limpia eliminando la versión del agente.
Entradas necesarias
- Actualice las constantes
PROJECT_ENDPOINT,CUSTOM_SEARCH_CONNECTION_NAMEyCUSTOM_SEARCH_INSTANCE_NAMEen el código con sus valores. - Credenciales Azure configuradas para
DefaultAzureCredential. - Entrada del usuario proporcionada en tiempo de ejecución a través de la consola.
Salida esperada
Agent created (id: asst_abc123, name: MyAgent, version: 1)
Enter your question for the Bing Custom Search agent (e.g., 'Tell me more about foundry agent service'):
Tell me more about foundry agent service
Follow-up response created with ID: resp_xyz789
Microsoft Foundry Agent Service enables you to build...
Follow-up response done!
URL Citation: https://learn.microsoft.com/azure/ai-foundry/agents, Start index: 0, End index: 89
Follow-up completed!
Cleaning up resources...
Agent deleted
Bing Custom Search agent sample completed!
Uso de Bing grounding en un agente de Java
Agregue la dependencia a pom.xml:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-ai-agents</artifactId>
<version>2.0.0</version>
</dependency>
Creación de un agente con Bing grounding
import com.azure.ai.agents.AgentsClient;
import com.azure.ai.agents.AgentsClientBuilder;
import com.azure.ai.agents.ResponsesClient;
import com.azure.ai.agents.models.*;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.openai.models.responses.Response;
import com.openai.models.responses.ResponseCreateParams;
import java.util.Arrays;
import java.util.Collections;
public class BingGroundingExample {
public static void main(String[] args) {
// Format: "https://resource_name.ai.azure.com/api/projects/project_name"
String projectEndpoint = "your_project_endpoint";
String bingConnectionId = "my-bing-connection-id";
AgentsClientBuilder builder = new AgentsClientBuilder()
.credential(new DefaultAzureCredentialBuilder().build())
.endpoint(projectEndpoint);
AgentsClient agentsClient = builder.buildAgentsClient();
ResponsesClient responsesClient = builder.buildResponsesClient();
// Create Bing grounding tool with connection configuration
BingGroundingTool bingTool = new BingGroundingTool(
new BingGroundingSearchToolParameters(Arrays.asList(
new BingGroundingSearchConfiguration(bingConnectionId)
))
);
// Create agent with Bing grounding tool
PromptAgentDefinition agentDefinition = new PromptAgentDefinition("gpt-4.1-mini")
.setInstructions("You are a helpful assistant. Use Bing to find up-to-date information.")
.setTools(Collections.singletonList(bingTool));
AgentVersionDetails agent = agentsClient.createAgentVersion("bing-grounding-agent", agentDefinition);
System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion());
// Create a response
AgentReference agentReference = new AgentReference(agent.getName())
.setVersion(agent.getVersion());
Response response = responsesClient.createAzureResponse(
new AzureCreateResponseOptions().setAgentReference(agentReference),
ResponseCreateParams.builder()
.input("What are the latest developments in AI?"));
System.out.println("Response: " + response.output());
// Clean up
agentsClient.deleteAgentVersion(agent.getName(), agent.getVersion());
}
}
Cómo funciona
La consulta del usuario es el mensaje que un usuario final envía a un agente, como *"debería tomar un paraguas conmigo hoy? Estoy en Seattle". *Las instrucciones son el mensaje del sistema que un desarrollador puede proporcionar para compartir contexto y proporcionar instrucciones al modelo de IA sobre cómo usar varias herramientas o comportarse.
Cuando un usuario envía una consulta, la implementación del modelo de IA del cliente la procesa primero (mediante las instrucciones proporcionadas) para realizar posteriormente una consulta de búsqueda de Bing (que es visible para los desarrolladores). La integración con Bing devuelve resultados de búsqueda relevantes a la implementación del modelo del usuario, que luego genera el resultado final.
Nota
Cuando se usa Grounding con Bing Search o Grounding con Bing Custom Search, la única información enviada a Bing es la consulta de búsqueda de Bing, los parámetros de herramienta y la clave de recurso. El servicio no envía ninguna información específica del usuario final. La clave de recurso se envía a Bing únicamente con fines de facturación y limitación de velocidad.
La autorización se produce entre Grounding con Bing Search o Grounding con el servicio Bing Custom Search y Foundry Agent Service. Cualquier consulta de búsqueda de Bing que el servicio genere y envíe a Bing con fines de referenciación se transfiere, junto con la clave de recurso, fuera del límite de cumplimiento de Azure al servicio de referenciación con Bing Search. La integración con Bing Search está sujeta a los términos de Bing y no cuenta con los mismos estándares de cumplimiento y certificaciones que el Servicio del Agente, tal como se describe en los Términos de uso. Usted es responsable de evaluar si el uso de Grounding con Bing Search o Grounding con Bing Custom Search en su agente satisface sus necesidades y requisitos.
Las transacciones con tu recurso de Grounding con Bing se contabilizan por el número de llamadas de herramienta por ejecución. Puede ver cuántas llamadas a herramientas se realizan desde el paso de ejecución.
Los desarrolladores y los usuarios finales no tienen acceso al contenido sin procesar devuelto desde Grounding con Bing Search. Sin embargo, la respuesta del modelo incluye citas con vínculos a los sitios web usados para generar la respuesta y un vínculo a la consulta de Bing usada para la búsqueda. Puede recuperar la respuesta del modelo accediendo a los datos de la conversación que se creó. Estas dos referencias deben conservarse y mostrarse en el formato exacto proporcionado por Microsoft, conforme a los Requisitos de Uso y Presentación de Bing Search. Consulte la sección Cómo mostrar Grounding with Bing Search results para obtener más información.
Cómo mostrar los resultados de la búsqueda
Según los términos de uso y requisitos de uso y visualización de Bing, debe mostrar las direcciones URL del sitio web y las direcciones URL de consulta de búsqueda de Bing en la interfaz personalizada. Puede encontrar esta información en la respuesta de la API, en el arguments parámetro . Para representar la página web, reemplace el punto de conexión de las direcciones URL de consulta de búsqueda de Bing por www.bing.com y la dirección URL de consulta de búsqueda de Bing tendría el aspecto https://www.bing.com/search?q={search query}.
Puesta en tierra con la configuración de Bing Custom Search
La conexión a tierra con Bing Custom Search es una herramienta poderosa que puede emplear para seleccionar un subespacio de la web y así limitar el conocimiento fundamental del agente. Estas son algunas sugerencias para ayudarle a aprovechar al máximo esta funcionalidad:
- Si es propietario de un sitio público que desea incluir en la búsqueda, pero Bing no se ha indexado, consulte Las directrices para webmasters de Bing para obtener más información sobre cómo obtener su sitio indexado. La documentación de webmaster también proporciona detalles sobre cómo obtener Bing para rastrear el sitio si el índice no está actualizado.
- Necesita al menos el rol de colaborador para el recurso Bing Custom Search para crear una configuración.
- Solo puede bloquear determinados dominios y realizar una búsqueda en el resto de la web (por ejemplo, el sitio de un competidor).
- El uso de Bing Custom Search solo devuelve resultados para dominios y páginas web que son públicos y puestos en índice por Bing.
- Dominio (por ejemplo,
https://www.microsoft.com) - Dominio y ruta de acceso (por ejemplo,
https://www.microsoft.com/surface) - Página web (por ejemplo,
https://www.microsoft.com/en-us/p/surface-earbuds/8r9cpq146064)
- Dominio (por ejemplo,
Parámetros opcionales
Al agregar la herramienta Grounding con Bing Search o Grounding con Bing Custom Search al agente, puede pasar los parámetros siguientes. Estos parámetros afectarán a la salida de la herramienta y es posible que el modelo de IA no use completamente todas las salidas. Consulte los ejemplos de código para obtener información sobre la compatibilidad con versiones de API y cómo pasar estos parámetros.
| Nombre | Valor | Tipo | Obligatorio |
|---|---|---|---|
count |
Número de resultados de búsqueda que se van a devolver en la respuesta. El valor predeterminado es 5 y el valor máximo es 50. El número real entregado puede ser menor que el solicitado. Es posible que varias páginas incluyan alguna superposición en los resultados. Este parámetro afecta solo a los resultados de la página web. Es posible que el modelo de IA no use todos los resultados de búsqueda devueltos por Bing. | UnsignedShort |
No |
freshness |
Filtre los resultados de búsqueda por los siguientes valores de antigüedad que no distinguen mayúsculas de minúsculas: Día: devuelve páginas web que Bing detectó en las últimas 24 horas. Semana: devuelve páginas web que Bing detectó en los últimos 7 días. Mes: devuelve páginas web que Bing detectó en los últimos 30 días. Para obtener artículos detectados por Bing durante un período de tiempo específico, especifique un intervalo de fechas con el formato : YYYY-MM-DD..YYYY-MM-DD. Por ejemplo, freshness=2019-02-01..2019-05-30. Para limitar los resultados a una fecha única, establezca este parámetro en una fecha específica. Por ejemplo, freshness=2019-02-04. |
Cadena | No |
market |
El mercado del que proceden los resultados. Normalmente, mkt es el país o región desde el que el usuario realiza la solicitud. Sin embargo, podría ser un país o región diferente si el usuario no se encuentra en un país o región donde Bing entrega resultados. El mercado debe estar en la forma de: <language>-<country/region>. Por ejemplo, en-US. La cadena no distingue mayúsculas de minúsculas. Para obtener una lista de posibles valores de mercado, consulte Códigos de mercado. Si se conoce, se recomienda especificar siempre el mercado. Especificar el mercado ayuda a Bing a enrutar la solicitud y devolver una respuesta adecuada y óptima. Si especifica un mercado que no figura en los códigos de mercado, Bing utiliza un código de mercado más adecuado basado en una asignación interna sujeta a cambios. |
Cadena | No |
set_lang |
Idioma que se va a usar para las cadenas de la interfaz de usuario. Puede especificar el idioma mediante un código de 2 letras o 4 letras. Se prefiere usar códigos de 4 letras. Para obtener una lista de los códigos de idioma admitidos, consulte Idiomas admitidos por Bing. Bing carga las cadenas localizadas si setlang contiene un código de referencia cultural neutral válido de 2 letras (fr) o un código de referencia cultural específico de 4 letras válido (fr-ca). Por ejemplo, para fr-ca, Bing carga las cadenas de código de cultura neutral de fr.Si setlang no es válido (por ejemplo, zh) o Bing no admite el idioma (por ejemplo, af, af-na), Bing tiene como valor predeterminado en (inglés).Para especificar el código de 2 letras, establezca este parámetro en un código de idioma ISO 639-1. Para especificar el código de 4 letras, use el formulario <language>-<country/region> donde <language> es un código de idioma ISO 639-1 (referencia cultural neutral) y <country/region> es un código de país o región ISO 3166 (referencia cultural específica). Por ejemplo, use en-US para el inglés de Estados Unidos.Aunque es opcional, siempre debe especificar el idioma. Normalmente, se establece setLang en el mismo idioma especificado por mkt , a menos que el usuario quiera que las cadenas de la interfaz de usuario se muestren en un idioma diferente. |
Cadena | No |
Funcionalidades admitidas y problemas conocidos
- La herramienta Grounding with Bing Search está diseñada para recuperar información en tiempo real de la web, no dominios web específicos. Para recuperar información de dominios específicos, use la herramienta Grounding with Bing Custom Search.
- No pida al modelo que resuma toda una página web.
- Dentro de una ejecución, el modelo de IA evalúa las salidas de la herramienta y podría decidir invocar la herramienta de nuevo para obtener más información y contexto. El modelo de IA también puede decidir qué partes de las salidas de herramientas se usan para generar la respuesta.
- Foundry Agent Service devuelve las respuestas generadas por el modelo de IA como salida, por lo que la latencia de un extremo a otro se ve afectada por el procesamiento previo del modelo y posterior al procesamiento.
- Las herramientas de Conexión a Tierra con Bing Search y Conexión a Tierra con Bing Custom Search no proporcionan la salida de la herramienta a los desarrolladores ni a los usuarios finales.
- La integración con Bing Search y Bing Custom Search solo funcionan con agentes que no usan VPN ni puntos de conexión privados. El agente debe tener acceso de red normal.
- Use el patrón de citas predeterminado (los vínculos enviados en
annotation) para los vínculos de grounding con las herramientas de Bing. No pida al modelo que genere vínculos de cita.
Solución de problemas
Use esta sección para resolver problemas comunes al usar las herramientas de Bing Search con Grounding.
Errores de formato en el ID de conexión
Problema: mensaje de error que indica el formato de identificador de conexión no válido.
Solución: compruebe que el identificador de conexión coincide con el formato necesario:
/subscriptions/{{subscriptionID}}/resourceGroups/{{resourceGroupName}}/providers/Microsoft.CognitiveServices/accounts/{{foundryAccountName}}/projects/{{foundryProjectName}}/connections/{{foundryConnectionName}}
Reemplace todos los valores de marcador de posición (incluidos {{ y }}) por los identificadores de recursos reales.
Errores de autenticación
Problema: errores "No autorizados" o "Prohibido" al crear agentes o ejecutar consultas.
Solución:
- Compruebe que tiene los roles RBAC necesarios:
- Rol de Colaborador o Propietario para crear recursos de Bing
- El rol de Azure AI Project Manager para crear conexiones de proyecto
- Compruebe que las credenciales de Azure están configuradas correctamente:
- Para Python/TypeScript:
DefaultAzureCredentialpuede autenticarse - Para REST: el token de portador es válido y no ha expirado
- Para Python/TypeScript:
- Ejecute
az loginpara actualizar las credenciales si usa CLI de Azure
Problemas de conectividad de red
Problema: se agota el tiempo de espera o no se puede establecer conexión con las solicitudes de Bing Search.
Solución: la puesta en tierra con Bing Search y la conexión a tierra con Bing Custom Search no funcionan con VPN ni puntos de conexión privados. Asegúrese de:
- La red tiene acceso normal a Internet.
- No está usando una conexión VPN.
- Los puntos de conexión privados no están configurados para el servicio del agente.
- Las reglas de firewall permiten conexiones salientes a servicios de Bing.
La búsqueda personalizada no devuelve ningún resultado
Problema: Bing Custom Search devuelve resultados vacíos o no encuentra contenido esperado.
Solución:
- Compruebe que la instancia de búsqueda personalizada está configurada correctamente con dominios de destino.
- Asegúrese de que Los dominios que desea buscar son públicos e indexados por Bing.
- Compruebe que los dominios configurados coinciden con las expectativas de la consulta de búsqueda.
- Si el sitio no está indexado, consulte Las instrucciones para la indexación de Bing Webmaster Guidelines .
- Espere a que Bing rastree el contenido agregado o actualizado recientemente (puede tardar varios días).
Faltan valores de configuración o son inválidos
Problema: se produce un error en el código con errores de conexión o respuestas "no encontradas".
Solución: asegúrese de actualizar todas las constantes necesarias en el código con los valores reales:
-
PROJECT_ENDPOINT(Python/TypeScript) oprojectEndpoint(C#/Java): dirección URL del punto de conexión del proyecto Foundry. - Nombre o identificador de conexión del recurso de Bing.
- Para la búsqueda personalizada: el nombre de la instancia de búsqueda personalizada.
- Para la API REST, establezca variables de entorno:
FOUNDRY_PROJECT_ENDPOINT,FOUNDRY_MODEL_DEPLOYMENT_NAMEBING_PROJECT_CONNECTION_IDoBING_CUSTOM_SEARCH_PROJECT_CONNECTION_ID, yAGENT_TOKEN.
El agente no usa la herramienta de puesta a tierra
Problema: el agente responde sin utilizar la herramienta de validación de Bing.
Solución:
- Asegúrese de que la consulta requiere información actual que el modelo no conoce.
- Para el uso explícito de herramientas, establezca
tool_choice="required"en la solicitud (los ejemplos de Python/TypeScript muestran esto). - Compruebe que la herramienta está configurada correctamente en la definición del agente.
- Revise las instrucciones del agente que animan a usar las herramientas disponibles para obtener información actual.
No se encontró el nombre de instancia para grounding con la herramienta Bing Custom Search.
Problema:
{"error": "Tool_User_Error", "message": "[bing_search] Failed to call Get Custom Search Instance with status 404: {\"error\":{\"code\":\"ResourceNotFound\",\"message\":\"Instance or Customer not found\",\"target\":\"instanceName or customerId\"}}."}
Solución:
- Asegúrese de que el nombre de la instancia está en el recurso grounding with Bing Custom Search que está usando.
- Compruebe si el nombre de la instancia está escrito correctamente.
Gestión de la conexión a tierra con Bing Search y Bing Custom Search
Los administradores pueden usar asignaciones de roles de RBAC para habilitar o deshabilitar el uso de Grounding con Bing y Grounding con Bing Custom Search dentro de la suscripción o el grupo de recursos.
- El administrador registra
Microsoft.Bingen la suscripción de Azure. El administrador necesita permisos para realizar la/register/actionoperación para el proveedor de recursos. Los roles Colaborador y Propietario incluyen este permiso. Para obtener más información sobre cómo registrarse, consulte Azure proveedores de recursos y tipos. - Después de que el administrador registre
Microsoft.Bing, los usuarios con permisos pueden crear, eliminar o obtener la clave del recurso para un Grounding con Bing y/o Grounding con el recurso Bing Custom Search. Estos usuarios necesitan el rol Colaborador o Propietario en el nivel de suscripción o grupo de recursos. - Después de crear un recurso de Grounding con Bing o con Bing Custom Search, los usuarios con permisos pueden establecer una conexión con Microsoft Foundry para vincularse al recurso y utilizarlo en el servicio Foundry Agent. Estos usuarios necesitan al menos el rol Azure AI Project Manager.
Desactivar el uso de Grounding con Bing Search y Grounding con Bing Custom Search
- El administrador necesita el rol Propietario o Colaborador en la suscripción.
- El administrador elimina todos los recursos de Grounding con Bing Search y Grounding con Bing Custom Search en la suscripción.
- El administrador anula el registro del proveedor de recursos
Microsoft.Bingen la suscripción (no se puede anular el registro antes de eliminar todos los recursos). Para obtener más información, consulte Azure tipos de recursos y proveedores. - El administrador crea un Azure Policy para no permitir la creación de Grounding con Bing Search y Grounding con recursos de Bing Custom Search en su suscripción, siguiendo el sample.
Pasos siguientes
- Mejores prácticas para el uso de herramientas: Aprende estrategias de optimización para las herramientas del agente
- Herramienta de búsqueda web: uso de la búsqueda web sin configurar parámetros de herramientas de Bing
- Gestionar Grounding con Bing en Microsoft Foundry y Azure: controlar y desactivar las funciones de Grounding con Bing
- Conexión de herramientas de OpenAPI a agentes : integración de API personalizadas con los agentes
- Descubrir herramientas en Herramientas de Foundry (versión preliminar) - Explore todas las herramientas de agente disponibles en Foundry Agent Service