このドキュメントでは、2026 年の初めから Python リリースのすべての重要な変更を示します。これには、コードに影響を与える可能性がある破壊的変更や重要な機能強化が含まれます。 各変更は次のようにマークされます。
- 🔴 破壊的変更 - アップグレードにはコードの変更が必要です
- 🟡 機能強化 — 新機能または改善;既存のコードは引き続き機能します
このドキュメントは、1.0.0 安定版リリースに達すると削除されます。そのため、重要な変更を見逃さないように、2026 年のバージョン間でアップグレードするときに参照してください。 特定のトピック (オプションの移行など) の詳細なアップグレード手順については、リンクされたアップグレード ガイドまたはリンクされた PR を参照してください。
python-1.0.0rc1 / python-1.0.0b260219 (2026 年 2 月 19 日)
Release:agent-framework-coreおよびagent-framework-azure-ai1.0.0rc1に昇格しました。 その他のすべてのパッケージが 1.0.0b260219に更新されました。
🔴 すべてのパッケージで統合された Azure 資格情報の処理
PR:#4088
ad_token、ad_token_provider、およびget_entra_auth_tokenパラメーター/ヘルパーは、Azure 関連のすべての Python パッケージで統一されたcredential パラメーターに置き換えられました。 新しい方法では、トークンの自動キャッシュと更新に azure.identity.get_bearer_token_provider を使用します。
影響を受けるクラス:AzureOpenAIChatClient、 AzureOpenAIResponsesClient、 AzureOpenAIAssistantsClient、 AzureAIClient、 AzureAIAgentClient、 AzureAIProjectAgentProvider、 AzureAIAgentsProvider、 AzureAISearchContextProvider、 PurviewClient、 PurviewPolicyMiddleware、 PurviewChatPolicyMiddleware。
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(),
...
)
credential パラメーターは、TokenCredential、AsyncTokenCredential、または呼び出し可能なトークン プロバイダーを受け取ります。 トークンのキャッシュと更新は自動的に処理されます。
🔴 再設計された Python 例外階層
PR:#4082
フラット ServiceException ファミリは、単一の AgentFrameworkException ルートの下にあるドメイン スコープの例外分岐に置き換えられました。 これにより、呼び出し元は正確な except ターゲットと明確なエラー セマンティクスが提供されます。
新しい階層:
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
例外 (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
...
注
Init 検証エラーで、カスタム例外の代わりに組み込みの ValueError/TypeError が使用されるようになりました。 エージェント フレームワークの例外は、ドメイン レベルの障害のために予約されています。
🔴 プロバイダーによってスコープされた状態 source_id
PR:#3995
プロバイダー フックは、完全なセッション状態ではなく、プロバイダー スコープの状態ディクショナリ (state.setdefault(provider.source_id, {})) を受け取るようになりました。 つまり、以前に state[self.source_id]["key"] 経由で入れ子になった状態にアクセスしたプロバイダーの実装は、 state["key"] に直接アクセスする必要があります。
さらに、既定InMemoryHistoryProvidersource_id"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")
🔴 チャット/エージェント メッセージ入力の配置 (run と get_response)
PR:#3920
チャット クライアント get_response の実装が一貫して Sequence[Message]を受け取るようになりました。
agent.run(...) は柔軟性を維持し (str、 Content、 Message、シーケンスなど)、チャット クライアントを呼び出す前に入力を正規化します。
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] スキーマ パススルーの汎用セットアップが削除されました
PR:#3907
スキーマ ベースのツール パスは、以前の FunctionTool[Any] の一般的な動作に依存しなくなりました。
FunctionToolを直接使用し、必要に応じて pydantic BaseModel または明示的なスキーマ (たとえば、@tool(schema=...)) を指定します。
Before:
placeholder: FunctionTool[Any] = FunctionTool(...)
After:
placeholder: FunctionTool = FunctionTool(...)
🔴 Pydantic設定はTypedDict + load_settings()に置き換えられました。
pydantic-settingsベースのAFBaseSettings クラスは、TypedDictとload_settings()を使用する軽量の関数ベースの設定システムに置き換えられました。
pydantic-settingsの依存関係が完全に削除されました。
すべての設定クラス ( OpenAISettings、 AzureOpenAISettings、 AnthropicSettingsなど) が TypedDict 定義になり、設定値は属性アクセスではなくディクショナリ構文を使用してアクセスされるようになりました。
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_id = settings["model_id"]
Important
Agent Framework は、 ファイルから値を自動的に読み込.env。
.env の読み込みを選択するには、次のいずれかを明示的に実行する必要があります。
- アプリケーションの開始時に
load_dotenv()パッケージからpython-dotenvを呼び出す -
env_file_path=".env"をload_settings()に渡す - シェルまたは IDE で環境変数を直接設定する
解決の順序は、明示的オーバーライド→ load_settingsファイル値 (.envが指定されている場合) →環境変数→デフォルトです。
env_file_pathを指定した場合、そのファイルが存在しないとFileNotFoundErrorが発生します。
🟡 推論モデル ワークフローのハンドオフと履歴のシリアル化を修正する
PR:#4083
マルチエージェント ワークフローで推論モデル (gpt-5-mini、gpt-5.2 など) を使用する場合の複数のエラーを修正します。 Responses API からの推論項目が正しくシリアル化され、 function_call が存在する場合にのみ履歴に含まれるようになり、API エラーを防ぎます。 暗号化/非表示の推論コンテンツが正しく出力され、 summary フィールド形式が修正されました。 また、service_session_id はハンドオフ時にクリアされ、エージェント間での状態漏洩を防ぎます。
🟡 Bedrock がcore[all]に追加され、ツール選択のデフォルトが修正されました
PR:#3953
Amazon Bedrock は現在、 agent-framework-core[all] のエクストラに含まれており、 agent_framework.amazon 遅延インポートサーフェイスを介して利用できます。 ツール選択の動作も修正されました。ツール選択の値の設定を解除しても、プロバイダーはサービスの既定値を使用し、明示的に設定された値は保持されます。
from agent_framework.amazon import BedrockClient
🟡 サポートされていないランタイムのオーバーライドに関する AzureAIClient の警告
PR:#3919
AzureAIClient ランタイムの tools または structured_output がエージェントの作成時の構成と異なる場合に警告をログに記録するようになりました。 Azure AI Agent Service では、ランタイム ツールや応答形式の変更はサポートされていません。動的オーバーライドが必要な場合は、代わりに AzureOpenAIResponsesClient を使用してください。
🟡
workflow.as_agent() プロバイダーの設定が解除されたときにローカル履歴が既定に設定されるようになりました
PR:#3918
workflow.as_agent()なしでcontext_providersが作成されると、既定でInMemoryHistoryProvider("memory")が追加されるようになりました。
コンテキスト プロバイダーが明示的に指定されている場合、そのリストは変更されずに保持されます。
workflow_agent = workflow.as_agent(name="MyWorkflowAgent")
# Default local history provider is injected when none are provided.
🟡 OpenTelemetry のトレース コンテキストが MCP 要求に伝達される
PR:#3780
OpenTelemetry がインストールされると、トレース コンテキスト (W3C traceparent など) が、 params._meta経由で MCP 要求に自動的に挿入されます。 これにより、エージェント→ MCP サーバー呼び出し間でのエンドツーエンドの分散トレースが可能になります。 コードの変更は必要ありません。これは、有効なスパン コンテキストが存在する場合にアクティブ化される追加動作です。
🟡 Azure Functions の永続的なワークフローのサポート
PR:#3630
agent-framework-azurefunctions パッケージでは、Azure Durable Functions でのWorkflow グラフの実行がサポートされるようになりました。 エージェント エンティティ、アクティビティ関数、および HTTP エンドポイントを自動的に登録するworkflowに、AgentFunctionApp パラメーターを渡します。
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
ファンアウト/ファンイン、共有状態、およびヒューマン イン ザ ループ パターンをサポートし、構成可能なタイムアウトと期限切れ時の自動拒否をサポートします。
python-1.0.0b260212 (2026 年 2 月 12 日)
リリース ノート:python-1.0.0b260212
🔴
Hosted*Tool クライアント get_*_tool() メソッドに置き換えられたクラス
PR:#3634
ホストされているツール クラスは、クライアント スコープのファクトリ メソッドを優先して削除されました。 これにより、プロバイダーによるツールの可用性が明示的になります。
| 削除されたクラス | 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()]
🔴 セッション/コンテキスト プロバイダー パイプラインの最終処理 (AgentSession、 context_providers)
PR:#3850
Python セッションとコンテキスト プロバイダーの移行が完了しました。
AgentThread 以前のコンテキスト プロバイダー型が削除されました。
-
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=パターンは次のように置き換えられます。context_providers=[...]
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)
🔴 チェックポイント モデルとストレージの動作がリファクタリングされました
PR:#3744
チェックポイント内部が再設計されました。これは、永続化されたチェックポイントの互換性とカスタム ストレージの実装に影響します。
-
WorkflowCheckpointライブ オブジェクトが格納されるようになりました (シリアル化はチェックポイント ストレージで行われます) -
FileCheckpointStorageは現在、pickle シリアライズを使用しています -
workflow_id削除され、previous_checkpoint_idが追加されました - 非推奨のチェックポイント フックが削除されました
バージョン間でチェックポイントを保持する場合は、ワークフローを再開する前に既存のチェックポイント成果物を再生成または移行します。
🟡
AzureOpenAIResponsesClient は、Microsoft Foundry プロジェクト エンドポイントをサポートします
PR:#3814
Foundry プロジェクト エンドポイントまたは AzureOpenAIResponsesClient を使って、AIProjectClient を作成できるようになりました。これにより、Azure OpenAI エンドポイントを直接使用するだけでなくなります。
from azure.identity import DefaultAzureCredential
from agent_framework.azure import AzureOpenAIResponsesClient
client = AzureOpenAIResponsesClient(
project_endpoint="https://<your-project>.services.ai.azure.com",
deployment_name="gpt-4o-mini",
credential=DefaultAzureCredential(),
)
🔴 ミドルウェア call_next が受け入れなくなりました context
PR:#3829
ミドルウェアの継続は現在、引数を受け付けません。 ミドルウェアが引き続き call_next(context)を呼び出す場合は、 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 (2026 年 2 月 10 日)
リリース ノート:python-1.0.0b260210
🔴 から削除されたワークフロー ファクトリ メソッド WorkflowBuilder
PR:#3781
register_executor() と register_agent() が WorkflowBuilderから削除されました。 すべてのビルダー メソッド (add_edge、 add_fan_out_edges、 add_fan_in_edges、 add_chain、 add_switch_case_edge_group、 add_multi_selection_edge_group) と start_executor は文字列名を受け入れなくなりました。これらは、Executor またはエージェント インスタンスを直接必要とします。
状態を分離するために、Executor/agent のインスタンス化とワークフローのビルドをヘルパー メソッド内でラップして、各呼び出しで新しいインスタンスが生成されるようにします。
WorkflowBuilder executor を用いて
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 エージェントと一緒に
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()
ヘルパー メソッドを使用した状態の分離
呼び出しごとに分離状態を必要とするワークフローの場合は、ヘルパー メソッドで構築をラップします。
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はAgentに名前を変更し、ChatMessageはMessageに名前を変更しました。
PR:#3747
冗長な Chat プレフィックスを削除することで、Python のコア型が簡略化されました。 下位互換性エイリアスは提供されません。
| 以前は | クリック後 |
|---|---|
ChatAgent |
Agent |
RawChatAgent |
RawAgent |
ChatMessage |
Message |
ChatClientProtocol |
SupportsChatGetResponse |
インポートの更新
Before:
from agent_framework import ChatAgent, ChatMessage
After:
from agent_framework import Agent, Message
型参照を更新する
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")])
注
ChatClient、 ChatResponse、 ChatOptions、および ChatMessageStore は、この変更によって名前が変更 されません 。
🔴 Types API は、応答/メッセージ モデル間で更新を確認します
PR:#3647
このリリースには、メッセージ/応答の入力とヘルパー API の広範で破壊的なクリーンアップが含まれています。
-
RoleFinishReasonは、既知の値のNewTypestrRoleLiteralを持つ/のラッパーをFinishReasonLiteralするようになりました。 それらを文字列として扱います (.value使用法はありません)。 -
Message構築はMessage(role, contents=[...])で標準化されています。contents内の文字列はテキスト コンテンツに自動的に変換されます。 -
ChatResponseAgentResponseコンストラクターがmessages=(単一のMessageまたはシーケンス) を中心とするようになりました。従来のtext=コンストラクターの使用は応答から削除されました。 -
ChatResponseUpdateAgentResponseUpdatetext=を受け入れなくなりました。contents=[Content.from_text(...)]を使用します。 - 更新の組み合わせヘルパー名が簡略化されました。
-
try_parse_valueがChatResponseおよびAgentResponseから削除されました。
ヘルパー メソッドの名前変更
| 以前は | クリック後 |
|---|---|
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(...) |
応答更新構築の更新
Before:
update = AgentResponseUpdate(text="Processing...", role="assistant")
After:
from agent_framework import AgentResponseUpdate, Content
update = AgentResponseUpdate(
contents=[Content.from_text("Processing...")],
role="assistant",
)
try_parse_valueをtry/exceptに.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}")
🔴 統合 run/get_response モデルと ResponseStream の使用
PR:#3379
Python API は、 agent.run(...) と client.get_response(...)を中心に統合され、ストリーミングは 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)
🔴 コア コンテキスト/プロトコルの種類の名前変更
| 以前は | クリック後 |
|---|---|
AgentRunContext |
AgentContext |
AgentProtocol |
SupportsAgentRun |
インポートと型の注釈を適宜更新します。
🔴 ミドルウェア継続パラメーターの名前が次に変更されました call_next
PR:#3735
ミドルウェアシグネチャでは、call_nextの代わりに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)
🔴 標準化された TypeVar 名 (TName → NameT)
PR:#3770
コードベースは、サフィックス T が使用される一貫した TypeVar 名前付けスタイルに従うようになりました。
Before:
TMessage = TypeVar("TMessage")
After:
MessageT = TypeVar("MessageT")
フレームワーク ジェネリックに関するカスタム ラッパーを維持する場合は、ローカルの TypeVar 名を新しい規則に合わせて調整して、注釈のチャーンを減らします。
🔴 エージェントとしてのワークフローの出力とストリーミングの変更
PR:#3649
workflow.as_agent() の動作が更新され、出力とストリーミングが標準のエージェント応答パターンに合わせて調整されました。 従来の出力/更新処理に依存するエージェントとしてのワークフロー コンシューマーを確認し、現在の AgentResponse/AgentResponseUpdate フローに更新します。
🔴 Fluent Builder メソッドがコンストラクター パラメーターに移動されました
PR:#3693
6 つのビルダー (WorkflowBuilder、 SequentialBuilder、 ConcurrentBuilder、 GroupChatBuilder、 MagenticBuilder、 HandoffBuilder) の単一構成 fluent メソッドがコンストラクター パラメーターに移行されました。 設定の唯一の構成パスであった Fluent メソッドは、コンストラクター引数を優先して削除されます。
WorkflowBuilder
set_start_executor()、 with_checkpointing()、および with_output_from() が削除されます。 代わりにコンストラクター パラメーターを使用してください。
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()、および with_intermediate_outputs() が削除されます。 代わりにコンストラクター パラメーターを使用してください。
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()、 with_checkpointing()、および with_intermediate_outputs() は削除されます。 代わりにコンストラクター パラメーターを使用してください。
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()、 with_checkpointing()、および with_intermediate_outputs() は削除されます。 代わりにコンストラクター パラメーターを使用してください。
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() と with_termination_condition() が削除されます。 代わりにコンストラクター パラメーターを使用してください。
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()
)
検証の変更
-
WorkflowBuilderコンストラクター引数としてstart_executorが必要になりました (以前は fluent メソッドを使用して設定しました) -
SequentialBuilder、ConcurrentBuilder、GroupChatBuilder、およびMagenticBuilderでは、構築時にparticipantsまたはparticipant_factoriesが必要です。どちらも渡されなかった場合はValueErrorが発生します。
注
HandoffBuilder は既にコンストラクター パラメーターとして participants/participant_factories を受け入れ、この点で変更されていません。
🔴 ワークフローイベントは WorkflowEvent 識別子を使用して、単一の type に統合されました。
PR:#3690
個々のすべてのワークフロー イベント サブクラスは、単一のジェネリック WorkflowEvent[DataT] クラスに置き換えられました。
isinstance()チェックを使用してイベントの種類を識別する代わりに、event.type文字列リテラル (たとえば、"output"、"request_info"、"status") を確認します。 これは、Contentからのpython-1.0.0b260123 クラス統合と同じパターンに従います。
イベント クラスを削除しました
次のエクスポートされたイベント サブクラスは存在しなくなりました。
| 旧クラス | 新しい event.type 値 |
|---|---|
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" |
インポートの更新
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
イベントの種類のチェックを更新する
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}")
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}")
型の注釈
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
注
WorkflowEvent はジェネリック (WorkflowEvent[DataT]) ですが、混合イベントのコレクションには、 WorkflowEvent[Any] またはパラメーター化されていない WorkflowEventを使用します。
🔴
workflow.send_responses* 削除;使用 workflow.run(responses=...)
PR:#3720
send_responses()
send_responses_streaming()はWorkflowから削除されました。 応答を 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
Stateに名前が変更されました。ワークフロー状態 API は同期的です
PR:#3667
状態 API では awaitが不要になり、名前付けは標準化されました。
| 以前は | クリック後 |
|---|---|
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 |
🔴 オーケストレーション ビルダーが移動されました agent_framework.orchestrations
PR:#3685
オーケストレーション ビルダーが専用のパッケージ名前空間に追加されました。
Before:
from agent_framework import SequentialBuilder, GroupChatBuilder
After:
from agent_framework.orchestrations import SequentialBuilder, GroupChatBuilder
🟡 実行時間の長いバックグラウンド応答と継続トークン
PR:#3808
options={"background": True}とcontinuation_tokenを介した Python エージェントの実行で、バックグラウンド応答がサポートされるようになりました。
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})
🟡 セッション/コンテキスト プロバイダーのプレビューの種類がサイド バイ サイドで追加されました
PR:#3763
SessionContextやBaseContextProviderなど、増分移行用のレガシ API と共に、新しいセッション/コンテキスト パイプラインの種類が導入されました。
🟡 コード インタープリター ストリーミングに増分コード デルタが含まれるようになりました
PR:#3775
ストリーミング コード インタープリターは現在、ストリーミング コンテンツ内でコードの差分の更新を確認できるため、UIが生成されたコードを段階的にレンダリング可能になっています。
🟡
@tool では、明示的なスキーマ処理がサポートされます
PR:#3734
推定されたスキーマ出力でカスタマイズが必要な場合に、ツール定義で明示的なスキーマ処理を使用できるようになりました。
python-1.0.0b260130 (2026 年 1 月 30 日)
リリース ノート:python-1.0.0b260130
🟡
ChatOptionsとChatResponse/AgentResponseは現在、応答形式を考慮したジェネリックになっています
PR:#3305
ChatOptions、 ChatResponse、および AgentResponse は、応答形式の型によってパラメーター化されたジェネリック型になりました。 これにより、 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!)
ヒント
これは、重大ではない機能強化です。 型パラメーターのない既存のコードは引き続き機能します。 上記のコード スニペットでオプションと応答に型を指定する必要はありません。これらはわかりやすくするためにここに示されています。
🟡
BaseAgent Claude Agent SDK のサポートが追加されました
PR:#3509
Python SDK には、Claude Agent SDK の BaseAgent 実装が含まれるようになり、Agent Framework でのファースト クラスのアダプター ベースの使用が可能になりました。
python-1.0.0b260128 (2026 年 1 月 28 日)
リリース ノート:python-1.0.0b260128
🔴
AIFunctionをFunctionToolに名前を変更し、@ai_functionを@toolに名前を変更
PR:#3413
クラスとデコレーターは、業界用語との明確さと一貫性を保つため、名前が変更されました。
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)
🔴 GroupChat およびマゼンティックにファクトリパターンが追加されました; API の名前が変更されました
PR:#3224
グループ チャットに参加者ファクトリとオーケストレーター ファクトリを追加しました。 名前の変更も含まれます。
-
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 に名前を変更しました GitHub
PR:#3486
正しい大文字と小文字を使用するように、クラス名とパッケージ名が更新されました。
Before:
from agent_framework_github_copilot import GithubCopilotAgent
agent = GithubCopilotAgent(...)
After:
from agent_framework_github_copilot import GitHubCopilotAgent
agent = GitHubCopilotAgent(...)
python-1.0.0b260127 (2026 年 1 月 27 日)
リリース ノート:python-1.0.0b260127
🟡
BaseAgent GitHub Copilot SDK のサポートが追加されました
PR:#3404
Python SDK には、GitHub Copilot SDK 統合用の BaseAgent 実装が含まれるようになりました。
python-1.0.0b260123 (2026 年 1 月 23 日)
リリース ノート:python-1.0.0b260123
🔴 classmethod コンストラクターを使用して 1 つのクラスに簡略化されたコンテンツ タイプ
PR:#3252
( BaseContentから派生した) すべての古いコンテンツ タイプを、classmethods で単一の Content クラスに置き換えて、特定の型を作成しました。
完全な移行リファレンス
| 旧型 | 新しいメソッド |
|---|---|
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(...) |
追加の新しいメソッド (直接先行操作なし):
-
Content.from_text_reasoning(...)— 推論や思考に関する内容 -
Content.from_hosted_vector_store(...)— ベクターストアの参照の場合 -
Content.from_usage(...)— 使用状況/トークン情報の場合 -
Content.from_mcp_server_tool_call(...)/Content.from_mcp_server_tool_result(...)— MCP サーバー ツールの場合 -
Content.from_code_interpreter_tool_call(...)/Content.from_code_interpreter_tool_result(...)— コード インタープリターの場合 -
Content.from_image_generation_tool_call(...)/Content.from_image_generation_tool_result(...)— 画像生成用
型チェック
isinstance()チェックの代わりに、type プロパティを使用します。
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)
基本的な例
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")
🔴 注釈型はAnnotationおよびTextSpanRegion TypedDicts に簡略化されました。
PR:#3252
クラス ベースの注釈型を、より単純な TypedDict 定義に置き換えられました。
| 旧型 | 新しいタイプ |
|---|---|
CitationAnnotation (クラス) |
Annotation (typedDict with type="citation") |
BaseAnnotation (クラス) |
Annotation (TypedDict) |
TextSpanRegion ( SerializationMixinを持つクラス) |
TextSpanRegion (TypedDict) |
Annotations (型エイリアス) |
Annotation |
AnnotatedRegions (型エイリアス) |
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"
}
注
AnnotationとTextSpanRegionがTypedDictになったため、クラス インスタンスではなくディクショナリとして作成します。
🔴
response_format 検証エラーがユーザーに表示されるようになりました
PR:#3274
ChatResponse.valueおよびAgentResponse.valueは、スキーマ検証が失敗したとき、ValidationErrorを自動的に返すのではなくNoneを発生させるようになりました。
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 実行ロジックが簡略化されました。MCP と Anthropic クライアントの修正
PR:#3322
AG-UI での run メソッドのシグネチャと動作が簡略化されました。
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
)
🟡 Anthropic クライアントで response_format 構造化された出力がサポートされるようになりました
PR:#3301
OpenAI クライアントや Azure クライアントと同様に、 response_format経由で Anthropic クライアントで構造化された出力解析を使用できるようになりました。
🟡 拡張された Azure AI 構成 (reasoning、 rai_config)
Azure AI のサポートは、エージェントの作成時に推論構成のサポートと rai_config によって拡張されました。
python-1.0.0b260116 (2026 年 1 月 16 日)
リリース ノート:python-1.0.0b260116
🔴
create_agent に名前を変更しました as_agent
PR:#3249
目的をより明確にするためにメソッドの名前が変更されました。
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 に名前を変更しました executor_id
PR:#3166
API の整合性のために名前が変更されたプロパティ。
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 では、サービスで管理されるセッション継続性がサポートされます
PR:#3136
AG-UI では、複数ターンの継続性を維持するために、サービスで管理される会話 ID (Foundry マネージド セッション/スレッドなど) が保持されるようになりました。
python-1.0.0b260114 (2026 年 1 月 14 日)
リリース ノート:python-1.0.0b260114
🔴 リファクタリングされたオーケストレーション
PR:#3023
Agent Framework ワークフローでのオーケストレーションの広範なリファクタリングと簡略化:
-
グループ チャット: オーケストレーター Executor を専用のエージェント ベースと関数ベース (
BaseGroupChatOrchestrator、GroupChatOrchestrator、AgentBasedGroupChatOrchestrator) に分割します。 ブロードキャスト モデルを使用して、スター トポロジに簡略化されました。 -
ハンドオフ: 単一レベル、コーディネーター、およびカスタム Executor のサポートが削除されました。
HandoffAgentExecutorで放送モデルに移行。 -
シーケンシャルと同時実行:
AgentApprovalExecutorとAgentRequestInfoExecutorを介してサブワークフローに依存する簡略化された要求情報メカニズム。
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]
)
🔴 TypedDict および Generic として導入されたオプション
PR:#3140
型の安全性と IDE オートコンプリートを向上させるために、TypedDict を使用してオプションが型定義されています。
📖 完全な移行手順については、「 型指定されたオプション ガイド」を参照してください。
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_id": "gpt-4",
"temperature": 0.7,
"max_tokens": 1000,
},
)
🔴
display_name 削除;単数形に context_provider ; middleware はリストである必要があります
PR:#3139
-
display_nameエージェントから削除されたパラメーター -
context_providers(複数形、受け入れリスト) をcontext_providerに変更 (単数形、1 個のみ可) -
middlewareリストが必要になりました (1 つのインスタンスを受け入れなくなりました) -
AggregateContextProviderコードから削除された (必要に応じてサンプル実装を使用する)
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* に名前を変更しました AgentResponse*
PR:#3207
AgentRunResponse
AgentRunResponseUpdateの名前が AgentResponse および AgentResponseUpdate に変更されました。
Before:
from agent_framework import AgentRunResponse, AgentRunResponseUpdate
After:
from agent_framework import AgentResponse, AgentResponseUpdate
🟡 YAML 定義ワークフロー用に追加された宣言型ワークフロー ランタイム
PR:#2815
宣言型 YAML ワークフローを実行するためのグラフ ベースのランタイムが追加され、カスタム ランタイム コードなしでマルチエージェント オーケストレーションが有効になりました。
🟡 MCP の読み込み/信頼性の向上
PR:#3154
MCP 統合により、接続損失の動作、読み込み時の改ページ位置のサポート、および表現制御オプションが改善されました。
🟡 Foundry A2ATool でターゲット URL のない接続がサポートされるようになりました
PR:#3127
A2ATool では、直接ターゲット URL が構成されていない場合でも、プロジェクト接続メタデータを介して Foundry でサポートされる A2A 接続を解決できるようになりました。
python-1.0.0b260107 (2026 年 1 月 7 日)
リリース ノート:python-1.0.0b260107
このリリースでは大きな変更はありません。
python-1.0.0b260106 (2026 年 1 月 6 日)
リリース ノート:python-1.0.0b260106
このリリースでは大きな変更はありません。
概要テーブル
| リリース | リリース ノート | タイプ | 変更 | PR |
|---|---|---|---|---|
| post-1.0.0b260212 (未リリース) | N/A | 🔴 速報 | チャット/エージェント メッセージの入力が整列されています: カスタム get_response() 実装はSequence[Message] を受け入れるべきです |
#3920 |
| post-1.0.0b260212 (未リリース) | N/A | 🔴 速報 |
FunctionTool[Any] スキーマパススルーの互換性 shim が削除されました。必要に応じて明示的なスキーマで FunctionTool を使用する |
#3907 |
| post-1.0.0b260212 (未リリース) | N/A | 🟡 強化 |
workflow.as_agent() コンテキスト プロバイダーが設定されていない場合、既定で InMemoryHistoryProvider("memory") が挿入されるようになりました |
#3918 |
| 1.0.0b260212 | Notes | 🔴 速報 |
Hosted*Tool クラスが削除されました。クライアント get_*_tool() メソッドを使用してホステッド ツールを作成する |
#3634 |
| 1.0.0b260212 | 🔴 速報 | セッション/コンテキスト プロバイダー パイプラインの最終処理: AgentThread 削除、使用 AgentSession + context_providers |
#3850 | |
| 1.0.0b260212 | 🔴 速報 | チェックポイント モデル/ストレージリファクタリング (workflow_id 削除、 previous_checkpoint_id 追加、ストレージ動作の変更) |
#3744 | |
| 1.0.0b260212 | 🟡 強化 |
AzureOpenAIResponsesClient は Foundry プロジェクト エンドポイントから、またはAIProjectClientから作成できます。 |
#3814 | |
| 1.0.0b260212 | 🔴 速報 | ミドルウェアの継続がcontextを受け入れなくなりました。call_next(context)をcall_next()に更新してください。 |
#3829 | |
| 1.0.0b260210 | Notes | 🔴 速報 |
send_responses()
/
send_responses_streaming() 削除;使用 workflow.run(responses=...) |
#3720 |
| 1.0.0b260210 | 🔴 速報 |
SharedState → State; ワークフロー状態 API が同期しており、チェックポイント状態フィールドの名前が変更されました |
#3667 | |
| 1.0.0b260210 | 🔴 速報 | オーケストレーション ビルダーがagent_framework.orchestrationsパッケージに移動しました |
#3685 | |
| 1.0.0b260210 | 🟡 強化 | Python エージェントの応答に追加されたバックグラウンド応答と continuation_token サポート |
#3808 | |
| 1.0.0b260210 | 🟡 強化 | サイド バイ サイドで追加されたセッション/コンテキスト プレビューの種類 (SessionContext、 BaseContextProvider) |
#3763 | |
| 1.0.0b260210 | 🟡 強化 | ストリーミング コード インタープリターの更新に、増分コード デルタが含まれるようになりました | #3775 | |
| 1.0.0b260210 | 🟡 強化 |
@tool デコレーターが明示的なスキーマ処理のサポートを追加 |
#3734 | |
| 1.0.0b260210 | Notes | 🔴 速報 |
register_executor()
/
register_agent()
WorkflowBuilderから削除されました。インスタンスを直接使用し、状態を分離するヘルパー メソッドを使用してください。 |
#3781 |
| 1.0.0b260210 | 🔴 速報 |
ChatAgent → Agent、 ChatMessage → Message、 RawChatAgent → RawAgent、 ChatClientProtocol → SupportsChatGetResponse |
#3747 | |
| 1.0.0b260210 | 🔴 速報 | 型 API レビュー: Role/FinishReason 型の変更、応答/更新コンストラクターの厳密化、補助関数の名前が from_updates に変更されること、および try_parse_value の削除 |
#3647 | |
| 1.0.0b260210 | 🔴 速報 |
run
/
get_responseとResponseStreamを中心に統合されたAPIたち |
#3379 | |
| 1.0.0b260210 | 🔴 速報 |
AgentRunContext に名前が変更された AgentContext |
#3714 | |
| 1.0.0b260210 | 🔴 速報 |
AgentProtocol に名前が変更された SupportsAgentRun |
#3717 | |
| 1.0.0b260210 | 🔴 速報 | ミドルウェア next パラメーターの名前が次に変更されました call_next |
#3735 | |
| 1.0.0b260210 | 🔴 速報 | TypeVar の名前付けの標準化 (TName → NameT) |
#3770 | |
| 1.0.0b260210 | 🔴 速報 | 現在のエージェント応答フローに合わせた、エージェントとしてのワークフローの出力/ストリーム動作 | #3649 | |
| 1.0.0b260210 | 🔴 速報 | Fluent ビルダー メソッドが 6 つのビルダー間でコンストラクター パラメーターに移動されました | #3693 | |
| 1.0.0b260210 | 🔴 速報 |
WorkflowEvent判別機能を使用して単一のtypeに統合されたワークフロー イベント。isinstance() →event.type == "..." |
#3690 | |
| 1.0.0b260130 | Notes | 🟡 強化 |
ChatOptions
/
ChatResponse
/
AgentResponse 汎用的な応答フォーマット |
#3305 |
| 1.0.0b260130 | 🟡 強化 |
BaseAgent Claude Agent SDK 統合のサポートが追加されました |
#3509 | |
| 1.0.0b260128 | Notes | 🔴 速報 |
AIFunction → FunctionTool、 @ai_function → @tool |
#3413 |
| 1.0.0b260128 | 🔴 速報 | GroupChat/Magentic のファクトリ パターン。 with_standard_manager → with_manager、 participant_factories → register_participant |
#3224 | |
| 1.0.0b260128 | 🔴 速報 |
Github → GitHub |
#3486 | |
| 1.0.0b260127 | Notes | 🟡 強化 |
BaseAgent GitHub Copilot SDK 統合のサポートが追加されました |
#3404 |
| 1.0.0b260123 | Notes | 🔴 速報 | classmethods を使用して単一の Content クラスに統合されたコンテンツ タイプ |
#3252 |
| 1.0.0b260123 | 🔴 速報 |
response_format 検証エラーが発生するようになりました ValidationError |
#3274 | |
| 1.0.0b260123 | 🔴 速報 | AG-UI 実行ロジックが簡略化されました | #3322 | |
| 1.0.0b260123 | 🟡 強化 | Anthropic クライアントが構造化出力 response_format サポートを追加 |
#3301 | |
| 1.0.0b260123 | 🟡 強化 |
reasoningとrai_configのサポートによって拡張された Azure AI 構成 |
#3403、 #3265 | |
| 1.0.0b260116 | Notes | 🔴 速報 |
create_agent → as_agent |
#3249 |
| 1.0.0b260116 | 🔴 速報 |
source_executor_id → executor_id |
#3166 | |
| 1.0.0b260116 | 🟡 強化 | AG-UI では、サービスで管理されるセッション/スレッドの継続性がサポートされます | #3136 | |
| 1.0.0b260114 | Notes | 🔴 速報 | リファクタリングされたオーケストレーション (GroupChat、ハンドオフ、シーケンシャル、同時実行) | #3023 |
| 1.0.0b260114 | 🔴 速報 | TypedDict および Generic としてのオプション | #3140 | |
| 1.0.0b260114 | 🔴 速報 |
display_name 削除; context_providers → context_provider (単数形)、 middleware はリストである必要があります |
#3139 | |
| 1.0.0b260114 | 🔴 速報 |
AgentRunResponse
/
AgentRunResponseUpdate に名前を変更しました AgentResponse/AgentResponseUpdate |
#3207 | |
| 1.0.0b260114 | 🟡 強化 | YAML 定義ワークフロー用に追加された宣言型ワークフロー ランタイム | #2815 | |
| 1.0.0b260114 | 🟡 強化 | MCP の読み込み/信頼性の向上 (接続損失処理、改ページ位置、表現制御) | #3154 | |
| 1.0.0b260114 | 🟡 強化 | Foundry A2ATool では、明示的なターゲット URL のない接続がサポートされます |
#3127 | |
| 1.0.0b260107 | Notes | — | 重要な変更なし | — |
| 1.0.0b260106 | Notes | — | 重要な変更なし | — |