Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
c37d769
First
dargilco Jan 30, 2026
108bdd1
Re-emit. Apply some post-emitter-fixes
dargilco Jan 31, 2026
f630bc7
Update samples to show pip install `azure-ai-projects>=2.0.0b4`
dargilco Jan 31, 2026
3bedda2
Update README.md
dargilco Jan 31, 2026
3545a8d
Re-emit. Fixes due to class rename and new v1 version
dargilco Feb 2, 2026
2e70601
Add foundry_beta=FoundryPreviewOptInKeys.MEMORY_STORES_V1 to Memory S…
dargilco Feb 2, 2026
9410796
Restore Schedules variable name
dargilco Feb 2, 2026
971bc2e
Fix some mypy errors
dargilco Feb 3, 2026
01eba32
Fix missing import. Comment out debug flag
dargilco Feb 3, 2026
0f6788e
web search samples (#44981)
howieleung Feb 3, 2026
a9892e0
Merge remote-tracking branch 'origin/main' into feature/azure-ai-proj…
dargilco Feb 4, 2026
a28537e
Re-emit from my TypeSpec branch dargilco/rename-optin-http-request-he…
dargilco Feb 4, 2026
f2f7f73
Fix mypy (renames)
dargilco Feb 4, 2026
8bed441
Fix pyright. Fix install comment in samples
dargilco Feb 4, 2026
68f366c
Fix pyright
dargilco Feb 4, 2026
910ab6f
Update code snippets in README.md. Add emitter-package*.json files
dargilco Feb 4, 2026
3a7a95b
Hand fix some Sphinx errors
dargilco Feb 4, 2026
7eac57b
Fix one more Shpinx issue
dargilco Feb 4, 2026
a06aba3
Fix typos
dargilco Feb 4, 2026
c48087c
Disable all tests
dargilco Feb 4, 2026
a9eb01c
Re-enable a few tests that don't use network traffic
dargilco Feb 4, 2026
0439065
Re-emit
dargilco Feb 4, 2026
48b13bd
Merge remote-tracking branch 'origin/main' into feature/azure-ai-proj…
dargilco Feb 5, 2026
e6efeb6
revert changes to /eng/emitter-package-lock.json, as openai-typespec …
dargilco Feb 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions sdk/ai/azure-ai-projects/.env.template
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,15 @@
# 3. Run the tests (`pytest`) or run samples in the `samples` folder
#

# Set to true for console logging
AZURE_AI_PROJECTS_CONSOLE_LOGGING=

#######################################################################
#
# Used in samples
#
#######################################################################

# Project endpoint has the format:
# `https://<your-ai-services-account-name>.services.ai.azure.com/api/projects/<your-project-name>`
AZURE_AI_PROJECT_ENDPOINT=
Expand All @@ -23,12 +28,8 @@ CONNECTION_NAME=
AZURE_AI_PROJECTS_AZURE_SUBSCRIPTION_ID=
AZURE_AI_PROJECTS_AZURE_RESOURCE_GROUP=
AZURE_AI_PROJECTS_AZURE_AOAI_ACCOUNT=

# Used in Memory Store samples
MEMORY_STORE_CHAT_MODEL_DEPLOYMENT_NAME=
MEMORY_STORE_EMBEDDING_MODEL_DEPLOYMENT_NAME=

# Used in Agent tools samples
IMAGE_GENERATION_MODEL_DEPLOYMENT_NAME=
BING_PROJECT_CONNECTION_ID=
MCP_PROJECT_CONNECTION_ID=
Expand All @@ -50,6 +51,7 @@ A2A_USER_INPUT=
#######################################################################
#
# Used in tests
#
#######################################################################

# Used for recording or playback
Expand Down
9 changes: 8 additions & 1 deletion sdk/ai/azure-ai-projects/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,17 @@
* Rename class `MemorySearchTool` to `MemorySearchPreviewTool`.
* Rename class `MicrosoftFabricAgentTool` to `MicrosoftFabricPreviewTool`.
* Rename class `SharepointAgentTool` to `SharepointPreviewTool`.
* Rename class `ItemParam` to `InputItem`.
* Other class renames:
* Rename class `ItemParam` to `InputItem`.
* Rename class `PromptAgentDefinitionText` to `PromptAgentDefinitionTextOptions`
* Rename class `EvaluationComparisonRequest` to `InsightRequest`
* Tracing: workflow actions in conversation item listings are now emitted as "gen_ai.conversation.item" events (with role="workflow") instead of "gen_ai.workflow.action" events in the list_conversation_items span.
* Tracing: response generation span names changed from "responses {model_name}" to "chat {model_name}" for model calls and from "responses {agent_name}" to "invoke_agent {agent_name}" for agent calls.

### Sample updates

* Add and update samples for `WebSearchTool` and `WebSearchPreviewTool`

## 2.0.0b3 (2026-01-06)

### Features Added
Expand Down
50 changes: 36 additions & 14 deletions sdk/ai/azure-ai-projects/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ resources in your Microsoft Foundry Project. Use it to:
* Model Context Protocol (MCP)
* OpenAPI
* SharePoint
* Web Search
* Web Search/Web Search Preview
* **Get an OpenAI client** using `.get_openai_client()` method to run Responses, Conversations, Evals and FineTuning operations with your Agent.
* **Manage memory stores** for Agent conversations, using the `.memory_stores` operations.
* **Explore additional evaluation tools** to assess the performance of your generative AI application, using the `.evaluation_rules`,
Expand All @@ -32,7 +32,7 @@ resources in your Microsoft Foundry Project. Use it to:
* **Upload documents and create Datasets** to reference them using the `.datasets` operations.
* **Create and enumerate Search Indexes** using methods the `.indexes` operations.

The client library uses version `2025-11-15-preview` of the AI Foundry [data plane REST APIs](https://aka.ms/azsdk/azure-ai-projects-v2/api-reference-2025-11-15-preview).
The client library uses version `v1` of the AI Foundry [data plane REST APIs](https://aka.ms/azsdk/azure-ai-projects-v2/api-reference-v1).

[Product documentation](https://aka.ms/azsdk/azure-ai-projects-v2/product-doc)
| [Samples][samples]
Expand Down Expand Up @@ -64,12 +64,6 @@ To report an issue with the client library, or request additional features, plea
pip install --pre azure-ai-projects
```

Note that the packages [openai](https://pypi.org/project/openai) and [azure-identity](https://pypi.org/project/azure-identity) also need to be installed if you intend to call `get_openai_client()`:

```bash
pip install openai azure-identity
```

## Key concepts

### Create and authenticate the client with Entra ID
Expand Down Expand Up @@ -288,20 +282,48 @@ if image_data and image_data[0]:

See the full sample in file `\agents\tools\sample_agent_image_generation.py` in the [Samples][samples] folder.

**Web Search**
**Web Search/Web Search Preview**

Perform general web searches to retrieve current information from the internet. [OpenAI Documentation](https://platform.openai.com/docs/guides/tools-web-search)
Discover up-to-date web content with the GA Web Search tool or try the Web Search Preview tool for the latest enhancements. Guidance on when to use each option is in the documentation: https://learn.microsoft.com/azure/ai-foundry/agents/how-to/tools/web-overview?view=foundry#determine-the-best-tool-for-your-use-cases.

<!-- SNIPPET:sample_agent_web_search.tool_declaration -->

```python
tool = WebSearchPreviewTool(user_location=ApproximateLocation(country="GB", city="London", region="London"))
tool = WebSearchTool(user_location=WebSearchApproximateLocation(country="GB", city="London", region="London"))
```

<!-- END SNIPPET -->

See the full sample in file `\agents\tools\sample_agent_web_search.py` in the [Samples][samples] folder.

<!-- SNIPPET:sample_agent_web_search_preview.tool_declaration -->

```python
tool = WebSearchPreviewTool(user_location=ApproximateLocation(country="GB", city="London", region="London"))
```

<!-- END SNIPPET -->

See the full sample in file `\agents\tools\sample_agent_web_search_preview.py` in the [Samples][samples] folder.

Use the GA Web Search tool with a Bing Custom Search connection to scope results to your custom search instance:

<!-- SNIPPET:sample_agent_web_search_with_custom_search.tool_declaration -->

```python
tool = WebSearchTool(
custom_search_configuration=WebSearchConfiguration(
project_connection_id=os.environ["BING_CUSTOM_SEARCH_PROJECT_CONNECTION_ID"],
instance_name=os.environ["BING_CUSTOM_SEARCH_INSTANCE_NAME"],
)
)
```

<!-- END SNIPPET -->

See the full sample in file `\agents\tools\sample_agent_web_search_with_custom_search.py` in the [Samples][samples] folder.


**Computer Use**

Enable agents to interact directly with computer systems for task automation and system operations:
Expand Down Expand Up @@ -346,7 +368,7 @@ Call external APIs defined by OpenAPI specifications without additional client-s

```python
with open(weather_asset_file_path, "r") as f:
openapi_weather = jsonref.loads(f.read())
openapi_weather = cast(dict[str, Any], jsonref.loads(f.read()))

tool = OpenApiTool(
openapi=OpenApiFunctionDefinition(
Expand Down Expand Up @@ -594,7 +616,7 @@ Call external APIs defined by OpenAPI specifications using project connection au

```python
with open(tripadvisor_asset_file_path, "r") as f:
openapi_tripadvisor = jsonref.loads(f.read())
openapi_tripadvisor = cast(dict[str, Any], jsonref.loads(f.read()))

tool = OpenApiTool(
openapi=OpenApiFunctionDefinition(
Expand Down Expand Up @@ -954,7 +976,7 @@ You can add an Application Insights Azure resource to your Microsoft Foundry pro
Make sure to install OpenTelemetry and the Azure SDK tracing plugin via

```bash
pip install "azure-ai-projects>=2.0.0b1" azure-identity opentelemetry-sdk azure-core-tracing-opentelemetry azure-monitor-opentelemetry
pip install "azure-ai-projects>=2.0.0b4" opentelemetry-sdk azure-core-tracing-opentelemetry azure-monitor-opentelemetry
```

You will also need an exporter to send telemetry to your observability backend. You can print traces to the console or use a local viewer such as [Aspire Dashboard](https://learn.microsoft.com/dotnet/aspire/fundamentals/dashboard/standalone?tabs=bash).
Expand Down
2 changes: 1 addition & 1 deletion sdk/ai/azure-ai-projects/_metadata.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"apiVersion": "2025-11-15-preview"
"apiVersion": "v1"
}
4 changes: 0 additions & 4 deletions sdk/ai/azure-ai-projects/_tsp-location.yaml

This file was deleted.

Loading
Loading