Files
agent-framework/python/samples/01-get-started/README.md
T
Giles Odigwe 6cb2289a16 Auto-finalize ResponseStream on iteration completion (#4478)
* Add multi-turn streaming sample and rename multi-turn samples

- Rename 03_multi_turn.py to 03a_multi_turn.py
- Add 03b_multi_turn_streaming.py showing streaming with session history
- The new sample demonstrates calling get_final_response() after
  iterating the stream to persist conversation history
- Update READMEs to reflect the new file names

Closes #4447

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Auto-finalize ResponseStream on iteration completion

When a ResponseStream is fully consumed via async iteration,
automatically trigger finalization (finalizer + result hooks).
This ensures session history is persisted in streaming multi-turn
conversations without requiring an explicit get_final_response() call.

- Add auto-finalize call in __anext__ on StopAsyncIteration
- Guard inner stream finalization to prevent double-execution
- Re-check _finalized after iteration in get_final_response()
- Add tests for auto-finalization and streaming session history
- Revert sample file renames from previous commit

Closes #4447

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* README fix

* Fix SIM102 lint: combine nested if statements

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-09 22:29:09 +00:00

1.3 KiB

Get Started with Agent Framework for Python

This folder contains a progressive set of samples that introduce the core concepts of Agent Framework one step at a time.

Prerequisites

pip install agent-framework --pre

Set the required environment variables:

export AZURE_AI_PROJECT_ENDPOINT="https://your-project-endpoint"
export AZURE_OPENAI_RESPONSES_DEPLOYMENT_NAME="gpt-4o"   # optional, defaults to gpt-4o

Samples

# File What you'll learn
1 01_hello_agent.py Create your first agent and run it (streaming and non-streaming).
2 02_add_tools.py Define a function tool with @tool and attach it to an agent.
3 03_multi_turn.py Keep conversation history across turns with AgentSession.
4 04_memory.py Add dynamic context with a custom ContextProvider.
5 05_first_workflow.py Chain executors into a workflow with edges.
6 06_host_your_agent.py Host a single agent with Azure Functions.

Run any sample with:

python 01_hello_agent.py

These samples use Azure Foundry models with the Responses API. To switch providers, just replace the client, see all providers