Skills
Skill 172 of 200
Ongoing development guidance for agentic web apps that pair a CopilotKit frontend with Microsoft Agent Framework agents on Azure AI Foundry hosted agents over the AG-UI protocol…
5 minutes · 1,048 words · 12 sections
Install
npx skills add github/awesome-copilot --skill foundry-hosted-agent-copilotkitnpx skills add github/awesome-copilot/plugin marketplace add github/awesome-copilotThe first command installs just this skill, by the name in its SKILL.md; the second installs the whole repository.
Use this skill for development work inside an EXISTING application built on this stack: a React/Next.js frontend using CopilotKit, connected over the AG-UI protocol to a Microsoft Agent Framework (MAF) agent (Python or .NET) that runs as — or is being developed against — an Azure AI Foundry hosted agent (paid Azure service; usage may incur costs).
Do NOT use this skill to scaffold a new project. Dedicated scaffolders exist (the CopilotKit CLI, azd ai agent init); use those, then return here for everything that follows: adding tools, gating them behind approvals, generative UI, shared state, debugging, dependency upgrades, and deploying agent updates.
CopilotKit hooks (React) useFrontendTool / useHumanInTheLoop /
│ useRenderToolCall / useCoAgent
▼
CopilotKit Runtime (route handler) agents: { <name>: new HttpAgent({ url }) }
│ AG-UI events over SSE
▼
AG-UI endpoint ← WHERE this lives defines your architecture
│
▼
MAF Agent (tools, approval modes) → model deploymentThe single most important fact: a deployed Foundry hosted agent endpoint does not speak AG-UI by default. It exposes an OpenAI Responses endpoint (.../protocols/openai/responses) and/or a raw .../protocols/invocations endpoint. AG-UI must be produced somewhere, and where it is produced determines how every feature (especially human-in-the-loop) behaves. The three wirings are described in references/architecture.md (opens in a new tab).
Follow these steps for every task on this stack:
add_agent_framework_fastapi_endpoint(...) (Python) or MapAGUI(...) (.NET) wrapping an in-process agent → Architecture A (in-process AG-UI endpoint).protocol: invocations in agent.yaml → Architecture B./responses endpoint (look for previous_response_id, mcp_approval_response, or a Foundry conversation object in the code) → Architecture C (translation bridge).agents config, the agent prop on the <CopilotKit> provider, and the hosted agent name in agent.yaml must all agree./agent-framework/integrations/ag-ui/, /azure/foundry/).@copilotkit/* packages — names have churned (useCopilotAction is legacy; current names include useFrontendTool, useHumanInTheLoop, useRenderToolCall, useCoAgent).Load on demand; each is self-contained:
| Reference | Load when |
|---|---|
| references/architecture.md (opens in a new tab) | Choosing or understanding the wiring; local-vs-deployed modes; why a translation bridge exists and what it must handle |
| references/patterns.md (opens in a new tab) | Implementing any of the 7 AG-UI interaction patterns (frontend tools, backend tool rendering, HITL, generative UI, shared state, predictive state) |
| references/hitl.md (opens in a new tab) | Adding or debugging human-in-the-loop approvals, including the known duplicate-execution hazard |
| references/troubleshooting.md (opens in a new tab) | Any failure: symptom → root cause → fix tables for every layer |
| references/upgrading.md (opens in a new tab) | Bumping any dependency; version compatibility rules; tracked upstream issues |
| references/deploy-loop.md (opens in a new tab) | Running the agent locally with azd ai agent run, deploying updates, deployment gotchas |
@tool in Python; AIFunctionFactory.Create in .NET) with typed, described parameters.approval_mode="always_require" (see references/hitl.md (opens in a new tab)); read-only tools stay unrestricted.useRenderToolCall/render entry for it (references/patterns.md (opens in a new tab)).TOOL_CALL_* events, and confirm renamed or re-typed parameters did not break any frontend component that parses the arguments.Follow references/hitl.md (opens in a new tab) end to end. Summary: mark the tool (approval_mode="always_require" / ApprovalRequiredAIFunction), enable confirmation on the AG-UI wrapper, register the approval UI hook on the frontend, and make the response payload shape match what the server detection expects. Then test approve AND reject AND a follow-up turn after approval (see the duplicate-execution hazard).
Follow the pattern table in references/patterns.md (opens in a new tab). Know the honesty caveat: state synchronization patterns are native when the AG-UI adapter wraps an in-process agent (Architecture A/B); through a Responses-protocol bridge (Architecture C) they require explicit synthesis work — check what the codebase actually implements before promising the feature.
curl -N the AG-UI endpoint with a minimal RunAgentInput JSON body and read the raw SSE events. If the bug reproduces there, the frontend is innocent./responses endpoint directly. This is how the known re-execution bug was isolated to the framework rather than the UI stack.azd ai agent run) between verification passes if the agent holds in-memory state; stale state makes tests pass or fail for the wrong reason.Follow references/upgrading.md (opens in a new tab). Never bump a single package in isolation: the version relationship rules there (runtime ↔ AG-UI client, agent-framework line consistency, hosting protocol ↔ manifest version) must hold simultaneously, and any local workaround must be re-validated against its tracked upstream issue before removal.
Follow references/deploy-loop.md (opens in a new tab): iterate locally against the real agent with azd ai agent run, then azd deploy (each deploy creates a new agent version), then verify the deployed agent — including the approval pause — before declaring success.
A change on this stack is done only when ALL of these hold:
Ongoing development guidance for agentic web apps that pair a CopilotKit frontend with Microsoft Agent Framework agents on Azure AI Foundry hosted agents over the AG-UI protocol - add and gate agent tools, wire human-in-the-loop approvals, build generative UI and shared state, debug the event stream, upgrade pre-1.0 packages safely, and deploy hosted agent updates.
The verbatim description from this skill’s front matter — the string an agent matches on to decide whether to load it.
main, last pushed 24 September 2026.SKILL.md, not by matching a directory convention. 2 distinct layouts observed: .github/skills/*/SKILL.md, skills/*/SKILL.md.h1 and no skipped levels:.github/plugin/marketplace.json by GitHub, declaring 162 plugins. It is read for editorial metadata only — never as the skill index, which is always the repository tree./github/awesome-copilot.md, and each skill at its own .md URL.6 files · 38 KB
Everything this skill ships beside its prose. All of it is set here, as subchapters of skill 172.
Documentation the agent loads on demand, rather than up front.