The explore agent confirms my analysis — the spec is complete and accurate. Here is the product specification:


Product Spec — foundry-agents

Inferred from source review of jplane/foundry-agents. This spec describes observable, product-level behavior rather than implementation details.


1. Problem Statement

Developers who want to build AI-powered agents on Azure face a steep learning curve: the Azure AI Agent Service offers several distinct tool integration patterns, but each requires non-trivial wiring and configuration before producing a working result. Without concrete, runnable examples, developers must piece together documentation and SDK references to understand how agents, threads, tools, and multi-agent pipelines actually behave together.

This repository addresses that problem by providing a curated set of minimal, opinionated examples that demonstrate each major tool integration pattern in isolation, then show how those patterns compose into a working multi-agent pipeline. Each example is self-contained and immediately runnable inside a pre-configured development environment.


2. Actors and Their Goals

Developer (primary)

Operator (same person as Developer in this context)

Azure AI Agent Service (external system)


3. Operator Value

Value Description
Accelerated onboarding A developer can go from zero to a working agent in a single Dev Container session
Pattern coverage Every major tool integration available in Azure AI Agent Service is demonstrated at least once
Compositional clarity The multi-agent example explicitly shows how shared threads allow specialist agents to cooperate without a complex orchestrator
Low-friction setup A single Dev Container configuration installs all dependencies, CLI tools, and editor extensions automatically
Reusable fixtures Three pre-written city information files and a deployable weather API serve as reusable data and service stubs across examples

4. Core Capabilities

4.1 Local Function Tool Integration

The system demonstrates how an agent can be equipped with a locally defined function as a callable tool. When a user message requires data the model cannot answer from training alone, the agent autonomously decides to invoke the function, collects its output, and incorporates that output into its response.

The system demonstrates how an agent can retrieve relevant passages from a set of uploaded documents using semantic similarity search. The agent synthesizes a natural-language answer from the retrieved content and includes source annotations tracing back to the original files.

4.3 REST API Invocation via OpenAPI Specification

The system demonstrates how an agent can call an external REST API using an OpenAPI specification as its interface contract. The agent selects and calls the appropriate API operation based on user intent, then incorporates the API response into its answer. Authentication is configurable per-tool at agent creation time.

4.4 Simultaneous Multi-Tool Agents

The system demonstrates how a single agent can be equipped with multiple heterogeneous tools (e.g., file search and REST API invocation together), selecting among them autonomously based on what a given user message requires.

4.5 Multi-Agent Pipeline on a Shared Thread

The system demonstrates how multiple specialized agents can participate sequentially in the same conversation thread. Each agent reads the full thread history, contributes its specific information as a new message, and the next agent builds on what the previous agents wrote. The pipeline is deterministic: the calling code explicitly controls which agent runs and in what order.

4.6 Structured Output from Agents

The system demonstrates how agents can be configured to return machine-readable JSON responses, including explicit schema guidance in the agent's instructions, suitable for downstream programmatic consumption.

4.7 Deployable API Stub

The system includes a minimal deployable REST API with an OpenAPI specification, serving as a concrete, publicly reachable endpoint that the OpenAPI tool integration example can call against.


5. Observable Behaviors

Agent with local function call

Agent with OpenAPI invocation

Multi-tool agent

Multi-agent pipeline

Deployable weather API


6. Edge Cases and Failure Behavior


7. Non-Functional Constraints


8. Non-Goals


9. Suspected Implementation Leakage

The following observations describe implementation details rather than product-level behavior. They belong in an interface or technical spec, not a product spec: