Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Important
Den här funktionen finns i Beta. Kontoadministratörer kan styra åtkomsten till den här funktionen från sidan Förhandsversioner . Se Hantera förhandsversioner av Azure Databricks.
Api:et för övervakare förenklar byggandet av anpassade agenter på Azure Databricks med stöd för bakgrundsläge för långvariga uppgifter. Du definierar modellen, verktygen och instruktionerna i en begäran till en OpenResponses-kompatibel slutpunkt (POST /mlflow/v1/responses) och Azure Databricks kör agentloopen åt dig: anropar modellen upprepade gånger, väljer och kör verktyg och syntetiserar ett slutligt svar.
Det finns tre metoder för att skapa en anpassad verktygsanropsagent på Azure Databricks:
- Agent Bricks Supervisor Agent (rekommenderas): Helt deklarativ med mänsklig feedbackoptimering för bästa kvalitet.
- Api för övervakare: Skapa en anpassad agent programmatiskt – välj modeller vid körning, kontrollera vilka verktyg som ska användas per begäran eller iterera under utvecklingen. Också rätt val när du behöver kontroll över modellval vid avlastning av agentloophantering till Azure Databricks.
-
AI Gateway-enhetliga eller inbyggda API:er: Skriv en egen agentloop. Azure Databricks tillhandahåller endast LLM-slutsatsdragningsskiktet. Använd enhetliga API:er där det är möjligt för att aktivera växlingsmodeller eller providerspecifika interna API:er (
/openai,/anthropic,/gemini) när du porterar befintlig kod till Azure Databricks eller använder providerspecifika funktioner.
Requirements
-
Unity AI Gateway för agenter och LLM:er har aktiverats för ditt konto. Se Hantera förhandsversioner av Azure Databricks.
- Eftersom API:et för övervakare körs via Unity AI Gateway gäller AI Gateway-funktioner som slutsatsdragningstabeller, hastighetsbegränsningar och återställningar. Användningsspårning stöds inte i den här betaversionen.
-
Lagra OpenTelemetry-spårningar i Unity Catalog aktiverat för ditt konto. Se Hantera förhandsversioner av Azure Databricks.
- Lagrar spår från supervisor-API-agent-slinga i Unity Catalog-tabeller.
- En Azure Databricks arbetsyta i en stödd region.
- Unity Catalog har aktiverats för din arbetsyta. Se Aktivera en arbetsyta för Unity Catalog.
- De verktyg som du skickar (Genie Spaces, Unity Catalog-funktioner, MCP-servrar, kunskapsassistenter, appar) måste redan vara konfigurerade och tillgängliga.
- Paketet
databricks-openaihar installerats:pip install databricks-openai
Steg 1: Skapa ett LLM-anrop med en enda tur
Börja med ett grundläggande anrop utan verktyg. Klienten DatabricksOpenAI konfigurerar automatiskt bas-URL:en och autentiseringen för din arbetsyta:
from databricks_openai import DatabricksOpenAI
client = DatabricksOpenAI(use_ai_gateway=True)
response = client.responses.create(
model="databricks-claude-sonnet-4-5",
input=[{"type": "message", "role": "user", "content": "Tell me about Databricks"}],
stream=False
)
print(response.output_text)
Steg 2: Lägg till värdbaserade verktyg för att köra agentloopen
När du lägger till verktyg i begäran hanterar Azure Databricks en loop med flera svängar åt dig: modellen bestämmer vilka verktyg som ska anropas, Azure Databricks kör dem, matar tillbaka resultaten till modellen och upprepas tills modellen genererar ett slutligt svar.
response = client.responses.create(
model="databricks-claude-sonnet-4-5",
input=[{"type": "message", "role": "user", "content": "Summarize recent customer reviews and flag any urgent issues."}],
tools=[
{
"type": "genie_space",
"genie_space": {
"id": "<genie-space-id>",
"description": "Answers customer review questions using SQL"
}
},
{
"type": "uc_function",
"uc_function": {
"name": "<catalog>.<schema>.<function_name>",
"description": "Flags a review as requiring urgent attention"
}
},
{
"type": "knowledge_assistant",
"knowledge_assistant": {
"knowledge_assistant_id": "<knowledge-assistant-id>",
"description": "Answers questions from internal documentation"
}
},
{
"type": "app",
"app": {
"name": "<app-name>",
"description": "Custom application endpoint"
}
},
{
"type": "uc_connection",
"uc_connection": {
"name": "<uc-connection-name>",
"description": "Searches the web for current information"
}
},
],
stream=True
)
for event in response:
print(event)
Steg 3 (valfritt): Anslut till tjänster från tredje part med systemhanterade anslutningar
Azure Databricks tillhandahåller systemhanterade anslutningar för populära tredjepartstjänster som Google Drive, GitHub, Atlassian och SharePoint. Dessa anslutningar är ett snabbt alternativ till att konfigurera en egen extern MCP-server – du kan fortfarande använda verktygstypen uc_connection för att ansluta till valfri extern MCP-server som du har konfigurerat själv.
Systemhanterade anslutningar kräver att tredjepartsanslutningarna för Agents Beta är aktiverade på din arbetsyta. Se Hantera förhandsversioner av Azure Databricks.
Följande kontakter stöds:
| Connector | Description |
|---|---|
system_ai_agent_google_drive |
Sök efter och läsa filer från Google Drive. |
system_ai_agent_github_mcp |
Få åtkomst till GitHub-arkiv, ärenden och pull-begäranden. |
system_ai_agent_atlassian_mcp |
Sök efter och hantera Atlassian-resurser (Jira, Confluence). |
system_ai_agent_sharepoint |
Sök efter och läsa filer från SharePoint. |
Skicka en anslutning i matrisen tools med hjälp av verktygstypen uc_connection med fältet name inställt på anslutningens namn:
response = client.responses.create(
model="databricks-claude-sonnet-4-5",
input=[{"type": "message", "role": "user", "content": "List my open GitHub pull requests."}],
tools=[
{
"type": "uc_connection",
"uc_connection": {
"name": "system_ai_agent_github_mcp"
}
}
],
)
Användare-till-maskin (U2M) autentisering
Varje användare autentiserar individuellt. OAuth-token delas inte mellan användare. På den första begäran som använder en anslutning och som användaren inte har autentiserat, slutförs svaret med status: "failed" och ett oauth-fel som innehåller en URL för inloggning:
{
"status": "failed",
"error": {
"code": "oauth",
"message": "Failed request to <connector>. Please login first at <login-url>."
}
}
Öppna URL:en i en webbläsare, slutför OAuth-flödet och kör sedan samma begäran igen.
Steg 4: Aktivera spårning
Skicka en trace_destination i begärandetexten för att skicka spårningar från agentloopen till Unity Catalog-tabeller. Varje begäran genererar en spårning som samlar in hela sekvensen av modellanrop och verktygskörningar. Om du inte anger trace_destinationskrivs inga spårningar. Information om konfiguration finns i Lagra OpenTelemetry-spårningar i Unity Catalog.
Använd klienten databricks-openai Python och skicka den via extra_body:
response = client.responses.create(
model="databricks-claude-sonnet-4-5",
input=[{"type": "message", "role": "user", "content": "Tell me about Databricks"}],
tools=[...],
extra_body={
"trace_destination": {
"catalog_name": "<catalog>",
"schema_name": "<schema>",
"table_prefix": "<table-prefix>"
}
}
)
Om du också vill returnera spårningen direkt i API-svaret skickar du "databricks_options": {"return_trace": True} in extra_body.
Du kan också använda distribuerad MLflow-spårning för att kombinera spårningar från din programkod och api-agentloopen Supervisor till en enda spårning från slutpunkt till slutpunkt. Sprid spårningskontextrubriker med hjälp av fältet extra_headers :
import mlflow
from mlflow.tracing import get_tracing_context_headers_for_http_request
with mlflow.start_span("client-root") as root_span:
root_span.set_inputs({"input": "Tell me about Databricks"})
trace_headers = get_tracing_context_headers_for_http_request()
response = client.responses.create(
model="databricks-claude-sonnet-4-5",
input=[{"type": "message", "role": "user", "content": "Tell me about Databricks"}],
tools=[...],
extra_body={
"trace_destination": {
"catalog_name": "<catalog>",
"schema_name": "<schema>",
"table_prefix": "<table-prefix>"
}
},
extra_headers=trace_headers,
)
Bakgrundsläge
Med bakgrundsläget kan du köra långvariga agentarbetsflöden som omfattar flera verktygsanrop och komplexa resonemang utan att vänta på att de ska slutföras synkront. Skicka din begäran med background=True, ta emot ett svars-ID omedelbart och sök efter resultatet när det är klart. Detta är särskilt användbart för agenter som frågar efter flera datakällor eller kedjar ihop flera verktyg i en enda begäran.
Skapa en bakgrundsbegäran
response = client.responses.create(
model="databricks-claude-sonnet-4-5",
input=[{"type": "message", "role": "user", "content": "Tell me about Databricks"}],
tools=[...],
background=True,
)
print(response.id) # Use this ID to poll for the result
print(response.status) # "queued" or "in_progress"
Sök efter resultatet
Använd responses.retrieve() för att kontrollera statusen tills den når ett terminaltillstånd:
from time import sleep
while response.status in {"queued", "in_progress"}:
sleep(2)
response = client.responses.retrieve(response.id)
print(response.output_text)
Bakgrundsläge med MCP
För säkerhet kräver övervakar-API:et uttryckligt användargodkännande innan mcp-verktygsanrop körs i bakgrundsläge. När agentloopen väljer ett MCP-verktyg slutförs svaret med en mcp_approval_request. Du kan granska verktygsnamnet, serveretiketten och argumenten som modellen tänker skicka:
{
"type": "mcp_approval_request",
"id": "<tool-call-id>",
"arguments": "{\"query\": \"what is Databricks\", \"count\": 5}",
"name": "you-search",
"server_label": "<server-label>",
"status": "completed"
}
Om du vill godkänna verktygsanropet och fortsätta agentloopen skickar du en mcp_approval_response tillbaka i input fältet med den fullständiga konversationshistoriken:
{
"type": "mcp_approval_response",
"id": "<tool-call-id>",
"approval_request_id": "<tool-call-id>",
"approve": true
}
Anmärkning
Svar i bakgrundsläge behålls i databasen i högst 30 dagar.
Verktyg som stöds
Du definierar verktyg i tools matrisen för din begäran. Varje post anger ett type och ett konfigurationsobjekt med samma nyckel. Ett Genie Space-verktyg har "type": "genie_space" och ett "genie_space": {...}-objekt. API:et stöder följande verktygstyper:
| Verktygstyp | Description | Omfång |
|---|---|---|
genie_space |
Frågar ett Genie Space för att besvara frågor om dina data. Parametrar: id, description. |
genie |
uc_function |
Anropar en Unity Catalog-funktion som ett agentverktyg. Parametrar: name, description. |
unity-catalog |
uc_connection |
Ansluter till en extern MCP-server via en Unity Catalog-anslutning. Parametrar: name, description. För Azure Databricks-hanterade systemanslutningar anger du name till en system_ai_agent_*-anslutning (se Steg 3 (valfritt): Anslut till tjänster från tredje part med systemhanterade anslutningar). Obs! Anpassade MCP-servrar i appar stöds ännu inte. |
unity-catalog |
app |
Anropar en Azure Databricks appslutpunkt. Parametrar: name, description. |
apps |
knowledge_assistant |
Anropar en endpunkt för Kunskapsassistenten. Parametrar: knowledge_assistant_id, description. |
model-serving |
Parametrar som stöds
Varje begäran till övervakar-API:et godkänner följande parametrar.
-
model: en av följande modeller som stöds. Ändra det här fältet om du vill byta leverantör utan att ändra resten av koden.-
Claude-Haiku-4.5 (
databricks-claude-haiku-4-5) -
Claude-Opus-4.1 (
databricks-claude-opus-4-1) -
Claude-Opus-4.5 (
databricks-claude-opus-4-5) -
Claude-Opus-4.6 (
databricks-claude-opus-4-6) -
Claude-Sonnet-4 (
databricks-claude-sonnet-4) -
Claude-Sonnet-4.5 (
databricks-claude-sonnet-4-5) -
Claude-Sonnet-4.6 (
databricks-claude-sonnet-4-6)
-
Claude-Haiku-4.5 (
-
input: konversationsmeddelanden som ska skickas. -
tools: värdbaserade verktygsdefinitioner (genie_space,uc_function,knowledge_assistant,app,uc_connection). -
instructions: en systemfråga som vägleder övervakarens beteende. -
stream: ställd tilltrueför att strömma svar. -
background: ställ in tilltrueför att köra begäran asynkront. Returnerar ett svars-ID som du avsöker medresponses.retrieve(). Se Bakgrundsläge. -
trace_destination: valfritt objekt medcatalog_namefälten ,schema_nameoch .table_prefixNär det är inställt skriver övervakar-API:et en spårning av den fullständiga agentloopen till de angivna Unity Catalog-tabellerna. Skicka viaextra_bodyi Python-klienten.
API:et stöder inte slutsatsdragningsparametrar som temperature. Servern hanterar dessa internt.
Limitations
Api:et för övervakare har följande begränsningar:
- Körning av bakgrundsläge: Begäranden i bakgrundsläge har en maximal körningstid på 30 minuter.
-
Funktionsanrop på klientsidan: Endast värdbaserade verktyg stöds. Du kan inte skicka
functionverktygsdefinitioner för klienten att köra och du kan inte blanda värdbaserade verktyg med verktyg på klientsidanfunctioni samma begäran. -
Direktuppspelning i bakgrundsläge:
streamochbackgroundkan inte båda varatruei samma begäran. - Varaktig körning: Automatisk återställning från fel eller avbrott, med garantier för exakt en gångs körningar för agentloopen, stöds inte.
- Azure Databricks Apps OBO stöds inte: Auktorisering på användarens vägnar stöds inte för Supervisor-API:et. Använd systemauktorisering och bevilja behörigheter för dina verktyg om du vill använda api:et För övervakare i Azure Databricks Appar.