AIエージェント開発

【速報】MAF Build 2026新機能|Agent Harness他2つ

【速報】MAF Build 2026新機能|Agent Harness他2つ

この記事の結論

MAFがBuild 2026で追加したAgent Harness・Hosted Agents・CodeActを公式コード付きで解説。1.0 GA後の新機能を開発者向けに整理します。

Microsoft Agent Framework(MAF)は2026年4月2日に1.0 GAへ到達しましたが、それで開発が止まったわけではありません。2026年6月2〜3日に開催されたMicrosoft Build 2026で、MAFチームはAgent HarnessFoundry Hosted AgentsCodeActという3つの新機能を発表しました。いずれも「エージェントを試作する」段階から「本番で動かす」段階へ橋渡しするための機能です。

本記事では、Microsoft公式の開発者ブログ(2026年6月3日公開)で示されたコード例をそのまま引用しながら、4月の1.0 GA以降に何が追加されたのかをAIエージェント開発者向けに整理します。料金や煽りではなく、「明日コードに書けるか」という観点で見ていきます。

この記事の要点

  • Agent Harness:シェル実行・ファイルアクセス・TODO管理・plan/execute切り替えなど「本番エージェントに毎回自作していた配管」を組み込みで提供。AsHarnessAgent()(.NET)/ create_harness_agent()(Python)の1呼び出しで全部入る。
  • Foundry Hosted Agents:アイドル時は「scale to zero(課金ゼロ)」、セッションごとにVM隔離、ファイルシステム状態を保持。AddFoundryResponses() + MapFoundryResponses() でホスティングAPIを公開。
  • CodeAct:ツールを1回ずつ呼ぶ代わりにモデルが短いPythonプログラムを書いてサンドボックスで一括実行。公式ベンチで実行時間52.4%短縮・トークン63.9%削減。

対象読者:MAFでAIエージェントを実装している.NET / Python開発者、これからMAFの採用を検討しているPM・アーキテクト。

Build 2026で何が追加されたのか — 全体像

まず前提を整理します。MAFはMicrosoftが提供するオープンソースのSDK兼ランタイムで、チャットクライアント・ツール・MCP連携・コンテキストプロバイダー・ミドルウェア・マルチステップワークフローを.NETとPythonで同じ概念・同じAPIとして扱えるのが特徴です。2026年4月2日の1.0 GAで、AutoGenとSemantic Kernelが単一の正式サポートプラットフォームへ統合されました。AutoGenからの移行については、すでに公開しているAutoGen v0.4の現状とMAF移行ガイドで詳しく解説しています。

Build 2026の発表は、この1.0という土台の上に積み上がる「次の3つ」です。公式ブログの言葉を借りれば、これらの機能はpreview(プレビュー)からrelease(リリース)へ段階的に移行(graduating from preview to release)している段階です。本記事で紹介するコードは公式が示したサンプルですが、CodeActのHyperlightパッケージのようにalpha扱いのものもあるため、本番投入前には各機能の最新ステータスを公式ドキュメントで確認してください。

新機能 解決する課題 提供形態
Agent Harness シェル・ファイル・承認フロー・観測性を毎回自作していた SDK組み込み(.NET / Python)
Foundry Hosted Agents ローカルからの本番デプロイ・スケーリング・状態保持 Foundryマネージドホスティング
CodeAct 多数のツール呼び出しのオーバーヘッドとトークン消費 agent-framework-hyperlight(alpha)パッケージ

Agent Harness — 本番エージェントの「配管」が組み込みに

Agent Harnessは、公式の表現では「モデルの推論が実際の実行と出会う層(the layer where model reasoning meets real execution)」です。具体的には、シェルとファイルシステムへのアクセス、human-in-the-loop(人間による承認)フロー、長時間タスクのためのコンテキスト管理といった、本番エージェントを書くたびに自前で実装していた要素をまとめて提供します。

.NETでは、チャットクライアントに対して AsHarnessAgent() を呼ぶだけでハーネス付きエージェントが構築できます。以下は公式が示したブログ執筆エージェントの例です(コードは公式ブログより引用)。

// 注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。
AIAgent agent =
    chatClient.AsHarnessAgent(MaxContextWindowTokens, MaxOutputTokens, new HarnessAgentOptions
    {
        Name = "BlogWriterAgent",
        Description = "A blog writing assistant that researches a topic, plans an outline, and drafts a blog post.",
        FileMemoryStore = new FileSystemAgentFileStore(Path.Combine(AppContext.BaseDirectory, "artifacts")),
        ChatOptions = new ChatOptions
        {
            Instructions = instructions,
            Tools =
            [
                new WebBrowsingTool(),
            ],
        },
    });

// 共有ヘルパー HarnessConsole を使って対話セッションを実行
await HarnessConsole.RunAgentAsync(
    agent,
    userPrompt: "Enter a blog topic to get started.",
    new HarnessConsoleOptions
    {
        Observers = [
            new OpenAIResponsesWebSearchDisplayObserver(),
            new OpenAIResponsesErrorObserver()
        ],
        CommandHandlers = HarnessConsoleOptions.BuildDefaultCommandHandlers(agent),
    });

ポイント

  • FileMemoryStoreFileSystemAgentFileStore を渡すことで、エージェントの作業成果(artifacts)をローカルファイルとして永続化できる。
  • HarnessConsole.RunAgentAsync() が対話ループ・コマンドハンドラ・オブザーバーをまとめて面倒を見るため、CLIエージェントの「ガワ」を書かなくてよい。

Python側はさらにシンプルで、create_harness_agent() 一発です。公式コメントによれば、TODO・モード・コンパクション・スキル・テレメトリ・Web検索といった機能はすべてsensible defaults(妥当な既定値)で自動設定されると明記されています。

# 注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。
# research向けの指示を与えてハーネスエージェントを作成。
# todo / mode / compaction / skills / telemetry / web search は
# すべて妥当な既定値で自動設定される。
agent = create_harness_agent(
    client=client,
    max_context_window_tokens=128_000,
    max_output_tokens=16_384,
    name="ResearchAgent",
    description="A research assistant that plans and executes research tasks.",
    agent_instructions=RESEARCH_INSTRUCTIONS,
)

Agent Harnessが組み込みで提供するProvider群

「自動設定される」と言われても中身が分からないと使いこなせないので、公式ブログに列挙されている組み込みProviderとツールを正確に整理します。名称はすべて公式記載のまま引用しています。

Provider / 機能 役割(公式記載に準拠)
FileMemoryProvider セッションスコープのファイルベースメモリ。ターンをまたいでメモや学習を永続化(agent-file-memory/{session}/ に保存)
FileAccessProvider エージェントが操作対象ファイルを読み書きするための汎用ファイルアクセス
TodoProvider 作業項目をセッション状態でトラッキング(add / complete / remove / list)。マルチステップタスク管理向け
AgentModeProvider 「plan」と「execute」の動作モードを切り替え、計画と実行を分離
AgentSkillsProvider ファイルシステムからのスキル探索と実行。モジュール式の能力注入を可能にする
BackgroundAgentsProvider サブタスクを並列実行する子エージェントへ委任(fan-outオーケストレーション)

さらに、ツールとミドルウェアとして以下が用意されています。

  • Web search:標準でホスト型Web検索ツールが有効。DisableWebSearch で無効化できる。
  • Shell execution(.NETのみ):サンドボックス化された ShellExecutor 経由でシェルコマンドを実行。
  • ToolApprovalAgent:機微なツール呼び出しに対する「don’t ask again(次回から確認しない)」型の承認ルール。
  • OpenTelemetryAgent:OpenTelemetry Semantic Conventionsに沿った自動トレーシング。

ストレージは差し替え可能で、公式によれば FileMemoryStoreFileAccessStore は任意の AgentFileStore 実装に置き換えられます。つまり、ローカルファイルでプロトタイプし、本番ではクラウドストレージ実装へ差し替える、という運用が想定されています。マルチエージェントのオーケストレーション全体の設計については、Microsoft Agent Framework マルチエージェント実装ガイドも併せて参照してください。

Foundry Hosted Agents — ローカルから本番へ

2つ目のFoundry Hosted Agentsは、ローカルで書いたMAFエージェントをFoundryマネージドのインフラ上にデプロイする仕組みです。公式が挙げる「out of the box(標準)」で得られるものは次のとおりです。

  • Scale to zero:アイドル中は課金ゼロ。次のリクエストで自動的にスケールアップする。
  • ファイルシステムを保ったまま再開:ファイル・ディスク状態・セッションアイデンティティがセッションをまたいで永続化される。
  • 組み込みのアイデンティティ、自動スケーリング、マネージドなセッション状態、観測性、バージョニング。

実装はホスティング用の名前空間を取り込み、サービスに登録してエンドポイントをマッピングするだけです(コードは公式ブログより引用)。

// 注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。
using Microsoft.Agents.AI.Foundry.Hosting;

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddFoundryResponses(agent);

var app = builder.Build();
app.MapFoundryResponses();

app.Run();

Pythonでは ResponsesHostServer にエージェントを渡して起動します。

# 注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。
server = ResponsesHostServer(agent)

server.run()

ポイント:ホスティングAPIは AddFoundryResponses() / MapFoundryResponses()(.NET)と ResponsesHostServer(Python)という対応関係になっています。Responsesという名前が示すとおり、OpenAI互換のResponsesエンドポイントとしてエージェントを公開する設計です。Amazon Bedrock AgentCoreのManaged Harnessなど他クラウドのホスティングと比較したい方は、Amazon Bedrock AgentCore完全ガイドも参考になります。

CodeAct — ツール呼び出しを「コード1本」に畳む

3つ目のCodeActが、今回もっとも開発者の関心を集めている機能です。従来のツール呼び出しは「モデルがツールAを呼ぶ→結果を受け取る→ツールBを呼ぶ→…」というループを繰り返し、その都度LLMの推論コストとレイテンシが発生します。CodeActはこのループを畳み込みます。

公式の説明では、CodeActはモデルに「あなたのツールを call_tool(…) 経由で呼び出す短いPythonプログラムを1本書かせ、サンドボックスで1回実行し、統合された結果を返す」方式です。つまりN回のツール往復を、コード1本の実行に置き換えます。

このコードはどこで動くのか。CodeActは新しい agent-framework-hyperlight(alpha)パッケージで提供され、モデルが生成したコードを呼び出しごとに新しくローカル隔離されたHyperlightマイクロVMで実行します。公式いわく「単一ツール呼び出しの粒度で、強力な隔離が実質的に無償で得られる」設計です。組み込みは、ツールの登録方法を1行変えるだけです(コードは公式ブログより引用)。

# 注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。
from agent_framework import Agent, tool
from agent_framework_hyperlight import HyperlightCodeActProvider

@tool
def get_weather(city: str) -> dict[str, float | str]:
    """Return the current weather for a city."""
    return {"city": city, "temperature_c": 21.5, "conditions": "partly cloudy"}

codeact = HyperlightCodeActProvider(
    tools=[get_weather],
    approval_mode="never_require",
)

agent = Agent(
    client=client,
    name="CodeActAgent",
    instructions="You are a helpful assistant.",
    context_providers=[codeact],
)

result = await agent.run(
    "Get the weather for Seattle and Amsterdam and compare them."
)

ポイント

  • 既存の @tool 定義はそのまま使える。変えるのは HyperlightCodeActProvidercontext_providers に渡す部分だけ。
  • approval_mode でコード実行前の承認を制御する(例の "never_require" は確認なしで実行)。本番では承認モードの設計が重要になる。

CodeActのベンチマーク(公式測定値)

効果は数字で示されています。公式ブログが提示した「多数ユーザーの注文合計を計算する(数十回のツール呼び出しを伴う)代表的なマルチステップワークロード」での比較は以下のとおりです。

方式 実行時間(Time) トークン(Tokens)
従来(Traditional) 27.81秒 6,890
CodeAct 13.23秒 2,489
改善率 52.4%短縮 63.9%削減

これはあくまで「数十回のツール呼び出しを伴う」特定ワークロードでの値である点に注意が必要です。ツール呼び出しが1〜2回で完結するタスクでは、コード生成のオーバーヘッドのほうが大きくなる可能性があります。CodeActが効くのは「1リクエストの中で何度もツールを叩く」パターンであり、すべてのエージェントで一律に速くなるわけではありません。

あわせて1.0到達 — GitHub Copilot SDK連携も

Build 2026では上記3機能に加えて、いくつかの機能がプレビューからリリースへ昇格しました。開発者にとって見逃せないのがGitHub Copilot SDK連携です。MAFがGitHub Copilot SDKをバックエンドとしてエージェントを構築できるようになり、Copilotのコーディング志向の能力(シェル実行、ファイル操作など)をMAFのプログラミングモデルから利用できます。

# 注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。
import asyncio
from agent_framework.github import GitHubCopilotAgent

async def basic_example():
    agent = GitHubCopilotAgent(
        default_options={"instructions": "You are a helpful assistant."},
    )

    async with agent:
        result = await agent.run("What is Microsoft Agent Framework?")
        print(result)

.NET側は CopilotClient を起動し AsAIAgent() でMAFのエージェントとして扱えます。MAFが「特定モデルベンダーに縛られない」抽象化を維持しながら、Copilotという実行バックエンドを選択肢に加えた格好です。

日本のAIエージェント開発者にとっての意味

今回の3機能は、MAFのポジショニングを「マルチエージェントのオーケストレーションSDK」から「本番エージェントのランタイム」へ押し上げるものです。実務的なインパクトを3点に整理します。

  • 自作してきた「配管」を捨てられる:TODO管理、plan/execute分離、ファイルメモリ、ツール承認、OpenTelemetryトレースを自前実装していたチームは、Agent Harnessへの置き換えで保守対象を減らせる。ただし既存実装からの移行コストとカスタマイズ性のトレードオフは要評価。
  • コスト最適化の新しい打ち手:ツール呼び出しが多いエージェント(データ集計、複数API横断の処理など)では、CodeActがトークンコストとレイテンシの両方を下げられる可能性がある。逆に単純なエージェントでは効果が薄いため、自分のワークロードで実測してから採用判断するのが正解。
  • Azure/Foundry前提の本番運用が現実的に:Foundry Hosted Agentsのscale to zeroは、トラフィックが不規則なエージェントのホスティングコストを抑えやすい。一方でFoundryへのロックインも進むため、マルチクラウド要件があるチームは設計段階で切り分けを。

導入前に押さえておきたい注意点

新機能は魅力的ですが、検証段階で踏みやすい落とし穴を挙げておきます。

注意1:ステータスを「GA」と決めつけない

❌ Build 2026の発表=全部すぐ本番で使える、と考える
⭕ 公式は「preview → release へ移行中」と表現しており、CodeActの agent-framework-hyperlightalphaと明記。本番投入前に各機能の最新ステータスを公式ドキュメントで確認する。

注意2:CodeActをすべてのエージェントに適用しない

❌ 52.4%速くなるなら全エージェントをCodeAct化する
⭕ 公式ベンチは「数十回のツール呼び出しを伴う」ワークロードでの値。ツール往復が少ないタスクでは逆効果になりうる。自分のユースケースで実測してから決める。

注意3:シェル実行・ファイルアクセスの権限設計を後回しにしない

❌ Agent Harnessのシェル実行(ShellExecutor)やファイルアクセスを承認なしで本番に出す
ToolApprovalAgent による承認ルールや、CodeActの approval_mode を最初から設計に組み込む。エージェントに実行系の権限を渡す以上、プロンプトインジェクション対策(MAFはBuild前の5月にFIDESという情報フロー制御も導入済み)と合わせて検討する。

開発者が今週やるべき3つのこと

  1. 今日:公式ブログ「Microsoft Agent Framework at BUILD 2026」を読み、自分が書いているエージェントのどの「配管」がAgent Harnessで置き換え可能かを洗い出す。
  2. 今週中:ツール呼び出しが多いエージェントを1つ選び、CodeAct(agent-framework-hyperlight)でトークン数とレイテンシをローカル実測する。公式の改善率が自分のワークロードで再現するか検証する。
  3. 今月中:本番ホスティングをFoundry Hosted Agentsへ寄せる場合の、scale to zero時の初回リクエストレイテンシ(コールドスタート)とロックインの影響を評価する。

よくある質問(FAQ)

Q1. Agent Harnessは.NETとPythonの両方で使えますか?

はい。公式ブログは.NET(AsHarnessAgent())とPython(create_harness_agent())の両方のコード例を示しています。ただしシェル実行(ShellExecutor)は記事執筆時点で「.NETのみ」と明記されているなど、一部に言語差があります。

Q2. CodeActのHyperlightマイクロVMとは何ですか?

モデルが生成したコードを呼び出しごとに新規のローカル隔離環境で実行する仕組みです。公式は agent-framework-hyperlight(alpha)パッケージとして提供し、「単一ツール呼び出しの粒度で強力な隔離が実質無償」と説明しています。alpha段階のため本番採用は最新ステータスの確認が前提です。

Q3. MAFはいつ1.0 GAになりましたか?

2026年4月2日です。AutoGenとSemantic Kernelを単一の正式サポートプラットフォームへ統合したリリースで、Build 2026の新機能はこの1.0の土台の上に積み上がっています。

Q4. Foundry Hosted Agentsのscale to zeroとは?

エージェントがアイドル中は課金されず、次のリクエストで自動的にスケールアップする課金・スケーリングモデルです。ファイルシステム状態やセッションアイデンティティはセッションをまたいで保持されます。

Q5. これらの機能を使うとAzureにロックインされますか?

機能によります。Agent HarnessとCodeActはMAFのSDK/パッケージで提供されローカルでも動きますが、Foundry Hosted AgentsはFoundryマネージドインフラ前提です。マルチクラウド要件がある場合は、ホスティング層と開発層を切り分けて評価することをおすすめします。

まとめ

Microsoft Build 2026で発表されたMAFの3機能は、いずれも「試作から本番へ」という一貫したテーマを持っています。Agent Harnessが本番エージェントの配管を組み込みで提供し、Foundry Hosted Agentsがデプロイとスケーリングを引き受け、CodeActがツール呼び出しのコストを畳み込む。4月の1.0 GAが「統合」だったとすれば、Build 2026は「実運用への橋渡し」と言えます。

ただし本記事で繰り返したとおり、CodeActのHyperlightパッケージはalpha、機能群は「プレビューからリリースへ移行中」という段階です。公式コード例はそのまま動かせますが、本番投入の判断は各機能の最新ステータスと、自分のワークロードでの実測に基づいて行ってください。

参考・出典

この記事を読んでMAFの本番導入イメージが固まってきた方へ。

株式会社Uravationでは、AIエージェントの設計・実装・社内導入を支援する研修・コンサルティングを提供しています。フレームワーク選定から本番運用設計まで、お気軽にご相談ください。


あわせて読みたい


著者:佐藤傑(さとう・すぐる)
株式会社Uravation代表取締役。X(@SuguruKun_ai)フォロワー約10万人。100社以上の企業向けAI研修・導入支援を手がける。著書『AIエージェント仕事術』。

Need help moving from reading to rollout?

この記事を読んで導入イメージが固まってきた方へ

Uravationでは、AIエージェントの要件整理、PoC設計、社内導入、研修まで一気通貫で支援しています。

この記事をシェア

X Facebook LINE

※ 本記事の情報は2026年6月時点のものです。サービスの料金・仕様は変更される可能性があります。最新情報は各サービスの公式サイトをご確認ください。

関連記事