Skip to content

Lesson 14 handoff/human-loop and 08/04 condition workflow: removed primitives need rework #545

@HamidOna

Description

@HamidOna

Describe the bug

Three notebooks could not be migrated as part of #544 because the primitives they relied on were removed from the public agent_framework API surface and replaced with a new architecture that isn't a one-to-one rename:

14-microsoft-agent-framework/code-samples/14-handoff.ipynb — uses HandoffBuilder, HandoffUserInputRequest, RequestInfoEvent, WorkflowOutputEvent, WorkflowStatusEvent. None of these are exported from agent_framework anymore.

14-microsoft-agent-framework/code-samples/14-human-loop.ipynb — uses RequestInfoExecutor, RequestInfoEvent, RequestInfoMessage, RequestResponse, WorkflowOutputEvent, WorkflowStatusEvent. None of these are exported from agent_framework anymore. Equivalents seem to live in private modules (agent_framework._workflows._request_info_mixin.RequestInfoMixin, agent_framework.orchestrations.AgentRequestInfoResponse) but the public HITL pattern isn't documented in the installed package and there are no shipped samples.

08-multi-agent/code_samples/workflows-agent-framework/python/04.python-agent-framework-workflow-aifoundry-condition.ipynb — uses HostedWebSearchTool, which is removed. The web-search tool now needs to be obtained via OpenAIChatClient.get_web_search_tool(), which doesn't compose with the AzureAIProjectAgentProvider path the rest of the migrated notebooks use.

To Reproduce

  1. Pull main.
  2. pip install -r requirements.txt (resolves agent-framework==1.0.0b260212).
  3. Open any of the three notebooks above and run the import cell. It fails with ImportError for the names listed above.

Expected behavior

Each notebook should import cleanly and run end-to-end. The teaching points (handoff orchestration, human-in-the-loop, conditional workflow with web-search) should be expressible in the current agent_framework API.

Additional context

  • Python 3.13.5 on Windows 11
  • agent-framework 1.0.0b260212

Each of these is a near-rewrite rather than a translation, because the replacement pattern is structurally different (e.g. HITL has moved from RequestInfoExecutor + RequestResponse to a different mixin/orchestration approach). It would help to have one official sample per pattern so contributors aren't reverse-engineering from private modules.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions