brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
microsoft-agent-frameworkBuild .NET AI agents, harnesses, and multi-agent workflows with Microsoft Agent Framework using the right agent type, sessions, tools, workflows, hosting protocols, and enterprise guardrails. USE FOR: building or reviewing .NET code that uses Microsoft.Agents.*, Microsoft.Extensions.AI, AIAgent, HarnessAgent, AgentSession, or Agent Framework hosting package…
Independent GitHub snapshot · Automated classification · Original documentation governs
.NET code that uses Microsoft.Agents.*, Microsoft.Extensions.AI, AIAgent, HarnessAgent, AgentSession, or Agent Framework hosting packagesChatClientAgent, Responses agents, hosted agents, custom agents, Anthropic agents, workflows, or durable agentsMicrosoft.Agents.AI.Harness surface for planning, todos, compaction, file memory/access, tool approvals, skills, shell execution, or background agentsMicrosoft.Agents.AI.Workflows.Declarative* packages or wrapping a workflow with workflow.AsAIAgent()AnthropicClient or through Azure Foundry with AnthropicFoundryClientAIAgent, batteries-included HarnessAgent, explicit programmatic Workflow, workflow-as-agent wrapper, declarative workflow when YAML portability is explicitly required, Azure Functions durable agent, ASP.NET Core hosted agent, AG-UI remote UI, or DevUI local debugging.AgentSession. Treat the session as opaque provider-owned state, serialize it through the owning agent, and never accept a raw service conversation ID as an end-user authorization boundary.RequestPort boundaries, checkpoints, shared state, and human-in-the-loop explicitly rather than hiding control flow in prompts..NET 1.20.0 fixes Foundry-hosted workflow cancellation and duplicate AgentHost port binding, preserves Responses logprobs, and adds a timeout for background-agent wait-for-first-completion. Re-test cancellation, timeout, recovery, and streamed metadata with the selected provider.
Current AG-UI hosted web-search samples use Responses. Update the Cosmos connector name from CommunityToolkit.VectorData.CosmosNoSql to CommunityToolkit.VectorData.AzureCosmosDB when following the migrated sample. Retired OpenAI Assistants integration tests were removed; choose an active provider API for new work.
dotnet-1.19.0 adds persisted routing and sessions, resilient/steerable hosted agents, AG-UI forwarding, and experimental agent hooks. It makes a breaking move to the MCP 2026-07-28 Tasks extension; update both peers and resume tests together.
Current AG-UI hosting uses Microsoft.Agents.AI.Hosting.AGUI.AspNetCore with AddAGUIServer() and MapAGUIServer(...); the client uses AGUI.Client, and conversation state flows through AgentSession. Do not copy older AddAGUI/MapAGUI or AgentThread hosting examples into current applications.
The bundled August 2026 snapshot contains 172 pages. Start with the September review for current checkpoint and AG-UI guidance, then load only the relevant topic reference. Verify language and package maturity against the linked live page.
flowchart LR
A["Task"] --> B{"Deterministic code is enough?"}
B -->|Yes| C["Write normal .NET code or a plain workflow"]
B -->|No| D{"One dynamic decision-maker is enough?"}
D -->|Yes| O{"Needs a packaged long-task runtime?"}
O -->|No| E["Use an `AIAgent` / `ChatClientAgent`"]
O -->|Yes| P["Use `HarnessAgent` with scoped capabilities"]
D -->|No| F["Use a typed `Workflow`"]
F --> G{"Needs durable Azure hosting or week-long execution?"}
G -->|Yes| H["Use durable agents on Azure Functions"]
G -->|No| I["Use in-process workflows"]
E --> J{"Need a remote protocol or UI?"}
P --> J
F --> J
J -->|OpenAI-compatible HTTP| K["ASP.NET Core Hosting.OpenAI"]
J -->|Agent-to-agent protocol| L["A2A hosting"]
J -->|Web UI protocol| M["AG-UI"]
J -->|Local debug shell| N["DevUI (dev only)"]
AIAgent is the common runtime abstraction. It should stay mostly stateless.AgentSession owns conversation state. Create, reuse, serialize, and restore it through the owning agent; keep service IDs server-side and verify user or tenant ownership before resumption.AgentResponse and AgentResponseUpdate are not just text containers. They can include tool calls, tool results, structured output, reasoning-like updates, and response metadata.ChatClientAgent is the safest default when you already have an IChatClient and do not need a hosted-agent service.HarnessAgent is a prerelease packaged ChatClientAgent composition for tool loops, planning, todos, compaction, memory, approvals, telemetry, and optional file, web, shell, skill, loop, or background-agent capabilities. Enable only what the task needs.Workflow is an explicit graph of executors and edges. Use it when the control flow must stay inspectable, typed, resumable, or human-steerable.workflow.AsAIAgent() is the escape hatch when a complex workflow needs to present a normal agent surface. It keeps sessions, streaming, and agent response APIs, but the workflow start executor still needs chat-message-compatible input.AgentWorkflowBuilder provides high-level factory methods such as BuildConcurrent for common agent orchestration patterns. Use it when you need concurrent or sequential agent pipelines without writing custom executor classes.InProcessExecution.RunStreamingAsync(...). For sensitive agent tools, wrap the function with ApprovalRequiredAIFunction, listen for RequestInfoEvent with ToolApprovalRequestContent, and send the external approval response back through the run.| If you need | Default choice | Why |
|---|---|---|
| One model-backed assistant with normal .NET composition | ChatClientAgent or chatClient.AsAIAgent(...) | Lowest friction, middleware-friendly, works with IChatClient |
| Long multi-step autonomous task with planning, todos, compaction, memory, approvals, and optional file/shell/delegation tools | chatClient.AsHarnessAgent(...) | Uses the packaged Harness pipeline instead of rebuilding an agent runtime from decorators and providers |
| OpenAI-style future-facing APIs, background responses, or richer response state | Responses-based agent | Better fit for new OpenAI-compatible integrations |
| Simple client-managed chat history | Chat Completions agent | Keeps request/response simple |
| Service-hosted agents and service-owned threads/tools | Microsoft Foundry Agent or other hosted agent | Managed runtime is the requirement |
| Azure-hosted OpenAI-compatible models with the richest hosted-tool surface but app-owned composition | Azure OpenAI Responses agent | Best Azure OpenAI default when you need code interpreter, file search, web search, hosted MCP, or tool approval without moving to a persistent service-managed agent |
| Anthropic Claude models (haiku, sonnet, opus) directly or via Azure Foundry | AnthropicClient.AsAIAgent(...) or AnthropicFoundryClient.AsAIAgent(...) | Use Microsoft.Agents.AI.Anthropic; add Anthropic.Foundry for Azure-hosted Claude |
| Typed multi-step orchestration | Workflow or AgentWorkflowBuilder helpers | Control flow stays explicit and testable; use BuildConcurrent for agent fan-out/fan-in |
| YAML-defined orchestration that non-developers or operators need to edit | Declarative workflow packages | Good for portable trigger/action graphs; do not pretend the .NET preview is as flexible as programmatic workflows |
| Week-long or failure-resilient Azure execution | Durable agent on Azure Functions | Durable Task gives replay and persisted state |
| Agent-to-agent interoperability | A2A hosting or A2A proxy agent | This is protocol-level delegation, not local inference |
| Browser or web UI protocol integration | AG-UI | Designed for remote UI sync and approval flows |
AgentSession, stores, or workflow state.IChatClient agents as if they share the same thread and tool guarantees.FileAccessStore, compaction has explicit token budgets when needed, and shell/file boundaries are not treated as security sandboxesAgentSession lifecycle, serialization, service-ID ownership, and compatibility boundaries are explicit for the chosen provider surfaceWhen a decision depends on exact wording, long-tail feature coverage, or a less-common integration, check the local official docs snapshot before relying on summaries.
September documentation review - Current provider, workflow, AG-UI, and release guidance; use before older snapshot examples
official-docs-index.md - Complete current local snapshot map covering agents, concepts, get-started guides, hosting, integrations, journeys, migration, support, and workflows
patterns.md - Architecture routing, agent types, provider and session model selection, and durable-agent guidance
harness.md - HarnessAgent selection, options, compaction, approvals, file/shell boundaries, and validation
providers.md - Provider, SDK, endpoint, package, and Responses-vs-ChatCompletions selection
tools.md - Function tools, hosted tools, tool approval, agent-as-tool, and service limitations
sessions.md - AgentSession, chat history providers, reducers, context providers, ownership, and serialization
middleware.md - Agent, function-calling, and IChatClient middleware with guardrail patterns
workflows.md - Executors, edges, requests and responses, checkpoints, orchestrations, and declarative workflow notes
mcp.md - MCP integration, agent-as-MCP, security rules, and MCP-vs-A2A guidance
hosting.md - ASP.NET Core hosting, OpenAI-compatible APIs, A2A, AG-UI, Azure Functions, and Purview integration
devui.md - DevUI capabilities, modes, auth, tracing, and safe usage boundaries
migration.md - Semantic Kernel and AutoGen migration notes, concept mapping, and breaking-model shifts
support.md - Preview status, official support channels, and recurring troubleshooting checks
examples.md - Quick-start and tutorial recipe index covering the official docs set