mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
495e1dad6b
* Fix CopilotStudioAgent to reuse existing conversation on session (#5285) CopilotStudioAgent unconditionally called _start_new_conversation() in both _run_impl and _run_stream_impl, ignoring any existing service_session_id on the session. Add a guard to only start a new conversation when there is no existing service_session_id, matching the pattern used by other agents. Also fix pre-existing pyright reportMissingImports errors for orjson in file_history_provider samples. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Revert out-of-scope sample file changes Remove unrelated orjson type-ignore comment changes from sample files that were outside the scope of the conversation-ID reuse fix. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <copilot@github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
495e1dad6b
ยท
2026-04-20 03:30:54 +00:00
History
Get Started with Microsoft Agent Framework Copilot Studio
Please install this package via pip:
pip install agent-framework-copilotstudio --pre
Copilot Studio Agent
The Copilot Studio agent enables integration with Microsoft Copilot Studio, allowing you to interact with published copilots through the Agent Framework.
Prerequisites
Before using the Copilot Studio agent, you need:
- Copilot Studio Environment: Access to a Microsoft Copilot Studio environment with a published copilot
- App Registration: An Azure AD App Registration with appropriate permissions for Power Platform API
- Environment Configuration: Set the required environment variables or pass them as parameters
Environment Variables
The following environment variables are used for configuration:
COPILOTSTUDIOAGENT__ENVIRONMENTID- Your Copilot Studio environment IDCOPILOTSTUDIOAGENT__SCHEMANAME- Your copilot's agent identifier/schema nameCOPILOTSTUDIOAGENT__AGENTAPPID- Your App Registration client IDCOPILOTSTUDIOAGENT__TENANTID- Your Azure AD tenant ID
Basic Usage Example
import asyncio
from agent_framework.microsoft import CopilotStudioAgent
async def main():
# Create agent using environment variables
agent = CopilotStudioAgent()
# Run a simple query
result = await agent.run("What is the capital of France?")
print(result)
asyncio.run(main())
Explicit Configuration Example
import asyncio
import os
from agent_framework.microsoft import CopilotStudioAgent, acquire_token
from microsoft_agents.copilotstudio.client import ConnectionSettings, CopilotClient, PowerPlatformCloud, AgentType
async def main():
# Acquire authentication token
token = acquire_token(
client_id=os.environ["COPILOTSTUDIOAGENT__AGENTAPPID"],
tenant_id=os.environ["COPILOTSTUDIOAGENT__TENANTID"]
)
# Create connection settings
settings = ConnectionSettings(
environment_id=os.environ["COPILOTSTUDIOAGENT__ENVIRONMENTID"],
agent_identifier=os.environ["COPILOTSTUDIOAGENT__SCHEMANAME"],
cloud=PowerPlatformCloud.PROD,
copilot_agent_type=AgentType.PUBLISHED,
custom_power_platform_cloud=None
)
# Create client and agent
client = CopilotClient(settings=settings, token=token)
agent = CopilotStudioAgent(client=client)
# Run a query
result = await agent.run("What is the capital of Italy?")
print(result)
asyncio.run(main())
Authentication
The package uses MSAL (Microsoft Authentication Library) for authentication with interactive flows when needed. Ensure your App Registration has:
- API Permissions: Power Platform API permissions (https://api.powerplatform.com/.default)
- Redirect URIs: Configured appropriately for your authentication method
- Public Client Flows: Enabled if using interactive authentication
Examples
For more comprehensive examples, see the Copilot Studio examples which demonstrate:
- Basic non-streaming and streaming execution
- Explicit settings and manual token acquisition
- Different authentication patterns
- Error handling and troubleshooting