feat: add azure-ai-agents plugin for agent discovery#17
Open
gorkem-bwl wants to merge 4 commits intomainfrom
Open
feat: add azure-ai-agents plugin for agent discovery#17gorkem-bwl wants to merge 4 commits intomainfrom
gorkem-bwl wants to merge 4 commits intomainfrom
Conversation
- Create azure-ai-agents plugin that discovers AI assistants from Azure AI Foundry Agent Service via the OpenAI-compatible Assistants API - Add agent_discovery category to plugin marketplace categories - Add azure-ai-agents entry to plugins.json with tenant-scoped installation - Paginates GET /assistants endpoint with cursor-based pagination (up to 10k agents) - Maps Azure tool types to standardized permission strings (ai:invoke, data:read, etc.) - Supports dual authentication: API key header and Bearer token - Exports GET /discover route consumed by the agent discovery sync service - Preserves agent metadata: model, tools, instructions preview, temperature, top_p
27d3261 to
47e1040
Compare
## Changes - Add AzureAIAgentsConfiguration component with fields for project_endpoint, api_key, and bearer_token (dual auth support) - Build IIFE bundle as PluginAzureAIAgents for the plugin slot system - Include vite config, tsconfig, and package.json matching the azure-ai-foundry plugin UI pattern ## Details - The config form enables/disables test and save buttons based on whether project_endpoint + at least one credential is provided - Field keys match the backend plugin's AzureAIAgentsConfig interface (project_endpoint, api_key, bearer_token) - Built dist/index.esm.js served via /api/plugins/azure-ai-agents/ui/dist/
## Changes - Add icon.jpg for the plugin card (copied from azure-ai-foundry, same Azure branding). Fix iconUrl path to use relative format matching all other plugins. - Change handleDiscover to throw on errors instead of silently returning empty arrays. The sync service wraps forwardToPlugin in try/catch and records thrown errors as failed syncs with the error message, so throwing gives proper visibility vs a misleading "success, found=0" log entry.
- Add optional second context parameter to testConnection to match
the backend's calling convention (pluginService.ts:467 passes
configuration and pluginContext as two arguments)
- Return { status: 400 } for missing config in handleDiscover
instead of throwing, matching the pattern used by azure-ai-foundry
and mlflow route handlers. Azure API errors still propagate as
thrown exceptions for the sync service to record as failures.
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.
Summary
azure-ai-agentsplugin that discovers AI assistants from Azure AI Foundry Agent Serviceagent_discoverycategory to the plugin marketplaceplugins.jsonwith tenant-scoped installationDetails
GET /assistantsendpoint with cursor-based pagination (up to 10,000 agents)code_interpreter,file_search,function,bing_grounding,azure_ai_search,microsoft_fabric,sharepoint_grounding) to standardized permission stringsGET /discoverroute consumed by the agent discovery sync serviceagent_primitivestable by the sync serviceTest plan
plugins.jsonis valid JSONnpx tsc --noEmit)