Commit 84de860
authored
Refresh toolbox skills and add Foundry tool catalog (connector) reference (#2384)
* Update toolbox skills and add Foundry tool catalog (connector) reference
- toolbox-reference.md: expand troubleshooting (multi-tool constraint, 0
tools, server_label prefix), document Azure AI Search citation pattern,
call out scope pitfall, document `TOOLBOX_ENDPOINT` env contract, and
add CONSENT_REQUIRED on initialize.
- use-toolbox-in-hosted-agent.md: cross-link to the new connector/tool
catalog reference; add information-gathering checklist before building
toolbox payloads; add tracing pointer.
- foundry-tool-catalog.md (new): reference for wiring catalog-backed and
generic remote-MCP tools via project connections (gateway_connector /
catalog_MCP / generic_mcp; OAuth2 / PMI / CustomKeys / UserEntraToken /
BYO-OAuth) and the minimum toolbox attach + verify recipe.
- agent-tools.md: add the new reference to the tool summary table and
the cross-reference list at the top.
* agent-tools.md: complete tool index incl. Memory, OpenAPI, A2A; map toolbox `type`
The previous Tool Summary only listed prompt-agent SDK classes and
omitted Memory (which has its own tool-memory.md), OpenAPI, and A2A
(both supported as toolbox `type` values). Rewrite the file as a true
index that distinguishes the prompt-agent path from the toolbox path:
- Single Tool Summary table now maps each tool to its SDK class AND its
toolbox `type`, with connection requirements and reference.
- Add inline subsections for OpenAPI and A2A (no dedicated ref files
exist yet) with their toolbox payload shapes.
- Note that Function Calling is prompt-agent-only (executes client-side,
not available via toolbox).
- Cross-link to use-toolbox-in-hosted-agent.md and foundry-tool-catalog.md.
* Address review feedback
- toolbox-reference.md: mark TOOLBOX_ENDPOINT as canonical and
FOUNDRY_TOOLBOX_ENDPOINT as legacy (reviewer comment on line 32).
- use-toolbox-in-hosted-agent.md:
- Align Tool Catalog Docs URL with the `azure/foundry/...` style used
by the Toolbox Docs row (drop `?view=foundry`).
- Add a `params` block (with `securestring`) to the azd YAML example
so `{{ github_pat }}` is actually defined; link to azd schema docs.
- Break Tracing into a short intro + bulleted list (Local / Deployed /
Per-framework instrumentation / Viewing).
- foundry-tool-catalog.md:
- Replace the "(2026-05 snapshot)" date with a `api-version` reference
and pointer to the Cognitive Services projects REST API.
- Fix the PowerShell URI: use `${tb}` instead of the redundant
backtick-before-`?` form.
- Source `$dp` from `FOUNDRY_PROJECT_ENDPOINT` rather than hardcoding
`<account>.services.ai.azure.com`, and call out that the host varies.
- Drop the `?view=foundry` query from the Tool Catalog reference link
for consistency.
* Address review: rewrite agent-tools (add WorkIQ/FabricIQ/ToolSearch/Routines) and refresh toolbox-reference (-32007, OAuth passthrough, naming)
agent-tools.md
- Add Tool Summary rows for Work IQ (work_iq_preview), Fabric IQ (fabric_iq_preview), Tool Search (toolbox_search_preview), Routines, Memory.
- Web Search row: explain Bing Custom Search connection scopes grounding to specific domains.
- Bing Grounding row: clarify N/A in toolbox; toolbox path uses web_search with custom_search_configuration.
- OpenAPI row: connection=key requires project_connection_id; managed_identity does NOT (uses project MI + audience).
- Add inline sections for Work IQ, Fabric IQ, Tool Search, Routines with toolbox shape, requirements, and references to public docs.
- Replace all ?view=foundry URLs with /azure/foundry/ canonical form.
toolbox-reference.md
- Tool naming: align with public doc - only MCP tools get server_label.tool_name prefix; all other types use the entry's name field or the default.
- Update OAuth CONSENT_REQUIRED error code to -32007 (was -32006) everywhere.
- Add note recommending toolbox token passthrough when hitting OAuth/ARA errors with direct MCP.
- Mark TOOLBOX_ENDPOINT canonical because the platform reserves FOUNDRY_-prefixed env vars.
- Add Tool Search to valid multi-tool combinations (doesn't count toward unnamed-tool limit).
* Address review: rewrite foundry-tool-catalog (Catalog API, connector namespaces, MI audience, header shapes) and refresh use-toolbox (Tool Search recommendation, comprehensive tool list)
foundry-tool-catalog.md
- Reframe opening: emphasize the public Tool Catalog API as the source-of-truth for discovery and prepopulating connection fields.
- Replace all Logic Apps language with Connector Namespace managed MCP. The gateway_connector flow is now described as connector-namespace-managed (same service that powers Routines event sources).
- Document both registries available via Catalog API: public (entityContainerId=connectors-registry-prod-bl) and private tools catalog (tenant-scoped). Always query both.
- Add Catalog API field reference: entityId, annotations.name, x-ms-runtime-urls[0], x-ms-capabilities (incl. "triggers"), x-ms-operations[], x-ms-trigger, x-ms-connection-parameters, x-ms-oauth-settings.
- Decision-tree updates: BYO OAuth and ProjectManagedIdentity rows can also use metadata.type=catalog_MCP to prepopulate fields.
- Add connectorName (top-level + in metadata + in connectionproperties JSON string) and toolEntityId fields to the gateway_connector body.
- Add audience to ProjectManagedIdentity metadata, explaining it's required for MI to acquire the right resource token.
- CustomKeys: spell out that header NAME and value FORMAT come from the catalog (not "Authorization: Bearer" by default). Show examples of x-api-key / Ocp-Apim / multi-header schemes.
- Add full gateway-connector flow: discover, provision OAuth app, PUT, per-user listConsentLinks roundtrip, status polling, attach to toolbox, handle CONSENT_REQUIRED (-32007) at runtime.
- Update -32006 to -32007 (CONSENT_REQUIRED code).
- Common gotchas: connectionproperties must be JSON string not object; metadata.audience required for MI; CustomKeys header names from catalog.
use-toolbox-in-hosted-agent.md
- Add prominent Recommendation - enable Tool Search section right after intro, with rationale (flat context cost), behavior, and pinning recipe.
- Expand Quick Reference to include Tool Search, Work IQ, Fabric IQ, Routines doc URLs.
- Replace inline "Available tool types" bullet with a full table covering mcp, web_search, azure_ai_search, code_interpreter, file_search, openapi, a2a_preview, work_iq_preview, fabric_iq_preview, toolbox_search_preview, plus adjacent notes for Memory and Routines.
- Add new sample payload: large toolbox with Tool Search and tool_configs pinning.
- Inputs-to-gather table: add "Many tools planned?" question; note env var should not use FOUNDRY_ prefix.
- Code Integration Patterns notes: add tool-naming rule (server_label prefix only for MCP-sourced) and Tool Search exemption from multi-tool limit.
- Azure.yaml sample includes toolbox_search_preview directive.
* Remove Routines from agent-tools
Routines aren't a tool - they're an agent trigger - so they don't belong in the agent tools index. Removed:
- Routines row from the Tool Summary table
- Inline Routines (preview) section
- Routines link from the References list
* Fold full catalog-custom-connector skill content into foundry-tool-catalog
- Add Logic Apps managedApis GET + identityProvider→URL mapping table
- Add apiOperations endpoint + inputsDefinition→agentParameters mapping
- Correct gateway_connector target: https://placeholder on PUT #1, rewritten on PUT #2
- Add full register-actions (PUT #2) shape with mcpserverConfigProperties schema
- Expand consent: verbatim body, ~1h TTL, portal popup lifecycle pending-true path
- Document dogfood OAuth-app trap (global-test.consent host)
- Add tool naming pattern <label>___<connector>_<op> + Box and Outlook verified examples
- Expand PMI section with forwarder limitations (query-string drop, audience mint, -32007)
- Add RBAC preflight snippet
- Expand pitfalls (scopes array, BYO + catalog_MCP conflict, githubcopilot.com BYO rejection, asset-gallery thin index)
- Drop dangling Routines anchor in References (routines section was removed from agent-tools)
* use-toolbox-in-hosted-agent: add verified azd ai connection / azd ai toolbox CLI examples
* use-toolbox-in-hosted-agent: document validated 'azd ai toolbox update --default-version'
* use-toolbox-in-hosted-agent: only document validated azd CLI scenarios
- Fix command name: 'azd ai agent connection create' (not 'azd ai connection create')
- Fix flag names: --auth-type custom-keys and --custom-key (singular)
- Replace single example with 5 validated kind x auth-type combos
- Drop unvalidated mention of 'toolbox connection add/remove'
* address review: split agent-tools into per-tool files; trim azd ai CRUD; link typespec
- Split agent-tools.md inline sections (Code Interpreter, Function Calling, OpenAPI, A2A, Work IQ, Fabric IQ, Tool Search) into per-tool files matching the existing tool-*.md convention. agent-tools.md is now an index only (viswabalaji feedback).
- Add pointer to Azure/azure-rest-api-specs typespec main branch as authoritative source-of-truth for tool shapes (viswabalaji feedback; exact subpath TBD).
- Trim use-toolbox-in-hosted-agent.md: drop azd ai connection create / toolbox create / list / delete sections per anchenyi feedback. Keep retarget-default-version + smoke-test (operational, not setup). Point toolbox/connection CRUD at Foundry Toolkit + Portal.
* address review: fix broken foundry-samples paths
- python: samples/python/toolbox/maf -> samples/python/hosted-agents/agent-framework/responses/04-foundry-toolbox (per anchenyi)
- csharp: samples/csharp/toolbox -> samples/csharp/hosted-agents/agent-framework/foundry-toolbox-server-side
- SUPPORTED_TOOLBOX_TOOLS.md -> SUPPORTED_TOOLBOX_SCENARIOS.md (renamed upstream)1 parent aaea8d1 commit 84de860
11 files changed
Lines changed: 1262 additions & 48 deletions
File tree
- plugin/skills/microsoft-foundry/foundry-agent/create/references
Lines changed: 36 additions & 29 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | | - | |
4 | | - | |
5 | | - | |
6 | | - | |
7 | | - | |
| 3 | + | |
8 | 4 | | |
9 | | - | |
| 5 | + | |
10 | 6 | | |
11 | | - | |
| 7 | + | |
| 8 | + | |
12 | 9 | | |
13 | | - | |
| 10 | + | |
14 | 11 | | |
15 | | - | |
| 12 | + | |
16 | 13 | | |
17 | | - | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
18 | 29 | | |
19 | | - | |
| 30 | + | |
20 | 31 | | |
21 | | - | |
| 32 | + | |
22 | 33 | | |
23 | | - | |
| 34 | + | |
24 | 35 | | |
25 | | - | |
| 36 | + | |
26 | 37 | | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
| 38 | + | |
36 | 39 | | |
37 | | - | |
| 40 | + | |
38 | 41 | | |
39 | | - | |
| 42 | + | |
| 43 | + | |
40 | 44 | | |
41 | 45 | | |
42 | 46 | | |
43 | | - | |
44 | | - | |
45 | | - | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
0 commit comments