* [BREAKING] Rename ChatAgent -> Agent, ChatMessage -> Message, ChatClientProtocol -> SupportsChatGetResponse Simplify the public API by removing redundant 'Chat' prefix from core types: - ChatAgent -> Agent - RawChatAgent -> RawAgent - ChatMessage -> Message - ChatClientProtocol -> SupportsChatGetResponse Also renamed internal WorkflowMessage (was Message in _runner_context) to avoid collision. No backward compatibility aliases - this is a clean breaking change. * [BREAKING] Rename Agent chat_client parameter to client * Fix rebase issues: WorkflowMessage references and broken markdown links * Fix formatting and lint issues from code quality checks * Fix import ordering in workflow sample files * fixed rebase * Fix test failures: use WorkflowMessage and A2AMessage after ChatMessage→Message rename - Replace Message(data=..., source_id=...) with WorkflowMessage(...) in workflow tests - Fix isinstance check in A2A agent to use A2AMessage instead of Message - Fix import in test_workflow_observability.py (Message→WorkflowMessage) * Fix lint, fmt, and sample errors after ChatMessage→Message rename - Auto-fix 70+ ruff lint issues across samples (ChatMessage→Message refs) - Fix HostedVectorStoreContent→Content.from_hosted_vector_store in file search sample - Fix _normalize_messages→normalize_messages in custom agent sample - Fix context.terminate→raise MiddlewareTermination in middleware samples - Fix with_update_hook→with_transform_hook in override middleware sample - Add TOptions_co import back to custom_chat_client sample - Add noqa for FastAPI File() default in chatkit sample - Fix B023 loop variable capture in weather agent sample * fix: update Agent constructor calls from chat_client to client in declaration-only tool tests * fix: add register_cleanup to devui lazy-loading proxy and type stub * fixed tests and updated new pieces * fix agui typevar * fix merge errors * fix merge conflicts * fiux merge * Remove unused links --------- Co-authored-by: Evan Mattson <evan.mattson@microsoft.com>
These are common instructions for setting up your environment for every sample in this directory. These samples illustrate the Durable extensibility for Agent Framework running in Azure Functions.
All of these samples are set up to run in Azure Functions. Azure Functions has a local development tool called CoreTools which we will set up to run these samples locally.
Environment Setup
1. Install dependencies and create appropriate services
-
Install Azure Functions Core Tools 4.x
-
Install Azurite storage emulator
-
Create an Azure OpenAI resource. Note the Azure OpenAI endpoint, deployment name, and the key (or ensure you can authenticate with
AzureCliCredential). -
Install a tool to execute HTTP calls, for example the REST Client extension
-
[Optionally] Create an Azure Function Python app to later deploy your app to Azure if you so desire.
2. Create and activate a virtual environment
Windows (PowerShell):
python -m venv .venv
.venv\Scripts\Activate.ps1
Linux/macOS:
python -m venv .venv
source .venv/bin/activate
3. Running the samples
-
Inside each sample:
-
Install Python dependencies – from the sample directory, run
pip install -r requirements.txt(or the equivalent in your active virtual environment). -
Copy
local.settings.json.templatetolocal.settings.json, then updateAZURE_OPENAI_ENDPOINTandAZURE_OPENAI_CHAT_DEPLOYMENT_NAMEfor Azure OpenAI authentication. The samples useAzureCliCredentialby default, so ensure you're logged in viaaz login.- Alternatively, you can use API key authentication by setting
AZURE_OPENAI_API_KEYand updating the code to useAzureOpenAIChatClient()without the credential parameter. - Keep
TASKHUB_NAMEset todefaultunless you plan to change the durable task hub name.
- Alternatively, you can use API key authentication by setting
-
Run the command
func startfrom the root of the sample -
Follow each sample's README for scenario-specific steps, and use its
demo.httpfile (or provided curl examples) to trigger the hosted HTTP endpoints.
-