mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
fd253c0b0e
* Move workflow-samples and agent-samples under declarative-agents and update all references Agent-Logs-Url: https://github.com/microsoft/agent-framework/sessions/f70f7d19-9256-4eec-b7db-28007d74440c Co-authored-by: sphenry <6749825+sphenry@users.noreply.github.com> * Fix relative paths in README files inside moved directories Agent-Logs-Url: https://github.com/microsoft/agent-framework/sessions/f70f7d19-9256-4eec-b7db-28007d74440c Co-authored-by: sphenry <6749825+sphenry@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: sphenry <6749825+sphenry@users.noreply.github.com> Co-authored-by: Shawn Henry <shahen@microsoft.com>
45 lines
1.6 KiB
Python
45 lines
1.6 KiB
Python
# Copyright (c) Microsoft. All rights reserved.
|
|
import asyncio
|
|
from pathlib import Path
|
|
|
|
from agent_framework.declarative import AgentFactory
|
|
from azure.identity.aio import AzureCliCredential
|
|
from dotenv import load_dotenv
|
|
|
|
# Load environment variables from .env file
|
|
load_dotenv()
|
|
|
|
"""
|
|
This sample demonstrates creating an agent from a declarative YAML file specification.
|
|
|
|
It uses a MCP server to connect to the Microsoft Learn content and a FoundryChatClient.
|
|
|
|
The yaml also has some chat options set, such as temperature and topP.
|
|
These options do not work with newer OpenAI models, so ensure to use a compatible model such as gpt-4o-mini.
|
|
|
|
Environment variables:
|
|
- FOUNDRY_PROJECT_ENDPOINT: The endpoint URL for the Foundry project.
|
|
- FOUNDRY_MODEL: The model ID to use for the agent, make sure it is compatible with the chat options specified in
|
|
the yaml, or remove the options.
|
|
"""
|
|
|
|
|
|
async def main():
|
|
"""Create an agent from a declarative yaml specification and run it."""
|
|
# get the path
|
|
current_path = Path(__file__).parent
|
|
yaml_path = current_path.parent.parent.parent.parent / "declarative-agents" / "agent-samples" / "foundry" / "MicrosoftLearnAgent.yaml"
|
|
# create the agent from the yaml
|
|
async with (
|
|
AzureCliCredential() as credential,
|
|
AgentFactory(client_kwargs={"credential": credential}, safe_mode=False).create_agent_from_yaml_path(
|
|
yaml_path
|
|
) as agent,
|
|
):
|
|
response = await agent.run("How do I create a storage account with private endpoint using bicep?")
|
|
print("Agent response:", response.text)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(main())
|