feat(dojo): A2UI demos for the Microsoft Agent Framework (.NET) integration#1943
Open
ranst91 wants to merge 8 commits into
Open
feat(dojo): A2UI demos for the Microsoft Agent Framework (.NET) integration#1943ranst91 wants to merge 8 commits into
ranst91 wants to merge 8 commits into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
Python Preview PackagesVersion
Install with uvAdd the TestPyPI index to your [[tool.uv.index]]
name = "testpypi"
url = "https://test.pypi.org/simple/"
explicit = trueThen install the packages you need: # Core SDK
uv add 'ag-ui-protocol==0.0.0.dev1781536605' --index testpypi
# Integrations (each already depends on the matching ag-ui-protocol preview)
uv add 'ag-ui-langgraph==0.0.0.dev1781536605' --index testpypi
uv add 'ag-ui-crewai==0.0.0.dev1781536605' --index testpypi
# NOTE: ag-ui-agent-spec depends on pyagentspec (git-only, not on PyPI).
# You will need to install pyagentspec separately from its git repo.
uv add 'ag-ui-agent-spec==0.0.0.dev1781536605' --index testpypi
uv add 'ag_ui_adk==0.0.0.dev1781536605' --index testpypi
uv add 'ag_ui_strands==0.0.0.dev1781536605' --index testpypiInstall with pippip install \
--index-url https://test.pypi.org/simple/ \
--extra-index-url https://pypi.org/simple/ \
ag-ui-protocol==0.0.0.dev1781536605
Commit: 3d7cb60 |
@ag-ui/a2a-middleware
@ag-ui/a2ui-middleware
@ag-ui/event-throttle-middleware
@ag-ui/mcp-apps-middleware
@ag-ui/mcp-middleware
@ag-ui/a2a
@ag-ui/adk
@ag-ui/ag2
@ag-ui/agno
@ag-ui/aws-strands
@ag-ui/claude-agent-sdk
@ag-ui/crewai
@ag-ui/langchain
@ag-ui/langgraph
@ag-ui/llamaindex
@ag-ui/mastra
@ag-ui/pydantic-ai
@ag-ui/vercel-ai-sdk
@ag-ui/watsonx
@ag-ui/a2ui-toolkit
create-ag-ui-app
@ag-ui/client
@ag-ui/core
@ag-ui/encoder
@ag-ui/proto
commit: |
Adds a2ui_fixed_schema, a2ui_dynamic_schema, and a2ui_recovery to the Microsoft Agent Framework (.NET) integration: menu features, HttpAgent endpoints, and e2e specs cloned from the LangGraph TypeScript suite (the aimock fixtures are prompt-matched and integration-agnostic). The demo endpoints are served by the MAF AGUIDojoServer sample carrying the A2UI toolkit (fork branch feat/a2ui-toolkit-dotnet) until the next MAF preview package ships them in the in-repo example server.
Hosts that JSON-serialize a string tool result once more (e.g. the Microsoft Agent Framework serializing an AIFunction's string return) deliver the recovery hard-failure envelope as a JSON-encoded string. tryParseA2UIOperations already parses such content twice; tryParseRecoveryFailure did not, so the exhausted envelope was silently dropped and no failed lifecycle snapshot was emitted. Mirror the double-parse tolerance and cover it with a test.
…work-dotnet Maps the a2ui_advanced feature to the integration's plain /a2ui_chat endpoint and enables injectA2UITool on the runtime's A2UI middleware config for this integration only: the middleware injects render_a2ui + usage guidelines, the .NET hosting layer auto-binds the tool, and the streamed tool arguments paint the surface progressively. Adds the advanced e2e specs (11 total now green).
Fixes: - a2ui_advanced spec prompts no longer name the generate_a2ui tool — the dotnet zero-config endpoint exposes render_a2ui; the aimock fixtures match on tool presence plus a keyword, so the tool-agnostic wording still routes to the same fixtures. - The exhaustion tests now assert the follow-up user message is visible, so the 'conversation stays usable' claim is backed by an assertion. - recovery-gate tests assert the hard-failure snapshot's maxAttempts derivation (attempts.length, with fallback to the configured cap on an empty array). - Dropped an unused import.
…only The runtime-level a2ui config applied injectA2UITool to every a2ui agent of the Agent Framework (.NET) integration, handing the model an extra render tool on agents that carry their own A2UI flows (fixed-schema direct tools, the generate_a2ui subagent, the recovery loop) — letting it bypass them. a2ui_advanced now gets its own A2UIMiddleware (injection + dynamic catalog) in agents.ts, and route.ts excludes it from the runtime middleware list for this integration so the middleware is not applied twice. Also harden the multi-surface fixed-schema e2e: re-assert the first surface with a retrying locator before the point-in-time surface count.
Replace hardcoded 3s with the toolkit constant so the assertions track the source of truth instead of breaking when the default cap changes.
… specs The asserted data values are deterministic only because aimock serves recorded fixtures; say so at the top of each spec (matching the recovery spec's existing convention) so nobody runs them against a live model and chases phantom flakes.
ranst91
force-pushed
the
claude/bold-panini-33a097
branch
from
June 12, 2026 10:46
36d268f to
1b297fb
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Wires the AG-UI Dojo for the
microsoft-agent-framework-dotnetintegration's A2UI features, and fixes one A2UI middleware edge case.What's in here
microsoft-agent-framework-dotnetintegration:a2ui_fixed_schema,a2ui_dynamic_schema,a2ui_advanced(zero-config, client-injected render tool), anda2ui_recovery. Adds the menu features, the agent endpoints, and the runtimea2uiconfig (withinjectA2UIToolscoped to the zero-config agent only, so the schema-driven agents are not handed a redundant render tool).a2ui-middlewarefix: tolerate a double-serialized recovery envelope. Hosts that JSON-encode a string tool result once more (for example the Microsoft Agent Framework serializing an AIFunction's string return) deliver the recovery hard-failure envelope as a JSON-encoded string;tryParseRecoveryFailurenow mirrors the double-parse tolerancetryParseA2UIOperationsalready had, so the exhausted envelope is not silently dropped.Depends on
The .NET backend that serves these endpoints (the A2UI toolkit, the
A2UIAgentadapter, and theAGUIDojoServersample) lives in the Microsoft Agent Framework PR: microsoft/agent-framework#6494.This PR awaits that one. The dojo
microsoft-agent-framework-dotnetintegration points at the MAFAGUIDojoServersample; until a MAF preview package ships the A2UI pieces, these demos run against the backend from that PR. Hold merge until #6494 lands (or the package is published).