Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menjelajahi Kernel Semantik
Penting
Fitur ini dalam tahap eksperimental. Fitur pada tahap ini sedang dalam pengembangan dan dapat berubah sebelum maju ke tahap pratinjau atau kandidat rilis.
Dokumentasi API terperinci yang terkait dengan diskusi ini tersedia di:
CopilotStudioAgent untuk .NET akan segera hadir.
Dokumen API yang diperbarui akan segera hadir.
Fitur saat ini tidak tersedia di Java.
Apa itu CopilotStudioAgent?
CopilotStudioAgent adalah titik integrasi dalam kerangka kerja Kernel Semantik yang memungkinkan interaksi mulus dengan agen Microsoft Copilot Studio menggunakan API terprogram. Agen ini memungkinkan Anda untuk:
- Mengotomatiskan percakapan dan memanggil agen Copilot Studio yang ada dari kode Python.
- Pertahankan riwayat percakapan yang mendalam menggunakan utas, menjaga konteks antar pesan.
- Manfaatkan kemampuan pengambilan pengetahuan tingkat lanjut, pencarian web, dan integrasi data yang disediakan dalam Microsoft Copilot Studio.
Nota
Sumber/alat pengetahuan harus dikonfigurasi dalam Microsoft Copilot Studio sebelum dapat diakses melalui agen.
Menyiapkan lingkungan pengembangan Anda
Untuk mengembangkan dengan CopilotStudioAgent, Anda harus menyiapkan lingkungan dan otentikasi dengan benar.
CopilotStudioAgent untuk .NET akan segera hadir.
Prasyarat
- Python 3.10 atau lebih tinggi
- Kernel Semantik dengan dependensi Copilot Studio:
pip install semantic-kernel[copilotstudio]
Agen Microsoft Copilot Studio :
- Buat agen di Microsoft Copilot Studio.
- Terbitkan agen Anda, dan di bawah ini dapatkan
Settings → Advanced → Metadata:-
Schema Name(digunakan sebagaiagent_identifier) Environment ID
-
Pendaftaran Aplikasi Azure Entra ID ("Aplikasi asli", untuk masuk interaktif), dengan
CopilotStudio.Copilots.Invokeizin yang didelegasikan.
Variabel Lingkungan
Atur variabel berikut di lingkungan atau .env file Anda:
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
Petunjuk / Saran
Lihat Autentikasi API Power Platform untuk bantuan terkait izin.
Fitur saat ini tidak tersedia di Java.
Membuat dan Mengonfigurasi CopilotStudioAgent Klien
Anda dapat mengandalkan variabel lingkungan untuk sebagian besar konfigurasi, tetapi dapat secara eksplisit membuat dan menyesuaikan klien agen sesuai kebutuhan.
CopilotStudioAgent untuk .NET akan segera hadir.
Penggunaan Dasar — Berbasis Variabel Lingkungan
from semantic_kernel.agents import CopilotStudioAgent
agent = CopilotStudioAgent(
name="PhysicsAgent",
instructions="You help answer questions about physics.",
)
Tidak diperlukan penyiapan klien eksplisit jika variabel lingkungan Anda diatur.
Konstruksi Pelanggan yang Jelas
Ambil alih konfigurasi atau gunakan identitas kustom:
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.",
)
Fitur saat ini tidak tersedia di Java.
Berinteraksi dengan CopilotStudioAgent
Alur kerja inti mirip dengan agen Kernel Semantik lainnya: menyediakan input pengguna, menerima respons, mempertahankan konteks melalui utas.
CopilotStudioAgent untuk .NET akan segera hadir.
Contoh Dasar
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())
Mempertahankan Konteks dengan Utas
Untuk menjaga percakapan tetap berkeadaan:
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())
Menggunakan Argumen dan Templat Perintah
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())
Iterasi melalui Streaming (Tidak Didukung)
Nota
Respons streaming saat ini tidak didukung oleh CopilotStudioAgent.
Menggunakan Plug-in dengan CopilotStudioAgent
Kernel Semantik memungkinkan komposisi agen dan plugin. Meskipun ekstensibilitas utama untuk Copilot Studio hadir melalui Studio itu sendiri, Anda dapat membuat plugin seperti halnya agen lain.
CopilotStudioAgent untuk .NET akan segera hadir.
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()],
)
Fitur saat ini tidak tersedia di Java.
Fitur Tingkat Lanjut
CopilotStudioAgent dapat memanfaatkan kemampuan lanjutan yang ditingkatkan oleh Copilot Studio, tergantung pada bagaimana agen target dikonfigurasi di lingkungan Studio.
- Pengambilan Pengetahuan — merespons berdasarkan sumber pengetahuan yang telah dikonfigurasi sebelumnya di Studio.
- Pencarian Web — jika pencarian web diaktifkan di agen Studio Anda, kueri akan menggunakan Bing Search.
- Autentikasi kustom atau API — melalui plug-in Power Platform dan Studio; pengikatan OpenAPI langsung saat ini bukan fitur utama dalam integrasi SK.
CopilotStudioAgent untuk .NET akan segera hadir.
Pengambilan Pengetahuan
Tidak diperlukan kode Python tertentu; sumber pengetahuan harus dikonfigurasi di Copilot Studio. Ketika pesan pengguna memerlukan fakta dari sumber ini, agen akan mengembalikan informasi yang sesuai.
Pencarian Web
Konfigurasikan Copilot Anda dalam Studio untuk mengizinkan Bing Search. Kemudian gunakan seperti di atas. Untuk informasi selengkapnya tentang mengonfigurasi Bing Search, lihat panduan berikut.
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()
Fitur saat ini tidak tersedia di Java.
Panduan Praktis
Untuk contoh praktis menggunakan CopilotStudioAgent, lihat sampel kode kami di GitHub:
CopilotStudioAgent untuk .NET akan segera hadir.
Fitur saat ini tidak tersedia di Java.
Catatan :
- Untuk informasi selengkapnya atau pemecahan masalah, lihat dokumentasi Microsoft Copilot Studio.
- Hanya fitur dan alat yang diaktifkan dan diterbitkan secara terpisah di agen Studio Anda yang akan tersedia melalui antarmuka Kernel Semantik.
- Siaran langsung, penyebaran plugin, dan penambahan alat terprogram direncanakan untuk rilis mendatang.