Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Eksplorowanie jądra semantycznego
Ważne
Ta funkcja znajduje się na etapie eksperymentalnym. Funkcje na tym etapie są opracowywane i mogą ulec zmianie przed przejściem do etapu wersji zapoznawczej lub etapu kandydata do wydania.
Szczegółowa dokumentacja interfejsu API związana z tą dyskusją jest dostępna pod adresem:
Aplikacja CopilotStudioAgent dla platformy .NET będzie dostępna wkrótce.
Zaktualizowane dokumenty interfejsu API wkrótce się pojawią.
Funkcja jest obecnie niedostępna w języku Java.
Co to jest CopilotStudioAgent?
A CopilotStudioAgent to punkt integracji w strukturze semantycznego jądra, który umożliwia bezproblemową interakcję z agentami programu Microsoft Copilot Studio przy użyciu programowych interfejsów API. Ten agent umożliwia:
- Automatyzowanie konwersacji i wywoływanie istniejących agentów programu Copilot Studio z poziomu kodu w języku Python.
- Zachowaj bogatą historię konwersacji przy użyciu wątków, zachowując kontekst między wiadomościami.
- Korzystaj z zaawansowanych możliwości pobierania wiedzy, wyszukiwania w Internecie i integracji danych udostępnianych w programie Microsoft Copilot Studio.
Uwaga / Notatka
Przed uzyskaniem dostępu do nich za pośrednictwem agenta należy skonfigurować źródła wiedzy/narzędzia w programie Microsoft Copilot Studio.
Przygotowywanie środowiska projektowego
Aby programować za pomocą programu CopilotStudioAgent, należy prawidłowo skonfigurować środowisko i uwierzytelnianie.
Aplikacja CopilotStudioAgent dla platformy .NET będzie dostępna wkrótce.
Wymagania wstępne
- Python 3.10 lub nowszy
- Semantyczne jądro z zależnościami programu Copilot Studio:
pip install semantic-kernel[copilotstudio]
Agent programu Microsoft Copilot Studio:
- Utwórz agenta w programie Microsoft Copilot Studio.
- Opublikuj swojego agenta, aby uzyskać dostęp do
Settings → Advanced → Metadata.-
Schema Name(używane jakoagent_identifier) Environment ID
-
Rejestracja aplikacji Azure Entra ID ("Aplikacja natywna" do interaktywnego logowania) z delegowanymi uprawnieniami
CopilotStudio.Copilots.Invoke.
Zmienne środowiskowe
Ustaw następujące zmienne w środowisku lub pliku .env.
COPILOT_STUDIO_AGENT_APP_CLIENT_ID=<your-app-client-id>
COPILOT_STUDIO_AGENT_TENANT_ID=<your-tenant-id>
COPILOT_STUDIO_AGENT_ENVIRONMENT_ID=<your-env-id>
COPILOT_STUDIO_AGENT_AGENT_IDENTIFIER=<your-agent-id>
COPILOT_STUDIO_AGENT_AUTH_MODE=interactive
Wskazówka
Aby uzyskać pomoc dotyczącą uprawnień, zobacz Power Platform API Authentication (Uwierzytelnianie interfejsu API platformy Power Platform ).
Funkcja jest obecnie niedostępna w języku Java.
Tworzenie i konfigurowanie CopilotStudioAgent klienta
Możesz polegać na zmiennych środowiskowych dla większości konfiguracji, ale można jawnie utworzyć i dostosować klienta agenta zgodnie z potrzebami.
Aplikacja CopilotStudioAgent dla platformy .NET będzie dostępna wkrótce.
Podstawowe użycie — oparte na zmiennej środowiskowej
from semantic_kernel.agents import CopilotStudioAgent
agent = CopilotStudioAgent(
name="PhysicsAgent",
instructions="You help answer questions about physics.",
)
W przypadku ustawienia zmiennych środowiskowych nie jest wymagana żadna jawna konfiguracja klienta.
Jawna konstrukcja klienta
Zastąpij konfigurację lub użyj tożsamości niestandardowej:
from semantic_kernel.agents import CopilotStudioAgent
client = CopilotStudioAgent.create_client(
auth_mode="interactive", # or use CopilotStudioAgentAuthMode.INTERACTIVE
agent_identifier="<schema-name>",
app_client_id="<client-id>",
tenant_id="<tenant-id>",
environment_id="<env-id>",
)
agent = CopilotStudioAgent(
client=client,
name="CustomAgent",
instructions="You help answer custom questions.",
)
Funkcja jest obecnie niedostępna w języku Java.
Interakcja z elementem CopilotStudioAgent
Podstawowy przepływ pracy jest podobny do innych agentów jądra semantycznego: dostarcza dane wejściowe użytkownika, odbiera odpowiedzi, utrzymuje kontekst za pośrednictwem wątków.
Aplikacja CopilotStudioAgent dla platformy .NET będzie dostępna wkrótce.
Przykład podstawowy
import asyncio
from semantic_kernel.agents import CopilotStudioAgent
async def main():
agent = CopilotStudioAgent(
name="PhysicsAgent",
instructions="You help answer questions about physics.",
)
USER_INPUTS = [
"Why is the sky blue?",
"What is the speed of light?",
]
for user_input in USER_INPUTS:
print(f"# User: {user_input}")
response = await agent.get_response(messages=user_input)
print(f"# {response.name}: {response}")
asyncio.run(main())
Obsługa kontekstu za pomocą wątków
Aby utrzymać konwersację z zachowaniem kontekstu:
import asyncio
from semantic_kernel.agents import CopilotStudioAgent, CopilotStudioAgentThread
async def main():
agent = CopilotStudioAgent(
name="PhysicsAgent",
instructions="You help answer questions about physics.",
)
USER_INPUTS = [
"Hello! Who are you? My name is John Doe.",
"What is the speed of light?",
"What have we been talking about?",
"What is my name?",
]
thread: CopilotStudioAgentThread | None = None
for user_input in USER_INPUTS:
print(f"# User: {user_input}")
response = await agent.get_response(messages=user_input, thread=thread)
print(f"# {response.name}: {response}")
thread = response.thread
if thread:
await thread.delete()
asyncio.run(main())
Używanie argumentów i szablonów monitów
import asyncio
from semantic_kernel.agents import CopilotStudioAgent, CopilotStudioAgentThread
from semantic_kernel.contents import ChatMessageContent
from semantic_kernel.functions import KernelArguments
from semantic_kernel.prompt_template import PromptTemplateConfig
async def main():
agent = CopilotStudioAgent(
name="JokeAgent",
instructions="You are a joker. Tell kid-friendly jokes.",
prompt_template_config=PromptTemplateConfig(template="Craft jokes about {{$topic}}"),
)
USER_INPUTS = [
ChatMessageContent(role="user", content="Tell me a joke to make me laugh.")
]
thread: CopilotStudioAgentThread | None = None
for user_input in USER_INPUTS:
print(f"# User: {user_input}")
response = await agent.get_response(
messages=user_input,
thread=thread,
arguments=KernelArguments(topic="pirate"),
)
print(f"# {response.name}: {response}")
thread = response.thread
if thread:
await thread.delete()
asyncio.run(main())
Iterowanie za pośrednictwem przesyłania strumieniowego (nieobsługiwane)
Uwaga / Notatka
Odpowiedzi przesyłania strumieniowego nie są obecnie obsługiwane przez usługę CopilotStudioAgent.
Używanie wtyczek z CopilotStudioAgent
Semantyczne jądro umożliwia tworzenie agentów i wtyczek. Chociaż podstawowa rozszerzalność programu Copilot Studio jest oferowana za pośrednictwem samego programu Studio, można tworzyć wtyczki tak jak w przypadku innych agentów.
Aplikacja CopilotStudioAgent dla platformy .NET będzie dostępna wkrótce.
from semantic_kernel.functions import kernel_function
from semantic_kernel.agents import CopilotStudioAgent
class SamplePlugin:
@kernel_function(description="Provides sample data.")
def get_data(self) -> str:
return "Sample data from custom plugin"
agent = CopilotStudioAgent(
name="PluggedInAgent",
instructions="Demonstrate plugins.",
plugins=[SamplePlugin()],
)
Funkcja jest obecnie niedostępna w języku Java.
Funkcje zaawansowane
Element CopilotStudioAgent może korzystać z zaawansowanych możliwości ulepszonych przez program Copilot Studio, w zależności od tego, jak agent docelowy jest skonfigurowany w środowisku programu Studio:
- Pobieranie wiedzy — odpowiada na podstawie wstępnie skonfigurowanych źródeł wiedzy w programie Studio.
- Wyszukiwanie w Internecie — jeśli wyszukiwanie w Internecie jest włączone w agencie programu Studio, zapytania będą używać wyszukiwania Bing.
- Niestandardowe uwierzytelnianie lub interfejsy API — za pośrednictwem wtyczek platformy Power Platform i Studio; Bezpośrednie powiązanie z OpenAPI nie jest obecnie w pełni obsługiwane w integracji SK.
Aplikacja CopilotStudioAgent dla platformy .NET będzie dostępna wkrótce.
Wyszukiwanie wiedzy
Nie jest wymagany żaden konkretny kod w języku Python; źródła wiedzy muszą być skonfigurowane w programie Copilot Studio. Gdy komunikaty użytkownika wymagają faktów z tych źródeł, agent zwróci odpowiednie informacje.
wyszukiwanie w sieci Web
Skonfiguruj rozwiązanie Copilot w programie Studio, aby zezwolić na wyszukiwanie Bing. Następnie użyj, jak pokazano powyżej. Aby uzyskać więcej informacji na temat konfigurowania wyszukiwania Bing, zobacz następujący przewodnik.
from semantic_kernel.agents import CopilotStudioAgent, CopilotStudioAgentThread
agent = CopilotStudioAgent(
name="WebSearchAgent",
instructions="Help answer the user's questions by searching the web.",
)
USER_INPUTS = ["Which team won the 2025 NCAA Basketball championship?"]
thread: CopilotStudioAgentThread | None = None
for user_input in USER_INPUTS:
print(f"# User: {user_input}")
# Note: Only non-streamed responses are supported
response = await agent.get_response(messages=user_input, thread=thread)
print(f"# {response.name}: {response}")
thread = response.thread
if thread:
await thread.delete()
Funkcja jest obecnie niedostępna w języku Java.
Instrukcja
Aby zapoznać się z praktycznymi przykładami użycia elementu CopilotStudioAgent, zobacz nasze przykłady kodu w witrynie GitHub:
Aplikacja CopilotStudioAgent dla platformy .NET będzie dostępna wkrótce.
Funkcja jest obecnie niedostępna w języku Java.
Uwagi:
- Aby uzyskać więcej informacji lub rozwiązać problemy, zobacz dokumentację programu Microsoft Copilot Studio.
- Tylko funkcje i narzędzia oddzielnie włączone i opublikowane w agencie programu Studio będą dostępne za pośrednictwem interfejsu Semantycznego Jądra.
- W przyszłych wersjach planowane jest przesyłanie strumieniowe, wdrażanie wtyczek i dodawanie narzędzi programistycznych.