Skip to content

Ashish Vijaysingh Nimrot Foundry IQ Badge Request #39

@ashishnimrot

Description

@ashishnimrot

Curriculum Completion Validation

  • I verify that I have completed all 3 Foundry IQ episode cookbooks end-to-end.

Ep 1 — Unlocking Knowledge for Agents: solution verification

  • I verify that I have uploaded a screenshot of my Episode 1 final notebook output with my GitHub username or Azure resource name shown into the field below.

Ep 1 — fork URL

https://github.com/ashishnimrot/iq-series/blob/main/1-Foundry-IQ-Unlocking-Knowledge-for-Agents/cookbook/foundry-iq-cookbook.ipynb

Ep 1 — final output screenshot

Image Image Image

Ep 2 — Building the Data Pipeline with Knowledge Sources: solution verification

  • I verify that I have uploaded a screenshot of my Episode 2 final notebook output with my GitHub username or Azure resource name shown into the field below.

Ep 2 — fork URL

https://github.com/ashishnimrot/iq-series/blob/main/2-Foundry-IQ-Building-the-Data-Pipeline-with-Knowledge-Sources/cookbook/foundry-iq-cookbook.ipynb

Ep 2 — final output screenshot

Image Image Image

Ep 3 — Querying the Multi-Source AI Knowledge Bases: solution verification

  • I verify that I have uploaded a screenshot of my Episode 3 final notebook output with my GitHub username or Azure resource name shown into the field below.

Ep 3 — fork URL

https://github.com/ashishnimrot/iq-series/blob/main/3-Foundry-IQ-Querying-the-Multi-Source-AI-Knowledge-Bases/cookbook/foundry-iq-cookbook.ipynb

Ep 3 — final output screenshot

Image

Episode Insights & Key Takeaways

Episode 1: One retrieval_client.retrieve(...) call collapses a typical 4-step RAG pipeline — query planning, parallel hybrid search, semantic reranking, and answer synthesis with inline citations — into a single Knowledge Base call. The KB also exposes an MCP endpoint ({search}/knowledgebases/{name}/mcp), so the Foundry agent consumes it via the same wire protocol any MCP client uses, wired in through a
ProjectManagedIdentity project connection instead of API keys.

Episode 2: Knowledge Sources are a uniform abstraction over heterogeneous data — a search index, a blob container, a web crawl all live behind the same query interface. The aha moment was the Blob Knowledge Source: pointing it at the product-manuals container with just a connection string and container name was enough, since chunking, embedding, and indexing happen inside the source automatically.

Episode 3: retrieval_reasoning_effort is a real cost/latency dial. minimal skips the planner entirely and requires intents [KnowledgeRetrievalSemanticIntent(search=...)] instead of messages. low lets an LLM decompose the question and prune irrelevant sources. medium adds an iterative second pass that evaluates coverage and refines queries. The takeaway: when an upstream agent already plans queries, minimal avoids paying for planning twice — which is the same contract MCP clients use under the hood.

Challenges or feedback

A few rough edges hit during the run:

  • deploy.sh default region (eastus2) was out of capacity; falling back to eastus left the OpenAI text-embedding-3-large deployment in a ghost state (ARM Succeeded, data-plane 404 DeploymentNotFound). Had to swap the index vectorizer to the AI Services account's embedding deployment to unblock retrieval.
  • Episode 1 README's FOUNDRY_PROJECT_RESOURCE_ID example shows the legacy Microsoft.MachineLearningServices/workspaces/.../projects/... format, but the Bicep actually deploys Microsoft.CognitiveServices/accounts/.../projects/... — the example should be updated to match.
  • Episode 3 Step 2 cell passes messages= to a minimal-effort retrieve, which the service rejects with "Messages input not supported when 'minimal' reasoning effort is requested. Use intents input instead." Fix:
    intents=[KnowledgeRetrievalSemanticIntent(search=...)]. The side-by-side comparison loop in Step 5 has the same bug for the minimal branch.
  • RBAC for the project's managed identity and the per-project agent identity on the search service isn't set up by deploy.sh. The agent's MCP tool call 403s until you grant Search Index Data Reader (and Search
    Service Contributor) to both identities on the search service. The user account also needs Azure AI User on the AI Services account to create agents.

Badge form confirmation

  • I verify that I have completed the Foundry IQ badge form.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions