mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
3446eb8d5d
* updates to final deprecated pieces and versions * fix mypy * fix readme links
51 lines
1.7 KiB
Python
51 lines
1.7 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())
|