Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Erforschung des semantischen Kerns
Von Bedeutung
Dieses Feature befindet sich in der experimentellen Phase. Features in dieser Phase befinden sich in der Entwicklung und können sich ändern, bevor Sie zur Vorschau- oder Veröffentlichungskandidatenstufe wechseln.
Detaillierte API-Dokumentation zu dieser Diskussion finden Sie unter:
Der CopilotStudioAgent für .NET wird in Kürze verfügbar sein.
Aktualisierte API-Dokumente werden in Kürze verfügbar sein.
Das Feature ist derzeit in Java nicht verfügbar.
Was ist ein CopilotStudioAgent
?
A CopilotStudioAgent
ist ein Integrationspunkt innerhalb des semantischen Kernel-Frameworks, der eine nahtlose Interaktion mit Microsoft Copilot Studio-Agents mithilfe von programmgesteuerten APIs ermöglicht. Dieser Agent ermöglicht Folgendes:
- Automatisieren Sie Unterhaltungen, und rufen Sie vorhandene Copilot Studio-Agents aus Python-Code auf.
- Den umfassenden Unterhaltungsverlauf mithilfe von Threads aufrechterhalten und den Kontext über Nachrichten hinweg bewahren.
- Nutzen Sie erweiterte Wissensabruf-, Websuche- und Datenintegrationsfunktionen, die in Microsoft Copilot Studio zur Verfügung gestellt werden.
Hinweis
Wissensquellen/Tools müssen in Microsoft Copilot Studio konfiguriert werden, bevor über den Agent darauf zugegriffen werden kann.
So bereiten Sie Ihre Entwicklungsumgebung vor
Für die Entwicklung mit dem CopilotStudioAgent
müssen Sie Ihre Umgebung und Authentifizierung richtig konfiguriert haben.
Der CopilotStudioAgent für .NET wird in Kürze verfügbar sein.
Voraussetzungen
Python 3.10 oder höher
Semantischer Kernel mit Copilot Studio-Abhängigkeiten:
- Bis Abhängigkeiten allgemein auf PyPI verfügbar sind:
pip install semantic-kernel pip install --extra-index-url https://test.pypi.org/simple microsoft-agents-core microsoft-agents-copilotstudio-client
- Bis Abhängigkeiten allgemein auf PyPI verfügbar sind:
Microsoft Copilot Studio-Agent :
- Erstellen Sie einen Agent bei Microsoft Copilot Studio.
- Veröffentlichen Sie Ihren Agenten, und erhalten Sie unter
Settings → Advanced → Metadata
Folgendes:-
Schema Name
(verwendet alsagent_identifier
) Environment ID
-
Azure Entra ID-Anwendungsregistrierung ("Native App", für interaktive Anmeldung) mit
CopilotStudio.Copilots.Invoke
delegierter Berechtigung.
Umgebungsvariablen
Legen Sie die folgenden Variablen in Ihrer Umgebung oder .env
Datei fest:
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
Tipp
Hilfe zu Berechtigungen finden Sie unter Power Platform-API-Authentifizierung .
Das Feature ist derzeit in Java nicht verfügbar.
Erstellen und Konfigurieren eines CopilotStudioAgent
Clients
Sie können sich für die meisten Konfigurationen auf Umgebungsvariablen verlassen, aber den Agentclient bei Bedarf explizit erstellen und anpassen.
Der CopilotStudioAgent für .NET wird in Kürze verfügbar sein.
Grundlegende Verwendung – Gesteuert durch Umgebungsvariablen
from semantic_kernel.agents import CopilotStudioAgent
agent = CopilotStudioAgent(
name="PhysicsAgent",
instructions="You help answer questions about physics.",
)
Wenn Die Umgebungsvariablen festgelegt sind, ist kein explizites Clientsetup erforderlich.
Explizite Konstruktion von Clients
Außerkraftsetzen der Konfiguration oder Verwenden einer benutzerdefinierten Identität:
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.",
)
Das Feature ist derzeit in Java nicht verfügbar.
Interagieren mit einem CopilotStudioAgent
Der Kernworkflow ähnelt anderen semantischen Kernel-Agents: Bereitstellen von Benutzereingaben, Empfangen von Antworten, Verwalten des Kontexts über Threads.
Der CopilotStudioAgent für .NET wird in Kürze verfügbar sein.
Einfaches Beispiel
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())
Aufrechterhalten des Kontexts mit Threads
Um den Gesprächszustand beizubehalten:
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())
Verwenden von Argumenten und Eingabeaufforderungsvorlagen
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())
Iterieren über Streaming (nicht unterstützt)
Hinweis
Streamingantworten werden derzeit von CopilotStudioAgent
nicht unterstützt.
Verwenden von Plug-Ins mit einem CopilotStudioAgent
Der semantische Kernel ermöglicht die Zusammensetzung von Agents und Plug-Ins. Obwohl die primäre Erweiterbarkeit für Copilot Studio über das Studio selbst kommt, können Sie Plug-Ins wie bei anderen Agents verfassen.
Der CopilotStudioAgent für .NET wird in Kürze verfügbar sein.
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()],
)
Das Feature ist derzeit in Java nicht verfügbar.
Erweiterte Funktionen
Ein CopilotStudioAgent
kann erweiterte Fähigkeiten durch Copilot Studio nutzen, je nachdem, wie der Ziel-Agent in der Studio-Umgebung konfiguriert ist.
- Wissensabruf – antwortet basierend auf vorkonfigurierten Wissensquellen im Studio.
- Websuche – wenn die Websuche in Ihrem Studio-Agent aktiviert ist, verwenden Abfragen Bing Search.
- Benutzerdefinierte Authentifizierung oder APIs – über Power Platform- und Studio-Plug-Ins; Direkte OpenAPI-Bindung ist derzeit nicht erstklassig in der SK-Integration.
Der CopilotStudioAgent für .NET wird in Kürze verfügbar sein.
Abrufen von Wissen
Es ist kein spezifischer Python-Code erforderlich; Wissensquellen müssen in Copilot Studio konfiguriert werden. Wenn Benutzernachrichten Fakten aus diesen Quellen erfordern, gibt der Agent nach Bedarf Informationen zurück.
Websuche
Konfigurieren Sie Ihren Copilot in Studio, um Bing Search zuzulassen. Verwenden Sie dann wie oben beschrieben. Weitere Informationen zum Konfigurieren von Bing Search finden Sie in der folgenden Anleitung.
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()
Das Feature ist derzeit in Java nicht verfügbar.
Vorgehensweise
Praktische Beispiele für die Verwendung eines CopilotStudioAgent
Codes finden Sie in unseren Codebeispielen auf GitHub:
Der CopilotStudioAgent für .NET wird in Kürze verfügbar sein.
Das Feature ist derzeit in Java nicht verfügbar.
Hinweise:
- Weitere Informationen oder Problembehandlung finden Sie in der Dokumentation zu Microsoft Copilot Studio.
- Nur Features und Tools, die separat aktiviert und in Ihrem Studio-Agent veröffentlicht wurden, sind über die Semantik-Kernel-Schnittstelle verfügbar.
- Streaming, Plug-In-Bereitstellung und programmgesteuertes Hinzufügen von Tools sind für zukünftige Versionen geplant.