Generated banner for Foundry Iq
Generated logo for Foundry Iq

Foundry Iq

MicrosoftOfficialCreated by Microsoft

  • Skill
  • Workflow
  • Data and AI
  • MIT
  • Medium risk
  • Has scripts

From the author

Foundry IQ knowledge bases. WHEN: make local or Blob documents searchable; create/diagnose KBs; triage unsupported connectors or multi-source KB creation/reconfiguration (even with classic-search terms); connect existing KB to agents (including multi-source KBs); create/reuse a Search service; retrieve from an existing knowledge base with citations; no brand words needed. Read its procedure before query/target questions. NOT: other KB providers, repository-file search, classic Azure AI Search index/query/app work with no Foundry IQ KB or connector request, generic agent creation.
— the description by Microsoft

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

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/microsoft/foundry-iq/download
  2. Unzip 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.

OutcomeRead
CleanupPlan cleanup
Failure/driftDiagnose
Unsupported connector provisioning / multi-source KB creation or reconfigurationDiagnose
ConnectConnect
Read KBQuery
Search onlySearch
File KS onlyFile
Blob/ADLS KS onlyBlob
Searchable/KBKB

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

helpers/contracts.md

Deterministic helper contracts

Read before planning/approval; scope discovery. Owners assess content/ambiguity/roles/consent. Private output. Inspect source only on blocked/partial.

Common envelope and process contract

UTF-8 JSON:

{"schema_version":"1.0","plan":{},"approval":{"confirmed":true,"fingerprint":"sha256:<canonical-plan-digest>"}}

Canonical JSON: UTF-8, key-sorted, ASCII-escaped, compact. Approve the unchanged plan; helpers verify fingerprints. Exclude credentials, tokens, keys, SAS, passwords, content and secret-bearing connection strings. Use CLI tokens. File CU: MI or approved ARM/ENV; never retain secrets. Envelope, approval, plan, nested controls and file records are closed schemas: undeclared fields block before authentication. desired remains a complete service body. Results recursively redact secret fields. Azure Policy evaluation belongs to the creation owner, not these helpers. Bootstrap: no preflight policy reads. Bind known requirements and child fingerprint in the parent plan; no policy precheck. Never add undeclared policy/tag fields; if required settings cannot reach the supported request body, return azure-policy-setting-unsupported before creation.

Mutation commands emit compact JSON to stdout: exit 0 is completed, 2 no-write blocked, 3 written/ambiguous partial. Preserve JSON/exit status. Read same identity after ambiguous writes. Unacknowledged Search creates stay partial: resources_remaining.reused, not owned. Otherwise prove approved state/absence.

429: read recovery, plus File queue retry below.

File/Blob/ADLS and Search apply: _progress.py: stderr JSONL; --no-progress disables. Planning/discovery stays quiet. Libraries: progress=Progress("<workflow>"); children share one terminal event. Bounded activity/remaining checks, elapsed seconds and counts. Same stage: once/second; transitions/terminal: immediate. File POST: five-second heartbeat, no polling/ETA; metadata proves File ingestion; cycle updates aren't unique documents; ARM readiness isn't KB/retrieval/data-plane proof. I/O failure: progress-output-failed warning; primary failures/execution unchanged. Failed native stderr drains to null at shutdown; custom sinks untouched. Final JSON is authoritative.

File source application

python helpers/file_source.py --plan request.json: read-only; unapproved execution_input/approval_summary; exit 0 is planned, not readiness. See request/example. Require extraction_mode; optional embeddings are independent. Planning: no bootstrap/roles/uploads/cleanup/approval; owner-owned requirements. Fresh exact reuse sets execution_required/mutation_approval_required false; no approval/execution. Create: approve the unchanged envelope:

python helpers/file_source.py --input approved.json --cleanup-receipt-dir <private> --upload-receipt-dir <journal>

Require operation: reconcile-and-ingest, cleanup_approved: false, owner, source and ingestion. Children target the same endpoint/name/API/owner. Validate both before mutation; reconcile before upload/readback. ACKs/journal: resume. Reuse requires exact markers, never new files or per-file cleanup. Parent/approved upload-only routes. source uses the reconciliation shape with kind: "file"; ingestion:

{"operation":"ingest","endpoint":"https://svc.search.windows.net","name":"src","api_version":"2026-08-01-preview","local_root":"<root>","service_tier":"basic","extraction_mode":"minimal","owner":"o@x","cleanup_approved":false,"files":[{"path":"guide.txt","size":123,"mtime_ns":1700000000000000000,"sha256":"sha256:<64-hex>","media_type":"text/plain"}],"inventory_digest":"sha256:<64-hex>","expected_server_inventory_digest":"sha256:<64-hex>"}

Search resource reconciliation

python helpers/search_reconcile.py --input <approved-envelope.json>

Require operation: reconcile, outcome, resource_type, endpoint, name, api_version, action, complete approved desired, owner, and cleanup_approved: false. Use action: create, or approved action: update with expected_etag. Exact existing state is zero-write.

Blob/ADLS plans also require source_evidence with verified: true and an inventory_digest. ADLS requires path_verified: true, acl_verified: true. These attest reconciliation, not evidence collection/readiness: apply through the Blob parent. File standard: ai_services_managed_identity or ai_services_key_acquisition via File parent, or existing ai_services_api_key_environment.

KB --plan: intent/wire/approval; save unapproved execution_input, never hand-build bodies/hashes. verified_source binds verified: true, name, normalized definition_digest; fresh same-API GET must match before create/update/reuse. GA omits preview fields/models. Low/medium needs a separate chat model; model-free agent retrieval requires preview minimal/extractive.

For cleanup, plan, then use the same executor. Bind operation: delete, plan_kind: cleanup, cleanup_approved: true, expected_etag, and owned_definition_digest. Recheck ownership; verify absence.

Blob/ADLS source application

Blob/ADLS alone loads folder scope/bounds/drift/cleanup. blob_source.py --discover inventories; --plan builds unapproved artifacts or verifies approval-free reuse; --input applies the approved parent and monitors ingestion. Search reconciliation alone never proves Blob readiness.

File ingestion internals

file_source.py invokes this child after validating both plans. Standalone CLI never authorizes new uploads.

Reject path/inventory/extraction/server-state/marker drift. Sequential uploads; one final inventory. Only per-file 415 permits continuation; systemic failures stop. File 429: one bounded retry. POST: 180s; reads: 60s. Timeout/409/5xx: read proof, never POST replay. Metadata proves ingestion, not retrieval; status-only ACKs remain pending. Never return bytes/local root.

Existing Prompt Agent fallback

Only for unavailable MCP/missing connection/version operations; never authorization denial/conflicting state:

python helpers/prompt_connect.py --input <approved-envelope.json>

The plan requires operation: connect, sdk_major: 2, exact project resource ID and matching endpoint identity, connection, agent, rbac_verified, allowed_tools: ["knowledge_base_retrieve"], require_approval: "never", permission_forwarding, owner, and cleanup_approved: false. The fallback defines --plan: intent yields unapproved execution_input + summary; hashes stay internal. Legacy inputs omit dependency/version snapshots. Approve grounding changes. Forwarding is either {"mode":"not-applicable"} or {"mode":"structured-input","name":"search_auth_token"}. Reuse one complete match; multiple matches block. ARM uses Microsoft.CognitiveServices/accounts/projects/connections. Optional boolean connection.is_shared_to_all defaults to true. Fallback defines normalization/bounded warnings for creation, ambiguous-write recovery/reuse. agent_invocation: not-run isn't E2E proof.

Prompt cleanup (planner above blocks unproven connection consumers):

python helpers/prompt_cleanup.py --input <approved-envelope.json>

Bind operation: delete, plan_kind: cleanup, cleanup_approved: true, sdk_major: 2, exact project identity and agent/connection with run_owned: true, exact identity and owned_definition_digest. Connections also bind expected_etag. Delete version before connection; verify absence; preserve prior versions/project/model/KB/roles.

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