Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Zkoumání sémantického jádra
Důležité
Tato funkce je v experimentální fázi. Funkce v této fázi jsou ve vývoji a před přechodem na fázi Preview nebo release candidate se můžou změnit.
Podrobná dokumentace k rozhraní API související s touto diskuzí je k dispozici na adrese:
CopilotStudioAgent pro .NET bude brzy k dispozici.
Připravujeme aktualizované dokumenty k rozhraní API.
Funkce aktuálně není dostupná v Javě.
Co je CopilotStudioAgent?
A CopilotStudioAgent je integrační bod v rámci sémantického jádra, který umožňuje bezproblémovou interakci s agenty Microsoft Copilot Studio pomocí programových rozhraní API. Tento agent umožňuje:
- Automatizujte konverzace a volejte existující agenty Copilot Studio z kódu Pythonu.
- Udržujte bohatou konverzační historii pomocí vláken a zachovávejte kontext napříč zprávami.
- Využijte pokročilé možnosti načítání znalostí, vyhledávání na webu a integrace dat, které jsou dostupné v nástroji Microsoft Copilot Studio.
Poznámka:
Zdroje znalostí a nástroje musí být nakonfigurované v aplikaci Microsoft Copilot Studio, aby k nim bylo možné přistupovat prostřednictvím agenta.
Příprava vývojového prostředí
Abyste mohli vyvíjet pomocí CopilotStudioAgent, musíte mít správně nastavené prostředí a ověřování.
CopilotStudioAgent pro .NET bude brzy k dispozici.
Požadavky
- Python 3.10 nebo vyšší
- Sémantické jádro se závislostmi Copilot Studio:
pip install semantic-kernel[copilotstudio]
Agent Microsoft Copilot Studio:
- Vytvořte agenta v aplikaci Microsoft Copilot Studio.
- Publikujte svého agenta a pod
Settings → Advanced → Metadatazískejte:-
Schema Name(použito jakoagent_identifier) Environment ID
-
Registrace aplikace Azure Entra ID (nativní aplikace pro interaktivní přihlášení) s delegovaným oprávněním
CopilotStudio.Copilots.Invoke.
Proměnné prostředí
Nastavte ve svém prostředí nebo .env souboru následující proměnné:
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
Návod
Nápovědu k oprávněním najdete v tématu Ověřování rozhraní API služby Power Platform .
Funkce aktuálně není dostupná v Javě.
Vytvoření a konfigurace CopilotStudioAgent klienta
Pro většinu konfigurací můžete spoléhat na proměnné prostředí, ale podle potřeby můžete klienta agenta explicitně vytvořit a přizpůsobit.
CopilotStudioAgent pro .NET bude brzy k dispozici.
Základní použití – řízení proměnných prostředí
from semantic_kernel.agents import CopilotStudioAgent
agent = CopilotStudioAgent(
name="PhysicsAgent",
instructions="You help answer questions about physics.",
)
Pokud jsou nastavené proměnné prostředí, nevyžaduje se explicitní nastavení klienta.
Explicitní konstrukce klienta
Přepsat konfiguraci nebo použít vlastní identitu:
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.",
)
Funkce aktuálně není dostupná v Javě.
Interakce s aplikací CopilotStudioAgent
Základní pracovní postup je podobný ostatním agentům sémantického jádra: poskytují vstupy uživatelů, přijímají odpovědi, udržují kontext prostřednictvím vláken.
CopilotStudioAgent pro .NET bude brzy k dispozici.
Základní příklad
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())
Udržování kontextu s vlákny
Chcete-li zachovat stav konverzace:
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())
Použití argumentů a šablon výzvy
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())
Iterace přes streamování (nepodporuje se)
Poznámka:
Streamovací odpovědi nejsou v současné době podporovány CopilotStudioAgent.
Použití pluginů s nástrojem CopilotStudioAgent
Sémantické jádro umožňuje skládání agentů a pluginů. I když primární rozšiřitelnost pro Copilot Studio přichází prostřednictvím samotného Studia, můžete vytvářet moduly plug-in jako s jinými agenty.
CopilotStudioAgent pro .NET bude brzy k dispozici.
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()],
)
Funkce aktuálně není dostupná v Javě.
Pokročilé funkce
Záleží na tom, jak je cílový agent nakonfigurovaný v prostředí Studia, zda může využít vylepšené schopnosti díky Copilot Studio.
- Načítání znalostí – reaguje na základě předem nakonfigurovaných zdrojů znalostí v sadě Studio.
- Vyhledávání na webu – pokud je ve vašem agentu sady Studio povolené vyhledávání na webu, budou dotazy používat vyhledávání Bingu.
- Vlastní ověřování nebo rozhraní API – prostřednictvím modulů plug-in pro Power Platform a Studio; přímá vazba na OpenAPI není aktuálně považována za prvotřídní v integraci SK.
CopilotStudioAgent pro .NET bude brzy k dispozici.
Získávání znalostí
Není potřeba žádný konkrétní kód Pythonu; Zdroje znalostí musí být nakonfigurované v nástroji Copilot Studio. Pokud zprávy uživatelů vyžadují z těchto zdrojů fakta, agent podle potřeby vrátí informace.
Vyhledávání na webu
Nakonfigurujte svého Copilota ve Studiu, aby umožňoval vyhledávání na Bingu. Pak použijte výše uvedené. Další informace o konfiguraci vyhledávání Bingu najdete v následujícím průvodci.
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()
Funkce aktuálně není dostupná v Javě.
Návod
Praktické příklady použití kódu CopilotStudioAgentnajdete v našich ukázkách kódu na GitHubu:
CopilotStudioAgent pro .NET bude brzy k dispozici.
Funkce aktuálně není dostupná v Javě.
Poznámky:
- Další informace nebo řešení potíží najdete v dokumentaci k sadě Microsoft Copilot Studio.
- Prostřednictvím rozhraní sémantického jádra budou dostupné jenom funkce a nástroje samostatně povolené a publikované v agentu sady Studio.
- Streamování, nasazování modulů plug-in a programové přidávání nástrojů se plánuje pro budoucí verze.