Curriculum Completion Validation
Ep 1 — Unlocking Knowledge for Agents: solution verification
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
Ep 2 — Building the Data Pipeline with Knowledge Sources: solution verification
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
Ep 3 — Querying the Multi-Source AI Knowledge Bases: solution verification
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
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
Curriculum Completion Validation
Ep 1 — Unlocking Knowledge for Agents: solution verification
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
Ep 2 — Building the Data Pipeline with Knowledge Sources: solution verification
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
Ep 3 — Querying the Multi-Source AI Knowledge Bases: solution verification
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
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:
intents=[KnowledgeRetrievalSemanticIntent(search=...)]. The side-by-side comparison loop in Step 5 has the same bug for the minimal branch.
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