Azure / Azure/azure-sdk-for-python
MCP-enabled agents fail as second step in sequential YAML workflows with "Object/Array type mismatch" error
- Lingua principale
- Python
- Stelle
- 5.6k
- Fork
- 3.4k
- Merge medio
- 2g 2h
- PR unite (30g)
- 202
Descrizione
## Environment
- **azure-ai-projects SDK version**: >=2.0.0b1
- **Python version**: 3.x
- **Date observed**: January 2026
## Description
When invoking an agent with MCP tools as the second step in a declarative YAML workflow, the workflow fails with an error indicating a type mismatch between Object and Array.
## Error Message
```
Unhandled workflow failure - #validateuser_agent (InvokeAzureAgent) ->
The requested operation requires an element of type 'Object', but the target element has type 'Array'.
```
## Steps to Reproduce
1. Create a prompt agent without MCP tools (Agent A)
2. Create a prompt agent with MCP tools (Agent B)
3. Create a sequential YAML workflow that invokes Agent A, then Agent B
4. Run the workflow
## Expected Behavior
Both agents execute successfully in sequence.
## Actual Behavior
- Agent A completes successfully
- Agent B fails immediately with the type mismatch error
- The error occurs regardless of input format (text, messages, static text)
## Workaround Verified
Using the same agent (without MCP) twice in sequence works correctly, confirming the workflow syntax is valid.
## Minimal Reproduction Code
```python
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import WorkflowAgentDefinition
from azure.identity import DefaultAzureCredential
workflow_yaml = """
kind: workflow
trigger:
kind: OnConversationStart
id: sequential_workflow
actions:
- kind: CreateConversation
id: create_conversation
conversationId: Local.ConversationId
- kind: InvokeAzureAgent
id: agent_no_mcp
conversationId: "=Local.ConversationId"
agent:
name: AgentWithoutMCP
input:
text: "=System.LastMessageText"
- kind: InvokeAzureAgent
id: agent_with_mcp
conversationId: "=Local.ConversationId"
agent:
name: AgentWithMCPTools # <-- This fails
input:
text: "Process the above."
- kind: EndConversation
id: end
"""
# Create and run workflow
with DefaultAzureCredential() as credential:
with AIProjectClient(endpoint=endpoint, credential=credential) as client:
workflow = client.agents.create_version(
agent_name="test-workflow",
definition=WorkflowAgentDefinition(workflow=workflow_yaml),
)
# Run workflow - second agent fails
```
## Additional Context
- The MCP agent works correctly when invoked standalone
- The MCP agent works correctly when invoked as the first (and only) agent in a workflow
- The issue only occurs when MCP agent is invoked after another agent in a sequential workflow
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia con la riproduzione minima utilizzando AIProjectClient, WorkflowAgentDefinition e create_version. Confronta il workflow sequenziale quando l’agente MCP è al primo posto rispetto a quando è al secondo, e verifica come InvokeAzureAgent gestisce la conversazione e l’input condivisi tra questi passaggi. Il lavoro è completato quando entrambi gli agenti vengono eseguiti correttamente in sequenza senza un Object/Array type mismatch.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- azure, python
- Ambito
- ai, backend-api-design
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 35/100