Aracılığıyla paylaş


Anlam Çekirdeği Keşfi CopilotStudioAgent

Önemli

Bu özellik deneysel aşamadadır. Bu aşamadaki özellikler geliştirme aşamasındadır ve önizleme veya sürüm adayı aşamasına geçmeden önce değiştirilebilir.

Bu tartışmayla ilgili ayrıntılı API belgelerine şu adreste ulaşabilirsiniz:

.NET için CopilotStudioAgent yakında kullanıma sunulacaktır.

Güncelleştirilmiş API belgeleri yakında kullanıma sunulacaktır.

Özellik şu anda Java'da kullanılamıyor.

CopilotStudioAgentnedir?

A CopilotStudioAgent , Programlı API'leri kullanarak Microsoft Copilot Studio aracılarıyla sorunsuz etkileşime olanak tanıyan Anlam Çekirdeği çerçevesi içinde bir tümleştirme noktasıdır. Bu aracı kullanarak şunları yapmanızı sağlar:

  • Konuşmaları otomatikleştirin ve Python kodundan mevcut Copilot Studio aracılarını çağırun.
  • Konular kullanarak zengin konuşma geçmişini sürdürün ve iletiler arasında bağlamı koruyun.
  • Microsoft Copilot Studio'da kullanıma sunulan gelişmiş bilgi alma, web araması ve veri tümleştirme özelliklerinden yararlanın.

Uyarı

Bilgi kaynaklarının/araçlarının aracı aracılığıyla erişilebilmesi için önce Microsoft Copilot Studio'da yapılandırılması gerekir.

Geliştirme Ortamınızı Hazırlama

ile CopilotStudioAgentgeliştirmek için ortamınızın ve kimlik doğrulamanızın doğru şekilde ayarlanmış olması gerekir.

.NET için CopilotStudioAgent yakında kullanıma sunulacaktır.

Önkoşullar

  1. Python 3.10 veya üzeri
  2. Copilot Studio bağımlılıkları ile Anlam Çekirdeği:
pip install semantic-kernel[copilotstudio]
  1. Microsoft Copilot Studio aracısı:

    • Microsoft Copilot Studio'da bir aracı oluşturun.
    • Aracınızı yayınlayın ve Settings → Advanced → Metadata altında elde edin:
      • Schema Name (olarak agent_identifierkullanılır)
      • Environment ID
  2. Azure Entra Id Uygulama Kaydı ("Yerel uygulama", etkileşimli oturum açma için), temsilci izniyle CopilotStudio.Copilots.Invoke .

Ortam Değişkenleri

Ortamınızda veya .env dosyanızda aşağıdaki değişkenleri ayarlayın:

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

Tavsiye

İzinlerle ilgili yardım için bkz. Power Platform API Kimlik Doğrulaması .

Özellik şu anda Java'da kullanılamıyor.

İstemci Oluşturma ve Yapılandırma CopilotStudioAgent

Çoğu yapılandırma için ortam değişkenlerini kullanabilirsiniz, ancak aracı istemcisini gerektiği gibi açıkça oluşturup özelleştirebilirsiniz.

.NET için CopilotStudioAgent yakında kullanıma sunulacaktır.

Temel Kullanım — Ortam Değişkeni ile Yönlendirilen

from semantic_kernel.agents import CopilotStudioAgent

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

Ortam değişkenleriniz ayarlandıysa açık istemci kurulumu gerekmez.

Belirgin İstemci Oluşturma

Yapılandırmayı geçersiz kıl veya özel kimlik kullan:

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

Özellik şu anda Java'da kullanılamıyor.

Bir CopilotStudioAgent ile etkileşim kurma

Çekirdek iş akışı diğer AnlamSal Çekirdek aracılarına benzer: kullanıcı girişleri sağlayın, yanıtları alın, iş parçacıkları aracılığıyla bağlamı koruyun.

.NET için CopilotStudioAgent yakında kullanıma sunulacaktır.

Temel Örnek

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

İş Parçacıklarıyla Bağlamı Sürdürme

Konuşmanın sürekliliğini sağlamak için:

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

Argümanları ve Komut İstem Şablonlarını Kullanma

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

Akış Üzerinden Yineleme (Desteklenmez)

Uyarı

Akış yanıtları şu anda CopilotStudioAgent tarafından desteklenmemektedir.

Bir CopilotStudioAgent ile Eklentileri Kullanma

Semantik Çekirdek, aracıların ve eklentilerin bileşimine izin verir. Copilot Studio'ya yönelik birincil genişletilebilirlik Studio üzerinden gelse de, diğer aracılarda olduğu gibi eklentiler oluşturabilirsiniz.

.NET için CopilotStudioAgent yakında kullanıma sunulacaktır.

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

Özellik şu anda Java'da kullanılamıyor.

Gelişmiş Özellikler

Studio ortamında hedef aracının nasıl yapılandırıldığına bağlı olarak, bir CopilotStudioAgent gelişmiş Copilot Studio yeteneklerinden yararlanabilir.

  • Bilgi Alma — Studio'da önceden yapılandırılmış bilgi kaynaklarına göre yanıt verir.
  • Web Araması — Studio aracınızda web araması etkinleştirildiyse sorgular Bing Arama'yı kullanır.
  • Power Platform ve Studio eklentileri aracılığıyla Özel Kimlik Doğrulaması veya API'ler; doğrudan OpenAPI bağlaması şu anda SK tümleştirmesinde birinci sınıf bir destek değildir.

.NET için CopilotStudioAgent yakında kullanıma sunulacaktır.

Bilgi Erişimi

Belirli bir Python kodu gerekmez; bilgi kaynaklarının Copilot Studio'da yapılandırılması gerekir. Kullanıcı iletileri bu kaynaklardan bilgi gerektirdiğinde, aracı bilgileri uygun şekilde döndürür.

Bing Arama'ya izin vermek için Studio'da Copilot'ınızı yapılandırın. Ardından yukarıdaki gibi kullanın. Bing Arama'yı yapılandırma hakkında daha fazla bilgi için aşağıdaki kılavuza bakın.

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

Özellik şu anda Java'da kullanılamıyor.

Nasıl Yapılır

CopilotStudioAgent kullanımıyla ilgili pratik örnekler için GitHub'daki kod örneklerimize bakın:

.NET için CopilotStudioAgent yakında kullanıma sunulacaktır.

Özellik şu anda Java'da kullanılamıyor.


Notlar:

  • Daha fazla bilgi veya sorun giderme için Microsoft Copilot Studio belgelerine bakın.
  • Yalnızca Studio aracınızda ayrı olarak etkinleştirilen ve yayımlanan özellikler ve araçlar Anlam Çekirdeği arabirimi aracılığıyla kullanılabilir.
  • Gelecekteki sürümler için akış, eklenti dağıtımı ve programatik araç ekleme planlanıyor.

Sonraki Adımlar