Použití služby agenta Foundry s jazykem LangGraph

langchain-azure-ai Pomocí balíčku připojte aplikace LangGraph a LangChain ke službě Foundry Agent Service. Tento článek vás provede praktickými scénáři, od použití existujících agentů a skládání grafů s více agenty až po pracovní postupy s podporou nástrojů, schvalování s účastí člověka a trasování.

Požadavky

  • Předplatné Azure. Vytvořte si ho zdarma.
  • Projekt Foundry.
  • Nasazený chatovací model (například gpt-4.1) v projektu.
  • Python 3.10 nebo novější.
  • Azure CLI je přihlášený (az login), takže se DefaultAzureCredential může ověřit.

Konfigurace prostředí

Nainstalujte balíček langchain-azure-ai pro použití funkcí Microsoft Foundry v jazyce LangGraph a LangChain.

pip install langchain-azure-ai[tools,opentelemetry] azure-identity

Tip

Nainstalujte doplňky [tools], abyste mohli používat nástroje, jako jsou funkce Document Intelligence nebo konektory Azure Logic Apps. Nainstalujte [opentelemetry] pro zahrnutí podpory OpenTelemetry se sémantickými konvencemi pro řešení Generative AI.

Nastavte proměnné prostředí, které používáme v tomto kurzu:

export AZURE_AI_PROJECT_ENDPOINT="https://<resource>.services.ai.azure.com/api/projects/<project>"
export MODEL_DEPLOYMENT_NAME="gpt-4.1"

Použití agentů služby Foundry Agent Service

Třída AgentServiceFactory je vaším výchozím bodem pro vytváření agentů v jazyce LangGraph, které komunikují se službou agenta v Foundry. Továrna vytvoří uzly kompatibilní s jazykem LangGraph, které běží prostřednictvím služby agenta a které lze použít k vytváření složitějších řešení pomocí jazyka LangGraph.

Vytvořte objekt pro vytváření agentů připojením AgentServiceFactory třídy k projektu Foundry. Všichni agenti, které vytvoříte nebo na které odkazujete prostřednictvím tohoto vytváření, jsou spravováni v rámci projektu a jsou viditelní v portálu Foundry (nový).

Poznámka

Migrace z Foundry Classic: Agenti vytvořená pomocí langchain_azure_ai.agents.v1.AgentServiceFactory jsou viditelná jenom na portálu Foundry (Classic).

import os

from langchain_core.messages import HumanMessage

from azure.identity import DefaultAzureCredential
from langchain_azure_ai.agents import AgentServiceFactory
from langchain_azure_ai.utils.agents import pretty_print

factory = AgentServiceFactory(
	project_endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"],
	credential=DefaultAzureCredential(),
)	

Použití existujícího agenta

Doporučujeme vytvářet a konfigurovat agenty na portálu Foundry nebo v sadě Foundry SDK a pak na ně odkazovat podle názvu get_agent_node a vytvářet grafy. Tento přístup se doporučuje, protože udržuje konfiguraci agenta centralizovanou v Foundry a umožňuje vašemu kódu zaměřit se na orchestraci. Agenty můžete také vytvářet programově, create_prompt_agent když potřebujete definovat agenty zcela v kódu.

echo_node = factory.get_agent_node(
	name="my-echo-agent",
	version="latest",
)

Co tento fragment dělá: Načte referenci na existujícího agenta Foundry jako uzel kompatibilní s LangGraph. Agent již musí být přítomen ve vašem projektu Foundry. Umožňuje version="latest" vždy cílit na nejnovější verzi nebo připnout konkrétní číslo verze pro stabilitu.

Otestujte, zda váš agent může fungovat.

response = echo_node.invoke(
	{"messages": [HumanMessage(content="Hello, world!")]}
)
pretty_print(response)
================================ Human Message =================================

Hello, world!
================================== Ai Message ==================================
Name: my-echo-agent

Goodbye, world!

Konverzace a stav

Uzly připojené ke službě agenta automaticky sledují odpovědi v konverzacích. Tato azure_ai_agents_conversation_id vlastnost se přidá do stavu, takže můžete odkazovat na konverzace nebo v nich pokračovat:

print(
	"azure_ai_agents_conversation_id:",
	response["azure_ai_agents_conversation_id"],
)
azure_ai_agents_conversation_id: <conversation-id>

Vytváření grafů s existujícími agenty

K vytváření složitých grafů můžete použít uzly služby agenta stejně jako jakýkoli jiný uzel v jazyce LangGraph. Následující příklad vytvoří graf podmíněného směrování, kde místní router_node zkontroluje zprávu uživatele a rozhodne, jestli se má delegovat na agenta Foundry.

from typing import Literal
from langchain_core.messages import AIMessage
from langgraph.graph import StateGraph, MessagesState, START, END


class RouterState(MessagesState):
	jump_to: str | None


def router_node(state: RouterState):
	last_message = state["messages"][-1].content.lower()

	# Simple logic simulating a model decision
	if "negate" in last_message:
		return RouterState(
			messages=state["messages"], jump_to="delegate"
		)
	else:
		return RouterState(
			messages=[AIMessage(content="I can handle this!")],
			jump_to=None,
		)


def route_decision(state: RouterState) -> Literal["expert_node", END]:
	if state.get("jump_to", None) == "delegate":
		return "expert_node"
	return END


workflow = StateGraph(RouterState)

workflow.add_node("router_node", router_node)
workflow.add_node("expert_node", echo_node)
workflow.add_edge(START, "router_node")
workflow.add_conditional_edges("router_node", route_decision)
workflow.add_edge("expert_node", END)

app = workflow.compile()

Co tento fragment kódu dělá: Vytvoří langgraph StateGraph se dvěma uzly. Zkontroluje router_node poslední zprávu – pokud obsahuje "negate", deleguje se na expert_node (agent Foundry načtený pomocí get_agent_node). V opačném případě směrovač zpracuje požadavek místně a ukončí graf. Tento model ukazuje, jak kombinovat místní logiku s agenty Foundry.

Graf vypadá takto:

Diagram grafu agenta s uzlem spuštěným ve službě Agent Service.

Vyvolání grafu:

print("--- Test 1 (Direct) ---")
pretty_print(
	app.invoke({"messages": [HumanMessage(content="Hello, world!")]})
)

print("\n--- Test 2 (Delegated) ---")
pretty_print(
	app.invoke(
		{"messages": [HumanMessage(content="Negate that I'm a genius!")]}
	)
)
------------------------------- Test 1 (Direct) --------------------------------
================================ Human Message =================================

Hello, world!
================================== Ai Message ==================================

I can handle this!

------------------------------ Test 2 (Delegated) ------------------------------
================================ Human Message =================================

Negate that I'm a genius!
================================== Ai Message ==================================
Name: my-echo-agent

You're not a genius!

V testu 1 směrovač zpracovává požadavek místně. V testu 2 směrovač deleguje úlohy na agenta Foundry, který reaguje opačně na výrok uživatele.

Vytvořit základního agenta pro příkazy

Když potřebujete definovat agenty zcela v kódu – například během vytváření prototypů nebo kdy by se měla konfigurace agenta používat společně s aplikací – použijte create_prompt_agent. Začněte s minimálním agentem ve stylu ReAct a ověřte jeho integraci.

agent = factory.create_prompt_agent(
	name="my-echo-agent",
	model=os.environ["MODEL_DEPLOYMENT_NAME"],
	instructions=(
		"You are a helpful AI assistant that always replies with the "
		"opposite of what the user says."
	),
)

print(f"Agent created with ID: {factory.get_agents_id_from_graph(agent)}")
Agent created with ID: {'my-echo-agent:1'}

Vyvolání agenta:

messages = [HumanMessage(content="I'm a genius and I love programming!")]
response = agent.invoke({"messages": messages})
pretty_print(response)
================================ Human Message =================================

I'm a genius and I love programming!
================================== Ai Message ==================================
Name: my-echo-agent

You are not a genius and you hate programming!

Co tento fragment kódu dělá: Vytvoří agenta založeného na příkazovém řádku ve službě Foundry Agent Service a vrátí langgraph CompiledStateGraph , který ho používá. Agent se okamžitě zobrazí na portálu Foundry v části Agenti. Volání get_agents_id_from_graph načte ID agenta, které bylo přiřazeno Foundry, abyste mohli agenta později sledovat nebo na něj odkazovat.

Způsob vytvoření a použití agenta v grafu LangGraph můžete vizualizovat tiskem jeho reprezentace diagramu. Uzel foundryAgent běží ve službě Foundry Agent. Všimněte si, jak se v grafu zobrazuje název a verze agenta.

from IPython import display

display.Image(agent.get_graph().draw_mermaid_png())

factory.delete_agent(agent)

Diagram grafu agenta pro agenta bez nástrojů

Přidejte nástroje do svého agenta

K provádění akcí můžete do agenta přidat nástroje. Metoda create_prompt_agent implementuje smyčku agenta za vás.

Měli byste rozlišovat dva typy nástrojů:

  • Místní nástroje: Jedná se o nástroje, které běží společně s kódem agenta. Mohou být volatelné funkce nebo libovolná funkce dostupná pro ekosystém LangChain/LangGraph.
  • Integrované nástroje: Jedná se o nástroje, které se dají spouštět výhradně ve službě Foundry Agent Service; na straně serveru. Nástroje na straně serveru lze použít pouze u agentů Foundry.

Přidáním místních nástrojů do agenta se do grafu přidá uzel nástroje pro spuštění těchto nástrojů. Předdefinované nástroje nepřidají uzel nástroje a po provedení požadavku se ve službě spustí.

Diagram grafu agenta pro agenta s nástroji

V následující části se dozvíte, jak používat obojí:

Přidání místních nástrojů

Můžete definovat místní Python funkce a připojit je jako nástroje. Tento model je užitečný pro deterministické obchodní logiky a obslužné operace.

def add(a: int, b: int) -> int:
	"""Add two integers."""
	return a + b


def multiply(a: int, b: int) -> int:
	"""Multiply two integers."""
	return a * b


def divide(a: int, b: int) -> float:
	"""Divide one integer by another."""
	return a / b

Předejte nástroje funkci create_prompt_agent a vyvolejte agenta s vícekrokovým aritmetickým problémem:

math_agent = factory.create_prompt_agent(
	name="math-agent",
	model=os.environ["MODEL_DEPLOYMENT_NAME"],
	instructions=(
		"You are a helpful assistant tasked with performing arithmetic "
		"on a set of inputs."
	),
	tools=[add, multiply, divide],
)

messages = [
	HumanMessage(
		content="Add 3 and 4. Multiply the output by 2. Divide the output by 5."
	)
]
response = math_agent.invoke({"messages": messages})
pretty_print(response)
================================ Human Message =================================

Add 3 and 4. Multiply the output by 2. Divide the output by 5
================================== Ai Message ==================================
Tool Calls:
  add (call_JSmltOCbsTRkbNEBMAVSgVe1)
 Call ID: call_JSmltOCbsTRkbNEBMAVSgVe1
  Args:
    a: 3
    b: 4
================================= Tool Message =================================
Name: add

7
================================== Ai Message ==================================
Tool Calls:
  multiply (call_ae6M6XyhOIBOkPy3ETd8nDI9)
...
================================== Ai Message ==================================
Name: math-agent

Here's the step-by-step calculation:
1. Add 3 and 4 to get 7.
2. Multiply the result (7) by 2 to get 14.
3. Divide the result (14) by 5 to get 2.8.

The final result is 2.8.

Co tento fragment kódu dělá: Vytvoří agenta se třemi aritmetickými nástroji. Když agent zjistí, že je potřeba vyvolat nástroj, služba Foundry Agent orchestruje vyvolání nástroje na místní úrovni a výsledek pošle zpět agentovi, aby mohl pokračovat v analýze.

Použijte další nástroje z ekosystému LangGraph/LangChain, jako je Azure Document Intelligence v nástrojích Foundry z toho samého pracovního postupu agenta. I když jsou tyto nástroje připojené k prostředku Foundry, nejsou výhradní pro službu agenta, a proto fungují jako místní nástroj.

from langchain_azure_ai.tools import AzureAIDocumentIntelligenceTool

document_parser_agent = factory.create_prompt_agent(
	name="document-agent",
	model=os.environ["MODEL_DEPLOYMENT_NAME"],
	instructions="You are a helpful assistant tasked with analyzing documents.",
	tools=[AzureAIDocumentIntelligenceTool()],
)

Tip

AzureAIDocumentIntelligenceTool může projekt Foundry použít k připojení ke službě a podporuje také Microsoft Entra pro ověřování. Ve výchozím nastavení nástroj používá AZURE_AI_PROJECT_ENDPOINT s DefaultAzureCredential, což je důvod, proč není nutná žádná další konfigurace. V případě potřeby ho můžete změnit tak, aby používal konkrétní koncový bod a klíč.

Požádejte agenta, aby analyzoval fakturu z adresy URL:

messages = [
	HumanMessage(
		content=(
			"What's the total amount in the invoice at "
			"https://raw.githubusercontent.com/Azure/azure-sdk-for-python/main/"
			"sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/"
			"forms/Form_1.jpg"
		)
	)
]
response = document_parser_agent.invoke({"messages": messages})
pretty_print(response)
================================ Human Message =================================

What's the total amount in ...
================================== Ai Message ==================================
Tool Calls:
  azure_ai_document_intelligence (call_32V6bqeCcJhhsOXDrYFXggnc)
 Call ID: call_32V6bqeCcJhhsOXDrYFXggnc
  Args:
    source_type: url
    source: https://raw.githubusercontent.com/Azure/ ...
================================= Tool Message =================================
Name: azure_ai_document_intelligence

Content: Purchase Order Hero ...
================================== Ai Message ==================================
Name: document-agent

The total amount in the invoice is **$144.00**.

Co tento fragment kódu dělá: Požádá agenta, aby extrahovali data z ukázkového obrázku faktury. Agent zavolá AzureAIDocumentIntelligenceTool k analýze dokumentu a vrátí výsledek. Očekávaný výstup: Celková částka na faktuře je 144,00 KČ.

Přidání integrovaných nástrojů

Integrované nástroje ve službě Agent Foundry běží na straně serveru na rozdíl od uzlu nástroje, jako jsou místní nástroje. Nástroje v oboru názvů langchain_azure_ai.agents.prebuilt.tools.* jsou všechny integrované nástroje a pracují pouze s create_prompt_agent.

Příklad: Použití nástroje interpreta kódu

Vytvořte agenta interpreta kódu pro analýzu dat a vyvoláte ho fiktivním data.csv datovým souborem.

Před spuštěním této ukázky vytvořte místní data.csv soubor v aktuálním pracovním adresáři.

import base64
from langchain_azure_ai.agents.prebuilt.tools import CodeInterpreterTool

code_interpreter_agent = factory.create_prompt_agent(
	name="code-interpreter-agent",
	model=os.environ["MODEL_DEPLOYMENT_NAME"],
	instructions=(
		"You are a data analyst agent. Analyze CSV data and create "
		"visualizations when helpful."
	),
	tools=[CodeInterpreterTool()],
)

with open("data.csv", "rb") as file_handle:
	csv_data = base64.b64encode(file_handle.read()).decode()

response = code_interpreter_agent.invoke(
	{
		"messages": [
			HumanMessage(
				content=[
					{
						"type": "file",
						"mime_type": "text/csv",
						"base64": csv_data,
					},
					{
						"type": "text",
						"text": (
							"Create a pie chart showing sales by region and "
							"return it as a PNG image."
						),
					},
				]
			)
		]
	}
)
pretty_print(response)
================================ Human Message =================================

[
	{'type': 'file', 'mime_type': 'text/csv', 'base64': '77u/bW9udG...xTb3V0aAo='}, 
	{'type': 'text', 'text': 'create a pie chart with the data showing sales by region and show it to me as a png image.'}
]
================================== Ai Message ==================================
Name: code-interpreter-agent

[
	{'type': 'text', 'text': 'Here is the pie chart showing sales by region as a PNG image:\n\n[Download the Pie Chart](sandbox:/mnt/data/sales_by_region_pie.png)'}, 
	{'type': 'image', 'mime_type': 'image/png', 'base64': 'iVBORw0...ErkJggg=='}
]

Obrázek vygenerovaný codeInterpreterTool.

Příklad: Použití nástroje pro generování obrázků

Následující příklad ukazuje, jak se používá ImageGenTool pro generování image:

from langchain_azure_ai.agents.prebuilt.tools import ImageGenTool

image_agent = factory.create_prompt_agent(
	name="image-generator-agent",
	model=os.environ["MODEL_DEPLOYMENT_NAME"],
	instructions=(
		"You are an image generation assistant. You receive a text prompt and "
		"must generate an image by using the configured tool."
	),
	tools=[ImageGenTool(model_deployment="gpt-image-1.5", quality="medium")],
)

response = image_agent.invoke(
	{"messages": [HumanMessage("Generate an image of a sunset over mountains.")]}
)
pretty_print(response)
================================ Human Message =================================

Generate an image of a sunset over the mountains.
================================== Ai Message ==================================
Name: image-generator-agent

Obrázek vygenerovaný pomocí nástroje ImageGenTool.

Použití dalších integrovaných nástrojů

Jakýkoli nástroj Služby agenta Foundry lze použít s create_prompt_agent. Pomocí AgentServiceBaseTool zabalte nástroje ze sady AZURE AI Projects SDK a připojte je k agentovi výzev.

Před spuštěním této ukázky se ujistěte, že v projektu existuje ID úložiště vektorů.

Následující příklad ukazuje, jak použít FileSearchTool:

from azure.ai.projects.models import FileSearchTool
from langchain_azure_ai.agents.prebuilt.tools import AgentServiceBaseTool

file_search_agent = factory.create_prompt_agent(
	name="file-search-agent",
	model=os.environ["MODEL_DEPLOYMENT_NAME"],
	instructions=(
		"You are a helpful agent with access to a file search tool over a "
		"vector store."
	),
	tools=[
		AgentServiceBaseTool(
			tool=FileSearchTool(vector_store_ids=["vector-store-1"]),
		)
	],
)

člověk ve smyčce

Některé nástroje v Foundry mají integrované pracovní postupy schvalování, například MCPTool. Před provedením volání nástroje pro daný nástroj na serveru můžete vyžadovat schválení.

Metoda create_prompt_agent implementuje stejný vzor doporučený jazykem LangGraph. Představuje uzel schválení v grafu:

Diagram grafu agenta pro agenta s implementovanými toky schválení

Následující příklad ukazuje, jak se používá MCPTool se schválením:

from langchain_azure_ai.agents.prebuilt.tools import MCPTool
from langgraph.checkpoint.memory import MemorySaver
from langgraph.types import Command

mcp_agent = factory.create_prompt_agent(
	name="mcp-github-specs-agent",
	model=os.environ["MODEL_DEPLOYMENT_NAME"],
	instructions=(
		"You are a helpful agent that can use MCP tools to assist users."
	),
	tools=[
		MCPTool(
			server_label="api-specs",
			server_url="https://gitmcp.io/Azure/azure-rest-api-specs",
			require_approval="always",
		)
	],
	checkpointer=MemorySaver(),
)

config = {"configurable": {"thread_id": "mcp-session-1"}}

response = mcp_agent.invoke(
	input={"messages": [HumanMessage("What APIs are available for Azure Cosmos DB?")]},
	config=config,
)
pretty_print(response)
================================ Human Message =================================

What APIs are available for Azure Cosmos DB?
================================== Ai Message ==================================
Tool Calls:
  mcp_approval_request (mcpr_74e314080483acce0069a11d2d9f008190a971212ac61d76d8)
 Call ID: mcpr_74e314080483acce0069a11d2d9f008190a971212ac61d76d8
  Args:
    server_label: api-specs
    name: search_azure_rest_api_docs
    arguments: {"query":"Cosmos DB APIs"}

================================== Interrupt ==================================
Interrupt ID: c3cb23363f91d097298fb3c6f8fbf70a
Interrupt Value:
  Tool Call ID: mcpr_74e314080483acce0069a11d2d9f008190a971212ac61d76d8
  Server Label: api-specs
  Tool Name: search_azure_rest_api_docs
  Arguments: {"query":"Cosmos DB APIs"}

Odešlete schválení pomocí Command v LangGraphu:

response = mcp_agent.invoke(Command(resume={"approve": True}), config)

pretty_print(response)
================================ Human Message =================================

What APIs are available for Azure Cosmos DB?
================================== Ai Message ==================================
Tool Calls:
  mcp_approval_request (mcpr_74e314080483acce0069a11d2d9f008190a971212ac61d76d8)
 Call ID: mcpr_74e314080483acce0069a11d2d9f008190a971212ac61d76d8
  Args:
    server_label: api-specs
    name: search_azure_rest_api_docs
    arguments: {"query":"Cosmos DB APIs"}
================================= Tool Message =================================

{"approve": true}
================================== Ai Message ==================================
Name: mcp-github-specs-agent

Azure Cosmos DB supports multiple APIs, ...

Pozorovatelnost

Při vytváření řešení pomocí služby Foundry Agent Service a LangGraph se některé části spouští ve službě agentů, zatímco ostatní běží tam, kde se váš kód spouští.

Třída AzureAIOpenTelemetryTracer umožňuje trasovat end-to-end řešení vytvořená pomocí LangGraph podle standardu OpenTelemetry, který je podporován Agent Service.

Ke sledování kódu použijte:

from langchain_azure_ai.callbacks.tracers import AzureAIOpenTelemetryTracer

tracer = AzureAIOpenTelemetryTracer(
    agent_id="mcp-github-specs-agent-langgraph"
)

mcp_agent = mcp_agent.with_config({ "callbacks": [tracer] })

Co tento fragment kódu dělá: Vytvoří instanci AzureAIOpenTelemetryTracer k odesílání trasování do Aplikace Azure Insights pomocí standardu OpenTelemetry. Nastaví parametr agent_id pro identifikaci stop nastavením vlastnosti gen_ai.agent.id ve span typu agent_invoke. AzureAIOpenTelemetryTracer vyžaduje připojovací řetězec pro Aplikace Azure Insights. V tomto případě se nezobrazí, protože nastavíte proměnnou prostředí AZURE_AI_PROJECT_ENDPOINT, kterou může třída použít ke zjištění připojovacího řetězce k Aplikace Azure Insights přidružené k projektu. Můžete předat libovolný připojovací řetězec, který potřebujete.

Pokud chcete zobrazit sledovací stopy, musíte pochopit, že zde existují dva agenti

  1. Agent Foundry, což je back-end jednoho z uzlů grafu.
  2. Celý graf LangGraph, který je složen z více uzlů.

Trasování agenta Foundry můžete zobrazit pomocí portálu Foundry, ale pokud chcete při vývoji zobrazit trasování agenta LangGraph, musíte použít Azure Monitor na portálu Azure.

Tip

Aplikace LangChain a LangGraph je možné zaregistrovat v řídicí rovině Foundry pro správu. Poté můžete využít portál Foundry k zobrazení trasování. Podívejte se na Zobrazení tras v řídicí rovině Foundry.

Zobrazení trasování pomocí Azure Monitor:

  1. Přejděte na portál Azure.

  2. Přejděte na Aplikace Azure Insights, které jste nakonfigurovali.

  3. Pomocí levého navigačního panelu vyberte Prozkoumat>Agenty (Preview).

  4. Zobrazí se řídicí panel zobrazující spuštění agentů, modelů a nástrojů. Toto zobrazení vám umožní porozumět obecnému obrázku vašich agentů.

  5. Vyberte Zobrazit trasování pomocí spuštění agenta. V bočním panelu se zobrazí všechny stopy vygenerované spuštěním agenta.

    Snímek obrazovky zobrazující sekci Agenti (Preview) v Azure Monitor, která zobrazuje více spuštění.

  6. Vyberte jednu z tras. Měli byste vidět podrobnosti.

    Snímek obrazovky zobrazující podrobnosti o trasování vybraného spuštění

  7. Všimněte si, jak se do konverzace zapojují dva agenti: agent foundryAgent a agent s názvem mcp-github-specs-agent-langgraph.

Vyčištění agentů

Odstraňte agenty, které jste vytvořili v ukázkách, abyste zabránili ponechání nepoužívaných prostředků.

Odstraňte pouze agenty, které jste vytvořili ve vaší relaci.

factory.delete_agent(math_agent)	
factory.delete_agent(document_parser_agent)
factory.delete_agent(image_agent)
factory.delete_agent(code_interpreter_agent)
factory.delete_agent(mcp_agent)
factory.delete_agent(file_search_agent)

Důležité

Po odstranění již nelze objekt LangGraph použít.

Řešení potíží

Pomocí tohoto kontrolního seznamu můžete diagnostikovat běžné problémy při používání langchain-azure-ai služby agenta.

Povolení protokolování diagnostiky

Nejprve zapněte protokoly ladění, abyste mohli zkontrolovat podrobnosti o ověřování, toku požadavků a provádění nástrojů.

import logging

logging.getLogger("langchain_azure_ai").setLevel(logging.DEBUG)

Pokud potřebujete další podrobnosti, zvyšte protokolování tak, aby zahrnovalo další knihovny:

import logging

logging.basicConfig(level=logging.DEBUG)

Ověření konfigurace v rané fázi

  • Potvrďte, že AZURE_AI_PROJECT_ENDPOINT odkazuje na správný koncový bod projektu a že používáte projekt Foundry s novým rozhraním.
  • Ověřte, že MODEL_DEPLOYMENT_NAME odpovídá existujícímu nasazeného modelu.
  • Ověřte kontext ověřování pomocí az account show.
  • Nejprve použijte minimální create_prompt_agent příklad.

Ověřte přístup k prostředkům a oprávnění

  • Ujistěte se, že váš účet má přístup k projektu Foundry a nasazení modelu.
  • Zajistěte, aby podřízené závislosti (například úložiště vektorů nebo prostředky nástrojů) existovaly a byly dosažitelné.
  • Pokud nástroj vyžaduje konkrétní typ prostředku, ověřte, že je prostředek zřízený ve správném předplatném a oblasti.