AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
Foundry IQ provides a structured framework for creating, diagnosing, and connecting knowledge bases to AI agents. It supports making local or Blob-based documents searchable, managing multi-source knowledge configurations, and retrieving information with citations. The skill emphasizes strict adherence to defined procedures for service discovery, resource creation, and troubleshooting to ensure reliable agent-knowledge integration.
What it does
- Creates searchable knowledge bases from local or Azure Blob storage documents.
- Connects existing knowledge bases to AI agents.
- Diagnoses issues with knowledge base configurations or unsupported connectors.
- Retrieves information from knowledge bases with source citations.
- Manages the lifecycle of search services and knowledge sources.
- Routes requests based on specific operational needs rather than source counts.
When to use it
- When you need to make local or cloud-stored documents searchable by an AI agent.
- When connecting an existing knowledge base to a new or current agent.
- When troubleshooting or diagnosing a knowledge base configuration.
- When you need to create a new search service or knowledge source.
- When performing retrieval tasks that require citations from a knowledge base.
Advantages
- Provides a clear, procedural approach to knowledge base management.
- Ensures consistent handling of multi-source knowledge configurations.
- Includes built-in diagnostic paths for troubleshooting.
- Supports secure, citation-backed retrieval for agent responses.
- Prevents unauthorized or unsupported configuration changes.
Usage examples
- “Create a new knowledge base from my Azure Blob container.”
- The agent will initiate the knowledge base creation procedure, validating the source and setting up the necessary search indexing.
- “Connect my existing knowledge base to the current agent.”
- The agent will follow the connection workflow to link the specified knowledge base to the agent's retrieval pipeline.
- “Why is my multi-source knowledge base failing to index?”
- The agent will trigger the diagnostic procedure to identify configuration drifts or unsupported connector issues.
- “Retrieve information about project timelines from the knowledge base.”
- The agent will query the knowledge base and provide an answer with citations from the source documents.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/microsoft/foundry-iq/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip foundry-iq.zip -d .agents/skills
Documentation by Microsoft
Foundry IQ
Read one procedure before questions/actions; invocation is not a read.
Read the owning procedure before blocked/unsupported responses too.
Before mutation plans/approval, successfully read its required pre-action references, selected
branches only. Do not reload successful reads. On failure, try only permitted
bounded exact-path reads with any supported reader; never bypass restrictions
or search broadly. If still unavailable: blocked: reference-unavailable, name
missing references and inability to plan. Never invent requirements/plans.
Failures first.
Cleanup and receipt-backed execution go directly to their lifecycle/producer owner; do not reopen Search intake, provisioning or hardening.
Before expensive service discovery, reuse supplied resource/intent; otherwise ask one early USE EXISTING / FIND CANDIDATES / CREATE NEW choice. Only FIND enumerates; supplied identity uses exact/minimum scoped resolution. CREATE checks its proposed name, not existing-service inventories. Preserve these answers across source/KB/CU/model handoffs; selection is not write approval.
Searchable docs: KB + validated retrieval. Confirm intent once; KS-only must be explicit. Child success is not KB completion. Unclear/compound/mode/completion: read.
Route by requested operation, not existing KB source count. Connecting an existing KB with two or more sources, without changing the KB, uses Connect. Read-only operations use their owning procedure and actual helper constraints; this does not add retrieval modes or supported source kinds. Explicit unsupported provisioning or multi-source KB creation/reconfiguration uses Diagnose and stops before discovery, even when connecting an agent is also requested. This routing takes precedence over classic-search terms (e.g. hybrid search) in compound requests. Never end in a plain refusal: Diagnose gives the boundary, docs pointer and agent handoff; writes still need an approved concrete plan. Do not silently execute only the supported part of a compound request. If existing-KB connection versus KB creation/reconfiguration is unclear, read intent-routing and clarify that scope before Azure discovery. Never infer KB mutation.
| Outcome | Read |
|---|---|
| Cleanup | Plan cleanup |
| Failure/drift | Diagnose |
| Unsupported connector provisioning / multi-source KB creation or reconfiguration | Diagnose |
| Connect | Connect |
| Read KB | Query |
| Search only | Search |
| File KS only | File |
| Blob/ADLS KS only | Blob |
| Searchable/KB | KB |
Generic agents: microsoft-foundry.
Reads: no approval; approve unchanged plans before writes.
Hide hashes. No Search/Storage keys, scope widening, guessed identity/boundaries,
drift repair or joint cleanup/creation approval. Acceptance != success.
Files
- ATTRIBUTION.mdAdded by AutoGineer977 B
- LICENSELicence file added by AutoGineer1.1 KiB
- SKILL.md3.7 KiB
- agents/connect-hosted-toolbox.md7.8 KiB
- agents/connect-hosted.md7.8 KiB
- agents/connect-prompt-sdk-fallback.md7.8 KiB
- agents/connect.md7.8 KiB
- agents/create-missing-agent.md7.8 KiB
- helpers/_blob_observation.pyScript4.4 KiB
- helpers/_blob_source_read.pyScript39.5 KiB
- helpers/_bootstrap_io.pyScript30.1 KiB
- helpers/_cleanup_dependencies.pyScript27.5 KiB
- helpers/_cleanup_receipts.pyScript13.5 KiB
- helpers/_common.pyScript36.2 KiB
- helpers/_document_adapters.pyScript15.0 KiB
- helpers/_document_limits.pyScript3.9 KiB
- helpers/_embedding.pyScript7.0 KiB
- helpers/_file_inventory.pyScript24.4 KiB
- helpers/_file_source_config.pyScript15.6 KiB
- helpers/_indexer_observation.pyScript7.1 KiB
- helpers/_initial_prompt.pyScript12.5 KiB
- helpers/_private_json.pyScript2.4 KiB
- helpers/_progress.pyScript12.1 KiB
- helpers/_prompt_read.pyScript17.7 KiB
- helpers/_search_read.pyScript6.0 KiB
- helpers/_source_readback.pyScript1.6 KiB
- helpers/blob-contracts.md7.8 KiB
- helpers/blob-cu-contracts.md7.8 KiB
- helpers/blob_inventory.pyScript17.1 KiB
- helpers/blob_recheck.pyScript64.6 KiB
- helpers/blob_source.pyScript35.8 KiB
- helpers/bootstrap-contracts.md7.8 KiB
- helpers/bootstrap_azure.pyScript41.5 KiB
- helpers/cleanup_plan.pyScript41.4 KiB
- helpers/contracts.md7.8 KiB
- helpers/cu_ingestion_auth.pyScript12.5 KiB
- helpers/document-assessment.md7.8 KiB
- helpers/document_assess.pyScript14.0 KiB
- helpers/file-upload-recovery.md7.8 KiB
- helpers/file_cu_canary.pyScript32.7 KiB
- helpers/file_cu_mi.pyScript9.6 KiB
- helpers/file_ingest.pyScript15.4 KiB
- helpers/file_source.pyScript31.7 KiB
- helpers/file_upload.pyScript53.7 KiB
- helpers/hosted_connect.pyScript30.8 KiB
- helpers/kb-contracts.md7.8 KiB
- helpers/knowledge_base_retrieve.pyScript7.7 KiB
- helpers/model-discovery-contracts.md7.8 KiB
- helpers/model-discovery-scopes.md7.8 KiB
- helpers/model_discovery.pyScript23.7 KiB
- helpers/private-artifacts.md7.2 KiB
- helpers/private_artifacts.pyScript4.8 KiB
- helpers/prompt_cleanup.pyScript22.0 KiB
- helpers/prompt_connect.pyScript62.3 KiB
- helpers/requirements-assessment.txt103 B
- helpers/retrieval-verification-contracts.md7.8 KiB
- helpers/retrieval_verify.pyScript19.6 KiB
- helpers/search-intake-contracts.md7.6 KiB
- helpers/search_intake.pyScript18.4 KiB
- helpers/search_reconcile.pyScript59.7 KiB
- helpers/source_vector.pyScript33.2 KiB
- helpers/throttle-recovery.md5.0 KiB
- helpers/vector-contracts.md7.8 KiB
- knowledge-bases/create.md8.1 KiB
- knowledge-bases/retrieve.md7.8 KiB
- knowledge-sources/create-azure-blob.md7.8 KiB
- knowledge-sources/create-file.md7.8 KiB
- lifecycle/cleanup.md7.8 KiB
- references/abstention.md1.0 KiB
- references/blob-binding-evidence.md7.8 KiB
- references/blob-indexer-observation.md7.7 KiB
- references/blob-ingestion-progress.md6.5 KiB
- references/blob-readiness-recheck.md7.8 KiB
- references/blob-vector-readiness.md2.6 KiB
- references/bootstrap-azure.md7.8 KiB
- references/content-fit.md7.8 KiB
- references/cu-ingestion.md7.8 KiB
- references/file-cu-canary.md7.8 KiB
- references/intent-routing.md7.7 KiB
- references/owner.md2.1 KiB
- references/platform-contracts.md7.7 KiB
- references/platform-interfaces.md7.8 KiB
- references/resource-intake.md7.8 KiB
- references/search-substrate.md7.8 KiB
- references/standard-cu.md7.8 KiB
- search-services/create.md7.8 KiB
- troubleshooting/diagnose.md8.7 KiB
helpers/model-discovery-scopes.md
Discovery scope and endpoint diagnostics
Read for ambiguous/missing endpoints, CU/model handoff confusion, unusual RG names or selector/readback errors. Metadata only; no setup or billable probes.
Separate dependency selections
CU extraction uses content_understanding.endpoint / aiServices.uri; source
vectors use embedding.endpoint / embeddingModel.azureOpenAIParameters.resourceUri.
Retain each role's account ID, observed origin and selected deployment separately.
The CU key/identity is not evidence of embedding access.
For example, CU account A can have no embedding deployment while model account B
already hosts a suitable one. Leave A selected for CU; start unresolved
purpose: embedding discovery in the agreed scope without A's account/name/endpoint.
The returned model candidates include OpenAI and AIServices accounts. A Foundry
resource is an AIServices model-hosting account, not another mandatory resource.
Choose a model account before listing its deployments. An account-list result is
not a deployment search; one empty deployment list does not exhaust the scope.
Keep the shortlist and choose another candidate, not repeated reads of A.
An explicit embedding deployment fixes its own parent account; never overwrite that binding with CU's. Same-account reuse remains valid when both roles are independently verified. Carry the selected embedding origin/deployment unchanged into the source plan; never rewrite hosts or substitute the CU origin.
Prefer compatible existing deployments. If the completed agreed search finds none suitable, propose a deployment in a compatible existing account before a new account, with separate approval and model/SKU/quota/access/cost checks. An explicitly selected target failure, denial, timeout or incomplete inventory remains unresolved: no automatic scope expansion, creation or silent fallback.
Resource groups are not account names
Microsoft.Resources/resourcegroups permits 1-90 characters: underscores,
hyphens, periods, parentheses, and Unicode categories Lu/Ll/Lt/Lm/Lo/Nd
(letters or decimal digits). No final period. No alphanumeric-first requirement:
_shared-ai, .shared and (ops) are valid. Combining marks, nondecimal numeric
characters, whitespace, slashes, percent escapes and controls are not allowed.
Use literal names in selectors/ARM IDs, not URL-encoded strings.
The helper uses one RG predicate for supplied groups, account/deployment IDs and observed IDs, before filtering account kinds. Thus an unrelated Speech account in a valid RG does not poison a model listing; malformed/foreign scope still blocks the entire result, never silently skips a row. Account/deployment name rules remain separate. Unicode case handling must not merge distinct groups through multi-character folds.
Only HTTP paths are UTF-8 percent-encoded. Returned IDs and selection inputs stay literal. Continuations must decode to the same collection and retain the exact ARM host/API and allowed skip-token parameters; they are sent on the validated encoded path. No context change, broader listing or Unicode transliteration.
Purpose-specific observed origins
| Purpose | Accepted suffixes |
|---|---|
embedding | openai.azure.com, services.ai.azure.com, cognitiveservices.azure.com |
chat | Same model origins, independently checked against the KB consumer |
cu | Only services.ai.azure.com; no model-host substitution |
Require https://<label>.<suffix>: a 1-63-character lowercase alphanumeric/hyphen
label starting alphanumeric, optionally ending in /. Strip only that slash.
No paths (including project/API paths), explicit
ports, user-info, queries, fragments, APIM, sovereign/custom hosts or hostname
rewriting. Unsupported forms are not evidence of resource absence.
Inspect properties.endpoint and every properties.endpoints map value.
Deduplicate observed origins; map keys have no documented CU discriminator.
Provenance is properties.endpoint and/or properties.endpoints, not a guessed
meaning for ContentUnderstanding or another key. Portal evidence cannot replace
missing ARM metadata. Endpoint selection does not prove path-specific CU/model
readiness or effective access.
Embedding syntax matches _embedding.validate_choice. The KB consumer relays
models[].azureOpenAIParameters without an additional domain gate; the public KB
SDK examples use AzureOpenAIVectorizerParameters. Offline tests pass discovered
chat origins through that consumer's existing validation. This is compatibility
evidence, not live KB/API/model availability proof. CU stays independently bounded.
Explicit resolution and reuse
An omitted/null endpoint selects only a unique observed supported origin.
Multiple supported origins are never resolved by preferring the primary endpoint,
an OpenAI hostname, map order or a familiar deployment name.
discovery-endpoint-unresolved retains the freshly read account and its sorted
endpoint_candidates; no deployment read occurs. Copy its selection_input,
set endpoint to the customer's selected candidate, and rerun the same helper.
An explicit endpoint must be supported for the purpose and paired with an exact
account ID (including one derived from a deployment ID), or account name plus RG.
It must still occur in fresh ARM metadata. More than ten supported origins blocks
without partial candidates. No schema fields other than optional endpoint were
added to input; the original seven fields remain required.
Deployment selection_input retains the chosen origin for exact reuse; extra
observed aliases cannot switch it. Missing/ambiguous metadata has
endpoint_state: endpoint-missing-or-ambiguous; an unobserved explicit choice has
endpoint-selection-not-observed. Both block; no fallback or absence claim.
Other discovery failures still discard candidates. Original sanitized service
errors/request IDs and source planners' approval/ownership checks remain intact.
Compact public metadata
CLI --query runs before capture, not server-side $select. Account inventories
retain ID/name/kind/location; RG comes from the validated ID. Endpoints/state
remain not-assessed until exact GET; no unselected account deployment fanout.
map retains all raw rows, including malformed ones; nextLink is never trimmed.
Bounds aggregate across collections. On overflow, retain scope and request
resource_group or an exact ID once; no implicit Search RG or availability claim.
Capabilities: embeddings/chatCompletion booleans or exact "true"/"false";
maxContextToken/maxOutputToken: decimal integers 1-2147483647 as strings
(safety bound, not a service limit).
No floats, scientific notation, whitespace, leading zeros or arbitrary strings.
Other fields (_H_* in any case too) never emit. Invalid/missing values stay unknown;
removal cannot establish suitability or usable capacity.
Non-object capabilities become {}; malformed properties/model/IDs block.
Authorities
Authorities: failure/conflict/uncertainty only. Checked 2026-09-15:
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs Python
The author says: Azure
Security
What our scanner noticed· Medium risk
- References to credential files
- Instructions that use the network
- Scripts that your agent may run
This skill includes scripts that your agent may run. Read them before you use it.
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- Microsoft
- Publisher
- Microsoft (Official)
- Source
- microsoft/skills · .github/plugins/foundry-iq-skills/skills/foundry-iq · commit 0696600
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from .github/plugins/foundry-iq-skills/LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Microsoft.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download foundry-iq.zip