Skip to content

Commit cce731c

Browse files
committed
docs: update wizard flow and known issues for Foundry Toolkit v1.2.1
- Update KNOWN_ISSUES.md: date to 2026-05-18, tag Foundry Toolkit v1.2.1, fix KI-001/KI-002 package versions (1.0.0 -> 1.0.1), add upstream tracking table for KI-002, add KI-005 (Teams/M365 BotId/ClientId mismatch, vscode-ai-toolkit#381), add KI-006 (no multi-agent wizard template in AITK v1.2.1), expand References with 3 GitHub issue links - Update lab01/README.md: scaffold steps reflect new 9-step wizard flow (language -> Response API -> Basic-Agent Framework -> model -> workspace -> name), replacing stale framework-selection step - Update lab01/docs/03-create-hosted-agent.md: reorder wizard steps to match v1.2.1 flow; add Step 3 (API type) and Step 4 (template) with comparison tables; renumber Steps 5-8 and sub-sections 8.1-8.4; update Mermaid diagram to 7-node flow - Update lab02/docs/02-scaffold-multi-agent.md: same wizard flow update; Step 4 template includes KI-006 callout (no multi-agent template); renumber Steps 5-8, sub-sections 8.1-8.4; update Mermaid diagram
1 parent 1bea880 commit cce731c

4 files changed

Lines changed: 171 additions & 82 deletions

File tree

KNOWN_ISSUES.md

Lines changed: 76 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
This document tracks known issues with the current repository state.
44

5-
> Last updated: 2026-04-15. Tested against Python 3.13 / Windows in `.venv_ga_test`.
5+
> Last updated: 2026-05-18. Tested against Python 3.13 / Windows in `.venv_ga_test`. Foundry Toolkit v1.2.1.
66
77
---
88

@@ -14,26 +14,26 @@ This document tracks known issues with the current repository state.
1414
| `agent-framework-core` | `1.0.0rc3` |
1515
| `azure-ai-agentserver-agentframework` | `1.0.0b16` |
1616
| `azure-ai-agentserver-core` | `1.0.0b16` |
17-
| `agent-dev-cli` | `--pre` *(fixed see KI-003)* |
17+
| `agent-dev-cli` | `--pre` *(fixed - see KI-003)* |
1818

1919
---
2020

21-
## KI-001 GA 1.0.0 Upgrade Blocked: `agent-framework-azure-ai` Removed
21+
## KI-001 - GA 1.0.0 Upgrade Blocked: `agent-framework-azure-ai` Removed
2222

2323
**Status:** Open | **Severity:** 🔴 High | **Type:** Breaking
2424

2525
### Description
2626

2727
The `agent-framework-azure-ai` package (pinned at `1.0.0rc3`) was **removed/deprecated**
28-
in the GA release (1.0.0, released 2026-04-02). It is replaced by:
28+
in the GA release (1.0.x; latest GA 1.0.1, released 2026-04-10). It is replaced by:
2929

30-
- `agent-framework-foundry==1.0.0` Foundry-hosted agent pattern
31-
- `agent-framework-openai==1.0.0` OpenAI-backed agent pattern
30+
- `agent-framework-foundry==1.0.1` - Foundry-hosted agent pattern
31+
- `agent-framework-openai==1.0.1` - OpenAI-backed agent pattern
3232

3333
All three `main.py` files import `AzureAIAgentClient` from `agent_framework.azure`, which
3434
raises `ImportError` under GA packages. The `agent_framework.azure` namespace still exists
3535
in GA but now contains only Azure Functions classes (`DurableAIAgent`,
36-
`AzureAISearchContextProvider`, `CosmosHistoryProvider`) not Foundry agents.
36+
`AzureAISearchContextProvider`, `CosmosHistoryProvider`) - not Foundry agents.
3737

3838
### Confirmed error (`.venv_ga_test`)
3939

@@ -52,38 +52,47 @@ ImportError: cannot import name 'AzureAIAgentClient' from 'agent_framework.azure
5252

5353
---
5454

55-
## KI-002 `azure-ai-agentserver` Incompatible with GA `agent-framework-core`
55+
## KI-002 - `azure-ai-agentserver` Incompatible with GA `agent-framework-core`
5656

57-
**Status:** Open | **Severity:** 🔴 High | **Type:** Breaking (blocked on upstream)
57+
**Status:** Open (fix pending SDK release) | **Severity:** 🔴 High | **Type:** Breaking (blocked on upstream)
5858

5959
### Description
6060

6161
`azure-ai-agentserver-agentframework==1.0.0b17` (latest) hard-pins
62-
`agent-framework-core<=1.0.0rc3`. Installing it alongside `agent-framework-core==1.0.0` (GA)
62+
`agent-framework-core<=1.0.0rc3`. Installing it alongside `agent-framework-core==1.0.1` (latest GA)
6363
forces pip to **downgrade** `agent-framework-core` back to `rc3`, which then breaks
64-
`agent-framework-foundry==1.0.0` and `agent-framework-openai==1.0.0`.
64+
`agent-framework-foundry==1.0.1` and `agent-framework-openai==1.0.1`.
6565

6666
The `from azure.ai.agentserver.agentframework import from_agent_framework` call used by all
6767
agents to bind the HTTP server is therefore also blocked.
6868

69+
### Upstream tracking
70+
71+
| Repo | Issue | Status |
72+
|------|-------|--------|
73+
| microsoft/agent-framework | [#5273](https://github.com/microsoft/agent-framework/issues/5273) | ✅ Closed 2026-04-21 - fix submitted to azure-sdk-for-python |
74+
| Azure/azure-sdk-for-python | [#46324](https://github.com/Azure/azure-sdk-for-python/issues/46324) | 🔴 Open - new `azure-ai-agentserver-agentframework` release pending |
75+
76+
Workshop stays pinned at rc3 until azure-sdk-for-python#46324 ships.
77+
6978
### Confirmed dependency conflict (`.venv_ga_test`)
7079

7180
```
7281
ERROR: pip's dependency resolver does not currently take into account all the packages
7382
that are installed. This behaviour is the source of the following dependency conflicts.
74-
agent-framework-foundry 1.0.0 requires agent-framework-core<2,>=1.0.0,
83+
agent-framework-foundry 1.0.1 requires agent-framework-core<2,>=1.0.1,
7584
but you have agent-framework-core 1.0.0rc3 which is incompatible.
76-
agent-framework-openai 1.0.0 requires agent-framework-core<2,>=1.0.0,
85+
agent-framework-openai 1.0.1 requires agent-framework-core<2,>=1.0.1,
7786
but you have agent-framework-core 1.0.0rc3 which is incompatible.
7887
```
7988

8089
### Files affected
8190

82-
All three `main.py` files both the top-level import and the in-function import in `main()`.
91+
All three `main.py` files - both the top-level import and the in-function import in `main()`.
8392

8493
---
8594

86-
## KI-003 `agent-dev-cli --pre` Flag No Longer Needed
95+
## KI-003 - `agent-dev-cli --pre` Flag No Longer Needed
8796

8897
**Status:** ✅ Fixed (non-breaking) | **Severity:** 🟢 Low
8998

@@ -97,7 +106,7 @@ pre-release CLI. Since GA 1.0.0 was released on 2026-04-02, the stable release o
97106

98107
---
99108

100-
## KI-004 Dockerfiles Use `python:3.14-slim` (Pre-release Base Image)
109+
## KI-004 - Dockerfiles Use `python:3.14-slim` (Pre-release Base Image)
101110

102111
**Status:** Open | **Severity:** 🟡 Low
103112

@@ -114,7 +123,58 @@ For production deployments this should be pinned to a stable release (e.g., `pyt
114123

115124
---
116125

126+
## KI-005 - Teams/M365 Publish Succeeds but Agent Unreachable (BotId/ClientId Mismatch)
127+
128+
**Status:** Open | **Severity:** 🔴 High | **Type:** Integration bug | **Ref:** [vscode-ai-toolkit#381](https://github.com/microsoft/vscode-ai-toolkit/issues/381)
129+
130+
### Description
131+
132+
Publishing a Hosted Agent to Teams/M365 Copilot via Foundry Toolkit completes successfully but the agent is **not reachable** on those channel surfaces.
133+
134+
Root cause: **Publish** (registers bot channel artifacts) and **Deploy** (starts live hosted runtime) are two separate operations. Without Deploy, no running backend exists behind the endpoint.
135+
136+
Error observed when Bot Service attempts to route traffic:
137+
138+
```
139+
Failed to publish agent BotId '<id>' does not match the application's default instance identity ClientId '<id>'.
140+
[Status: 400, Code: UserError]
141+
```
142+
143+
Azure Bot Service sends Bot Framework JWTs (`iss=https://api.botframework.com`). The current Foundry gateway auth path does not fully accept this token shape in this configuration.
144+
145+
**Deploy blocker:** Deploy Hosted Agent requires a local Docker build. No cloud-side build fallback is currently offered.
146+
147+
### Workaround
148+
149+
Test using the **web chat** channel in Azure Bot Service - this path works correctly. Teams/M365 channel integration is blocked until upstream auth and UX issues are resolved.
150+
151+
---
152+
153+
## KI-006 - No Multi-Agent Wizard Template in AITK v1.2.1
154+
155+
**Status:** Open | **Severity:** 🟡 Medium | **Type:** Feature gap
156+
157+
### Description
158+
159+
The AITK wizard (Foundry Toolkit v1.2.1) provides the following templates under the **Response API** path:
160+
161+
- Echo (Streaming)
162+
- Multi-Turn Chat
163+
- Note Taking
164+
- **Basic - Agent Framework** ← used in Lab 01
165+
166+
There is no **Multi-Agent Workflow** template. Lab 02 uses the pre-built **`PersonalCareerCopilot/`** folder rather than a wizard-generated scaffold.
167+
168+
### Workshop impact
169+
170+
Learners cannot use the wizard to scaffold a new multi-agent project using MAF GA. Lab 02 proceeds using the pre-existing example code directly.
171+
172+
---
173+
117174
## References
118175

119176
- [agent-framework-core on PyPI](https://pypi.org/project/agent-framework-core/)
120177
- [agent-framework-foundry on PyPI](https://pypi.org/project/agent-framework-foundry/)
178+
- [microsoft/agent-framework#5273](https://github.com/microsoft/agent-framework/issues/5273) - agentserver incompatibility with MAF GA (closed)
179+
- [Azure/azure-sdk-for-python#46324](https://github.com/Azure/azure-sdk-for-python/issues/46324) - SDK fix pending (open)
180+
- [microsoft/vscode-ai-toolkit#381](https://github.com/microsoft/vscode-ai-toolkit/issues/381) - Teams/M365 publish + auth (open)

workshop/lab01-single-agent/README.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,13 @@ Complete the tutorial modules before starting this lab:
5959

6060
1. Open **Command Palette** (`Ctrl+Shift+P`).
6161
2. Run: **Microsoft Foundry: Create a New Hosted Agent**.
62-
3. Select **Microsoft Agent Framework**
63-
4. Select **Single Agent** template.
64-
5. Select **Python**.
62+
3. Select **Python** as the language.
63+
4. Select **Response API** as the API type.
64+
5. Select **Basic - Agent Framework** template.
6565
6. Select the model you deployed (e.g., `gpt-4.1-mini`).
66-
7. Save to the `workshop/lab01-single-agent/agent/` folder.
67-
8. Name it: `executive-summary-agent`.
66+
7. Select your Foundry workspace.
67+
8. Save to the `workshop/lab01-single-agent/agent/` folder.
68+
9. Name it: `executive-summary-agent`.
6869

6970
A new VS Code window opens with the scaffold.
7071

workshop/lab01-single-agent/docs/03-create-hosted-agent.md

Lines changed: 50 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,17 @@ In this module, you use the Microsoft Foundry extension to **scaffold a new [hos
99
```mermaid
1010
flowchart LR
1111
A["Command Palette:
12-
Create Hosted Agent"] --> B["Choose Template:
13-
Single Agent"]
14-
B --> C["Choose Language:
12+
Create Hosted Agent"] --> B["Choose Language:
1513
Python"]
16-
C --> D["Select Model:
14+
B --> C["Select API Type:
15+
Response API ✓"]
16+
C --> D["Select Template:
17+
Basic - Agent Framework"]
18+
D --> E["Select Model:
1719
gpt-4.1-mini"]
18-
D --> E["Choose Folder +
20+
E --> F["Workspace +
1921
Agent Name"]
20-
E --> F["Scaffolded Project:
22+
F --> G["Scaffolded Project:
2123
agent.yaml, main.py,
2224
Dockerfile, .env"]
2325
@@ -26,7 +28,8 @@ flowchart LR
2628
style C fill:#7B68EE,color:#fff
2729
style D fill:#7B68EE,color:#fff
2830
style E fill:#7B68EE,color:#fff
29-
style F fill:#27AE60,color:#fff
31+
style F fill:#7B68EE,color:#fff
32+
style G fill:#27AE60,color:#fff
3033
```
3134

3235
---
@@ -41,30 +44,46 @@ flowchart LR
4144
4245
---
4346

44-
## Step 2: Choose your template
47+
## Step 2: Choose programming language
4548

46-
The wizard asks you to select a template. You'll see options like:
47-
48-
| Template | Description | When to use |
49-
|----------|-------------|-------------|
50-
| **Single Agent** | One agent with its own model, instructions, and optional tools | This workshop (Lab 01) |
51-
| **Multi-Agent Workflow** | Multiple agents that collaborate in sequence | Lab 02 |
49+
1. Select **Python** (recommended for this workshop).
50+
2. Click **Next**.
5251

53-
1. Select **Single Agent**.
54-
2. Click **Next** (or the selection proceeds automatically).
52+
> **C# is also supported** if you prefer .NET. The scaffold structure is similar (uses `Program.cs` instead of `main.py`).
5553
5654
---
5755

58-
## Step 3: Choose programming language
56+
## Step 3: Select API type
5957

60-
1. Select **Python** (recommended for this workshop).
58+
The wizard asks how your agent receives and responds to requests:
59+
60+
| API type | Endpoint | Use when |
61+
|----------|----------|----------|
62+
| **Response API***(this workshop)* | `POST /responses` | Conversational chatbots, streaming, multi-turn with platform-managed history |
63+
| Invocation API | `POST /invocations` | Webhooks, non-conversational processing, custom async workflows |
64+
65+
1. Select **Response API**.
6166
2. Click **Next**.
6267

63-
> **C# is also supported** if you prefer .NET. The scaffold structure is similar (uses `Program.cs` instead of `main.py`).
68+
---
69+
70+
## Step 4: Select template
71+
72+
Available templates for Response API + Python (Foundry Toolkit v1.2.1):
73+
74+
| Template | Description |
75+
|----------|-------------|
76+
| **Basic - Agent Framework***(select this)* | A basic agent using the Agent Framework SDK |
77+
| Echo (Streaming) | A basic echo agent with streaming support |
78+
| Multi-Turn Chat | An agent that supports multi-turn conversations |
79+
| Note Taking | An agent with note-taking capabilities |
80+
81+
1. Select **Basic - Agent Framework**.
82+
2. Click **Next**.
6483

6584
---
6685

67-
## Step 4: Select your model
86+
## Step 5: Select your model
6887

6988
1. The wizard shows the models deployed in your Foundry project (from Module 2).
7089
2. Select the model you deployed - e.g., **gpt-4.1-mini**.
@@ -74,17 +93,18 @@ The wizard asks you to select a template. You'll see options like:
7493
7594
---
7695

77-
## Step 5: Choose folder location and agent name
96+
## Step 6: Choose workspace and agent name
7897

79-
1. A file dialog opens - choose a **target folder** where the project will be created. For this workshop:
98+
1. Select your **Foundry workspace** from the list.
99+
2. A file dialog opens - choose a **target folder** where the project will be created. For this workshop:
80100
- If starting fresh: choose any folder (e.g., `C:\Projects\my-agent`)
81101
- If working within the workshop repo: create a new subfolder under `workshop/lab01-single-agent/agent/`
82-
2. Enter a **name** for the hosted agent (e.g., `executive-summary-agent` or `my-first-agent`).
83-
3. Click **Create** (or press Enter).
102+
3. Enter a **name** for the hosted agent (e.g., `executive-summary-agent` or `my-first-agent`).
103+
4. Click **Create** (or press Enter).
84104

85105
---
86106

87-
## Step 6: Wait for scaffolding to complete
107+
## Step 7: Wait for scaffolding to complete
88108

89109
1. VS Code opens a **new window** with the scaffolded project.
90110
2. Wait a few seconds for the project to fully load.
@@ -107,16 +127,15 @@ The wizard asks you to select a template. You'll see options like:
107127
108128
---
109129

110-
## Step 7: Understand each generated file
130+
## Step 8: Understand each generated file
111131

112132
Take a moment to inspect each file the wizard created. Understanding them is important for Module 4 (customization).
113133

114-
### 7.1 `agent.yaml` - Agent definition
134+
### 8.1 `agent.yaml` - Agent definition
115135

116136
Open `agent.yaml`. It looks like this:
117137

118138
```yaml
119-
# yaml-language-server: $schema=https://raw.githubusercontent.com/microsoft/AgentSchema/refs/heads/main/schemas/v1.0/ContainerAgent.yaml
120139

121140
kind: hosted
122141
name: my-first-agent
@@ -153,7 +172,7 @@ resources:
153172
| `dockerfile_path` | Points to the Dockerfile used to build the container image |
154173
| `resources` | CPU and memory allocation for the container (0.25 CPU, 0.5Gi memory) |
155174

156-
### 7.2 `main.py` - Agent entry point
175+
### 8.2 `main.py` - Agent entry point
157176

158177
Open `main.py`. This is the main Python file where your agent logic lives. The scaffold includes:
159178

@@ -174,7 +193,7 @@ from azure.identity.aio import DefaultAzureCredential
174193
The main flow is:
175194
1. Create a credential → create a client → call `.as_agent()` to get an agent (async context manager) → wrap it as a server → run
176195

177-
### 7.3 `Dockerfile` - Container image
196+
### 8.3 `Dockerfile` - Container image
178197

179198
```dockerfile
180199
FROM python:3.14-slim
@@ -202,7 +221,7 @@ CMD ["python", "main.py"]
202221
- **Exposes port 8088** - this is the required port for hosted agents. Do not change it.
203222
- Starts the agent with `python main.py`.
204223

205-
### 7.4 `requirements.txt` - Dependencies
224+
### 8.4 `requirements.txt` - Dependencies
206225

207226
```
208227
agent-framework-azure-ai==1.0.0rc3

0 commit comments

Comments
 (0)