mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
57c901a245
* update hyperlight to beta and move samples, add hosted agent sample * Python: Fix hyperlight WasmSandbox cross-thread Drop and harden sample Root cause: when a worker-side closure raised, the exception's __traceback__ retained frame locals that included the partially constructed PyO3 sandbox. Future.result() re-raised that exception on the caller thread, and when the caller's exception was eventually GC'd the frame locals were released off-thread, dec_ref'ing the unsendable sandbox from the wrong thread and tripping the PyO3 panic '_native_wasm::WasmSandbox is unsendable, but is being dropped on another thread'. Fix: * Add _SandboxWorker._run_on_worker which catches every exception on the worker, drops __traceback__ there, deletes the original exception, and re-raises a fresh instance on the caller thread. initialize and execute route through it; dispose keeps its bare-submit semantics. * Add an opt-in diagnostic module _drop_diagnostic (no-op unless HYPERLIGHT_TRACE_DROPS=1) that installs a sys.unraisablehook and dumps owner-thread + per-thread stacks on any future cross-thread unsendable Drop. Useful for triaging similar PyO3 regressions. * Tests: cross-thread invocation, traceback-leak isolation, _SandboxEntry attribute-shape check, and a stale-reference stress test driven through asyncio.to_thread. Sample (samples/04-hosting/foundry-hosted-agents/responses/06_hyperlight_codeact): * Dockerfile installs agent-framework-* from in-tree source with python/ as build context so unreleased fixes can be validated end-to-end. * call_server.py pins the Responses API version. * main.py enables include_detailed_errors=True so future tool failures surface the actual exception text instead of a bare 'Error: Function failed.' string. * README.md documents the in-tree-package build and the Hyperlight hypervisor requirement (/dev/kvm on Linux, MSHV on Windows). Hosted environments without hypervisor passthrough surface 'No Hypervisor was found for Sandbox'; this is a hosting constraint, not a hyperlight bug. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Python: remove _drop_diagnostic from hyperlight package The diagnostic module was useful while bisecting the cross-thread Drop bug, but it is no longer needed now that _SandboxWorker._run_on_worker prevents the panic at the source. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Python: address PR review feedback on hyperlight - Use lazy agent_framework.hyperlight import in sample main.py. - Env-driven endpoint (FOUNDRY_AGENT_ENDPOINT) in call_server.py; remove personal URLs. - Align agent.yaml model deployment with manifest (gpt-4.1-mini). - Tighten Dockerfile requirements guard; drop dangling deploy.ps1 reference. - Preserve exception args when sanitizing tracebacks in _run_on_worker. - Add public _SandboxWorker.is_alive(); update test to avoid private attr. - Add namespace coverage tests for agent_framework.hyperlight lazy loader. - Add prominent note: Foundry hosted-agent runtime does not yet support Hyperlight (no hypervisor exposed); container works locally with /dev/kvm. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Python: bump hyperlight-sandbox dependencies to 0.4.x Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Python: renumber hyperlight codeact sample to 08 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Coerce worker exception args to strings for cross-thread safety Stringify exc.args on the worker thread before propagating, so any PyO3 unsendable object captured in args (e.g. via a caller-supplied callback or underlying SDK) cannot be Dropped on the calling thread. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * moved sample --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
4.1 KiB
4.1 KiB
Python Package Status
This file tracks the current lifecycle state of the Python packages in this workspace. Some packages at later stages might have features within them that are not ready yet, these have feature stage decorators on the relevant APIs, and for experimental features warnings are raised. See the Feature-level staged APIs section below for details on which features are in which stage and where to find them.
Status is grouped into these buckets:
alpha- initial release and early development packages that are not yet ready for general usebeta- prerelease packages that are not currently release candidatesrc- release candidate packages, these are close to ready for release but may still have some breaking changes before the final releasereleased- stable packages without a prerelease suffix, these are stable packages that should not have breaking changes between versionsdeprecated- removed or deprecated packages that should not be used for new work
Current packages
| Package | Path | State |
|---|---|---|
agent-framework |
python/ |
released |
agent-framework-a2a |
python/packages/a2a |
beta |
agent-framework-ag-ui |
python/packages/ag-ui |
beta |
agent-framework-anthropic |
python/packages/anthropic |
beta |
agent-framework-azure-contentunderstanding |
python/packages/azure-contentunderstanding |
alpha |
agent-framework-azure-ai-search |
python/packages/azure-ai-search |
beta |
agent-framework-azure-cosmos |
python/packages/azure-cosmos |
beta |
agent-framework-azurefunctions |
python/packages/azurefunctions |
beta |
agent-framework-bedrock |
python/packages/bedrock |
beta |
agent-framework-chatkit |
python/packages/chatkit |
beta |
agent-framework-claude |
python/packages/claude |
beta |
agent-framework-copilotstudio |
python/packages/copilotstudio |
beta |
agent-framework-core |
python/packages/core |
released |
agent-framework-declarative |
python/packages/declarative |
beta |
agent-framework-devui |
python/packages/devui |
beta |
agent-framework-durabletask |
python/packages/durabletask |
beta |
agent-framework-foundry |
python/packages/foundry |
released |
agent-framework-foundry-local |
python/packages/foundry_local |
beta |
agent-framework-gemini |
python/packages/gemini |
alpha |
agent-framework-github-copilot |
python/packages/github_copilot |
beta |
agent-framework-hyperlight |
python/packages/hyperlight |
beta |
agent-framework-lab |
python/packages/lab |
beta |
agent-framework-mem0 |
python/packages/mem0 |
beta |
agent-framework-ollama |
python/packages/ollama |
beta |
agent-framework-openai |
python/packages/openai |
released |
agent-framework-orchestrations |
python/packages/orchestrations |
beta |
agent-framework-purview |
python/packages/purview |
beta |
agent-framework-redis |
python/packages/redis |
beta |
Deprecated / removed packages
| Package | Previous path | State | Notes |
|---|---|---|---|
agent-framework-azure-ai |
python/packages/azure-ai |
deprecated |
The client classes within the azure-ai package were renamed, sometimes changed, and moved to agent-framework-foundry. |
Feature-level staged APIs
The following feature IDs have explicit feature-stage decorators on public APIs in the packages listed below.
Experimental features
EVALS
agent-framework-core: exported evaluation APIs fromagent_framework, includingLocalEvaluator,evaluate_agent,evaluate_workflow, and the related evaluation types and helper checks defined inagent_framework/_evaluation.pyagent-framework-foundry:FoundryEvals,evaluate_traces, andevaluate_foundry_target
SKILLS
agent-framework-core: exported skills APIs fromagent_framework, includingSkill,SkillResource,SkillScript,SkillScriptRunner, andSkillsProviderfromagent_framework/_skills.py
Release-candidate features
There are currently no feature-level rc APIs.