Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zamiast tworzyć jednego agenta, który wykonuje wszystko, orkiestrator wielu agentów kieruje żądania do wyspecjalizowanych podagentów z jednego punktu wejścia.
Można na przykład połączyć agenta RAG, który wysyła zapytania do dokumentów bez struktury za pomocą agenta Genie, który wysyła zapytania o dane ustrukturyzowane, dzięki czemu użytkownicy uzyskują odpowiedzi z wielu źródeł.
** Orkiestrator traktuje każdego subagenta jako narzędzie i używa jego instrukcji do kierowania żądań do właściwego. Orkiestrator obsługuje następujące typy subagentów:
- Agenci aplikacji Databricks: inni agenci wdrożeni jako aplikacje Databricks, wywoływani za pośrednictwem Responses API.
- Genie Spaces: Wykonywanie zapytań dotyczących danych języka naturalnego za pośrednictwem wbudowanego serwera MCP Azure Databricks.
- Obsługa punktów końcowych: Asystenci wiedzy, agenci lub modele w usłudze Model Serving, które obsługują interfejs API odpowiedzi.
Wymagania
- CLI Databricks został zainstalowany i uwierzytelniony. Połączenia między aplikacjami wymagają uwierzytelniania OAuth. Zobacz Instalowanie lub aktualizowanie interfejsu wiersza poleceń Databricks.
- Środowisko Python w wersji 3.11 lub nowszej.
-
uvMenedżer pakietów. Zobacz instalację UV. - Aplikacje Databricks są włączone w obszarze roboczym. Zobacz Konfigurowanie obszaru roboczego usługi Databricks Apps i środowiska programistycznego.
- Co najmniej jeden podagent do organizowania: Genie Space, inna aplikacja usługi Databricks, asystent wiedzy lub punkt końcowy obsługujący.
Najpierw wypróbuj Agent Supervisor.
Przed utworzeniem niestandardowego orkiestratora rozważ utworzenie skoordynowanego systemu wielo agenta za pomocą agenta nadzorcy. Kompiluje system z wieloma agentami i zarządza nim za pośrednictwem interfejsu użytkownika. Możesz połączyć Genie Spaces, punkty końcowe agentów, funkcje Unity Catalog, serwery MCP i agentów niestandardowych, a następnie z czasem poprawić jakość koordynacji, korzystając z opinii ekspertów merytorycznych wyrażonych w języku naturalnym.
Zbuduj system wieloagentowy w aplikacjach Databricks, jeśli potrzebujesz niestandardowej logiki routingu lub zachowania orkiestracji, których nie obsługuje Superwizor Agenta.
Klonowanie szablonu orkiestratora z wieloma agentami
Szablon orkiestratora z wieloma agentami udostępnia szkielet dla struktury projektu i logiki aranżacji przy użyciu zestawu SDK agentów OpenAI. Zawiera również pliki związane z umiejętnościami, które uczą asystentów programowania AI, jak projektować i rozwijać orkiestrator.
Sklonuj szablon i przejdź do folderu:
git clone https://github.com/databricks/app-templates.git
cd app-templates/agent-openai-agents-sdk-multiagent
Konfigurowanie podagentów
Każde zaplecze, które może wywołać orkiestrator, jest definiowane jako subagent na SUBAGENTS liście agent_server/agent.py.
Usuń komentarz i skonfiguruj potrzebne wpisy. Zaktualizuj opis, aby bardziej szczegółowo przedstawić subagenta. Jakość opisu jest bezpośrednio związana z tym, jak skutecznie orkiestrator może kierować żądania do właściwego podagentu.
SUBAGENTS = [
{
"name": "genie",
"type": "genie",
"space_id": "<YOUR-GENIE-SPACE-ID>",
"description": (
"Query a Genie Space for structured data analysis. "
"Use this for questions about data, metrics, and tables."
),
},
{
"name": "app_agent",
"type": "app",
"endpoint": "<YOUR-APP-AGENT-NAME>",
"description": (
"Query a specialist agent deployed as a Databricks App. "
"Use this for questions the specialist app agent handles."
),
},
{
"name": "knowledge_assistant",
"type": "serving_endpoint",
"endpoint": "<YOUR-ENDPOINT>",
"description": (
"Query the knowledge-assistant endpoint on Model Serving. "
"Use this for knowledge-base and documentation lookups. "
"The endpoint must have task type agent/v1/responses."
),
},
]
Każdy wpis automatycznie staje się narzędziem, które może wywołać orkiestrator. Należy włączyć co najmniej jeden subagent.
W poniższej tabeli opisano każdy rodzaj podagenta:
| Typ | Jak się łączy | Wymagania |
|---|---|---|
app |
Interfejs API odpowiedzi za pośrednictwem apps/<name> |
Uwierzytelnianie OAuth, CAN_USE uprawnienie dla aplikacji docelowej |
genie |
Wbudowany serwer MCP usługi Azure Databricks | Genie Space ID, CAN_RUN uprawnienia |
serving_endpoint |
API Odpowiedzi przez nazwę punktu końcowego | Punkt końcowy musi mieć typ zadania Agent (odpowiedzi) w interfejsie obsługi. Obejmuje asystentów wiedzy, agentów i modeli. |
Dostosowywanie orkiestratora
Agent orkiestratora jest tworzony w funkcji create_orchestrator_agent(). Zaktualizuj instrukcje, aby opisać określone narzędzia i kiedy należy używać każdego z nich:
Agent(
name="Orchestrator",
instructions=(
"You are an orchestrator agent. Route the user's request to the "
"most appropriate tool or data source:\n"
"- Use the Genie MCP tools for questions about structured data in <dataset_name> that contains information about <topic>\n"
"- Use query_app_agent for questions or tasks that the specialist app agent handles for ...\n"
"- Use query_knowledge_assistant for knowledge-base lookups about <topic>.\n"
"If unsure, ask the user for clarification."
),
model="databricks-claude-sonnet-4-5",
mcp_servers=[mcp_server] if mcp_server else [],
tools=subagent_tools,
)
Wskazówka
Bardziej szczegółowe instrukcje orkiestratora, tym dokładniej kieruje żądania. Opisz przeznaczenie każdego narzędzia i typy pytań, które obsługuje.
Konfigurowanie zasobów i uprawnień
Określ zasoby wymagane przez orkiestratora w pliku databricks.yml. Każdy typ podrzędny wymaga własnego wpisu zasobu:
resources:
- name: 'genie_space'
genie_space:
name: 'Genie Space'
space_id: '<YOUR-GENIE-SPACE-ID>'
permission: 'CAN_RUN'
- name: 'serving_endpoint'
serving_endpoint:
name: '<YOUR-ENDPOINT>'
permission: 'CAN_QUERY'
Zaktualizuj wartości symboli zastępczych w pliku databricks.yml , aby odpowiadały podagentom skonfigurowanym w programie agent_server/agent.py.
Udzielanie orkiestratorowi dostępu do docelowej aplikacji usługi Databricks
Jeśli orkiestrator wywołuje aplikację usługi Databricks podrzędnej, musisz ręcznie przyznać jednostce usługi CAN_USE orkiestratora uprawnienie do aplikacji docelowej. Nie można zadeklarować tego uprawnienia jako zasobu pakietu i należy je zastosować po wdrożeniu.
Uwaga / Notatka
Pole service_principal_name w żądaniu uprawnień musi być identyfikatorem klienta jednostki usługi (UUID), a nie nazwą wyświetlaną. Użycie nazwy wyświetlanej w trybie dyskretnym kończy się powodzeniem, ale nie przyznaje uprawnień. Polecenie databricks apps get zwraca tę wartość jako service_principal_client_id.
Znajdź identyfikator klienta jednostki usługi aplikacji orkiestratora:
databricks apps get <YOUR-ORCHESTRATOR-APP-NAME> --output json | jq -r '.service_principal_client_id'Nadaj zasadniczemu kontu usługi aplikacji orkiestratora
CAN_USEuprawnienia do aplikacji docelowej.databricks apps update-permissions <TARGET-APP-NAME> \ --json '{"access_control_list": [{"service_principal_name": "<SP-CLIENT-ID>", "permission_level": "CAN_USE"}]}'
Testowanie lokalne
Skonfiguruj środowisko lokalne i uruchom agenta:
uv run quickstart
uv run start-app
Skrypt quickstart konfiguruje uwierzytelnianie usługi Azure Databricks i tworzy eksperyment MLflow na potrzeby śledzenia. Po zakończeniu instalacji start-app uruchomi serwer agenta i interfejs użytkownika czatu pod adresem http://localhost:8000.
Wdrażanie w usłudze Databricks Apps
Wdróż orkiestrator przy użyciu pakietów deklaratywnej automatyzacji:
Zweryfikuj konfigurację pakietu:
databricks bundle validateWdróż pakiet w obszarze roboczym:
databricks bundle deployUruchom aplikację:
databricks bundle run agent_openai_agents_sdk_multiagent
Ważna
bundle deploy przekazuje pliki, ale nie uruchamia aplikacji. Uruchom polecenie bundle run , aby uruchomić aplikację.
Następne kroki
Po wdrożeniu orkiestratora zapoznaj się z następującymi zasobami: