Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Dit document bevat alle belangrijke wijzigingen in Python-releases sinds het begin van 2026, waaronder belangrijke wijzigingen en belangrijke verbeteringen die van invloed kunnen zijn op uw code. Elke wijziging wordt gemarkeerd als:
- π΄ Doorbrekend - vereist codewijzigingen om te upgraden
- π‘ Uitbreiding β Nieuwe mogelijkheid of verbetering; bestaande code blijft werken
In dit document worden belangrijke Python wijzigingen in alle 2026-releases bijgehouden. Raadpleeg het document dus wanneer u een upgrade uitvoert tussen versies om ervoor te zorgen dat u geen belangrijke wijzigingen mist. Raadpleeg voor gedetailleerde upgrade-instructies over specifieke onderwerpen, zoals migratie van opties, de gekoppelde handleidingen voor upgrades of de gekoppelde pull requests.
python-1.8.0 (4 juni 2026)
Releaseopmerkingen:python-1.8.0
π΄
github-copilot-sdk bijgewerkt naar v1.0.0 met belangrijke API-wijzigingen
PR:#6292
PR-upgrades #6292agent-framework-github-copilot van github-copilot-sdk 1.0.0b2 naar de stabiele versie 1.0.0 , die worden aangepast aan alle belangrijke API-wijzigingen die zijn geΓ―ntroduceerd in de GA-versie.
-
SubprocessConfigverwijderd : gebruikRuntimeConnection.for_stdio(path=...)+ trefwoordargumenten voorCopilotClient(connection,log_level,base_directory). -
Importpaden verplaatst -
copilot.generated.session_eventsβcopilot.session_events. -
De naam van de instellingen is gewijzigd :
copilot_homeβbase_directory; de omgevingsvariabele is nuGITHUB_COPILOT_BASE_DIRECTORY(wasGITHUB_COPILOT_COPILOT_HOME). -
Machtigingshandlers : gebruik concrete beslissingstypen in plaats van
PermissionRequestResult(kind=...). De ingebouwdePermissionHandler.approve_allvervangt handmatige goedkeuringspatronen. -
Standaard weigering-handler β retourneert nu
PermissionDecisionUserNotAvailable()(in overeenstemming met het fallbackgedrag van de SDK). -
Type machtigingshandler : ondersteunt nu zowel synchronisatie- als asynchrone callbacks (
Callable[..., PermissionRequestResult | Awaitable[PermissionRequestResult]]).
Before:
from copilot import CopilotClient, SubprocessConfig
from copilot.generated.session_events import PermissionRequest
from copilot.session import PermissionRequestResult
# Client construction
client = CopilotClient(SubprocessConfig(cli_path="/path/to/cli", log_level="debug", copilot_home="/custom/home"))
# Permission handler
def approve_shell(request: PermissionRequest, context: dict[str, str]) -> PermissionRequestResult:
if request.kind == "shell":
return PermissionRequestResult(kind="approved")
return PermissionRequestResult(kind="denied-interactively-by-user")
# Agent
agent = GitHubCopilotAgent(default_options={"copilot_home": "/custom/home", "on_permission_request": approve_shell})
After:
from copilot import CopilotClient, RuntimeConnection
from copilot.generated.rpc import PermissionDecisionDeniedInteractivelyByUser, PermissionDecisionUserNotAvailable
from copilot.session import PermissionHandler, PermissionRequestResult
from copilot.session_events import PermissionRequest
# Client construction
client = CopilotClient(connection=RuntimeConnection.for_stdio(path="/path/to/cli"), log_level="debug", base_directory="/custom/home")
# Permission handler β use concrete decision types or PermissionHandler.approve_all
def approve_shell(request: PermissionRequest, context: dict[str, str]) -> PermissionRequestResult:
if request.kind == "shell":
return PermissionHandler.approve_all(request, context)
return PermissionDecisionUserNotAvailable()
# Agent
agent = GitHubCopilotAgent(default_options={"base_directory": "/custom/home", "on_permission_request": approve_shell})
π‘ Progressieve gereedschapsblootstelling via FunctionInvocationContext
PR:#6233
Voegt ondersteuning toe voor het stapsgewijs beschikbaar stellen van tools tijdens een run met FunctionInvocationContext. Hulpprogramma's kunnen nu dynamisch worden toegevoegd of verwijderd op basis van eerdere hulpprogrammaresultaten binnen dezelfde agentuitvoering.
π‘ Detectie van vaardigheden op basis van MCP (McpSkillsSource)
PR:#6169
Wordt McpSkillsSource toegevoegd aan agent-framework-core, waardoor vaardigheidsdetectie en -laden via MCP-servers mogelijk is.
π‘ Systeemeigen gestructureerde uitvoerondersteuning van Bedrock via Converse-API
PR:#6052
agent-framework-bedrock implementeert nu systeemeigen gestructureerde uitvoerondersteuning via de AWS Bedrock Converse-API, zodat u met response_format Bedrock-modellen kunt werken.
π‘ Integratie van Foundry Adaptive Evals (rubriek-generatie)
PR:#6101
Voegt Foundry Adaptive Evals-integratie toe aan agent-framework-foundry voor automatische generatie van rubrieken in evaluatiewerkstromen.
π‘ Mistral AI-clientpakket insluiten
PR:#5480
Nieuw agent-framework-mistral pakket dat een Mistral AI-insluitclient biedt.
π‘
agent-framework-declarative gepromoveerd naar releasekandidaat
PR:#6256
Het agent-framework-declarative pakket gaat van de bètafase naar de release candidate-fase.
python-1.7.0 (28 mei 2026)
Releaseopmerkingen:python-1.7.0
π΄ declaratief: Python-only acties verwijderd en aliastypen hernoemd naar C#-canonieke namen
PR:#6126
PR #6126 verwijdert Python alleen declaratieve acties en wijzigt aliastypen zodat deze overeenkomen met de C#-canonieke namen voor consistentie tussen talen.
- Declaratieve actietypen die alleen in Python voorkwamen en geen C#-equivalent hadden, zijn verwijderd.
- Actiealiastypen zijn nu afgestemd op C#-naamconventies; bestaande declaratieve YAML-/JSON-bestanden dienovereenkomstig bijwerken.
π‘
HarnessAgent en achtergrondagenten maken gebruik van provider
Voegt HarnessAgent toe aan agent-framework-core, waardoor door een harness ondersteunde agentpatronen voor achtergrondverwerking mogelijk worden gemaakt.
π‘
A2AAgentSession met taak-id's waarnaar wordt verwezen en vereiste ondersteuning voor invoer
PR:#5980
Voegt toe A2AAgentSession aan agent-framework-a2a en agent-framework-core, ondersteuning voor taak-id's waarnaar wordt verwezen en invoer die vereist is voor A2A-protocolinteracties.
π‘ Experimentele API's voor conversie van prompt-agents en implementatie
PR:#5959
Voegt experimentele API's toe om agent-framework-foundry promptdefinities te converteren naar agents en deze programmatisch te implementeren.
python-1.6.0 (21 mei 2026)
Releaseopmerkingen:python-1.6.0
π΄ Instrumentatie standaard ingeschakeld
PR:#5865
PR #5865 schakelt standaard OpenTelemetry-instrumentatie in agent-framework-core en agent-framework-foundry.
- Agent-runs genereren nu automatisch telemetriespans zonder dat hiervoor expliciet hoeft te worden gekozen.
- Als u eerder instrumentatie hebt uitgeschakeld of aangepaste telemetriepijplijnen hebt, controleert u of het standaardgedrag niet conflicteert.
- Om dit uit te schakelen, geeft u
enable_instrumentation=Falseop waar van toepassing.
Before:
from agent_framework import Agent
from agent_framework.observability import configure_otel_providers
# Had to explicitly enable instrumentation
configure_otel_providers(enable_console_exporters=True)
agent = Agent(client=client, enable_instrumentation=True)
After:
from agent_framework import Agent
# Instrumentation is now on by default β no opt-in needed
agent = Agent(client=client)
# To explicitly disable:
agent = Agent(client=client, enable_instrumentation=False)
π‘ Shell-hulpprogramma met ondersteuning voor lokale en Docker-uitvoering
PR:#5664
Hiermee voegt u een ingebouwd shell-hulpprogramma toe dat agent-framework-core ondersteuning biedt voor zowel lokale uitvoering als op Docker gebaseerde uitvoering in een sandbox.
π‘ Nieuw agent-framework-monty CodeAct-providerpakket
PR:#5915
Introduceert het agent-framework-monty pakket voor CodeAct-integraties met Monty-ondersteuning (alfafase).
python-1.4.0 (14 mei 2026)
Releaseopmerkingen:python-1.4.0
π΄ [Experimentele vaardigheden-API] Detectie van vaardigheidsmappen voor bestanden afstemmen op de agentskills.io-specificatie
PR:#5807
PR #5807 werkt de API voor experimentele vaardigheden bij om de detectie van vaardigheden op basis van bestanden uit te lijnen met de agentskills.io specificatie.
- Oplossingslogica voor vaardigheidsmappen is gewijzigd; aangepaste indelingen voor vaardigheden bijwerken als u de API voor experimentele vaardigheden gebruikt.
π΄ [Experimentele vaardigheden-API] Metagegevens van vaardigheidsspecificaties extraheren in SkillFrontmatter
PR:#5775
Pr #5775 verplaatst metagegevens van vaardigheidsspecificaties naar een toegewezen SkillFrontmatter gegevensklasse.
- Als u rechtstreeks toegang hebt tot metagegevensvelden van vaardigheden, werkt u verwijzingen bij zodat deze kenmerken van
SkillFrontmattergebruiken.
π΄ DevUI: Standaardtoegangsbeheer en CORS-houding aanscherpen
PR:#5740
PR #5740 maakt de standaardconfiguratie voor toegangsbeheer en CORS voor agent-framework-devui strikter.
- Standaard CORS-oorsprongen zijn nu meer beperkend.
- Als uw DevUI-installatie afhankelijk is van cross-origintoegang vanuit aangepaste domeinen, configureer dan expliciet de toegestane bronnen.
π΄ A2A: migreren naar a2a-sdk v1.0
PR:#5752
PR #5752 migreert agent-framework-a2a naar a2a-sdk v1.0.
- De A2A-protocoltypen en transport-APIβs volgen de conventies van a2a-sdk 1.0.
- Werk alle code bij die rechtstreeks communiceert met A2A-protocoltypen.
π‘ AG-UI: Weergavekanaal voor toolresultaten en promotie naar release candidate
Voegt een weergavekanaal voor toolresultaten toe aan agent-framework-ag-ui en promoveert het pakket naar de release candidate-fase.
python-1.3.0 (7 mei 2026)
Releaseopmerkingen:python-1.3.0
π΄ [Experimentele vaardigheden-API] Agentvaardigheden herstructureren naar architectuur met meerdere bronnen
PR:#5584
PR #5584 herstructureert de experimentele vaardigheden-API om het laden van vaardigheden met meerdere bronnen te ondersteunen.
- Vaardigheidsregistratie en detectielogica zijn gewijzigd voor de functie voor experimentele vaardigheden.
- Als u de experimentele vaardigheden-API gebruikt, bekijkt u de nieuwe laadconventies met meerdere bronnen.
π‘
ClassSkill voor op klassen gebaseerde vaardigheidsdefinities
PR:#5678
Wordt ClassSkill toegevoegd aan agent-framework-core voor op klassen gebaseerde vaardigheidsdefinities met declaratieve metagegevens en automatische methodedetectie.
π‘ Bescherming tegen promptinjectie met informatiestroombeheer
PR:#5331
Voegt een mechanisme voor informatiestroombeheer toe aan agent-framework-core dat helpt beschermen tegen prompt-injectieaanvallen.
π‘
github-copilot-sdk bijgewerkt naar v1.0.0b2
PR:#5665
Upgradet agent-framework-github-copilot naar github-copilot-sdk>=1.0.0b2 en voegt instruction_directories, copilot_home-configuratie en het doorsturen van runtime-opties bij het hervatten van een sessie toe.
π‘ Afdwingen approval_mode in Claude en GitHub Copilot agenten
PR:#5562
agent-framework-claude en agent-framework-github-copilot dwingen nu de approval_mode decorator af voor functietools, in overeenstemming met andere agent-implementaties.
π‘ Ondersteuning voor toolkeuze van OpenAI en Gemini allowed_tools
PR:#5322
Hiermee voegt u ondersteuning toe voor allowed_tools de keuze agent-framework-openaivan hulpprogramma's, zodat u kunt beperken welke hulpprogramma's het model kan aanroepen.
python-1.2.2 (29 april 2026)
Releaseopmerkingen:python-1.2.2
π΄ Indelingsterminal voert gestandaardiseerde uitvoer uit als AgentResponse
PR:#5301
PR #5301 standaardiseert de terminaluitvoer van orchestratie als AgentResponse, zodat Workflow.as_agent() alleen het uiteindelijke antwoord teruggeeft.
- SequentiΓ«le goedkeuringsstromen (
with_request_info) en gelijktijdige (intermediate_outputs=True) stromen volgen nu hetzelfde uitvoercontract. - Als u orchestratie-resultaten rechtstreeks gebruikt, verwacht u
AgentResponse-objecten in plaats van onbewerkte tekst of gemengde gegevenstypen.
Before:
# Orchestration returned mixed types (raw strings, dicts, etc.)
result = await workflow.as_agent().run("Draft a report")
text = str(result) # had to handle various types
After:
# Orchestration now always returns AgentResponse
result = await workflow.as_agent().run("Draft a report")
text = result.text # consistent AgentResponse API
π‘ Contextprovider voor Azure AI Content Understanding
PR:#4829
Nieuw alfapakket agent-framework-azure-contentunderstanding : automatisch analyseert bestandsbijlagen (documenten, afbeeldingen, audio, video) en injecteert gestructureerde resultaten in de LLM-context.
π‘ Ondersteuning voor gehoste Durable Workflow via Foundry-hosting
PR:#5531
Voegt gehoste Durable Workflow-ondersteuning toe aan agent-framework-foundry-hosting, waarbij de volledige gespreksgeschiedenis wordt doorgegeven aan werkstroomagents.
python-1.1.0 (21 april 2026)
Releaseopmerkingen:python-1.1.0
π΄
CosmosCheckpointStorage pickle-deserialisatie is standaard beperkt
PR:#5200
CosmosCheckpointStorage gebruikt nu standaard beperkte pickle-deserialisatie, in overeenstemming met het gedrag van FileCheckpointStorage.
- Als uw controlepunten toepassingsgedefinieerde typen bevatten, geeft u deze door via
allowed_checkpoint_types=["my_app.models:MyState"]. - Zonder dit zal deserialisatie van aangepaste typen
WorkflowCheckpointExceptionopleveren.
Before:
from agent_framework.azure.cosmos import CosmosCheckpointStorage
storage = CosmosCheckpointStorage(endpoint=endpoint, database="mydb", container="checkpoints")
After:
from agent_framework.azure.cosmos import CosmosCheckpointStorage
storage = CosmosCheckpointStorage(
endpoint=endpoint,
database="mydb",
container="checkpoints",
allowed_checkpoint_types=["my_app.models:MyState"],
)
π‘
GeminiChatClient Toegevoegd
PR:#4847
Nieuw agent-framework-gemini pakket met GeminiChatClient ondersteuning voor Google Gemini API en Vertex AI.
π‘ Hyperlight CodeAct-pakket
PR:#5185
Nieuw agent-framework-hyperlight pakket voor code-uitvoering in de sandbox van CodeAct op basis van Hyperlight.
π‘ Ondersteuning voor Foundry Toolboxes
PR:#5346
Hiermee wordt ondersteuning toegevoegd voor Foundry Toolboxes in agent-framework-foundry, waardoor beheerde hulpprogrammaconfiguraties vanuit Azure AI Foundry worden ingeschakeld.
π‘
finish_reason op AgentResponse en AgentResponseUpdate
PR:#5211
Voegt het veld finish_reason toe aan AgentResponse en AgentResponseUpdate, waardoor consumenten kunnen controleren waarom het model stopte met genereren.
π‘ Ondersteuning voor gehoste agent V2 in Foundry
PR:#5379
Voegt in agent-framework-foundry ondersteuning voor gehoste agent V2 toe voor de nieuwste mogelijkheden van de Foundry-agentservice.
python-1.0.1 (9 april 2026)
Releaseopmerkingen:python-1.0.1
π΄
FileCheckpointStorage beperkte deserialisatie van pickle (beveiligingsversterking)
PR:#4941
De deserialisatie van checkpoints verloopt nu standaard via een beperkte unpickler, die alleen een ingebouwde set veilige Python-typen en alle agent_framework-frameworktypen toestaat.
- Als uw toepassing aangepaste typen opslaat in checkpoints, moet u hun
"module:qualname"-identificatoren doorgeven via de nieuwe constructorparameterallowed_checkpoint_typesβ anders wordt bij het ladenWorkflowCheckpointExceptiongegenereerd. - Zie Beveiligingsoverwegingen voor meer informatie.
Before:
from agent_framework.workflows import FileCheckpointStorage
storage = FileCheckpointStorage(directory="./checkpoints")
After:
from agent_framework.workflows import FileCheckpointStorage
storage = FileCheckpointStorage(
directory="./checkpoints",
allowed_checkpoint_types=["my_app.models:MyState", "my_app.models:TaskResult"],
)
π΄ Oplossing voor handoff-werkstroomcontextbeheer
PR:#5136
PR #5136 verhelpt problemen met het contextbeheer van de handoff-workflow. Dit is een gedragswijziging β overdrachtsagents behouden nu tijdens overgangen correct een geΓ―soleerde context.
π‘ Cosmos DB NoSQL controlepuntopslag voor werkstromen
PR:#4916
Nieuw agent-framework-azure-cosmos-pakket dat door Cosmos DB NoSQL ondersteunde checkpointopslag voor Python-workflows biedt.
python-1.0.0 (2 april 2026)
Releaseopmerkingen:python-1.0.0
In deze sectie worden de belangrijke Python-wijzigingen vastgelegd die hierna python-1.0.0rc6 zijn geland en die nu deel uitmaken van python-1.0.0.
π΄
Message(..., text=...) constructie is nu volledig verwijderd
PR:#5062
PR #5062 voltooit het eerder opschonen van het Python-berichtmodel door de laatste codepaden aan de frameworkzijde te verwijderen waarmee nog steeds Message objecten worden samengesteld text=....
- Tekstberichten maken zoals
Message(role="user", contents=["Hello"])in plaats vanMessage(role="user", text="Hello"). - Dit geldt overal waar u berichten rechtstreeks opmaakt, inclusief workflowverzoeken, aangepaste middleware-antwoorden, orkestratiehulpmiddelen en migratiecode.
- Eenvoudige tekenreeksen binnen
contents=[...]worden nog steeds automatisch genormaliseerd tot tekstinhoud, duscontents=["Hello"]blijft de eenvoudigste tekst-alleen vorm.
Before:
message = Message(role="assistant", text="Hello")
After:
message = Message(role="assistant", contents=["Hello"])
π‘ Uitgebrachte Python-pakketten zijn niet meer vereist --pre
PR:#5062
PR #5062 promoveert de belangrijkste Python-pakketten naar 1.0.0 en werkt de installatie-instructies bij om uitgebrachte pakketten te onderscheiden van pakketten die nog in prerelease zijn.
-
agent-framework,agent-framework-core,agent-framework-openaienagent-framework-foundryzijn nu uitgebrachte pakketten en vereisen niet langer--pre. - Bètaconnectors zoals
agent-framework-ag-ui,agent-framework-azurefunctions,agent-framework-copilotstudio,agent-framework-foundry-local,agent-framework-github-copilot,agent-framework-mem0enagent-framework-ollamavereisen nog steeds--pre. - Als een enkele installatieopdracht een bètapakket bevat, moet u
--prein die opdracht behouden.
π΄ Foundry is nu eigenaar van Python-insluitingen en instellingen voor modellen-eindpunten
PR:#5056
PR #5056 verwijdert het zelfstandige agent-framework-azure-ai pakket en verplaatst het insluitoppervlak van Python naar agent-framework-foundry en agent_framework.foundry.
- Gebruik
FoundryEmbeddingClient,FoundryEmbeddingOptionsenFoundryEmbeddingSettingsvanagent_framework.foundry. - Installeer
agent-framework-foundryvoor Foundry-chat, service-beheerde agenten, geheugenleveranciers en insluitingen. -
agent_framework.azureexporteertAzureAIInferenceEmbeddingClient,AzureAIInferenceEmbeddingOptions,AzureAIInferenceEmbeddingSettingsofAzureAISettingsniet langer. - Foundry-embedderingen gebruiken nu
FOUNDRY_MODELS_ENDPOINT,FOUNDRY_MODELS_API_KEY,FOUNDRY_EMBEDDING_MODEL, en optioneelFOUNDRY_IMAGE_EMBEDDING_MODEL. -
FoundryChatClientenFoundryAgentgebruik nog steeds de instellingen voor het projecteindpunt, zoalsFOUNDRY_PROJECT_ENDPOINTenFOUNDRY_MODEL.
Before:
import os
from agent_framework.azure import AzureAIInferenceEmbeddingClient
client = AzureAIInferenceEmbeddingClient(
endpoint=os.environ["AZURE_AI_SERVICES_ENDPOINT"],
model=os.environ["AZURE_AI_EMBEDDING_NAME"],
credential=credential,
)
After:
import os
from agent_framework.foundry import FoundryEmbeddingClient
client = FoundryEmbeddingClient(
endpoint=os.environ["FOUNDRY_MODELS_ENDPOINT"],
api_key=os.environ["FOUNDRY_MODELS_API_KEY"],
model=os.environ["FOUNDRY_EMBEDDING_MODEL"],
)
π΄ Werkstromen sturen nu runtime kwargs door via expliciete buckets
PR:#5010
De PR #5010 wijzigt Python workflow.run(...) zodat runtime kwargs expliciet worden doorgegeven als function_invocation_kwargs= en client_kwargs= in plaats van als een algemeen doorgestuurd **kwargs.
- Een platte toewijzing wordt beschouwd als globaal en wordt doorgestuurd naar elke overeenkomende agentuitvoerder in de werkstroom.
- Als een of meer sleutels op het hoogste niveau overeenkomen met uitvoerders-id's, wordt de hele toewijzing behandeld als doelgericht op individuele uitvoerders en ontvangt elke uitvoerder alleen een vermelding van zichzelf.
- Aangepaste
AgentExecutor(id="...")-werkstroomexecutor-id's en andere expliciete ids zijn de sleutels waarop u zich richt. - Dezelfde globale versus gerichte regels zijn van toepassing op zowel
function_invocation_kwargsalsclient_kwargs.
Before:
await workflow.run(
"Draft the report",
db_config={"connection_string": "..."},
user_preferences={"format": "markdown"},
)
After:
await workflow.run(
"Draft the report",
function_invocation_kwargs={
"researcher": {
"db_config": {"connection_string": "..."},
},
"writer": {
"user_preferences": {"format": "markdown"},
},
},
)
π‘
GitHubCopilotAgent voert nu contextproviders uit rond elke aanroep
PR:#5013
PR #5013 lost een Python-gedragsverschil op waarbij GitHubCopilotAgent deze worden geaccepteerd context_providers , maar niet daadwerkelijk zijn aangeroepen.
-
before_run()wordt nu uitgevoerd voordat de Copilot-prompt wordt verzonden. - Door de provider toegevoegde berichten en instructies worden opgenomen in de prompt die de Copilot CLI bereikt.
-
after_run()wordt nu uitgevoerd nadat het uiteindelijke antwoord is samengesteld, inclusief het streamingpad.
Als u context_providers al aan GitHubCopilotAgent hebt doorgegeven, is er geen migratie vereist β de hooks gedragen zich nu consistent met de rest van de interface van de Python-agent.
π‘ Gestructureerde uitvoer accepteert nu ook JSON-schematoewijzingen naast Pydantic-modellen
PR:#5022
PR #5022 verbreedt het parseren van gestructureerde uitvoer van Python, zodat response_format ofwel een Pydantic-model of een JSON-schematoewijzing kan zijn.
- Pydantic-modellen worden nog steeds omgezet in getypeerde modelinstanties op
response.value. - JSON-schematoewijzingen parseren nu naar JSON-compatibele Python-waarden op
response.value(meestaldictoflist). - Dezelfde parseringsregels zijn van toepassing wanneer u het uiteindelijke antwoord van een stream verzamelt.
Dit is een verbetering in plaats van een belangrijke wijziging, maar het is handig om te weten of u al schema's opslaat als JSON-achtige woordenlijsten.
python-1.0.0rc6
In deze sectie worden de belangrijke Python-wijzigingen vastgelegd die zijn verzonden met of zijn bijgehouden voor python-1.0.0rc6.
π΄ Modelselectie is gestandaardiseerd op model
PR:#4999
PR #4999 voltooit het opschonen van modelselectie aan de python-zijde voor constructors, getypte opties, agentstandaarden, antwoordobjecten en omgevingsvariabelen.
- Gebruik
modeloveral waar u eerdermodel_idhebt gebruikt. -
Agent.default_optionsen per-runoptions={...}verwachten"model", niet"model_id". - Antwoordobjecten worden weergegeven
response.model, nietresponse.model_id. - OpenAI-instellingen gebruiken nu
OPENAI_MODEL,OPENAI_CHAT_MODEL,OPENAI_CHAT_COMPLETION_MODELenOPENAI_EMBEDDING_MODEL. - Azure OpenAI-instellingen gebruiken nu
AZURE_OPENAI_MODEL,AZURE_OPENAI_CHAT_MODEL,AZURE_OPENAI_CHAT_COMPLETION_MODELenAZURE_OPENAI_EMBEDDING_MODEL. - Antropisch gebruikt nu
ANTHROPIC_CHAT_MODEL, en Foundry Local gebruiktFOUNDRY_LOCAL_MODEL. - Het Anthropic-pakket voegt ook door de provider gehoste wrappers zoals
AnthropicFoundryClient,AnthropicBedrockClient, enAnthropicVertexClienttoe.
Before:
from agent_framework.anthropic import AnthropicClient
client = AnthropicClient(model_id="claude-sonnet-4-5-20250929")
response = await client.get_response(
"Hello!",
options={"model_id": "claude-sonnet-4-5-20250929"},
)
After:
from agent_framework.anthropic import AnthropicClient
client = AnthropicClient(model="claude-sonnet-4-5-20250929")
response = await client.get_response(
"Hello!",
options={"model": "claude-sonnet-4-5-20250929"},
)
π΄ Contextproviders kunnen middleware toevoegen en geschiedenis per modeloproep behouden
PR:#4992
PR #4992 werkt de Python-contextprovider pijplijn bij en de manier waarop geschiedenis beheerd door het framework wordt opgeslagen tijdens uitvoeringen met meerdere aanroepen.
-
ContextProviderenHistoryProviderzijn nu de canonieke Python-basisklassen. -
BaseContextProviderenBaseHistoryProviderblijven tijdelijk als afgeschafte aliassen voor compatibiliteit, maar nieuwe code moet worden gemigreerd naar de nieuwe namen. -
SessionContextkan nu door de provider toegevoegde chat- of functie-middlewareextend_middleware()verzamelen en de afgevlakte lijst beschikbaar maken viaget_middleware(). -
Agent(..., require_per_service_call_history_persistence=True)voert geschiedenisproviders uit bij elke modelaanroep in plaats van één keer na de volledigerun(). - Deze modus is bedoeld voor door framework beheerde lokale geschiedenis en kan niet worden gecombineerd met een bestaand servicebeheerd gesprek, zoals
session.service_session_idofoptions={"conversation_id": ...}.
Before:
from agent_framework import BaseHistoryProvider
class CustomHistoryProvider(BaseHistoryProvider):
...
After:
from agent_framework import Agent, HistoryProvider
class CustomHistoryProvider(HistoryProvider):
...
agent = Agent(
client=client,
context_providers=[CustomHistoryProvider()],
require_per_service_call_history_persistence=True,
)
π΄ Afgeschafte Azure/OpenAI-compatibiliteitsoppervlakken verwijderd
PR:#4990
Pull Request #4990 voltooit de migratie die toonaangevend is voor de provider #4818 door de resterende afgeschafte Python-compatibiliteitslagen te verwijderen die tijdens eerdere preview-releases beschikbaar waren gebleven.
-
agent_framework.azureexporteertAzureOpenAI*of de oudereAzureAI*agent/client/provider-interfaces niet meer. - Compatibiliteitstypen voor Python OpenAI Assistants maken geen deel meer uit van het huidige
agent_framework.openaioppervlak. - Gebruik
OpenAIChatClient,OpenAIChatCompletionClientenOpenAIEmbeddingClientvoor directe OpenAI- of Azure OpenAI-scenario's. - Gebruik
FoundryChatClientvoor deductie van Foundry-projecten enFoundryAgentvoor PromptAgents of HostedAgents. - De huidige
agent_framework.azurenaamruimte behandelt nu de resterende Azure-integraties, zoals Azure AI Zoeken, Cosmos-geschiedenis, Azure Functions en duurzame werkstromen. Foundry chat, agent, geheugen en het insluiten van clients live onderagent_framework.foundry.
Als u oudere Python-code migreert, gebruikt u deze vervangingen:
-
AzureOpenAIResponsesClientβOpenAIChatClient -
AzureOpenAIChatClientβOpenAIChatCompletionClient -
AzureOpenAIEmbeddingClientβOpenAIEmbeddingClient -
AzureAIAgentClient/AzureAIClient/AzureAIProjectAgentProvider/AzureAIAgentsProviderFoundryChatClientβ ofFoundryAgent, afhankelijk van of uw app eigenaar is van de agentdefinitie -
OpenAIAssistantsClient/OpenAIAssistantProviderOpenAIChatClientβ voor het huidige OpenAI-werk van Python ofFoundryAgentals u een door de service beheerde agent in Foundry nodig hebt
π΄ Provider-leidend clientontwerp en pakketscheiding
PR:#4818
PR #4818 herordent de Python-provider rond providerspecifieke pakketten en namespaces.
- OpenAI-clients leven nu in het
agent-framework-openaipakket, terwijl ze nog steeds vanuit deagent_framework.openainaamruimte worden geΓ―mporteerd. - Microsoft Foundry-clients wonen nu in het
agent-framework-foundrypakket en deagent_framework.foundrynaamruimte. - Foundry Local wordt ook aangeboden via
agent_framework.foundryalsFoundryLocalClient. -
OpenAIResponsesClientwordt gewijzigd inOpenAIChatClient. -
OpenAIChatClientwordt gewijzigd inOpenAIChatCompletionClient. - Clientconfiguratie is gestandaardiseerd op
model, waarbij oudere parameters, zoalsmodel_id,deployment_nameenmodel_deployment_nameworden vervangen. - Gebruik de
agent_framework.openaiclients voor nieuwe Azure OpenAI-code. De eerdereAzureOpenAI*compatibiliteitsshims zijn later verwijderd in #4990. - Gebruik voor nieuwe Foundry-code
FoundryChatClientvoor directe projectdeductie,FoundryAgentvoor Prompt Agents en HostedAgents enFoundryLocalClientvoor lokale runtimes. -
AzureAIClient,AzureAIProjectAgentProvider,AzureAIAgentClient, enAzureAIAgentsProvider, het compatibiliteitsoppervlak van de Python Assistants, zijn tijdens deze herstructurering verplaatst naar compatibiliteitspaden en zijn later verwijderd in #4990. - De voorbeelddekking is opnieuw geordend zodat deze overeenkomt met de nieuwe provider-geleide indeling, waaronder Foundry-voorbeelden onder
samples/02-agents/providers/foundry/.
Pakkettoewijzing
| Scenario | Installeren | Primaire naamruimte |
|---|---|---|
| OpenAI en Azure OpenAI | pip install agent-framework-openai |
agent_framework.openai |
| Microsoft Foundry-projecteindpunten, agentservice, geheugen en insluitingen | pip install agent-framework-foundry |
agent_framework.foundry |
| Gieterij Lokaal | pip install agent-framework-foundry-local --pre |
agent_framework.foundry |
Before:
from agent_framework.openai import OpenAIResponsesClient
client = OpenAIResponsesClient(model_id="gpt-5.4")
After:
from agent_framework.openai import OpenAIChatClient
client = OpenAIChatClient(model="gpt-5.4")
Als u Azure OpenAI eerder rechtstreeks hebt gebruikt, wijst u de oude toegewezen klassen toe aan de nieuwe, toonaangevende OpenAI-klassen:
-
AzureOpenAIResponsesClientβOpenAIChatClient -
AzureOpenAIChatClientβOpenAIChatCompletionClient -
AzureOpenAIEmbeddingClientβOpenAIEmbeddingClient -
AzureOpenAIAssistantsClientOpenAIChatClientβ voor directe api-migratie van antwoorden ofFoundryAgentals u een door de service beheerde Foundry-agent nodig hebt
De codewijziging is meestal een klassenaamverplaatsing plus deployment_name β model. Gebruik expliciete Azure-invoer voor de nieuwe OpenAI-clients voor compatibiliteit met Azure OpenAI.
credential= is nu het voorkeursoppervlak voor Azure-verificatie, terwijl een aanroepbaar api_key compatibiliteitspad blijft:
Voor (AzureOpenAIResponsesClient):
from agent_framework.azure import AzureOpenAIResponsesClient
client = AzureOpenAIResponsesClient(
endpoint=azure_endpoint,
deployment_name=deployment_name,
credential=credential,
)
Na (OpenAIChatClient):
from agent_framework.openai import OpenAIChatClient
from azure.identity import AzureCliCredential
api_version = "your-azure-openai-api-version"
client = OpenAIChatClient(
azure_endpoint=azure_endpoint,
model=deployment_name,
credential=AzureCliCredential(),
api_version=api_version,
)
Voor (AzureOpenAIChatClient):
from agent_framework.azure import AzureOpenAIChatClient
client = AzureOpenAIChatClient(
endpoint=azure_endpoint,
deployment_name=deployment_name,
credential=credential,
)
Na (OpenAIChatCompletionClient):
from agent_framework.openai import OpenAIChatCompletionClient
from azure.identity import AzureCliCredential
api_version = "your-azure-openai-api-version"
client = OpenAIChatCompletionClient(
azure_endpoint=azure_endpoint,
model=deployment_name,
credential=AzureCliCredential(),
api_version=api_version,
)
Als u wilt overstappen van Azure OpenAI-eindpunten naar een Microsoft Foundry-projecteindpunt, gebruikt u in plaats daarvan het foundry-georiΓ«nteerde oppervlak:
VΓ³Γ³r (Azure OpenAI-eindpunt):
from agent_framework.azure import AzureOpenAIResponsesClient
from azure.identity import AzureCliCredential
client = AzureOpenAIResponsesClient(
deployment_name="gpt-4.1",
credential=AzureCliCredential(),
)
Na (Foundry-project):
from agent_framework import Agent
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential
client = FoundryChatClient(
project_endpoint="https://your-project.services.ai.azure.com",
model="gpt-4.1",
credential=AzureCliCredential(),
)
agent = Agent(client=client)
Voor lokale Microsoft Foundry-runtimes gebruikt u de Foundry-naamruimte plus de lokale connector:
from agent_framework.foundry import FoundryLocalClient
client = FoundryLocalClient(model="phi-4-mini")
Als u model weglaat, stel dan FOUNDRY_LOCAL_MODEL in in uw omgeving.
Werk indien van toepassing ook omgevings-/configuratienamen bij:
- Gebruik
OPENAI_CHAT_MODELvoorOpenAIChatClient,OPENAI_CHAT_COMPLETION_MODELvoorOpenAIChatCompletionClient, metOPENAI_MODELals de gedeelde terugvaloptie. - Azure OpenAI gebruikt
AZURE_OPENAI_CHAT_MODELnu voorOpenAIChatClient,AZURE_OPENAI_CHAT_COMPLETION_MODELvoorOpenAIChatCompletionClient, enAZURE_OPENAI_MODELals de gedeelde terugval. - Gebruiken
azure_endpointvoor Azure OpenAI-resource-URL's ofbase_urlals u al een volledige.../openai/v1URL hebt en insteltapi_versionvoor het Azure OpenAI API-oppervlak dat u gebruikt - Foundry-specifieke instellingen gebruiken, zoals
FOUNDRY_PROJECT_ENDPOINT,FOUNDRY_MODELenFOUNDRY_AGENT_NAMEFOUNDRY_AGENT_VERSIONvoor cloud Foundry-clients - Gebruik
ANTHROPIC_CHAT_MODELvoor Anthropic enFOUNDRY_LOCAL_MODELvoor Foundry Local
Deze wijziging landde eerst tijdens de python-1.0.0rc6 cyclus.
π΄ Kernafhankelijkheden zijn nu opzettelijk minimalistisch
PR:#4904
PR #4904 volgt de opsplitsing van het providerpakket van #4818 door agent-framework-core te verkleinen en meer transitieve providerafhankelijkheden uit het kernpakket te verwijderen.
-
agent-framework-coreis nu opzettelijk minimaal. - Als u
agent_framework.openaiimporteert, installeert uagent-framework-openai. - Als u
agent_framework.foundryimporteert, installeertagent-framework-foundryvoor Foundry-projectinferentie, servicemanaged agents, geheugenleveranciers en embeddings. Gebruikagent-framework-foundry-local --prevoor lokale runtimes. - Als u MCP-hulpprogramma's
Agent.as_mcp_server()of andere MCP-integraties gebruikt op een minimale installatie, installeert umcp --predeze handmatig. Installeer voor WebSocket MCP-ondersteuningmcp[ws] --pre. - Als u de brede ervaring 'alles inbegrepen' wilt, installeert u het metapakket
agent-framework.
Hiermee wordt het provideroppervlak niet opnieuw ontworpen; het wijzigt wat standaard wordt geΓ―nstalleerd wanneer u alleen kernen binnenbrengt.
Voordat (core-only-installaties vaak automatisch meer providerfunctionaliteit meebrachten):
pip install agent-framework-core
Na (installeer het providerpakket dat u daadwerkelijk gebruikt):
pip install agent-framework-core
pip install agent-framework-openai
or:
pip install agent-framework-core
pip install agent-framework-foundry
Als u een bestaand project bijwerkt dat eerder afhankelijk was van core plus luie providerimport, controleert u de importbewerkingen en maakt u de providerpakketten expliciet in uw omgevings- of afhankelijkheidsbestanden. Doe hetzelfde voor MCP-afhankelijkheden als u afhankelijk bent van MCP-hulpprogramma's of MCP-serverhosting.
π΄ Algemene OpenAI-clients geven nu de voorkeur aan expliciete routeringssignalen
PR:#4925
Pull request #4925 wijzigt hoe de generieke agent_framework.openai clients een keuze maken tussen OpenAI en Azure OpenAI.
- Algemene OpenAI-clients schakelen niet langer over naar Azure omdat
AZURE_OPENAI_*er omgevingsvariabelen aanwezig zijn. - Als
OPENAI_API_KEYis geconfigureerd, blijven de algemene clients op OpenAI, tenzij u een expliciet Azure-routeringssignaal, zoalscredentialofazure_endpoint, doorgeeft. - Als er alleen
AZURE_OPENAI_*instellingen aanwezig zijn, kunnen de algemene clients nog steeds terugvallen op routering op basis van een Azure-omgeving. - Het voorkeurspatroon van Azure OpenAI is nu om expliciete Azure-instellingen door te geven plus
credential=AzureCliCredential()aanOpenAIChatClient,OpenAIChatCompletionClient, en de embedding client. - Afgeschafte
AzureOpenAI*wrappers behouden hun compatibiliteitsgedrag, zodat bestaande code op basis van wrapper niet voldoet aan de nieuwe regels voor algemene clientprioriteit.
Voor (OpenAIChatClient kan naar Azure worden gerouteerd omdat Azure-env vars aanwezig waren):
import os
from agent_framework.openai import OpenAIChatClient
os.environ["OPENAI_API_KEY"] = "sk-openai"
os.environ["AZURE_OPENAI_ENDPOINT"] = "https://your-resource.openai.azure.com"
os.environ["AZURE_OPENAI_CHAT_MODEL"] = "gpt-4o-mini"
client = OpenAIChatClient(model="gpt-4o-mini")
Nadat (generieke OpenAI op OpenAI blijft; voer expliciete Azure-gegevens in om Azure-routering af te dwingen):
import os
from agent_framework.openai import OpenAIChatClient
from azure.identity import AzureCliCredential
client = OpenAIChatClient(
model=os.environ["AZURE_OPENAI_CHAT_MODEL"],
azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
api_version=os.getenv("AZURE_OPENAI_API_VERSION"),
credential=AzureCliCredential(),
)
Als uw omgeving zowel OPENAI_* als AZURE_OPENAI_* waarden bevat, controleert u de algemene agent_framework.openai clientconstructie en maakt u de keuze voor de provider expliciet. De Azure-providervoorbeelden zijn om deze reden bijgewerkt om Azure-invoer rechtstreeks door te geven.
Azure-insluitingen volgen nu hetzelfde routeringsmodel:
import os
from agent_framework.openai import OpenAIEmbeddingClient
from azure.identity import AzureCliCredential
client = OpenAIEmbeddingClient(
model=os.environ["AZURE_OPENAI_EMBEDDING_MODEL"],
azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
api_version=os.getenv("AZURE_OPENAI_API_VERSION"),
credential=AzureCliCredential(),
)
Voor insluitingsscenario's wijst u het volgende toe:
-
AzureOpenAIEmbeddingClientβOpenAIEmbeddingClient -
AZURE_OPENAI_EMBEDDING_MODELβmodel -
OPENAI_EMBEDDING_MODELblijft de omgevingsvariabele aan de OpenAI-kant voor embedding
python-1.0.0rc5 / python-1.0.0b260319 (19 maart 2026)
π΄ Opnieuw gerangschikte chatclientpijplijn: FunctionInvocation verpakt nu ChatMiddleware
PR:#4746
De volgorde van de ChatClient-pijplijn is gewijzigd.
FunctionInvocation is nu de buitenste laag en omvat ChatMiddleware, wat betekent dat chat-middleware wordt uitgevoerd per modeloproep (inclusief elke iteratie van de aanroeplus van de tool) in plaats van één keer rond de volledige aanroepvolgorde van de functie.
Oude pijplijnvolgorde:
ChatMiddleware β FunctionInvocation β RawChatClient
Nieuwe pijplijnvolgorde:
FunctionInvocation β ChatMiddleware β ChatTelemetry β RawChatClient
Als u aangepaste chat-middleware hebt die ervan uitging dat deze slechts eenmaal per agent aanroep werd uitgevoerd (de hele aanroeplus van het hulpprogramma verpakken), werkt u deze bij zodat deze veilig is voor herhaalde uitvoering. Chat-middleware wordt nu aangeroepen voor elke afzonderlijke LLM-aanvraag, inclusief aanvragen die hulpprogrammaresultaten terugsturen naar het model.
Daarnaast is ChatTelemetry nu een aparte laag van ChatMiddleware in de pijplijn, die dichtst bij RawChatClient loopt.
π΄ Openbare runtime kwargs gesplitst in expliciete buckets
PR:#4581
Openbare Python-agent en chat-API's behandelen algemene openbare **kwargs doorsturen niet langer als het primaire mechanisme voor runtime gegevens. Runtimewaarden worden nu gesplitst op doel:
- Gebruiken
function_invocation_kwargsvoor waarden die alleen hulpprogramma's of functie-middleware moeten zien. - Gebruik
client_kwargsvoor client-laag kwargs en client-middlewareconfiguratie. - Toegang tot hulpprogramma-/runtimegegevens via
FunctionInvocationContext(ctx.kwargsenctx.session). - Definieer hulpprogramma's met een geΓ―njecteerde contextparameter in plaats van
**kwargs; geΓ―njecteerde contextparameters worden niet weergegeven in het schema dat het model ziet. - Wanneer u aan een subagent delegeert als een hulpmiddel, gebruikt u
agent.as_tool(propagate_session=True)als de onderliggende agent de sessie van de beller moet delen.
Before:
from typing import Any
from agent_framework import tool
@tool
def send_email(address: str, **kwargs: Any) -> str:
return f"Queued email for {kwargs['user_id']}"
response = await agent.run(
"Send the update to finance@example.com",
user_id="user-123",
request_id="req-789",
)
After:
from agent_framework import FunctionInvocationContext, tool
@tool
def send_email(address: str, ctx: FunctionInvocationContext) -> str:
user_id = ctx.kwargs["user_id"]
session_id = ctx.session.session_id if ctx.session else "no-session"
return f"Queued email for {user_id} in {session_id}"
response = await agent.run(
"Send the update to finance@example.com",
session=agent.create_session(),
function_invocation_kwargs={
"user_id": "user-123",
"request_id": "req-789",
},
)
Als u aangepaste openbare run() of get_response() methoden implementeert, voeg dan function_invocation_kwargs en client_kwargs toe aan die handtekeningen. Voor hulpprogramma's geeft u de voorkeur aan een parameter die is geannoteerd als FunctionInvocationContext : deze kan een naam ctxhebben, contextof een andere geannoteerde naam. Als u een expliciet schema/invoermodel opgeeft, wordt ook een ongeannoteerde parameter met de naam ctx herkend. Hetzelfde contextobject is beschikbaar voor functie-middleware en het is waar runtime-functie kwargs en sessiestatus nu live zijn. Hulpprogrammadefinities die nog steeds afhankelijk zijn van **kwargs gebruiken slechts een verouderd compatibiliteitspad en zullen worden verwijderd.
python-1.0.0rc4 / python-1.0.0b260311 (11 maart 2026)
Releaseopmerkingen:python-1.0.0rc4
π΄ Azure AI-integraties richten zich nu op azure-ai-projects 2.0 GA
PR:#4536
De Python Azure AI-integraties gaan nu uit van de GA 2.0-surface azure-ai-projects .
- Het ondersteunde afhankelijkheidsbereik is nu
azure-ai-projects>=2.0.0,<3.0. -
foundry_featurespassthrough is verwijderd uit de creatie van een Azure AI-agent. - Het preview-gedrag maakt nu gebruik van
allow_preview=Truebij de ondersteunde clients/providers. - Gemengde bèta-/GA-compatibiliteits shims zijn verwijderd. Werk daarom alle import- en type-namen bij naar de 2.0 GA SDK-interface.
π΄ GitHub Copilot-hulpprogramma-handlers gebruiken ToolInvocation / ToolResult nu en Python 3.11+
PR:#4551
agent-framework-github-copilot volgt nu github-copilot-sdk>=0.1.32.
- Toolhandlers ontvangen een
ToolInvocationgegevensklasse in plaats van een onbewerktedict. - Retourneer
ToolResultmet behulp van snake_case velden zoalsresult_typeentext_result_for_llm. - Voor het
agent-framework-github-copilotpakket is nu Python 3.11+ vereist.
Before:
from typing import Any
def handle_tool(invocation: dict[str, Any]) -> dict[str, Any]:
args = invocation.get("arguments", {})
return {
"resultType": "success",
"textResultForLlm": f"Handled {args.get('city', 'request')}",
}
After:
from copilot.tools import ToolInvocation, ToolResult
def handle_tool(invocation: ToolInvocation) -> ToolResult:
args = invocation.arguments
return ToolResult(
result_type="success",
text_result_for_llm=f"Handled {args.get('city', 'request')}",
)
python-1.0.0rc3 / python-1.0.0b260304 (4 maart 2026)
Releaseopmerkingen:python-1.0.0rc3
π΄ Vaardighedenleverancier afgerond met betrekking tot codegedefinieerde Skill / SkillResource
PR:#4387
Python Agent Skills ondersteunt nu door code gedefinieerde Skill en SkillResource objecten naast op bestanden gebaseerde vaardigheden en het oppervlak van de openbare provider wordt gestandaardiseerd op SkillsProvider.
- Als u de oudere preview/interne
FileAgentSkillsProviderversie nog steeds importeert, schakelt u over naarSkillsProvider. - Zoeken naar resources op basis van bestanden is niet langer afhankelijk van verwijzingen die tussen backticks staan bij
SKILL.md; in plaats daarvan worden resources gedetecteerd vanuit de vaardighedendirectory.
Als u preview-/interne code hebt geΓ―mporteerd met FileAgentSkillsProvider, schakel dan over naar de huidige openbare interface.
from agent_framework import Skill, SkillResource, SkillsProvider
python-1.0.0rc2 / python-1.0.0b260226 (26 februari 2026)
Releaseopmerkingen:python-1.0.0rc2
π΄Declaratieve werkstromen vervangen door InvokeToolInvokeFunctionTool
PR:#3716
Declaratieve Python-werkstromen maken niet langer gebruik van het oude InvokeTool actietype. Vervang deze door InvokeFunctionTool En registreer Python-aanroepbare bestanden door WorkflowFactory.register_tool().
Before:
actions:
- kind: InvokeTool
toolName: send_email
After:
factory = WorkflowFactory().register_tool("send_email", send_email)
actions:
- kind: InvokeFunctionTool
functionName: send_email
python-1.0.0rc1 / python-1.0.0b260219 (19 februari 2026)
Release:agent-framework-core en agent-framework-azure-ai gepromoveerd tot 1.0.0rc1. Alle andere pakketten zijn bijgewerkt naar 1.0.0b260219.
π΄ Unified Azure-referentieverwerking voor alle pakketten
PR:#4088
De ad_token-, ad_token_provider- en get_entra_auth_token-parameters/-helpers zijn vervangen door een uniform credential-parameter voor alle Azure-gerelateerde Python-pakketten. De nieuwe benadering gebruiktazure.identity.get_bearer_token_provider voor automatische caching en hernieuwing van tokens.
Betrokken klassen:AzureOpenAIChatClient, AzureOpenAIResponsesClient, , AzureOpenAIAssistantsClient, AzureAIClient, AzureAIAgentClient, AzureAIProjectAgentProvider, , AzureAIAgentsProvider, AzureAISearchContextProvider, PurviewClient. PurviewPolicyMiddlewarePurviewChatPolicyMiddleware
Before:
from azure.identity import AzureCliCredential, get_bearer_token_provider
token_provider = get_bearer_token_provider(
AzureCliCredential(), "https://cognitiveservices.azure.com/.default"
)
client = AzureOpenAIResponsesClient(
azure_ad_token_provider=token_provider,
...
)
After:
from azure.identity import AzureCliCredential
client = AzureOpenAIResponsesClient(
credential=AzureCliCredential(),
...
)
De credential parameter accepteert TokenCredential, AsyncTokenCredentialof een aanroepbare tokenprovider. Tokencaching en vernieuwing worden automatisch afgehandeld.
π΄ Opnieuw ontworpen Python-uitzonderingshiΓ«rarchie
PR:#4082
De platte ServiceException familie is vervangen door domeingebonden uitzonderingstakken onder één AgentFrameworkException basis. Dit geeft bellers nauwkeurige except doelen en duidelijke foutsemantiek.
Nieuwe hiΓ«rarchie:
AgentFrameworkException
βββ AgentException
β βββ AgentInvalidAuthException
β βββ AgentInvalidRequestException
β βββ AgentInvalidResponseException
β βββ AgentContentFilterException
βββ ChatClientException
β βββ ChatClientInvalidAuthException
β βββ ChatClientInvalidRequestException
β βββ ChatClientInvalidResponseException
β βββ ChatClientContentFilterException
βββ IntegrationException
β βββ IntegrationInitializationError
β βββ IntegrationInvalidAuthException
β βββ IntegrationInvalidRequestException
β βββ IntegrationInvalidResponseException
β βββ IntegrationContentFilterException
βββ ContentError
βββ WorkflowException
β βββ WorkflowRunnerException
β βββ WorkflowValidationError
β βββ WorkflowActionError
βββ ToolExecutionException
βββ MiddlewareTermination
βββ SettingNotFoundError
Verwijderde uitzonderingen:ServiceException, ServiceInitializationError, ServiceResponseException, ServiceContentFilterException, ServiceInvalidAuthError, ServiceInvalidExecutionSettingsError, ServiceInvalidRequestError, ServiceInvalidResponseError, AgentExecutionException, AgentInvocationError, AgentInitializationError, AgentSessionException, ChatClientInitializationError, CheckpointDecodingError
Before:
from agent_framework.exceptions import ServiceException, ServiceResponseException
try:
result = await agent.run("Hello")
except ServiceResponseException:
...
except ServiceException:
...
After:
from agent_framework.exceptions import AgentException, AgentInvalidResponseException, AgentFrameworkException
try:
result = await agent.run("Hello")
except AgentInvalidResponseException:
...
except AgentException:
...
except AgentFrameworkException:
# catch-all for any Agent Framework error
...
Opmerking
Init-validatiefouten gebruiken nu de ingebouwde ValueError/TypeError in plaats van aangepaste uitzonderingen. Agent Framework-uitzonderingen zijn gereserveerd voor fouten op domeinniveau.
π΄ Providerstaat afgebakend door source_id
PR:#3995
Provider-hooks ontvangen nu een toestandsdictionary op provider-niveau (state.setdefault(provider.source_id, {})) in plaats van de gehele sessiestatus. Dit betekent dat implementaties van providers die eerder toegang hebben tot geneste status via state[self.source_id]["key"], nu state["key"] direct moeten benaderen.
Daarnaast is de InMemoryHistoryProvider standaardinstelling source_id gewijzigd van "memory" ."in_memory"
Before:
# In a custom provider hook:
async def on_before_agent(self, state: dict, **kwargs):
my_data = state[self.source_id]["my_key"]
# InMemoryHistoryProvider default source_id
provider = InMemoryHistoryProvider("memory")
After:
# Provider hooks receive scoped state β no nested access needed:
async def on_before_agent(self, state: dict, **kwargs):
my_data = state["my_key"]
# InMemoryHistoryProvider default source_id changed
provider = InMemoryHistoryProvider("in_memory")
π΄ Chat-/agentberichten uitlijnen tijdens typen (run vs get_response)
PR:#3920
Implementaties van chat-clients get_response ontvangen nu consistent Sequence[Message].
agent.run(...) blijft flexibel (str, Content, Message of combinaties daarvan), en normaliseert invoer voordat de chatclients worden aangeroepen.
Before:
async def get_response(self, messages: str | Message | list[Message], **kwargs): ...
After:
from collections.abc import Sequence
from agent_framework import Message
async def get_response(self, messages: Sequence[Message], **kwargs): ...
π΄
FunctionTool[Any] generieke configuratie verwijderd voor schemapassthrough
PR:#3907
Hulpprogrammapaden op basis van schema's zijn niet langer afhankelijk van het vorige FunctionTool[Any] algemene gedrag.
Gebruik FunctionTool rechtstreeks en geef indien nodig een pydantic BaseModel of expliciete schema's op (bijvoorbeeld met @tool(schema=...)).
Before:
placeholder: FunctionTool[Any] = FunctionTool(...)
After:
placeholder: FunctionTool = FunctionTool(...)
π΄ Pydantic Settings vervangen door TypedDict + load_settings()
De op pydantic-settings en AFBaseSettings gebaseerde TypedDict-klasse is vervangen door een lichtgewicht systeem voor instellingen, gebaseerd op functies. De pydantic-settings afhankelijkheid is volledig verwijderd.
Alle instellingenklassen (bijvoorbeeld OpenAISettings, , AzureOpenAISettingsAnthropicSettings) zijn nu TypedDict definities en instellingenwaarden worden geopend via de syntaxis van de woordenlijst in plaats van kenmerktoegang.
Before:
from agent_framework.openai import OpenAISettings
settings = OpenAISettings() # pydantic-settings auto-loads from env
api_key = settings.api_key
model_id = settings.model_id
After:
from agent_framework.openai import OpenAISettings, load_settings
settings = load_settings(OpenAISettings, env_prefix="OPENAI_")
api_key = settings["api_key"]
model = settings["model"]
Belangrijk
Agent Framework laadt niet automatisch waarden uit .env bestanden. U moet zich expliciet aanmelden voor .env het laden door:
- Het aanroepen van
load_dotenv()vanuit het pakketpython-dotenvaan het begin van uw toepassing - Doorgeven
env_file_path=".env"aanload_settings() - Omgevingsvariabelen rechtstreeks in uw shell of IDE instellen
De load_settings resolutievolgorde is: expliciete onderdrukkingen β .env bestandswaarden (indien env_file_path opgegeven) β omgevingsvariabelen β standaardwaarden. Als u opgeeft env_file_path, moet het bestand bestaan of wordt er een FileNotFoundError gegenereerd.
π‘ De overdracht van de workflow van het redeneermodel en de serialisatie van de geschiedenis corrigeren
PR:#4083
Lost meerdere fouten op bij het gebruik van redeneringsmodellen (bijvoorbeeld gpt-5-mini, gpt-5.2) in werkstromen met meerdere agents. Redeneringsitems van de Antwoorden-API worden nu correct geserialiseerd en worden alleen opgenomen in de geschiedenis wanneer een function_call ook aanwezig is, waardoor API-fouten worden voorkomen. Versleutelde/verborgen redeneringsinhoud wordt nu correct verzonden en de summary veldindeling wordt gecorrigeerd. De service_session_id is ook gewist bij overdracht om te voorkomen dat de toestandinformatie tussen agenten lekt.
π‘ Bedrock toegevoegd aan core[all] en standaardkeuzes voor gereedschap gecorrigeerd
PR:#3953
Amazon Bedrock is nu inbegrepen in de agent-framework-core[all] extra's en is beschikbaar via de agent_framework.amazon lazy import surface. Gedrag van hulpprogrammakeuze is ook opgelost: niet-ingestelde waarden voor hulpprogramma's blijven nu niet ingesteld, zodat providers hun servicestandaarden gebruiken, terwijl expliciet ingestelde waarden behouden blijven.
from agent_framework.amazon import BedrockClient
π‘ AzureAIClient heeft gewaarschuwd voor niet-ondersteunde runtime-overschrijvingen
PR:#3919
Op het moment van deze wijziging registreerde AzureAIClient een waarschuwing wanneer runtime tools of structured_output afweek van de creatietijdconfiguratie van de agent. Dat Python-oppervlak is sindsdien verwijderd. Gebruik FoundryChatClient voor actuele Python-code wanneer u een hulpprogramma/runtimeconfiguratie in eigendom van de app nodig hebt, of OpenAIChatClient voor directe Responses API-scenario's die dynamische overschrijvingen vereisen.
π‘
workflow.as_agent() nu wordt de lokale geschiedenis standaard ingesteld wanneer providers niet zijn ingesteld
PR:#3918
Wanneer workflow.as_agent() wordt gemaakt zonder context_providers, wordt InMemoryHistoryProvider("memory") nu standaard toegevoegd.
Als contextproviders expliciet worden opgegeven, blijft die lijst ongewijzigd.
workflow_agent = workflow.as_agent(name="MyWorkflowAgent")
# Default local history provider is injected when none are provided.
π‘ OpenTelemetry-traceringscontext die naar MCP-verzoeken is doorgegeven
PR:#3780
Wanneer OpenTelemetry is geΓ―nstalleerd, wordt traceringscontext (bijvoorbeeld W3C traceparent) automatisch geΓ―njecteerd in MCP-aanvragen via params._meta. Dit maakt end-to-end gedistribueerde tracering mogelijk voor agent-β MCP-serveroproepen. Er zijn geen codewijzigingen nodig. Dit is additief gedrag dat wordt geactiveerd wanneer er een geldige spancontext bestaat.
π‘ Ondersteuning voor duurzame werkstromen voor Azure Functions
PR:#3630
Het agent-framework-azurefunctions pakket ondersteunt nu het uitvoeren Workflow van grafieken in Azure Durable Functions. Geef een workflow parameter door aan AgentFunctionApp om agententiteiten, activiteitsfuncties en HTTP-eindpunten automatisch te registreren.
from agent_framework.azurefunctions import AgentFunctionApp
app = AgentFunctionApp(workflow=my_workflow)
# Automatically registers:
# POST /api/workflow/run β start a workflow
# GET /api/workflow/status/{id} β check status
# POST /api/workflow/respond/{id}/{requestId} β HITL response
Ondersteunt fan-out-/fan-in-, gedeelde status- en human-in-the-loop patronen met configureerbare time-out en automatische afwijzing bij het verlopen.
python-1.0.0b260212 (12 februari 2026)
Releaseopmerkingen:python-1.0.0b260212
π΄
Hosted*Toolklassen vervangen door clientmethoden get_*_tool()
PR:#3634
De gehoste hulpprogrammaklassen zijn verwijderd ten gunste van clientspecifieke factorymethoden. Hierdoor is de beschikbaarheid van hulpprogramma's expliciet per provider.
| Klasse verwijderd | Replacement |
|---|---|
HostedCodeInterpreterTool |
client.get_code_interpreter_tool() |
HostedWebSearchTool |
client.get_web_search_tool() |
HostedFileSearchTool |
client.get_file_search_tool(...) |
HostedMCPTool |
client.get_mcp_tool(...) |
HostedImageGenerationTool |
client.get_image_generation_tool(...) |
Before:
from agent_framework import HostedCodeInterpreterTool, HostedWebSearchTool
tools = [HostedCodeInterpreterTool(), HostedWebSearchTool()]
After:
from agent_framework.openai import OpenAIResponsesClient
client = OpenAIResponsesClient()
tools = [client.get_code_interpreter_tool(), client.get_web_search_tool()]
π΄ Pijplijn van sessie-/contextprovider is voltooid (AgentSession, context_providers)
PR:#3850
De migratie van de Python-sessie en contextprovider is voltooid.
AgentThread en de oude typen contextprovider zijn verwijderd.
-
AgentThreadβAgentSession -
agent.get_new_thread()βagent.create_session() -
agent.get_new_thread(service_thread_id=...)βagent.get_session(service_session_id=...) -
context_provider=/chat_message_store_factory=patronen worden vervangen doorcontext_providers=[...] -
ChatMessageStoreis verwijderd. GebruikHistoryProvider(ofInMemoryHistoryProvidervoor de standaardcase in het geheugen), beide geΓ«xporteerd uitagent_framework. Als er geen contextprovider wordt doorgegeven, injecteert de agent automatischInMemoryHistoryProvider.
Before:
thread = agent.get_new_thread()
response = await agent.run("Hello", thread=thread)
After:
session = agent.create_session()
response = await agent.run("Hello", session=session)
π΄ Controlepuntmodel en opslaggedrag geherstructureerd
PR:#3744
Controlepunt-internals zijn opnieuw ontworpen, wat van invloed is op persistente compatibiliteit van controlepunten en aangepaste opslag-implementaties:
-
WorkflowCheckpointslaat nu live-objecten op (serialisatie vindt plaats in controlepuntopslag) -
FileCheckpointStoragemaakt nu gebruik van pickle serialisatie -
workflow_idis verwijderd enprevious_checkpoint_idis toegevoegd - Afgeschafte controlepunthaken zijn verwijderd
Als u controlepunten tussen versies persistent maakt, genereert of migreert u bestaande controlepuntartefacten voordat u werkstromen hervat.
π‘ Foundry-projecteindpunten die oorspronkelijk via AzureOpenAIResponsesClient zijn verschenen
PR:#3814
Met deze preview-mogelijkheid kon AzureOpenAIResponsesClient oorspronkelijk verbinding worden gemaakt met Foundry-projecteindpunten. De huidige Python-richtlijnen gebruiken FoundryChatClient voor afleiding van Foundry-projecten of FoundryAgent voor door de service beheerde Foundry-agents in plaats van de verwijderde AzureOpenAIResponsesClient.
from azure.identity import DefaultAzureCredential
from agent_framework.foundry import FoundryChatClient
client = FoundryChatClient(
project_endpoint="https://<your-project>.services.ai.azure.com",
model="gpt-4o-mini",
credential=DefaultAzureCredential(),
)
π΄ Middleware call_next accepteert niet meer context
PR:#3829
Middleware voortzetting heeft nu geen argumenten. Als uw middleware nog steeds aanroept call_next(context), werkt u deze bij naar call_next().
Before:
async def telemetry_middleware(context, call_next):
# ...
return await call_next(context)
After:
async def telemetry_middleware(context, call_next):
# ...
return await call_next()
python-1.0.0b260210 (10 februari 2026)
Opmerkingen bij de release:python-1.0.0b260210
π΄ Workflow-factorymethoden verwijderd uit WorkflowBuilder
PR:#3781
register_executor() en register_agent() zijn verwijderd uit WorkflowBuilder. Alle opbouwmethoden (add_edge, add_fan_out_edges, add_fan_in_edges, add_chain, , add_switch_case_edge_group) add_multi_selection_edge_groupen start_executor accepteren geen tekenreeksnamen meer , ze vereisen rechtstreeks uitvoerders of agentexemplaren.
Voor de isolatie van de toestand omvat u de instantiΓ«ring van uitvoerders/agenten en de opbouw van werkstromen in een helpermethode, zodat elke aanroep nieuwe exemplaren produceert.
WorkflowBuilder met taakuitvoerders
Before:
workflow = (
WorkflowBuilder(start_executor="UpperCase")
.register_executor(lambda: UpperCaseExecutor(id="upper"), name="UpperCase")
.register_executor(lambda: ReverseExecutor(id="reverse"), name="Reverse")
.add_edge("UpperCase", "Reverse")
.build()
)
After:
upper = UpperCaseExecutor(id="upper")
reverse = ReverseExecutor(id="reverse")
workflow = WorkflowBuilder(start_executor=upper).add_edge(upper, reverse).build()
WorkflowBuilder met agents
Before:
builder = WorkflowBuilder(start_executor="writer_agent")
builder.register_agent(factory_func=create_writer_agent, name="writer_agent")
builder.register_agent(factory_func=create_reviewer_agent, name="reviewer_agent")
builder.add_edge("writer_agent", "reviewer_agent")
workflow = builder.build()
After:
writer_agent = create_writer_agent()
reviewer_agent = create_reviewer_agent()
workflow = WorkflowBuilder(start_executor=writer_agent).add_edge(writer_agent, reviewer_agent).build()
Statusisolatie met helpermethoden
Voor werkstromen die een geΓ―soleerde staat per aanroep nodig hebben, omhul de constructie met een hulpmethode.
def create_workflow() -> Workflow:
"""Each call produces fresh executor instances with independent state."""
upper = UpperCaseExecutor(id="upper")
reverse = ReverseExecutor(id="reverse")
return WorkflowBuilder(start_executor=upper).add_edge(upper, reverse).build()
workflow_a = create_workflow()
workflow_b = create_workflow()
π΄
ChatAgent hernoemd naar Agent, ChatMessage hernoemd naar Message
PR:#3747
Python-kerntypen zijn vereenvoudigd door het redundante Chat voorvoegsel te verwijderen. Er zijn geen achterwaartse compatibiliteitsaliassen opgegeven.
| Voordat | Na |
|---|---|
ChatAgent |
Agent |
RawChatAgent |
RawAgent |
ChatMessage |
Message |
ChatClientProtocol |
SupportsChatGetResponse |
Importbewerkingen bijwerken
Before:
from agent_framework import ChatAgent, ChatMessage
After:
from agent_framework import Agent, Message
Typeverwijzingen bijwerken
Before:
agent = ChatAgent(
chat_client=client,
name="assistant",
instructions="You are a helpful assistant.",
)
message = ChatMessage(role="user", contents=[Content.from_text("Hello")])
After:
agent = Agent(
client=client,
name="assistant",
instructions="You are a helpful assistant.",
)
message = Message(role="user", contents=[Content.from_text("Hello")])
Opmerking
ChatClient, ChatResponseen ChatOptions worden niet hernoemd door deze wijziging.
π΄ Typen API-beoordelingsupdates voor antwoord-/berichtmodellen
PR:#3647
Deze release bevat een brede, ingrijpende opschoning van het typen van berichten/antwoorden en helper-API's.
-
RoleenFinishReasonzijn nuNewTypewrappers overstrmetRoleLiteral/FinishReasonLiteralvoor bekende waarden. Behandel ze als tekenreeksen (geen.valuegebruik). -
Messageconstructie is gestandaardiseerd opMessage(role, contents=[...]); tekenreeksen incontentsworden automatisch geconverteerd naar tekstinhoud. -
ChatResponseenAgentResponseconstructors centreren nu opmessages=(enkelMessageof reeks); het gebruik van de legacytext=constructor is verwijderd uit de antwoorden. -
ChatResponseUpdateenAgentResponseUpdateaccepteren niet langertext=; gebruikcontents=[Content.from_text(...)]. - Het combineren van helpernamen is vereenvoudigd.
-
try_parse_valueis verwijderd uitChatResponseenAgentResponse.
Naam van helpermethode wijzigen
| Voordat | Na |
|---|---|
ChatResponse.from_chat_response_updates(...) |
ChatResponse.from_updates(...) |
ChatResponse.from_chat_response_generator(...) |
ChatResponse.from_update_generator(...) |
AgentResponse.from_agent_run_response_updates(...) |
AgentResponse.from_updates(...) |
Update reactie-updateconstructie
Before:
update = AgentResponseUpdate(text="Processing...", role="assistant")
After:
from agent_framework import AgentResponseUpdate, Content
update = AgentResponseUpdate(
contents=[Content.from_text("Processing...")],
role="assistant",
)
Vervangen try_parse_value door try/except aan .value
Before:
if parsed := response.try_parse_value(MySchema):
print(parsed.name)
After:
from pydantic import ValidationError
try:
parsed = response.value
if parsed:
print(parsed.name)
except ValidationError as err:
print(f"Validation failed: {err}")
π΄ GeΓ―ntegreerd run/get_response model en ResponseStream gebruik
PR:#3379
Python-API's zijn geconsolideerd rond agent.run(...) en client.get_response(...), met streaming vertegenwoordigd door ResponseStream.
Before:
async for update in agent.run_stream("Hello"):
print(update)
After:
stream = agent.run("Hello", stream=True)
async for update in stream:
print(update)
π΄ Hernoemen van kerncontext/protocoltypen
| Voordat | Na |
|---|---|
AgentRunContext |
AgentContext |
AgentProtocol |
SupportsAgentRun |
Werk de imports en type-aantekeningen dienovereenkomstig bij.
π΄ De naam van de vervolgparameter Middleware is gewijzigd in call_next
PR:#3735
Middlewarehandtekeningen moeten nu worden gebruikt call_next in plaats van next.
Before:
async def my_middleware(context, next):
return await next(context)
After:
async def my_middleware(context, call_next):
return await call_next(context)
π΄ Gestandaardiseerde TypeVar-namen (TName β NameT)
PR:#3770
De codebase volgt nu een consistente TypeVar-naamgevingsstijl waarbij achtervoegsel T wordt gebruikt.
Before:
TMessage = TypeVar("TMessage")
After:
MessageT = TypeVar("MessageT")
Als u aangepaste wrappers onderhoudt rond framework-generics, kunt u de lokale TypeVar-namen uitlijnen met de nieuwe conventie om het verloop van aantekeningen te verminderen.
π΄ Uitvoer- en streamingwijzigingen van werkstroom als agent
PR:#3649
workflow.as_agent() gedrag is bijgewerkt om uitvoer en streaming uit te lijnen met standaard reactiepatronen van agents. Controleer de gebruikers van werkstroom als agent die afhankelijk zijn van verouderde uitvoer-/updateafhandeling en werk ze bij naar de huidige AgentResponse/AgentResponseUpdate stroom.
π΄ Fluent Builder-methoden verplaatst naar constructorparameters
PR:#3693
Vloeiende methoden met enkele configuratie tussen 6 opbouwers (WorkflowBuilder, SequentialBuilder, ConcurrentBuilder, GroupChatBuilder, MagenticBuilder, HandoffBuilder) zijn gemigreerd naar constructorparameters. Fluent-methoden die het enige configuratiepad voor een instelling waren, worden verwijderd ten gunste van constructorargumenten.
WorkflowBuilder
set_start_executor(), with_checkpointing()en with_output_from() worden verwijderd. Gebruik in plaats daarvan constructorparameters.
Before:
upper = UpperCaseExecutor(id="upper")
reverse = ReverseExecutor(id="reverse")
workflow = (
WorkflowBuilder(start_executor=upper)
.add_edge(upper, reverse)
.set_start_executor(upper)
.with_checkpointing(storage)
.build()
)
After:
upper = UpperCaseExecutor(id="upper")
reverse = ReverseExecutor(id="reverse")
workflow = (
WorkflowBuilder(start_executor=upper, checkpoint_storage=storage)
.add_edge(upper, reverse)
.build()
)
SequentialBuilder / ConcurrentBuilder
participants(), register_participants(), with_checkpointing()en with_intermediate_outputs() worden verwijderd. Gebruik in plaats daarvan constructorparameters.
Before:
workflow = SequentialBuilder().participants([agent_a, agent_b]).with_checkpointing(storage).build()
After:
workflow = SequentialBuilder(participants=[agent_a, agent_b], checkpoint_storage=storage).build()
GroupChatBuilder
participants(), , register_participants()with_orchestrator(), with_termination_condition(), , with_max_rounds()en with_checkpointing()with_intermediate_outputs() worden verwijderd. Gebruik in plaats daarvan constructorparameters.
Before:
workflow = (
GroupChatBuilder()
.with_orchestrator(selection_func=selector)
.participants([agent1, agent2])
.with_termination_condition(lambda conv: len(conv) >= 4)
.with_max_rounds(10)
.build()
)
After:
workflow = GroupChatBuilder(
participants=[agent1, agent2],
selection_func=selector,
termination_condition=lambda conv: len(conv) >= 4,
max_rounds=10,
).build()
MagenticBuilder
participants(), , register_participants()with_manager(), with_plan_review(), , en with_checkpointing()with_intermediate_outputs()worden verwijderd. Gebruik in plaats daarvan constructorparameters.
Before:
workflow = (
MagenticBuilder()
.participants([researcher, coder])
.with_manager(agent=manager_agent)
.with_plan_review()
.build()
)
After:
workflow = MagenticBuilder(
participants=[researcher, coder],
manager_agent=manager_agent,
enable_plan_review=True,
).build()
HandoffBuilder
with_checkpointing() en with_termination_condition() worden verwijderd. Gebruik in plaats daarvan constructorparameters.
Before:
workflow = (
HandoffBuilder(participants=[triage, specialist])
.with_start_agent(triage)
.with_termination_condition(lambda conv: len(conv) > 5)
.with_checkpointing(storage)
.build()
)
After:
workflow = (
HandoffBuilder(
participants=[triage, specialist],
termination_condition=lambda conv: len(conv) > 5,
checkpoint_storage=storage,
)
.with_start_agent(triage)
.build()
)
Validatiewijzigingen
-
WorkflowBuildervereiststart_executornu als constructorargument (eerder ingesteld via fluent-methode) -
SequentialBuilder,ConcurrentBuilder,GroupChatBuilder, enMagenticBuildervereisen nu op bouwtijd ofwelparticipantsofparticipant_factoriesβ het doorgeven van geen van beide resulteert inValueError
Opmerking
HandoffBuilder accepteerde participants/participant_factories al als constructorparameters en is hierin niet veranderd.
π΄ Werkstroomgebeurtenissen geΓ―ntegreerd in één WorkflowEvent met type discriminator
PR:#3690
Alle subklassen voor afzonderlijke werkstroomgebeurtenissen zijn vervangen door één algemene WorkflowEvent[DataT] klasse. In plaats van controles te gebruiken isinstance() om gebeurtenistypen te identificeren, controleert u nu de event.type letterlijke tekenreeks (bijvoorbeeld "output", "request_info", ). "status" Dit volgt hetzelfde patroon als de Content klasseconsolidatie van python-1.0.0b260123.
Gebeurtenisklassen verwijderd
De volgende geΓ«xporteerde gebeurtenissubklassen bestaan niet meer:
| Oude klas | Nieuwe event.type waarde |
|---|---|
WorkflowOutputEvent |
"output" |
RequestInfoEvent |
"request_info" |
WorkflowStatusEvent |
"status" |
WorkflowStartedEvent |
"started" |
WorkflowFailedEvent |
"failed" |
ExecutorInvokedEvent |
"executor_invoked" |
ExecutorCompletedEvent |
"executor_completed" |
ExecutorFailedEvent |
"executor_failed" |
SuperStepStartedEvent |
"superstep_started" |
SuperStepCompletedEvent |
"superstep_completed" |
Importbewerkingen bijwerken
Before:
from agent_framework import (
WorkflowOutputEvent,
RequestInfoEvent,
WorkflowStatusEvent,
ExecutorCompletedEvent,
)
After:
from agent_framework import WorkflowEvent
# Individual event classes no longer exist; use event.type to discriminate
Gebeurtenistypecontroles bijwerken
Before:
async for event in workflow.run_stream(input_message):
if isinstance(event, WorkflowOutputEvent):
print(f"Output from {event.executor_id}: {event.data}")
elif isinstance(event, RequestInfoEvent):
requests[event.request_id] = event.data
elif isinstance(event, WorkflowStatusEvent):
print(f"Status: {event.state}")
After:
async for event in workflow.run_stream(input_message):
if event.type == "output":
print(f"Output from {event.executor_id}: {event.data}")
elif event.type == "request_info":
requests[event.request_id] = event.data
elif event.type == "status":
print(f"Status: {event.state}")
Streamen met AgentResponseUpdate
Before:
from agent_framework import AgentResponseUpdate, WorkflowOutputEvent
async for event in workflow.run_stream("Write a blog post about AI agents."):
if isinstance(event, WorkflowOutputEvent) and isinstance(event.data, AgentResponseUpdate):
print(event.data, end="", flush=True)
elif isinstance(event, WorkflowOutputEvent):
print(f"Final output: {event.data}")
After:
from agent_framework import AgentResponseUpdate
async for event in workflow.run_stream("Write a blog post about AI agents."):
if event.type == "output" and isinstance(event.data, AgentResponseUpdate):
print(event.data, end="", flush=True)
elif event.type == "output":
print(f"Final output: {event.data}")
Aantekeningen typen
Before:
pending_requests: list[RequestInfoEvent] = []
output: WorkflowOutputEvent | None = None
After:
from typing import Any
from agent_framework import WorkflowEvent
pending_requests: list[WorkflowEvent[Any]] = []
output: WorkflowEvent | None = None
Opmerking
WorkflowEvent is algemeen (WorkflowEvent[DataT]), maar voor verzamelingen van gemengde gebeurtenissen, gebruik WorkflowEvent[Any] of niet-geparameteriseerde WorkflowEvent.
π΄
workflow.send_responses* Verwijderd; Gebruiken workflow.run(responses=...)
PR:#3720
send_responses() en send_responses_streaming() zijn verwijderd uit Workflow. Doorgaan met onderbroken werkstromen door reacties rechtstreeks door te geven aan run().
Before:
async for event in workflow.send_responses_streaming(
checkpoint_id=checkpoint_id,
responses=[approved_response],
):
...
After:
async for event in workflow.run(
checkpoint_id=checkpoint_id,
responses=[approved_response],
):
...
π΄
SharedState hernoemd naar State; werkstroomstatus-API's zijn synchroon
PR:#3667
Status-API's zijn niet meer vereist awaiten naamgeving is gestandaardiseerd:
| Voordat | Na |
|---|---|
ctx.shared_state |
ctx.state |
await ctx.get_shared_state("k") |
ctx.get_state("k") |
await ctx.set_shared_state("k", v) |
ctx.set_state("k", v) |
checkpoint.shared_state |
checkpoint.state |
π΄ Orchestration builders verplaatst naar agent_framework.orchestrations
PR:#3685
Orchestration builders bevinden zich nu in een toegewezen pakketnaamruimte.
Before:
from agent_framework import SequentialBuilder, GroupChatBuilder
After:
from agent_framework.orchestrations import SequentialBuilder, GroupChatBuilder
π‘ Langlopende achtergrondantwoorden en vervolgtokens
PR:#3808
Achtergrondantwoorden worden nu ondersteund voor Python-agent wordt uitgevoerd door options={"background": True} en continuation_token.
response = await agent.run("Long task", options={"background": True})
while response.continuation_token is not None:
response = await agent.run(options={"continuation_token": response.continuation_token})
π‘ Preview-typen voor sessie-/contextleverancier naast elkaar toegevoegd
PR:#3763
Er zijn nieuwe typen sessie-/contextpijplijnen geΓ―ntroduceerd naast verouderde API's voor incrementele migratie, waaronder SessionContext en BaseContextProvider.
π‘ Code-interpreter-streaming bevat nu incrementele code-deltaβs
PR:#3775
Streamingcode-interpreter voert nu delta-updates voor surfacecode uit in de gestreamde inhoud, zodat UIs gegenereerde code progressief kan weergeven.
π‘
@tool biedt ondersteuning voor expliciete verwerking van schema's
PR:#3734
Hulpprogrammadefinities kunnen nu expliciete schemaafhandeling gebruiken wanneer uitgestelde schema-uitvoer moet worden aangepast.
python-1.0.0b260130 (30 januari 2026)
Releaseopmerkingen:python-1.0.0b260130
π‘
ChatOptions en ChatResponse/AgentResponse nu generiek ten aanzien van antwoordformaat
PR:#3305
ChatOptions, ChatResponseen AgentResponse zijn nu algemene typen die worden geparameteriseerd door het type antwoordindeling. Dit maakt een betere typedeductie mogelijk bij het gebruik van gestructureerde uitvoer met response_format.
Before:
from agent_framework import ChatOptions, ChatResponse
from pydantic import BaseModel
class MyOutput(BaseModel):
name: str
score: int
options: ChatOptions = {"response_format": MyOutput} # No type inference
response: ChatResponse = await client.get_response("Query", options=options)
result = response.value # Type: Any
After:
from agent_framework import ChatOptions, ChatResponse
from pydantic import BaseModel
class MyOutput(BaseModel):
name: str
score: int
options: ChatOptions[MyOutput] = {"response_format": MyOutput} # Generic parameter
response: ChatResponse[MyOutput] = await client.get_response("Query", options=options)
result = response.value # Type: MyOutput | None (inferred!)
Aanbeveling
Dit is een niet-brekende verbetering. Bestaande code zonder typeparameters blijft werken. U hoeft de typen in het bovenstaande codefragment niet op te geven voor de opties en het antwoord; ze worden hier ter duidelijkheid weergegeven.
π‘
BaseAgent ondersteuning toegevoegd voor Claude Agent SDK
PR:#3509
De Python SDK bevat nu een BaseAgent implementatie voor de Claude Agent SDK, waarmee hoogwaardig adapter-gebaseerd gebruik in het Agent Framework mogelijk wordt gemaakt.
python-1.0.0b260128 (28 januari 2026)
Releaseopmerkingen:python-1.0.0b260128
π΄
AIFunction hernoemd naar FunctionTool en @ai_function hernoemd naar @tool
PR:#3413
De klasse en decorator zijn hernoemd om duidelijkheid en consistentie met industrie-terminologie te bevorderen.
Before:
from agent_framework.core import ai_function, AIFunction
@ai_function
def get_weather(city: str) -> str:
"""Get the weather for a city."""
return f"Weather in {city}: Sunny"
# Or using the class directly
func = AIFunction(get_weather)
After:
from agent_framework.core import tool, FunctionTool
@tool
def get_weather(city: str) -> str:
"""Get the weather for a city."""
return f"Weather in {city}: Sunny"
# Or using the class directly
func = FunctionTool(get_weather)
π΄ Factory-patroon toegevoegd aan GroupChat en Magentic; API-namen wijzigen
PR:#3224
De deelnemers-factory en orchestrator-factory toegevoegd aan de groepschat. Bevat ook hernoemingen:
-
with_standard_managerβwith_manager -
participant_factoriesβregister_participant
Before:
from agent_framework.workflows import MagenticBuilder
builder = MagenticBuilder()
builder.with_standard_manager(manager)
builder.participant_factories(factory1, factory2)
After:
from agent_framework.workflows import MagenticBuilder
builder = MagenticBuilder()
builder.with_manager(manager)
builder.register_participant(factory1)
builder.register_participant(factory2)
π΄
Github hernoemd in GitHub
PR:#3486
Klassen- en pakketnamen zijn bijgewerkt om de juiste behuizing te gebruiken.
Before:
from agent_framework_github_copilot import GithubCopilotAgent
agent = GithubCopilotAgent(...)
After:
from agent_framework_github_copilot import GitHubCopilotAgent
agent = GitHubCopilotAgent(...)
python-1.0.0b260127 (27 januari 2026)
Releaseopmerkingen:python-1.0.0b260127
π‘
BaseAgent ondersteuning toegevoegd voor GitHub Copilot SDK
PR:#3404
De Python SDK bevat nu een BaseAgent implementatie voor GitHub Copilot SDK-integraties.
python-1.0.0b260123 (23 januari 2026)
Releaseopmerkingen:python-1.0.0b260123
π΄ Inhoudstypen vereenvoudigd tot één klasse met classmethod-constructors
PR:#3252
Alle oude inhoudstypen (afgeleid van BaseContent) vervangen door één Content klasse door klassemethods om specifieke typen te maken.
Volledige migratiereferentie
| Oud type | Nieuwe methode |
|---|---|
TextContent(text=...) |
Content.from_text(text=...) |
DataContent(data=..., media_type=...) |
Content.from_data(data=..., media_type=...) |
UriContent(uri=..., media_type=...) |
Content.from_uri(uri=..., media_type=...) |
ErrorContent(message=...) |
Content.from_error(message=...) |
HostedFileContent(file_id=...) |
Content.from_hosted_file(file_id=...) |
FunctionCallContent(name=..., arguments=..., call_id=...) |
Content.from_function_call(name=..., arguments=..., call_id=...) |
FunctionResultContent(call_id=..., result=...) |
Content.from_function_result(call_id=..., result=...) |
FunctionApprovalRequestContent(...) |
Content.from_function_approval_request(...) |
FunctionApprovalResponseContent(...) |
Content.from_function_approval_response(...) |
Aanvullende nieuwe methoden (geen directe voorafgaande methode):
-
Content.from_text_reasoning(...)β Voor redenering/denkende inhoud -
Content.from_hosted_vector_store(...)β Voor vectoropslagverwijzingen -
Content.from_usage(...)β Voor gebruiks-/tokengegevens -
Content.from_mcp_server_tool_call(...)/Content.from_mcp_server_tool_result(...)β Voor MCP-serverhulpprogramma's -
Content.from_code_interpreter_tool_call(...)/Content.from_code_interpreter_tool_result(...)β Voor code-interpreter -
Content.from_image_generation_tool_call(...)/Content.from_image_generation_tool_result(...)β Voor beeldgeneratie
Typecontrole
Gebruik in plaats van isinstance() controles de type eigenschap:
Before:
from agent_framework.core import TextContent, FunctionCallContent
if isinstance(content, TextContent):
print(content.text)
elif isinstance(content, FunctionCallContent):
print(content.name)
After:
from agent_framework.core import Content
if content.type == "text":
print(content.text)
elif content.type == "function_call":
print(content.name)
Basisvoorbeeld
Before:
from agent_framework.core import TextContent, DataContent, UriContent
text = TextContent(text="Hello world")
data = DataContent(data=b"binary", media_type="application/octet-stream")
uri = UriContent(uri="https://example.com/image.png", media_type="image/png")
After:
from agent_framework.core import Content
text = Content.from_text("Hello world")
data = Content.from_data(data=b"binary", media_type="application/octet-stream")
uri = Content.from_uri(uri="https://example.com/image.png", media_type="image/png")
π΄ Aantekeningstypen vereenvoudigd tot Annotation en TextSpanRegion TypedDicts
PR:#3252
Annotatietypen op basis van klassen zijn vervangen door eenvoudigere TypedDict definities.
| Oud type | Nieuw type |
|---|---|
CitationAnnotation (klasse) |
Annotation (TypedDict met type="citation") |
BaseAnnotation (klasse) |
Annotation (TypedDict) |
TextSpanRegion (klasse met SerializationMixin) |
TextSpanRegion (TypedDict) |
Annotations (type-alias) |
Annotation |
AnnotatedRegions (type-alias) |
TextSpanRegion |
Before:
from agent_framework import CitationAnnotation, TextSpanRegion
region = TextSpanRegion(start_index=0, end_index=25)
citation = CitationAnnotation(
annotated_regions=[region],
url="https://example.com/source",
title="Source Title"
)
After:
from agent_framework import Annotation, TextSpanRegion
region: TextSpanRegion = {"start_index": 0, "end_index": 25}
citation: Annotation = {
"type": "citation",
"annotated_regions": [region],
"url": "https://example.com/source",
"title": "Source Title"
}
Opmerking
Aangezien Annotation en TextSpanRegion nu TypedDicts zijn, maakt u ze als woordenlijsten in plaats van klasse-exemplaren.
π΄
response_format validatiefouten zijn nu zichtbaar voor gebruikers
PR:#3274
ChatResponse.value en AgentResponse.value werpen nu ValidationError wanneer schemavalidatie mislukt in plaats van stilzwijgend None terug te geven.
Before:
response = await agent.run(query, options={"response_format": MySchema})
if response.value: # Returns None on validation failure - no error details
print(response.value.name)
After:
from pydantic import ValidationError
# Option 1: Catch validation errors
try:
print(response.value.name) # Raises ValidationError on failure
except ValidationError as e:
print(f"Validation failed: {e}")
# Option 2: Safe parsing (returns None on failure)
if result := response.try_parse_value(MySchema):
print(result.name)
π΄ AG-UI logica vereenvoudigd uitvoeren; MCP- en Antropische clientoplossingen
PR:#3322
De run methodehandtekening en het gedrag in AG-UI is vereenvoudigd.
Before:
from agent_framework.ag_ui import AGUIEndpoint
endpoint = AGUIEndpoint(agent=agent)
result = await endpoint.run(
request=request,
run_config={"streaming": True, "timeout": 30}
)
After:
from agent_framework.ag_ui import AGUIEndpoint
endpoint = AGUIEndpoint(agent=agent)
result = await endpoint.run(
request=request,
streaming=True,
timeout=30
)
π‘ Antropic client ondersteunt response_format nu gestructureerde uitvoer
PR:#3301
U kunt nu gestructureerde uitvoer parseren met antropische clients via response_format, vergelijkbaar met OpenAI- en Azure-clients.
π‘ Uitgebreide Azure AI-configuratie (reasoning, rai_config)
Azure AI-ondersteuning is uitgebreid met ondersteuning voor redeneringsconfiguratie en rai_config tijdens het maken van de agent.
python-1.0.0b260116 (16 januari 2026)
Releaseopmerkingen:python-1.0.0b260116
π΄
create_agent hernoemd in as_agent
PR:#3249
De methode is hernoemd voor een betere duidelijkheid over het doel.
Before:
from agent_framework.core import ChatClient
client = ChatClient(...)
agent = client.create_agent()
After:
from agent_framework.core import ChatClient
client = ChatClient(...)
agent = client.as_agent()
π΄
WorkflowOutputEvent.source_executor_id hernoemd in executor_id
PR:#3166
De eigenschap is hernoemd voor API-consistentie.
Before:
async for event in workflow.run_stream(...):
if isinstance(event, WorkflowOutputEvent):
executor = event.source_executor_id
After:
async for event in workflow.run_stream(...):
if isinstance(event, WorkflowOutputEvent):
executor = event.executor_id
π‘ AG-UI ondersteunt door de service beheerde sessiecontinuΓ―teit
PR:#3136
AG-UI behoudt nu de door de service beheerde gespreksidentiteit (bijvoorbeeld door Foundry beheerde sessies/threads) om continuΓ―teit over meerdere beurten heen te behouden.
python-1.0.0b260114 (14 januari 2026)
Releaseopmerkingen:python-1.0.0b260114
π΄ Indelingen geherstructureerd
PR:#3023
Uitgebreide herstructurering en vereenvoudiging van indelingen in Agent Framework-werkstromen:
-
Groepschat: Splits de orkestrator-executor op in een toegewijde agent-gebaseerde en functie-gebaseerde (
BaseGroupChatOrchestrator,GroupChatOrchestrator,AgentBasedGroupChatOrchestrator). Vereenvoudigd tot stertopologie met uitzendmodel. -
Handoff: Ondersteuning voor één enkele laag, coârdinator en aangepaste uitvoerder is verwijderd. Overgestapt naar broadcastmodel met
HandoffAgentExecutor. -
SequentiΓ«le & gelijktijdige: vereenvoudigde aanvraaginformatiemechanisme om te vertrouwen op subwerkstromen via
AgentApprovalExecutorenAgentRequestInfoExecutor.
Before:
from agent_framework.workflows import GroupChat, HandoffOrchestrator
# Group chat with custom coordinator
group = GroupChat(
participants=[agent1, agent2],
coordinator=my_coordinator
)
# Handoff with single tier
handoff = HandoffOrchestrator(
agents=[agent1, agent2],
tier="single"
)
After:
from agent_framework.workflows import (
GroupChatOrchestrator,
HandoffAgentExecutor,
AgentApprovalExecutor
)
# Group chat with star topology
group = GroupChatOrchestrator(
participants=[agent1, agent2]
)
# Handoff with executor-based approach
handoff = HandoffAgentExecutor(
agents=[agent1, agent2]
)
π΄ Opties die zijn geΓ―ntroduceerd als TypedDict en Generic
PR:#3140
Opties worden nu getypt met gebruik van TypedDict voor betere typeveiligheid en automatische aanvulling in de IDE.
π Zie de handleiding voor getypte opties voor volledige migratie-instructies.
Before:
response = await client.get_response(
"Hello!",
model_id="gpt-4",
temperature=0.7,
max_tokens=1000,
)
After:
response = await client.get_response(
"Hello!",
options={
"model": "gpt-4",
"temperature": 0.7,
"max_tokens": 1000,
},
)
π΄
display_name verwijderd; context_provider omzetten naar enkelvoud; middleware moet in de vorm van een lijst zijn
PR:#3139
-
display_nameparameter verwijderd uit agents -
context_providers(meervoud, acceptatielijst) gewijzigd incontext_provider(enkelvoud, slechts 1 toegestaan) -
middlewarevereist nu een lijst (accepteert geen enkele instantie meer) -
AggregateContextProviderverwijderd uit code (gebruik indien nodig voorbeeld-implementatie)
Before:
from agent_framework.core import Agent, AggregateContextProvider
agent = Agent(
name="my-agent",
display_name="My Agent",
context_providers=[provider1, provider2],
middleware=my_middleware, # single instance was allowed
)
aggregate = AggregateContextProvider([provider1, provider2])
After:
from agent_framework.core import Agent
# Only one context provider allowed; combine manually if needed
agent = Agent(
name="my-agent", # display_name removed
context_provider=provider1, # singular, only 1
middleware=[my_middleware], # must be a list now
)
# For multiple context providers, create your own aggregate
class MyAggregateProvider:
def __init__(self, providers):
self.providers = providers
# ... implement aggregation logic
π΄
AgentRunResponse* hernoemd in AgentResponse*
PR:#3207
AgentRunResponse en AgentRunResponseUpdate zijn hernoemd in AgentResponse en AgentResponseUpdate.
Before:
from agent_framework import AgentRunResponse, AgentRunResponseUpdate
After:
from agent_framework import AgentResponse, AgentResponseUpdate
π‘ Declaratieve werkstroomruntime toegevoegd voor YAML-gedefinieerde werkstromen
PR:#2815
Er is een op grafieken gebaseerde runtime toegevoegd voor het uitvoeren van declaratieve YAML-werkstromen, waardoor indeling met meerdere agents zonder aangepaste runtimecode mogelijk is.
π‘ Verbeteringen in het laden en de betrouwbaarheid van MCP
PR:#3154
MCP-integraties hebben verbeterd gedrag van verbindingsverlies, ondersteuning voor paginering bij het laden en opties voor weergavebeheer.
π‘ Foundry A2ATool ondersteunt nu verbindingen zonder doel-URL
PR:#3127
A2ATool kan nu A2A-verbindingen met Foundry oplossen via metagegevens van projectverbindingen, zelfs wanneer een directe doel-URL niet is geconfigureerd.
python-1.0.0b260107 (7 januari 2026)
Releaseopmerkingen:python-1.0.0b260107
Geen belangrijke wijzigingen in deze release.
python-1.0.0b260106 (6 januari 2026)
Releaseopmerkingen:python-1.0.0b260106
Geen belangrijke wijzigingen in deze release.
Samenvattingstabel
| Vrijgeven | Opmerkingen bij de release | Typologie | Change | PR |
|---|---|---|---|---|
| 1.8.0 | Notes | π΄ Nieuwsflits |
github-copilot-sdk bijgewerkt naar v1.0.0: SubprocessConfig verwijderd (gebruik RuntimeConnection + kwargs), importpaden verplaatst naar copilot.session_events, copilot_home β base_directory, machtigingenhandlers maken gebruik van concrete beslissingstypen |
#6292 |
| 1.8.0 | Notes | π‘ Verbetering | Progressieve gereedschapsblootstelling via FunctionInvocationContext |
#6233 |
| 1.8.0 | Notes | π‘ Verbetering | Detectie van vaardigheden op basis van MCP (McpSkillsSource) |
#6169 |
| 1.8.0 | Notes | π‘ Verbetering | Systeemeigen gestructureerde uitvoerondersteuning van Bedrock via Converse-API | #6052 |
| 1.8.0 | Notes | π‘ Verbetering | Integratie van Foundry Adaptive Evals (rubriek-generatie) | #6101 |
| 1.8.0 | Notes | π‘ Verbetering | Mistral AI-embedding-clientpakket | #5480 |
| 1.8.0 | Notes | π‘ Verbetering |
agent-framework-declarative gepromoveerd naar releasekandidaat |
#6256 |
| 1.7.0 | Notes | π΄ Nieuwsflits | Declaratief: Python-only acties verwijderd en aliastypen hernoemd naar C#-canonieke namen | #6126 |
| 1.7.0 | Notes | π‘ Verbetering |
HarnessAgent en achtergrondagenten maken gebruik van provider toegevoegd |
#6041 |
| 1.7.0 | Notes | π‘ Verbetering |
A2AAgentSession met verwijzingen naar taak-IDβs en ondersteuning waarvoor invoer vereist is |
#5980 |
| 1.6.0 | Notes | π΄ Nieuwsflits | Instrumentatie is standaard ingeschakeld voor kern- en foundry-pakketten | #5865 |
| 1.6.0 | Notes | π‘ Verbetering | Shell-hulpprogramma met ondersteuning voor lokale en Docker-uitvoering | #5664 |
| 1.6.0 | Notes | π‘ Verbetering | Nieuw agent-framework-monty CodeAct-providerpakket |
#5915 |
| 1.4.0 | Notes | π΄ Nieuwsflits | [Experimentele vaardigheden] Detectie van bestandsvaardigheidsmappen afstemmen op de agentskills.io-specificatie | #5807 |
| 1.4.0 | Notes | π΄ Nieuwsflits | [Experimentele vaardigheden] Metagegevens van vaardigheidsspecificaties extraheren in SkillFrontmatter |
#5775 |
| 1.4.0 | Notes | π΄ Nieuwsflits | DevUI: Standaardtoegangsbeheer en CORS-houding aanscherpen | #5740 |
| 1.4.0 | Notes | π΄ Nieuwsflits | A2A: migreren naar a2a-sdk v1.0 | #5752 |
| 1.3.0 | Notes | π΄ Nieuwsflits | [Experimentele vaardigheden] Agentvaardigheden herstructureren naar architectuur met meerdere bronnen | #5584 |
| 1.3.0 | Notes | π‘ Verbetering |
ClassSkill voor op klassen gebaseerde vaardigheidsdefinities met declaratieve metagegevens |
#5678 |
| 1.3.0 | Notes | π‘ Verbetering | Bescherming tegen promptinjectie via controle op informatiestromen | #5331 |
| 1.3.0 | Notes | π‘ Verbetering |
github-copilot-sdk bijgewerkt naar v1.0.0b2 met instruction_directories en copilot_home |
#5665 |
| 1.2.2 | Notes | π΄ Nieuwsflits | Indelingsterminal-uitvoer wordt gestandaardiseerd als AgentResponse; Workflow.as_agent() retourneert alleen het uiteindelijke antwoord |
#5301 |
| 1.2.2 | Notes | π‘ Verbetering | Azure AI Content Understanding-contextproviderpakket | #4829 |
| 1.1.0 | Notes | π΄ Nieuwsflits |
CosmosCheckpointStorage deserialisatie van pickle standaard beperkt |
#5200 |
| 1.1.0 | Notes | π‘ Verbetering |
GeminiChatClient Toegevoegd |
#4847 |
| 1.1.0 | Notes | π‘ Verbetering | Hyperlight CodeAct-pakket | #5185 |
| 1.1.0 | Notes | π‘ Verbetering | Ondersteuning voor Foundry Toolboxes | #5346 |
| 1.1.0 | Notes | π‘ Verbetering |
finish_reason op AgentResponse en AgentResponseUpdate |
#5211 |
| 1.0.1 | Notes | π΄ Nieuwsflits |
FileCheckpointStorage beperkte pickle-deserialisatie (beveiligingsversterking) |
#4941 |
| 1.0.1 | Notes | π΄ Nieuwsflits | Oplossing voor handoff-werkstroomcontextbeheer | #5136 |
| 1.0.1 | Notes | π‘ Verbetering | Cosmos DB NoSQL controlepuntopslag voor werkstromen | #4916 |
| 1.0.0 | Notes | π΄ Nieuwsflits |
Message(..., text=...) constructie is volledig verwijderd; sms-berichten maken met contents=[...] in plaats daarvan |
#5062 |
| 1.0.0 | Notes | π‘ Verbetering | Uitgekomen Python-pakketten (agent-framework, agent-framework-core, agent-framework-openai, agent-framework-foundry) vereisen --pre niet meer; bΓ¨taconnectors vereisen het nog steeds. |
#5062 |
| 1.0.0 | Notes | π΄ Nieuwsflits | Python-insluitingen verplaatst naar agent_framework.foundry; gebruiken agent-framework-foundry, FoundryEmbeddingClienten FOUNDRY_MODELS_* instellingen in plaats van het verwijderde agent-framework-azure-ai pakket |
#5056 |
| 1.0.0 | Notes | π΄ Nieuwsflits |
workflow.run() maakt nu gebruik van expliciete function_invocation_kwargs / client_kwargs, waarbij globale versus per-uitvoerder doelgerichtheid wordt bepaald op basis van uitvoerder-ID's. |
#5010 |
| 1.0.0 | Notes | π‘ Verbetering |
GitHubCopilotAgent roept nu contextprovider-hooks before_run / after_run aan en bevat promptcontext die door de provider is toegevoegd. |
#5013 |
| 1.0.0 | Notes | π‘ Verbetering | Gestructureerde Python-uitvoer accepteert nu JSON-schematoewijzingen als response_format, waarbij geparseerde JSON wordt weergegeven op response.value |
#5022 |
| 1.0.0rc6 | Alleen PR | π΄ Nieuwsflits | Verouderde compatibiliteitselementen van Azure/OpenAI zijn verwijderd; gebruik in plaats daarvan toonaangevende OpenAI clients of Foundry Python clients. | #4990 |
| 1.0.0rc6 | Alleen PR | π΄ Nieuwsflits | Provider-leidende herstructurering: splitsen agent-framework-openai, agent-framework-foundryen agent-framework-foundry-local; de naam van OpenAI-clients wijzigen; Foundry verplaatsen naar agent_framework.foundry; compatibiliteitspaden voor Azure AI en assistenten afschaffen |
#4818 |
| 1.0.0rc6 | Alleen PR | π΄ Nieuwsflits |
agent-framework-core is nu opzettelijk slank; expliciete providerpakketten installeren, zoals agent-framework-openai of agent-framework-foundry, en handmatig installeren mcp voor MCP-hulpprogramma's op minimale installaties, of het agent-framework metapakket gebruiken voor de bredere standaardervaring |
#4904 |
| 1.0.0rc6 | Alleen PR | π΄ Nieuwsflits | Algemene agent_framework.openai clients geven nu de voorkeur aan expliciete routeringssignalen; OpenAI blijft bij OpenAI wanneer OPENAI_API_KEY is ingesteld, en Azure-scenario's dienen expliciete Azure-routeringsinputs door te geven, zoals credential of azure_endpoint, en vervolgens api_version configureren. |
#4925 |
| 1.0.0rc5 / 1.0.0b260318 | N.v.t. (gepland) | π΄ Nieuwsflits | Publieke runtime kwargs gesplitst in function_invocation_kwargs en client_kwargs; hulpprogramma's gebruiken nu FunctionInvocationContext / ctx.session |
#4581 |
| 1.0.0rc4 / 1.0.0b260311 | Notes | π΄ Nieuwsflits | Azure AI-integraties zijn nu gericht op azure-ai-projects 2.0 GA; foundry_features is verwijderd en allow_preview is de preview-opt-in |
#4536 |
| 1.0.0rc4 / 1.0.0b260311 | Notes | π΄ Nieuwsflits | GitHub Copilot-integratie maakt nu gebruik van ToolInvocation / ToolResult; agent-framework-github-copilot vereist Python 3.11+ |
#4551 |
| 1.0.0rc3 / 1.0.0b260304 | Notes | π΄ Nieuwsflits | Skills-provider voegt code-gedefinieerde Skill / SkillResource toe; oudere FileAgentSkillsProvider import- en backtick-resourceverwijzingen moeten worden bijgewerkt |
#4387 |
| 1.0.0rc2 / 1.0.0b260226 | Notes | π΄ Nieuwsflits | Declaratieve werkstromen vervangen door InvokeToolInvokeFunctionTool en WorkflowFactory.register_tool() |
#3716 |
| 1.0.0rc1 / 1.0.0b260219 | Notes | π΄ Nieuwsflits | Uniform beheer van Azure-verificatiegegevens in Azure-pakketten | #4088 |
| 1.0.0rc1 / 1.0.0b260219 | Notes | π΄ Nieuwsflits | Python-uitzonderingshiΓ«rarchie opnieuw ontworpen onder AgentFrameworkException |
#4082 |
| 1.0.0rc1 / 1.0.0b260219 | Notes | π΄ Nieuwsflits | De status van de provider wordt nu bepaald door source_id |
#3995 |
| 1.0.0rc1 / 1.0.0b260219 | Notes | π΄ Nieuwsflits | Aangepaste get_response() implementaties moeten accepteren Sequence[Message] |
#3920 |
| 1.0.0rc1 / 1.0.0b260219 | Notes | π΄ Nieuwsflits |
FunctionTool[Any] schema-passthrough-shim verwijderd |
#3907 |
| 1.0.0rc1 / 1.0.0b260219 | Notes | π΄ Nieuwsflits | Instellingen verplaatst van AFBaseSettings /pydantic-settings naar TypedDict + load_settings() |
#3843, #4032 |
| 1.0.0rc1 / 1.0.0b260219 | Notes | π‘ Verbetering | Hand-off van werkstroom met redeneringsmodel en serialisatie van geschiedenis opgelost | #4083 |
| 1.0.0rc1 / 1.0.0b260219 | Notes | π‘ Verbetering | Bedrock toegevoegd aan core[all]; standaardwaarden voor gereedschapskeuze gecorrigeerd |
#3953 |
| 1.0.0rc1 / 1.0.0b260219 | Notes | π‘ Verbetering |
AzureAIClient waarschuwt voor niet-ondersteunde runtime-overschrijvingen |
#3919 |
| 1.0.0rc1 / 1.0.0b260219 | Notes | π‘ Verbetering |
workflow.as_agent() voegt lokale geschiedenis toe als providers niet worden gezet |
#3918 |
| 1.0.0rc1 / 1.0.0b260219 | Notes | π‘ Verbetering | OpenTelemetry-traceringscontext wordt doorgegeven aan MCP-aanvragen | #3780 |
| 1.0.0rc1 / 1.0.0b260219 | Notes | π‘ Verbetering | Ondersteuning voor duurzame werkstromen toegevoegd voor Azure Functions | #3630 |
| 1.0.0b260212 | Notes | π΄ Nieuwsflits |
Hosted*Toolklassen verwijderd; gehoste hulpprogramma's maken via clientmethoden get_*_tool() |
#3634 |
| 1.0.0b260212 | Notes | π΄ Nieuwsflits | Sessie-/contextproviderpijplijn voltooid: AgentThread verwijderd, gebruik AgentSession + context_providers |
#3850 |
| 1.0.0b260212 | Notes | π΄ Nieuwsflits | Controlepuntmodel/opslagherstructurering (workflow_id verwijderd, previous_checkpoint_id toegevoegd, opslaggedrag gewijzigd) |
#3744 |
| 1.0.0b260212 | Notes | π‘ Verbetering |
AzureOpenAIResponsesClient kan worden gemaakt op basis van het Foundry-projecteindpunt of AIProjectClient |
#3814 |
| 1.0.0b260212 | Notes | π΄ Nieuwsflits | Middleware-voortzetting accepteert context niet meer; update call_next(context) naar call_next() |
#3829 |
| 1.0.0b260210 | Notes | π΄ Nieuwsflits |
send_responses()
/
send_responses_streaming() Verwijderd; Gebruiken workflow.run(responses=...) |
#3720 |
| 1.0.0b260210 | Notes | π΄ Nieuwsflits |
SharedState
Stateβ ; werkstroomstatus-API's zijn synchroon en veld status van controlepunt hernoemd |
#3667 |
| 1.0.0b260210 | Notes | π΄ Nieuwsflits | Orchestration builders verplaatst naar agent_framework.orchestrations pakket |
#3685 |
| 1.0.0b260210 | Notes | π‘ Verbetering | Achtergrondantwoorden en continuation_token ondersteuning toegevoegd aan Python-agentantwoorden |
#3808 |
| 1.0.0b260210 | Notes | π‘ Verbetering | Voorbeeldtypen van sessie-/contextweergave die naast elkaar zijn toegevoegd (SessionContext, BaseContextProvider) |
#3763 |
| 1.0.0b260210 | Notes | π‘ Verbetering | Updates voor streamingcode-interpreters bevatten nu incrementele code-delta's | #3775 |
| 1.0.0b260210 | Notes | π‘ Verbetering |
@tool decorator voegt expliciete ondersteuning voor schemaafhandeling toe |
#3734 |
| 1.0.0b260210 | Notes | π΄ Nieuwsflits |
register_executor()
/
register_agent() verwijderd uit WorkflowBuilder; exemplaren rechtstreeks gebruiken, helpermethoden voor statusisolatie |
#3781 |
| 1.0.0b260210 | Notes | π΄ Nieuwsflits |
ChatAgent β Agent, ChatMessage β Message, RawChatAgent β RawAgent, ChatClientProtocol β SupportsChatGetResponse |
#3747 |
| 1.0.0b260210 | Notes | π΄ Nieuwsflits | Typen-API-beoordeling: Role/FinishReason typewijzigingen, response/update constructor aanscherping, helper hernoemingen naar from_updates en verwijdering van try_parse_value |
#3647 |
| 1.0.0b260210 | Notes | π΄ Nieuwsflits | API's die zijn geΓ―ntegreerd rond run/get_response en ResponseStream |
#3379 |
| 1.0.0b260210 | Notes | π΄ Nieuwsflits |
AgentRunContext hernoemd in AgentContext |
#3714 |
| 1.0.0b260210 | Notes | π΄ Nieuwsflits |
AgentProtocol hernoemd in SupportsAgentRun |
#3717 |
| 1.0.0b260210 | Notes | π΄ Nieuwsflits | Naam van middlewareparameter next gewijzigd in call_next |
#3735 |
| 1.0.0b260210 | Notes | π΄ Nieuwsflits | TypeVar naming gestandaardiseerd (TName β NameT) |
#3770 |
| 1.0.0b260210 | Notes | π΄ Nieuwsflits | Uitvoer-/stroomgedrag van Workflow-als-agent komt overeen met de huidige reactiestroom van de agent | #3649 |
| 1.0.0b260210 | Notes | π΄ Nieuwsflits | Fluent Builder-methoden zijn verplaatst naar constructorparameters in 6 bouwers | #3693 |
| 1.0.0b260210 | Notes | π΄ Nieuwsflits | Werkstroomgebeurtenissen die zijn gecombineerd tot één WorkflowEvent met een type discriminator; isinstance() β event.type == "..." |
#3690 |
| 1.0.0b260130 | Notes | π‘ Verbetering |
ChatOptions
/
ChatResponse
/
AgentResponse algemeen over antwoordformaat |
#3305 |
| 1.0.0b260130 | Notes | π‘ Verbetering |
BaseAgent ondersteuning toegevoegd voor Claude Agent SDK-integraties |
#3509 |
| 1.0.0b260128 | Notes | π΄ Nieuwsflits |
AIFunction β FunctionTool, @ai_function β @tool |
#3413 |
| 1.0.0b260128 | Notes | π΄ Nieuwsflits | Fabriekspatroon voor GroupChat/Magentic; with_standard_managerwith_managerβ , participant_factories β register_participant |
#3224 |
| 1.0.0b260128 | Notes | π΄ Nieuwsflits |
Github β GitHub |
#3486 |
| 1.0.0b260127 | Notes | π‘ Verbetering |
BaseAgent ondersteuning toegevoegd voor GitHub Copilot SDK-integraties |
#3404 |
| 1.0.0b260123 | Notes | π΄ Nieuwsflits | Inhoudstypen samengevoegd tot één Content klasse met klassemethods |
#3252 |
| 1.0.0b260123 | Notes | π΄ Nieuwsflits |
response_format validatiefouten worden nu weergegeven ValidationError |
#3274 |
| 1.0.0b260123 | Notes | π΄ Nieuwsflits | AG-UI uitvoeringslogica vereenvoudigd | #3322 |
| 1.0.0b260123 | Notes | π‘ Verbetering | Antropische client voegt response_format ondersteuning toe voor gestructureerde uitvoer |
#3301 |
| 1.0.0b260123 | Notes | π‘ Verbetering | Azure AI-configuratie uitgebreid met reasoning en rai_config ondersteuning |
#3403, #3265 |
| 1.0.0b260116 | Notes | π΄ Nieuwsflits |
create_agent β as_agent |
#3249 |
| 1.0.0b260116 | Notes | π΄ Nieuwsflits |
source_executor_id β executor_id |
#3166 |
| 1.0.0b260116 | Notes | π‘ Verbetering | AG-UI ondersteunt door de service beheerde sessie- en threadcontinuΓ―teit | #3136 |
| 1.0.0b260114 | Notes | π΄ Nieuwsflits | Orkestraties geherstructureerd (GroupChat, Handoff, Sequentieel, Gelijktijdig) | #3023 |
| 1.0.0b260114 | Notes | π΄ Nieuwsflits | Opties als TypedDict en Generiek | #3140 |
| 1.0.0b260114 | Notes | π΄ Nieuwsflits |
display_name Verwijderd; context_providerscontext_provider β (enkelvoud); middleware moet een lijst zijn |
#3139 |
| 1.0.0b260114 | Notes | π΄ Nieuwsflits |
AgentRunResponse
/
AgentRunResponseUpdate hernoemd in AgentResponse/AgentResponseUpdate |
#3207 |
| 1.0.0b260114 | Notes | π‘ Verbetering | Declaratieve werkstroomruntime toegevoegd voor YAML-gedefinieerde werkstromen | #2815 |
| 1.0.0b260114 | Notes | π‘ Verbetering | Verbeteringen in het laden/betrouwbaarheid van MCP (verwerking van verbindingsverlies, paginering, weergavebesturingselementen) | #3154 |
| 1.0.0b260114 | Notes | π‘ Verbetering | Foundry A2ATool ondersteunt verbindingen zonder expliciete doel-URL |
#3127 |
| 1.0.0b260107 | Notes | β | Geen significante wijzigingen | β |
| 1.0.0b260106 | Notes | β | Geen significante wijzigingen | β |