Skip to content

feat: add azure-ai-agents plugin for agent discovery#17

Open
gorkem-bwl wants to merge 4 commits intomainfrom
feat/azure-ai-agents-plugin
Open

feat: add azure-ai-agents plugin for agent discovery#17
gorkem-bwl wants to merge 4 commits intomainfrom
feat/azure-ai-agents-plugin

Conversation

@gorkem-bwl
Copy link
Contributor

Summary

  • Add new azure-ai-agents plugin that discovers AI assistants from Azure AI Foundry Agent Service
  • Add agent_discovery category to the plugin marketplace
  • Register the plugin entry in plugins.json with tenant-scoped installation

Details

  • Paginates the OpenAI-compatible GET /assistants endpoint with cursor-based pagination (up to 10,000 agents)
  • Maps 7 Azure tool types (code_interpreter, file_search, function, bing_grounding, azure_ai_search, microsoft_fabric, sharepoint_grounding) to standardized permission strings
  • 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
  • No database tables required — discovered agents are upserted into the shared agent_primitives table by the sync service

Test plan

  • Verify plugins.json is valid JSON
  • Verify TypeScript compiles with zero errors (npx tsc --noEmit)
  • Install plugin via marketplace UI and configure with an Azure project endpoint
  • Trigger agent discovery sync and verify agents appear in the agent discovery table
  • Test with both API key and bearer token authentication
  • Test pagination with a project that has many assistants

- 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
@gorkem-bwl gorkem-bwl force-pushed the feat/azure-ai-agents-plugin branch from 27d3261 to 47e1040 Compare February 18, 2026 05:06
## 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant