diff --git a/samples/hosted-agent/sample-catalog.json b/samples/hosted-agent/sample-catalog.json index aa31af1..4095afa 100644 --- a/samples/hosted-agent/sample-catalog.json +++ b/samples/hosted-agent/sample-catalog.json @@ -1,7 +1,7 @@ { - "commitSha": "9c4e42a1eedcec32c1582bebeb83a381a23efbe1", + "commitSha": "3b98218db7e9a92367dc3e4b6638fd97ac7c9502", "repo": "https://github.com/microsoft-foundry/foundry-samples/", - "generatedAt": "2026-07-07T06:19:12Z", + "generatedAt": "2026-07-23T07:59:46Z", "dimensions": { "language": { "title": "Select a Language", @@ -63,12 +63,102 @@ "placeholder": "Choose a template for your agent" }, "templates": [ + { + "language": "python", + "framework": "agent-framework", + "protocol": "responses", + "displayName": "Basic Hosted Agent", + "description": "Minimal hosted agent that supports basic request/response and multi-turn conversations.", + "path": "samples/python/hosted-agents/agent-framework/responses/01-basic", + "requiresModel": true + }, + { + "language": "python", + "framework": "copilot-sdk", + "protocol": "invocations", + "displayName": "Event Stream Agent", + "description": "Streams raw session events and supports multi-turn session resume across requests.", + "path": "samples/python/hosted-agents/bring-your-own/invocations/github-copilot", + "requiresModel": false + }, + { + "language": "python", + "framework": "langgraph", + "protocol": "responses", + "displayName": "Tool-Enabled Chat Agent", + "description": "Multi-turn chat agent with local time and calculator tools.", + "path": "samples/python/hosted-agents/langgraph/responses/01-langgraph-chat", + "requiresModel": true + }, + { + "language": "python", + "framework": "langgraph", + "protocol": "responses", + "displayName": "Toolbox ReAct Agent", + "description": "Agent that uses a toolbox to call web_search and the Microsoft Learn MCP.", + "path": "samples/python/hosted-agents/langgraph/responses/02-langgraph-toolbox", + "requiresModel": true + }, + { + "language": "python", + "framework": "agent-framework", + "protocol": "responses", + "displayName": "Foundry Toolbox Integration", + "description": "Agent that discovers and invokes tools from a Foundry Toolbox via MCP.", + "path": "samples/python/hosted-agents/agent-framework/responses/04-foundry-toolbox", + "requiresModel": true + }, + { + "language": "python", + "framework": "agent-framework", + "protocol": "responses", + "displayName": "Multi-Agent Workflow", + "description": "Chained agents that write a slogan, perform legal review, and format the final output.", + "path": "samples/python/hosted-agents/agent-framework/responses/05-workflows", + "requiresModel": true + }, + { + "language": "python", + "framework": "langgraph", + "protocol": "responses", + "displayName": "Multi-Agent Workflow", + "description": "Sequential agents that write, legally review, and format a final message.", + "path": "samples/python/hosted-agents/langgraph/responses/05-workflows", + "requiresModel": true + }, + { + "language": "python", + "framework": "agent-framework", + "protocol": "responses", + "displayName": "Azure AI Search RAG", + "description": "Agent that searches Azure AI Search and cites source documents in responses.", + "path": "samples/python/hosted-agents/agent-framework/responses/11-azure-search-rag", + "requiresModel": true + }, + { + "language": "python", + "framework": "bring-your-own", + "protocol": "invocations", + "displayName": "Claude Streaming Agent", + "description": "Agent that streams assistant text responses in real time.", + "path": "samples/python/hosted-agents/bring-your-own/invocations/claude-agent-sdk", + "requiresModel": false + }, + { + "language": "python", + "framework": "bring-your-own", + "protocol": "responses", + "displayName": "Foundry Streaming Agent", + "description": "Minimal hosted agent that streams model text deltas from a Foundry deployment.", + "path": "samples/python/hosted-agents/bring-your-own/responses/openai-agents-sdk", + "requiresModel": true + }, { "language": "csharp", "framework": "agent-framework", "protocol": "responses", - "displayName": "Caller", - "description": "Concierge agent that delegates questions to a remote specialist and summarizes answers.", + "displayName": "Delegation Caller", + "description": "Caller agent that delegates questions to a remote specialist and summarizes the reply.", "path": "samples/csharp/hosted-agents/agent-framework/a2a/01-delegation/caller", "requiresModel": true }, @@ -76,8 +166,8 @@ "language": "csharp", "framework": "agent-framework", "protocol": "responses", - "displayName": "Executor", - "description": "Answers arithmetic and math questions as an expert agent.", + "displayName": "Math Executor Agent", + "description": "Agent that answers arithmetic and math questions.", "path": "samples/csharp/hosted-agents/agent-framework/a2a/01-delegation/executor", "requiresModel": true }, @@ -85,8 +175,8 @@ "language": "csharp", "framework": "agent-framework", "protocol": "responses", - "displayName": "Agent Skills", - "description": "Agent that loads behavioral guidelines from Foundry Skills at startup for dynamic updates.", + "displayName": "Foundry Skills Agent", + "description": "Agent that loads behavioral guidelines from Foundry Skills at startup.", "path": "samples/csharp/hosted-agents/agent-framework/agent-skills", "requiresModel": true }, @@ -95,7 +185,7 @@ "framework": "agent-framework", "protocol": "responses", "displayName": "Azure Search RAG", - "description": "Support agent answers questions using a keyword-indexed knowledge base for grounding.", + "description": "Support agent that grounds answers using Azure AI Search retrieval.", "path": "samples/csharp/hosted-agents/agent-framework/azure-search-rag", "requiresModel": true }, @@ -104,7 +194,7 @@ "framework": "agent-framework", "protocol": "responses", "displayName": "Browser Automation", - "description": "Automates web browsing, scraping, and form filling in a remote Chromium browser.", + "description": "Automates browsing, web scraping, and form filling using a remote Chromium session with live view.", "path": "samples/csharp/hosted-agents/agent-framework/browser-automation", "requiresModel": true }, @@ -112,8 +202,8 @@ "language": "csharp", "framework": "agent-framework", "protocol": "responses", - "displayName": "File Tools", - "description": "Agent answers questions using bundled and user-uploaded files as knowledge sources.", + "displayName": "Agent with File Tools", + "description": "Agent that answers questions over bundled and session file sources using scoped file tools.", "path": "samples/csharp/hosted-agents/agent-framework/file-tools", "requiresModel": true }, @@ -122,7 +212,7 @@ "framework": "agent-framework", "protocol": "responses", "displayName": "Foundry Memory RAG", - "description": "Personal coach agent that remembers user preferences and goals across sessions.", + "description": "Personal coach agent with persistent per-user memory and RAG-grounded responses.", "path": "samples/csharp/hosted-agents/agent-framework/foundry-memory-rag", "requiresModel": true }, @@ -130,8 +220,8 @@ "language": "csharp", "framework": "agent-framework", "protocol": "responses", - "displayName": "Foundry Toolbox MCP Skills", - "description": "Agent that dynamically discovers and uses skills from a remote toolbox endpoint.", + "displayName": "Foundry Toolbox Skills", + "description": "Agent that discovers and invokes skills from a Foundry Toolbox via MCP.", "path": "samples/csharp/hosted-agents/agent-framework/foundry-toolbox-mcp-skills", "requiresModel": true }, @@ -139,8 +229,8 @@ "language": "csharp", "framework": "agent-framework", "protocol": "responses", - "displayName": "Foundry Toolbox Server Side", - "description": "Agent that uses tools from a Foundry Toolbox, invoked server-side by the platform.", + "displayName": "Foundry Server Tools", + "description": "Agent that uses a Foundry Toolbox's server-side tools through the MCP proxy.", "path": "samples/csharp/hosted-agents/agent-framework/foundry-toolbox-server-side", "requiresModel": true }, @@ -148,8 +238,8 @@ "language": "csharp", "framework": "agent-framework", "protocol": "responses", - "displayName": "Hello World", - "description": "Minimal hosted agent that responds to user questions and supports multi-turn conversation.", + "displayName": "Hello World Agent", + "description": "Minimal hosted agent that responds to simple text queries.", "path": "samples/csharp/hosted-agents/agent-framework/hello-world", "requiresModel": true }, @@ -157,8 +247,8 @@ "language": "csharp", "framework": "agent-framework", "protocol": "invocations", - "displayName": "Invocations Echo Agent", - "description": "Echoes back input messages with a simple prefix for testing agent hosting.", + "displayName": "Echo Agent", + "description": "Agent that echoes the request message back prefixed with Echo:", "path": "samples/csharp/hosted-agents/agent-framework/invocations-echo-agent", "requiresModel": false }, @@ -166,8 +256,8 @@ "language": "csharp", "framework": "agent-framework", "protocol": "responses", - "displayName": "Local Tools", - "description": "Hotel search assistant that uses local function tools for queries.", + "displayName": "Agent with Local Tools", + "description": "Agent with local function tools for hotel search.", "path": "samples/csharp/hosted-agents/agent-framework/local-tools", "requiresModel": true }, @@ -175,8 +265,8 @@ "language": "csharp", "framework": "agent-framework", "protocol": "responses", - "displayName": "MCP Tools", - "description": "Agent answers questions by searching documentation using integrated tool providers.", + "displayName": "Documentation Tools Integration", + "description": "Agent that integrates client- and server-side tools for documentation search.", "path": "samples/csharp/hosted-agents/agent-framework/mcp-tools", "requiresModel": true }, @@ -184,8 +274,8 @@ "language": "csharp", "framework": "agent-framework", "protocol": "responses", - "displayName": "Observability", - "description": "Agent with built-in observability for traces, metrics, and logs via Azure Monitor.", + "displayName": "Observability Agent", + "description": "Agent with built-in tracing, metrics, and logs for end-to-end observability.", "path": "samples/csharp/hosted-agents/agent-framework/observability", "requiresModel": true }, @@ -194,7 +284,7 @@ "framework": "agent-framework", "protocol": "responses", "displayName": "Simple Agent", - "description": "General-purpose AI assistant that replies to user input with model-generated responses.", + "description": "Minimal hosted agent that routes input to a configured model and returns its reply.", "path": "samples/csharp/hosted-agents/agent-framework/simple-agent", "requiresModel": true }, @@ -202,8 +292,8 @@ "language": "csharp", "framework": "agent-framework", "protocol": "responses", - "displayName": "Teams Activity", - "description": "Agent that answers questions about Teams and calendar, and handles file attachments.", + "displayName": "Teams Activity Agent", + "description": "Agent that answers Teams and calendar questions and accepts file attachments.", "path": "samples/csharp/hosted-agents/agent-framework/teams-activity", "requiresModel": true }, @@ -212,7 +302,7 @@ "framework": "agent-framework", "protocol": "responses", "displayName": "Text Search RAG", - "description": "Agent answers support questions using retrieved passages from external documents.", + "description": "Support agent that grounds answers using text-search retrieval from a knowledge base.", "path": "samples/csharp/hosted-agents/agent-framework/text-search-rag", "requiresModel": true }, @@ -221,7 +311,7 @@ "framework": "agent-framework", "protocol": "responses", "displayName": "Toolbox Auth Paths", - "description": "Agent toolbox demonstrates different authentication methods for accessing upstream tools.", + "description": "Demonstrates how toolbox tools authenticate to upstream servers using different paths.", "path": "samples/csharp/hosted-agents/agent-framework/toolbox-auth-paths", "requiresModel": true }, @@ -229,8 +319,8 @@ "language": "csharp", "framework": "agent-framework", "protocol": "responses", - "displayName": "Workflows", - "description": "Workflow chains three translation agents to show intermediate language outputs.", + "displayName": "Translation Workflow", + "description": "Chains three translation agents English→French→Spanish→English and returns each translation.", "path": "samples/csharp/hosted-agents/agent-framework/workflows", "requiresModel": true }, @@ -238,8 +328,8 @@ "language": "csharp", "framework": "bring-your-own", "protocol": "invocations", - "displayName": "HelloWorld", - "description": "Hosted agent that returns a streaming hello world response from a Foundry model.", + "displayName": "Hello World Agent", + "description": "Minimal agent that calls a model and returns the reply as an SSE event stream.", "path": "samples/csharp/hosted-agents/bring-your-own/invocations/HelloWorld", "requiresModel": true }, @@ -247,8 +337,8 @@ "language": "csharp", "framework": "bring-your-own", "protocol": "invocations", - "displayName": "Human In The Loop", - "description": "Agent that generates proposals and waits for human approval before proceeding.", + "displayName": "Human Approval Gate", + "description": "Agent that generates proposals and pauses for human approval, revision, or rejection.", "path": "samples/csharp/hosted-agents/bring-your-own/invocations/human-in-the-loop", "requiresModel": true }, @@ -256,8 +346,8 @@ "language": "csharp", "framework": "bring-your-own", "protocol": "invocations", - "displayName": "Notetaking Agent", - "description": "Agent that saves and retrieves session-persistent notes with real-time streaming responses.", + "displayName": "Note-Taking Agent", + "description": "Agent that creates, retrieves, and stores session-persistent notes with real-time responses.", "path": "samples/csharp/hosted-agents/bring-your-own/invocations/notetaking-agent", "requiresModel": true }, @@ -265,8 +355,8 @@ "language": "csharp", "framework": "bring-your-own", "protocol": "invocations_ws", - "displayName": "HelloWorld", - "description": "Routes real-time audio between a browser and a managed voice service session.", + "displayName": "Voice Live Hello World", + "description": "Minimal real-time voice agent that bridges browser audio to a managed Voice Live session.", "path": "samples/csharp/hosted-agents/bring-your-own/invocations_ws/HelloWorld", "requiresModel": false }, @@ -274,8 +364,8 @@ "language": "csharp", "framework": "bring-your-own", "protocol": "responses", - "displayName": "HelloWorld", - "description": "Minimal hosted agent that returns a greeting from a Foundry model using the Responses API.", + "displayName": "Hello World Agent", + "description": "Minimal hosted agent that calls a model and returns the reply.", "path": "samples/csharp/hosted-agents/bring-your-own/responses/HelloWorld", "requiresModel": true }, @@ -284,7 +374,7 @@ "framework": "bring-your-own", "protocol": "responses", "displayName": "Background Agent", - "description": "Handles research analysis requests asynchronously with background processing and streaming updates.", + "description": "Background agent that streams multi-section research results and supports asynchronous processing.", "path": "samples/csharp/hosted-agents/bring-your-own/responses/background-agent", "requiresModel": true }, @@ -292,8 +382,8 @@ "language": "csharp", "framework": "bring-your-own", "protocol": "responses", - "displayName": "Browser Automation", - "description": "", + "displayName": "Browser Automation Agent", + "description": "Agent that runs Playwright CLI commands on a remote Chromium and streams a live view.", "path": "samples/csharp/hosted-agents/bring-your-own/responses/browser-automation", "requiresModel": true }, @@ -302,7 +392,7 @@ "framework": "bring-your-own", "protocol": "responses", "displayName": "Env Vars Agent", - "description": "Agent retrieves environment variable values with safety policies based on their type.", + "description": "Agent that exposes env vars injected from connections and returns kind-aware responses.", "path": "samples/csharp/hosted-agents/bring-your-own/responses/env-vars-agent", "requiresModel": true }, @@ -310,8 +400,8 @@ "language": "csharp", "framework": "bring-your-own", "protocol": "responses", - "displayName": "Notetaking Agent", - "description": "Agent that saves and retrieves session-persistent notes for each user.", + "displayName": "Note-Taking Agent", + "description": "Agent that captures and retrieves session-persistent notes stored locally.", "path": "samples/csharp/hosted-agents/bring-your-own/responses/notetaking-agent", "requiresModel": true }, @@ -319,8 +409,8 @@ "language": "python", "framework": "agent-framework", "protocol": "responses", - "displayName": "Caller", - "description": "Concierge agent that delegates questions to a remote specialist and summarizes the answers.", + "displayName": "Delegating Caller", + "description": "Agent that delegates user questions to a remote specialist and summarizes the reply.", "path": "samples/python/hosted-agents/agent-framework/a2a/01-delegation/caller", "requiresModel": true }, @@ -328,8 +418,8 @@ "language": "python", "framework": "agent-framework", "protocol": "responses", - "displayName": "Executor", - "description": "Answers arithmetic and math questions as an expert agent.", + "displayName": "Math Expert", + "description": "Agent that answers arithmetic and math questions for a caller.", "path": "samples/python/hosted-agents/agent-framework/a2a/01-delegation/executor", "requiresModel": true }, @@ -337,8 +427,8 @@ "language": "python", "framework": "agent-framework", "protocol": "invocations", - "displayName": "Basic", - "description": "Agent with in-memory session management for multi-turn conversations.", + "displayName": "Session Management Agent", + "description": "Agent that maintains per-session conversation history in memory.", "path": "samples/python/hosted-agents/agent-framework/invocations/01-basic", "requiresModel": true }, @@ -346,17 +436,8 @@ "language": "python", "framework": "agent-framework", "protocol": "responses", - "displayName": "Basic", - "description": "Agent that supports multi-turn conversations with response tracking.", - "path": "samples/python/hosted-agents/agent-framework/responses/01-basic", - "requiresModel": true - }, - { - "language": "python", - "framework": "agent-framework", - "protocol": "responses", - "displayName": "Tools", - "description": "Agent with custom tools like weather lookup callable during conversation.", + "displayName": "Agent with Local Tools", + "description": "Agent that provides local tools the model can invoke during conversations.", "path": "samples/python/hosted-agents/agent-framework/responses/02-tools", "requiresModel": true }, @@ -364,35 +445,8 @@ "language": "python", "framework": "agent-framework", "protocol": "responses", - "displayName": "MCP", - "description": "Agent that dynamically discovers and invokes tools from a remote GitHub Copilot MCP server.", - "path": "samples/python/hosted-agents/agent-framework/responses/03-mcp", - "requiresModel": true - }, - { - "language": "python", - "framework": "agent-framework", - "protocol": "responses", - "displayName": "Foundry Toolbox", - "description": "Agent that discovers and invokes centrally managed tools from a Foundry Toolbox.", - "path": "samples/python/hosted-agents/agent-framework/responses/04-foundry-toolbox", - "requiresModel": true - }, - { - "language": "python", - "framework": "agent-framework", - "protocol": "responses", - "displayName": "Workflows", - "description": "Processes requests through slogan writing, legal review, and formatting agents in sequence.", - "path": "samples/python/hosted-agents/agent-framework/responses/05-workflows", - "requiresModel": true - }, - { - "language": "python", - "framework": "agent-framework", - "protocol": "responses", - "displayName": "Files", - "description": "Agent that lists, reads, and interprets files using shell and code tools.", + "displayName": "File Tools Agent", + "description": "Agent with local file tools and a code interpreter for inspecting and manipulating files.", "path": "samples/python/hosted-agents/agent-framework/responses/06-files", "requiresModel": true }, @@ -400,8 +454,8 @@ "language": "python", "framework": "agent-framework", "protocol": "responses", - "displayName": "Skills", - "description": "Agent that discovers and runs local file-based skills like generating PDF travel guides.", + "displayName": "Local Skills Provider", + "description": "Agent that discovers and runs local file-based skills and generates a PDF travel guide.", "path": "samples/python/hosted-agents/agent-framework/responses/07-skills", "requiresModel": true }, @@ -409,8 +463,8 @@ "language": "python", "framework": "agent-framework", "protocol": "responses", - "displayName": "Teams Activity", - "description": "Agent that answers questions about Teams and calendar, including handling file attachments.", + "displayName": "Teams Activity Agent", + "description": "Agent that interacts via Teams, handles file attachments, and answers calendar queries.", "path": "samples/python/hosted-agents/agent-framework/responses/07-teams-activity", "requiresModel": true }, @@ -418,8 +472,8 @@ "language": "python", "framework": "agent-framework", "protocol": "responses", - "displayName": "Observability", - "description": "Agent with built-in observability and telemetry for diagnostics and monitoring.", + "displayName": "Agent Observability", + "description": "Instrumented agent that captures telemetry, traces, metrics, and logs via env vars.", "path": "samples/python/hosted-agents/agent-framework/responses/08-observability", "requiresModel": true }, @@ -428,7 +482,7 @@ "framework": "agent-framework", "protocol": "responses", "displayName": "Declarative Customer Support", - "description": "Customer support triage agent that routes requests to specialized agents based on conversation history.", + "description": "Declarative multi-turn customer support workflow that triages and routes requests to agents.", "path": "samples/python/hosted-agents/agent-framework/responses/09-declarative-customer-support", "requiresModel": true }, @@ -436,8 +490,8 @@ "language": "python", "framework": "agent-framework", "protocol": "responses", - "displayName": "Downstream Azure", - "description": "Agent performs data operations on Blob Storage and Service Bus using its own identity.", + "displayName": "Per-Agent Azure Identity", + "description": "Agent that accesses Blob Storage and Service Bus using a per-agent Microsoft Entra identity.", "path": "samples/python/hosted-agents/agent-framework/responses/10-downstream-azure", "requiresModel": true }, @@ -445,17 +499,8 @@ "language": "python", "framework": "agent-framework", "protocol": "responses", - "displayName": "Azure Search RAG", - "description": "Answers questions using product documentation and cites sources from a search index.", - "path": "samples/python/hosted-agents/agent-framework/responses/11-azure-search-rag", - "requiresModel": true - }, - { - "language": "python", - "framework": "agent-framework", - "protocol": "responses", - "displayName": "Foundry Skills", - "description": "Agent that loads behavioral guidelines from Foundry Skills at startup for dynamic updates.", + "displayName": "Foundry Skills Agent", + "description": "Agent that loads and applies behavioral guidelines from Foundry Skills.", "path": "samples/python/hosted-agents/agent-framework/responses/12-foundry-skills", "requiresModel": true }, @@ -463,8 +508,8 @@ "language": "python", "framework": "agent-framework", "protocol": "responses", - "displayName": "Foundry Memory", - "description": "Agent that remembers user facts across sessions using persistent semantic memory.", + "displayName": "Foundry Semantic Memory", + "description": "Agent with persistent semantic memory backed by an Azure Foundry memory store.", "path": "samples/python/hosted-agents/agent-framework/responses/13-foundry-memory", "requiresModel": true }, @@ -473,7 +518,7 @@ "framework": "agent-framework", "protocol": "responses", "displayName": "Browser Automation Agent", - "description": "Automates web browsing tasks such as navigation, scraping, and form filling in a remote browser.", + "description": "Agent that controls a remote browser for browsing, scraping, and form filling.", "path": "samples/python/hosted-agents/agent-framework/responses/14-browser-automation-agent", "requiresModel": true }, @@ -481,8 +526,8 @@ "language": "python", "framework": "agent-framework", "protocol": "responses", - "displayName": "Optimization Travel Approver", - "description": "Agent that reviews and approves travel requests for employees.", + "displayName": "Travel Request Approver", + "description": "Agent that approves travel requests by checking policy, cost, and manager authorization.", "path": "samples/python/hosted-agents/agent-framework/responses/15-optimization-travel-approver", "requiresModel": true }, @@ -491,7 +536,7 @@ "framework": "agent-framework", "protocol": "responses", "displayName": "Content Safety Guardrail", - "description": "Agent screens prompts and responses for harmful content based on a safety policy.", + "description": "Agent with a Responsible AI content safety guardrail to filter harmful prompts and responses.", "path": "samples/python/hosted-agents/agent-framework/responses/16-content-safety-guardrail", "requiresModel": true }, @@ -499,8 +544,8 @@ "language": "python", "framework": "agent-framework", "protocol": "responses", - "displayName": "Foundry Iq Toolbox", - "description": "Answers user questions using a knowledge base accessed through a remote toolbox connection.", + "displayName": "Foundry IQ Knowledge Base", + "description": "Agent that answers questions from a Foundry IQ knowledge base via a Foundry Toolbox.", "path": "samples/python/hosted-agents/agent-framework/responses/17-foundry-iq-toolbox", "requiresModel": true }, @@ -508,26 +553,17 @@ "language": "python", "framework": "bring-your-own", "protocol": "invocations", - "displayName": "AG UI", - "description": "Agent that streams AG-UI lifecycle events in response to user input.", + "displayName": "Automatic UI Events", + "description": "Agent that streams UI events and handles the full run lifecycle.", "path": "samples/python/hosted-agents/bring-your-own/invocations/ag-ui", "requiresModel": true }, - { - "language": "python", - "framework": "bring-your-own", - "protocol": "invocations", - "displayName": "Claude Agent SDK", - "description": "Agent that streams responses from a Claude model for plain text input.", - "path": "samples/python/hosted-agents/bring-your-own/invocations/claude-agent-sdk", - "requiresModel": false - }, { "language": "python", "framework": "bring-your-own", "protocol": "invocations", "displayName": "Diagnostic Agent", - "description": "Runs network probes on hostnames and returns a JSON report of connectivity results.", + "description": "Agent that runs network probes and returns a structured reachability report.", "path": "samples/python/hosted-agents/bring-your-own/invocations/diagnostic-agent", "requiresModel": false }, @@ -536,25 +572,16 @@ "framework": "bring-your-own", "protocol": "invocations", "displayName": "Event Grid Trigger", - "description": "Processes new blobs in Azure Storage by summarizing content and saving results to a summary container.", + "description": "Agent triggered by Event Grid that summarizes uploaded blobs and writes JSON summaries.", "path": "samples/python/hosted-agents/bring-your-own/invocations/event-grid-trigger", "requiresModel": true }, - { - "language": "python", - "framework": "copilot-sdk", - "protocol": "invocations", - "displayName": "GitHub Copilot", - "description": "Agent streams Copilot session events with support for multi-turn conversations.", - "path": "samples/python/hosted-agents/bring-your-own/invocations/github-copilot", - "requiresModel": false - }, { "language": "python", "framework": "bring-your-own", "protocol": "invocations", - "displayName": "Hello World", - "description": "Hosted agent that streams a model's reply as a server-sent event.", + "displayName": "Hello World Agent", + "description": "Minimal agent that calls a Foundry model and streams the reply.", "path": "samples/python/hosted-agents/bring-your-own/invocations/hello-world", "requiresModel": true }, @@ -562,8 +589,8 @@ "language": "python", "framework": "bring-your-own", "protocol": "invocations", - "displayName": "Human In The Loop", - "description": "Agent that generates proposals and waits for human approval before proceeding.", + "displayName": "Human in the Loop", + "description": "Agent that generates proposals and pauses for human approval, revision, or rejection.", "path": "samples/python/hosted-agents/bring-your-own/invocations/human-in-the-loop", "requiresModel": true }, @@ -571,8 +598,8 @@ "language": "python", "framework": "bring-your-own", "protocol": "invocations", - "displayName": "Langgraph Chat", - "description": "Conversational agent with session history and built-in time and calculator tools.", + "displayName": "Tool-Enabled Multi-Turn Chat", + "description": "Multi-turn conversational agent with conditional tool calling and session state.", "path": "samples/python/hosted-agents/bring-your-own/invocations/langgraph-chat", "requiresModel": true }, @@ -580,8 +607,8 @@ "language": "python", "framework": "bring-your-own", "protocol": "invocations", - "displayName": "Notetaking Agent", - "description": "Agent that saves and retrieves notes with per-session isolation and streaming responses.", + "displayName": "Note-Taking Agent", + "description": "Note-taking agent that saves and retrieves per-session notes via session files.", "path": "samples/python/hosted-agents/bring-your-own/invocations/notetaking-agent", "requiresModel": true }, @@ -589,8 +616,8 @@ "language": "python", "framework": "bring-your-own", "protocol": "invocations", - "displayName": "Toolbox", - "description": "Agent connects to a toolbox server and enables tool discovery and invocation during chat.", + "displayName": "Tool Calling Agent", + "description": "Agent that discovers toolbox tools via MCP and lets the model call them.", "path": "samples/python/hosted-agents/bring-your-own/invocations/toolbox", "requiresModel": true }, @@ -599,7 +626,7 @@ "framework": "bring-your-own", "protocol": "invocations_ws", "displayName": "Duplex Live Agent", - "description": "Real-time voice agent that handles conversation and background tasks in parallel.", + "description": "Real-time voice agent with low-latency conversation and parallel background workers.", "path": "samples/python/hosted-agents/bring-your-own/invocations_ws/duplex-live-agent", "requiresModel": false }, @@ -607,8 +634,8 @@ "language": "python", "framework": "bring-your-own", "protocol": "invocations_ws", - "displayName": "Hello World", - "description": "Real-time voice agent that relays audio and events between browser and a managed service.", + "displayName": "Voice Live Hello World", + "description": "Real-time agent that forwards browser audio to Voice Live for STT and TTS.", "path": "samples/python/hosted-agents/bring-your-own/invocations_ws/hello-world", "requiresModel": false }, @@ -616,8 +643,8 @@ "language": "python", "framework": "bring-your-own", "protocol": "invocations_ws", - "displayName": "Livekit Server", - "description": "Voice agent connects to a LiveKit server for real-time audio conversations.", + "displayName": "LiveKit Voice Agent", + "description": "Voice agent that uses LiveKit to receive audio, transcribe, generate responses, and synthesize speech.", "path": "samples/python/hosted-agents/bring-your-own/invocations_ws/livekit-server", "requiresModel": false }, @@ -625,8 +652,8 @@ "language": "python", "framework": "bring-your-own", "protocol": "invocations_ws", - "displayName": "Pipecat Webrtc", - "description": "Real-time voice agent with multi-agent pipeline and WebRTC audio media support.", + "displayName": "Real-Time Voice Agent", + "description": "Real-time voice agent hosted as a bring-your-own container with multi-agent pipeline.", "path": "samples/python/hosted-agents/bring-your-own/invocations_ws/pipecat-webrtc", "requiresModel": false }, @@ -634,8 +661,8 @@ "language": "python", "framework": "bring-your-own", "protocol": "invocations_ws", - "displayName": "Pipecat Ws Server", - "description": "Real-time voice agent with greeting and order-checking capabilities.", + "displayName": "Real-Time Voice Agent", + "description": "Real-time voice agent that transcribes, routes to LLM sub-agents, and streams speech output.", "path": "samples/python/hosted-agents/bring-your-own/invocations_ws/pipecat-ws-server", "requiresModel": false }, @@ -644,7 +671,7 @@ "framework": "bring-your-own", "protocol": "responses", "displayName": "Background Agent", - "description": "Handles long-running research analysis requests with background processing and streaming updates.", + "description": "Background agent that processes requests asynchronously and streams partial results.", "path": "samples/python/hosted-agents/bring-your-own/responses/background-agent", "requiresModel": true }, @@ -652,8 +679,8 @@ "language": "python", "framework": "bring-your-own", "protocol": "responses", - "displayName": "Bring Your Own Toolbox", - "description": "Agent connects to a remote toolbox and enables tool invocation during conversations.", + "displayName": "Toolbox Integration", + "description": "Agent that connects to a Foundry toolbox and discovers and invokes tools via MCP.", "path": "samples/python/hosted-agents/bring-your-own/responses/bring-your-own-toolbox", "requiresModel": true }, @@ -662,7 +689,7 @@ "framework": "bring-your-own", "protocol": "responses", "displayName": "Browser Automation", - "description": "Automates web browsers for tasks like form filling and web scraping with session control.", + "description": "Agent that automates browsers with lazy sessions, multi-session control, and on-demand skills.", "path": "samples/python/hosted-agents/bring-your-own/responses/browser-automation", "requiresModel": true }, @@ -670,8 +697,8 @@ "language": "python", "framework": "bring-your-own", "protocol": "responses", - "displayName": "Env Vars Agent", - "description": "Agent that reveals environment variable values with safety policies based on their type.", + "displayName": "Environment Variable Injection", + "description": "Agent exposing a tool to return connection-backed env vars with kind-aware safety.", "path": "samples/python/hosted-agents/bring-your-own/responses/env-vars-agent", "requiresModel": true }, @@ -679,8 +706,8 @@ "language": "python", "framework": "bring-your-own", "protocol": "responses", - "displayName": "Hello World", - "description": "Hosted agent that returns a hello world message from a Foundry model using a custom backend.", + "displayName": "Hello World Agent", + "description": "Minimal hosted agent that calls a Foundry model and returns the reply.", "path": "samples/python/hosted-agents/bring-your-own/responses/hello-world", "requiresModel": true }, @@ -688,8 +715,8 @@ "language": "python", "framework": "bring-your-own", "protocol": "responses", - "displayName": "Langgraph Chat", - "description": "Conversational agent with built-in calculator and time tools, streaming responses.", + "displayName": "Multi-Turn Chat", + "description": "Conversational agent with server-side history and conditional tool calling.", "path": "samples/python/hosted-agents/bring-your-own/responses/langgraph-chat", "requiresModel": true }, @@ -697,8 +724,8 @@ "language": "python", "framework": "bring-your-own", "protocol": "responses", - "displayName": "Langgraph Toolbox", - "description": "Agent that dynamically loads tools from a remote toolbox and handles incoming requests.", + "displayName": "LangGraph Toolbox Agent", + "description": "Agent that loads tools from a remote Foundry toolbox and responds to incoming requests.", "path": "samples/python/hosted-agents/bring-your-own/responses/langgraph-toolbox", "requiresModel": true }, @@ -706,8 +733,8 @@ "language": "python", "framework": "bring-your-own", "protocol": "responses", - "displayName": "Langgraph Toolbox User Identity", - "description": "Agent that accesses mail, calendar, and GitHub tools for user-identity scenarios.", + "displayName": "User Identity Agent", + "description": "Agent that uses a Foundry toolbox via MCP to access user-identity OAuth tools.", "path": "samples/python/hosted-agents/bring-your-own/responses/langgraph-toolbox-user-identity", "requiresModel": true }, @@ -715,8 +742,8 @@ "language": "python", "framework": "bring-your-own", "protocol": "responses", - "displayName": "Notetaking Agent", - "description": "Agent that saves and retrieves notes with per-session isolation and streaming responses.", + "displayName": "Note-Taking Agent", + "description": "Agent that saves and retrieves per-session notes with persistent session storage.", "path": "samples/python/hosted-agents/bring-your-own/responses/notetaking-agent", "requiresModel": true }, @@ -724,17 +751,8 @@ "language": "python", "framework": "bring-your-own", "protocol": "responses", - "displayName": "OpenAI Agents SDK", - "description": "Minimal agent that streams text responses from a Foundry model.", - "path": "samples/python/hosted-agents/bring-your-own/responses/openai-agents-sdk", - "requiresModel": true - }, - { - "language": "python", - "framework": "bring-your-own", - "protocol": "responses", - "displayName": "Optimization Customer Support", - "description": "Customer support agent for troubleshooting and product assistance.", + "displayName": "Customer Support Agent", + "description": "Customer support agent for consumer electronics handling inquiries and troubleshooting.", "path": "samples/python/hosted-agents/bring-your-own/responses/optimization-customer-support", "requiresModel": true }, @@ -742,8 +760,8 @@ "language": "python", "framework": "bring-your-own", "protocol": "responses", - "displayName": "Optimization Hello World", - "description": "Minimal hosted agent that returns a static greeting message.", + "displayName": "Agent Optimizer Hello World", + "description": "Minimal agent demonstrating Agent Optimizer for response optimization.", "path": "samples/python/hosted-agents/bring-your-own/responses/optimization-hello-world", "requiresModel": true }, @@ -752,7 +770,7 @@ "framework": "bring-your-own", "protocol": "responses", "displayName": "Session Multiplexing", - "description": "Supports multiple users sharing a session while keeping response chains user-specific.", + "description": "Agent showing multiple users sharing an agent session while isolating response chains.", "path": "samples/python/hosted-agents/bring-your-own/responses/session-multiplexing", "requiresModel": true }, @@ -760,8 +778,8 @@ "language": "python", "framework": "bring-your-own", "protocol": "responses", - "displayName": "Foreground Background Agents Responses Voicelive", - "description": "Voice agent that routes quick replies to users and delegates long tasks to a background worker.", + "displayName": "Foreground Background Agents", + "description": "Router agent delegates long tasks to a background worker and manages task status.", "path": "samples/python/hosted-agents/bring-your-own/voicelive/foreground-background-agents-responses-voicelive", "requiresModel": true }, @@ -769,8 +787,8 @@ "language": "python", "framework": "bring-your-own", "protocol": "responses", - "displayName": "Handoff Langgraph Responses Voicelive", - "description": "Customer support agent with triage and handoff between refund and order specialists.", + "displayName": "Customer Support Handoff", + "description": "Multi-agent customer support handoff optimized for voice-first interactions.", "path": "samples/python/hosted-agents/bring-your-own/voicelive/handoff-langgraph-responses-voicelive", "requiresModel": true }, @@ -778,8 +796,8 @@ "language": "python", "framework": "bring-your-own", "protocol": "invocations", - "displayName": "Hello World Invocations Voicelive", - "description": "Minimal hosted agent for real-time voice interactions with audio transcription streaming.", + "displayName": "VoiceLive Agent", + "description": "Agent that streams model audio transcriptions for real-time VoiceLive interactions.", "path": "samples/python/hosted-agents/bring-your-own/voicelive/hello-world-invocations-voicelive", "requiresModel": true }, @@ -787,8 +805,8 @@ "language": "python", "framework": "bring-your-own", "protocol": "invocations", - "displayName": "Hotel Booking Invocations Voicelive", - "description": "Hotel booking agent that handles speech and UI actions with session state and streaming.", + "displayName": "Hotel Booking Agent", + "description": "Voice-enabled hotel booking agent with multi-turn state and UI actions.", "path": "samples/python/hosted-agents/bring-your-own/voicelive/hotel-booking-invocations-voicelive", "requiresModel": true }, @@ -796,8 +814,8 @@ "language": "python", "framework": "langgraph", "protocol": "responses", - "displayName": "A2a Caller", - "description": "Concierge agent that delegates specialist questions to a remote expert agent.", + "displayName": "A2A Caller", + "description": "Concierge agent that delegates specialist questions to a remote A2A executor.", "path": "samples/python/hosted-agents/langgraph/a2a/a2a-caller", "requiresModel": true }, @@ -805,8 +823,8 @@ "language": "python", "framework": "langgraph", "protocol": "responses", - "displayName": "A2a Executor", - "description": "Math expert agent that answers questions and explains steps, callable by other agents.", + "displayName": "Math Expert Executor", + "description": "Executor agent that answers arithmetic questions and exposes an incoming agent endpoint.", "path": "samples/python/hosted-agents/langgraph/a2a/a2a-executor", "requiresModel": true }, @@ -814,8 +832,8 @@ "language": "python", "framework": "langgraph", "protocol": "invocations", - "displayName": "Langgraph Chat", - "description": "Multi-turn chat agent with tools for current time and math calculations.", + "displayName": "Chat With Local Tools", + "description": "Multi-turn chat agent with two local tools and per-session memory.", "path": "samples/python/hosted-agents/langgraph/invocations/01-langgraph-chat", "requiresModel": true }, @@ -823,44 +841,8 @@ "language": "python", "framework": "langgraph", "protocol": "responses", - "displayName": "Langgraph Chat", - "description": "Chat agent with tools for current time and math calculations.", - "path": "samples/python/hosted-agents/langgraph/responses/01-langgraph-chat", - "requiresModel": true - }, - { - "language": "python", - "framework": "langgraph", - "protocol": "responses", - "displayName": "Langgraph Toolbox", - "description": "Agent that uses a toolbox for web search and GitHub Copilot MCP tools with managed credentials.", - "path": "samples/python/hosted-agents/langgraph/responses/02-langgraph-toolbox", - "requiresModel": true - }, - { - "language": "python", - "framework": "langgraph", - "protocol": "responses", - "displayName": "MCP", - "description": "Agent that discovers and invokes tools from a remote server for enhanced capabilities.", - "path": "samples/python/hosted-agents/langgraph/responses/04-mcp", - "requiresModel": true - }, - { - "language": "python", - "framework": "langgraph", - "protocol": "responses", - "displayName": "Workflows", - "description": "Processes a request through slogan writing, legal review, and formatting steps.", - "path": "samples/python/hosted-agents/langgraph/responses/05-workflows", - "requiresModel": true - }, - { - "language": "python", - "framework": "langgraph", - "protocol": "responses", - "displayName": "Files", - "description": "Agent that analyzes and manipulates files using local and sandboxed tools.", + "displayName": "File Manipulation Agent", + "description": "Agent that manipulates uploaded files using filesystem tools and a code interpreter.", "path": "samples/python/hosted-agents/langgraph/responses/06-files", "requiresModel": true }, @@ -868,8 +850,8 @@ "language": "python", "framework": "langgraph", "protocol": "responses", - "displayName": "Human In The Loop", - "description": "Agent drafts proposals and pauses for human review with approve, revise, or reject options.", + "displayName": "Human in the Loop", + "description": "Agent that pauses for human review and supports approve, revise, or reject decisions.", "path": "samples/python/hosted-agents/langgraph/responses/07-human-in-the-loop", "requiresModel": true }, @@ -877,8 +859,8 @@ "language": "python", "framework": "langgraph", "protocol": "responses", - "displayName": "Observability", - "description": "Agent with automatic tracing for observability of all actions and tool invocations.", + "displayName": "Automatic Tracing", + "description": "Agent with automatic OpenTelemetry tracing across LLM calls, nodes, and tools.", "path": "samples/python/hosted-agents/langgraph/responses/08-observability", "requiresModel": true }