A Szemantikus Kernel CopilotStudioAgent felfedezése

Fontos

Ez a funkció a kísérleti fázisban van. Az ebben a szakaszban található funkciók fejlesztés alatt állnak, és változhatnak, mielőtt továbblépnek az előzetes verzióra vagy a kiadásra jelölt fázisra.

A jelen vitafórumhoz kapcsolódó részletes API-dokumentáció a következő címen érhető el:

A .NET-hez készült CopilotStudioAgent hamarosan megjelenik.

Hamarosan frissülnek az API-dokumentumok.

A funkció jelenleg nem érhető el a Javában.

Mi az a CopilotStudioAgent?

Az A CopilotStudioAgent egy integrációs pont a Szemantikus Kernel keretrendszeren belül, amely lehetővé teszi a Microsoft Copilot Studio-ügynökökkel való zökkenőmentes interakciót programozott API-k használatával. Ez az ügynök a következőt teszi lehetővé:

  • Beszélgetések automatizálása és meglévő Copilot Studio-ügynökök meghívása Python-kódból.
  • A beszélgetések részletes előzményeit szálak használatával tarthatja karban, így megőrizve a kontextust az üzenetek között.
  • A Microsoft Copilot Studióban elérhető fejlett tudáslekérési, webes keresési és adatintegrációs képességek kihasználása.

Megjegyzés:

A tudásforrásokat/eszközöket konfigurálni kell a Microsoft Copilot Studióban, mielőtt az ügynökön keresztül hozzáférhetnének.

A fejlesztési környezet előkészítése

A fejlesztéshez megfelelően be kell állítania a CopilotStudioAgent környezetet és a hitelesítést.

A .NET-hez készült CopilotStudioAgent hamarosan megjelenik.

Előfeltételek

  1. Python 3.10 vagy újabb
  2. Szemantikus kernel a Copilot Studio függőségeivel:
pip install semantic-kernel[copilotstudio]
  1. Microsoft Copilot Studio-ügynök :

    • Hozzon létre egy ügynököt a Microsoft Copilot Studióban.
    • Tegye közzé az ügynökét, majd szerezze be a következőt: Settings → Advanced → Metadata
      • Schema Name (használva agent_identifier)
      • Environment ID
  2. Azure Entra ID-alkalmazásregisztráció ("natív alkalmazás", interaktív bejelentkezéshez), CopilotStudio.Copilots.Invoke delegált engedéllyel.

Környezeti változók

Állítsa be a következő változókat a környezetben vagy .env a fájlban:

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

Jótanács

Az engedélyekkel kapcsolatos segítségért tekintse meg a Power Platform API-hitelesítést .

A funkció jelenleg nem érhető el a Javában.

Ügyfél létrehozása és konfigurálása CopilotStudioAgent

A legtöbb konfiguráció környezeti változóira támaszkodhat, de szükség szerint explicit módon létrehozhatja és testre szabhatja az ügynökügyfélt.

A .NET-hez készült CopilotStudioAgent hamarosan megjelenik.

Alapszintű használat – Környezeti változók által vezérelt

from semantic_kernel.agents import CopilotStudioAgent

agent = CopilotStudioAgent(
    name="PhysicsAgent",
    instructions="You help answer questions about physics.",
)

Nincs szükség explicit ügyfélbeállításra, ha a környezeti változók be vannak állítva.

Kifejezett ügyfélkialakítás

Konfiguráció felülbírálása vagy egyéni identitás használata:

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.",
)

A funkció jelenleg nem érhető el a Javában.

Interakció egy CopilotStudioAgent

Az alapvető munkafolyamat hasonló a többi Szemantikus Kernel-ügynökhöz: felhasználói bemenet(ek) biztosítása, válaszok fogadása, környezet fenntartása szálakon keresztül.

A .NET-hez készült CopilotStudioAgent hamarosan megjelenik.

Egyszerű példa

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())

Kontextus fenntartása szálakkal

A beszélgetés folytonosságának fenntartása:

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())

Argumentumok és parancssori sablonok használata

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())

Iterálás streamelésen keresztül (nem támogatott)

Megjegyzés:

A streamelési válaszokat jelenleg nem támogatja a CopilotStudioAgentrendszer.

A beépülő modulok használata CopilotStudioAgent

A Szemantic Kernel lehetővé teszi az ügynökök és beépülő modulok összetételét. Bár a Copilot Studio elsődleges bővíthetősége magában a Studióban érhető el, ugyanúgy írhat beépülő modulokat, mint más ügynökök esetében.

A .NET-hez készült CopilotStudioAgent hamarosan megjelenik.

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()],
)

A funkció jelenleg nem érhető el a Javában.

Speciális funkciók

CopilotStudioAgent kihasználhatja a Copilot Studio fejlett képességeit, attól függően, hogyan van a célügynök konfigurálva a Studio-környezetben.

  • Tudáslekérés – a Studióban előre konfigurált tudásbázisok alapján válaszol.
  • Webes keresés – ha a Studio-ügynökben engedélyezve van a webes keresés, a lekérdezések a Bing Search szolgáltatást fogják használni.
  • Egyéni hitelesítés vagy API-k – Power Platform és Studio beépülő modulokon keresztül; A közvetlen OpenAPI-kötés jelenleg nem első osztályú az SK-integrációban.

A .NET-hez készült CopilotStudioAgent hamarosan megjelenik.

Tudás visszakeresése

Nincs szükség konkrét Python-kódra; a tudásforrásokat a Copilot Studióban kell konfigurálni. Ha a felhasználói üzenetekhez tényekre van szükség ezekből a forrásokból, az ügynök a megfelelő módon adja vissza az adatokat.

Konfigurálja a Copilotot a Studióban a Bing Search engedélyezéséhez. Ezután használja a fenti módon. A Bing Search konfigurálásával kapcsolatos további információkért tekintse meg az alábbi útmutatót.

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()

A funkció jelenleg nem érhető el a Javában.

Útmutató

Gyakorlati példákért a CopilotStudioAgent használatára, tekintse meg a GitHubon található kódmintáinkat:

A .NET-hez készült CopilotStudioAgent hamarosan megjelenik.

A funkció jelenleg nem érhető el a Javában.


Megjegyzések:

  • További információkért vagy hibaelhárításért tekintse meg a Microsoft Copilot Studio dokumentációját.
  • Csak a Studio-ügynökben külön engedélyezett és közzétett funkciók és eszközök lesznek elérhetők a Szemantic Kernel felületén keresztül.
  • A streamelést, a beépülő modul üzembe helyezését és a programozott eszközök hozzáadását a jövőbeli kiadásokra terveztük.

Következő lépések