Azure / Azure/azure-sdk-for-python
MCP-enabled agents fail as second step in sequential YAML workflows with "Object/Array type mismatch" error
- Langage dominant
- Python
- Étoiles
- 5.6k
- Forks
- 3.4k
- Merge moyen
- 2 j 2 h
- PR mergées (30 j)
- 213
Description
## 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
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par la reproduction minimale à l’aide de AIProjectClient, WorkflowAgentDefinition et create_version. Comparez le workflow séquentiel lorsque l’agent MCP est en première position puis en deuxième position, et examinez comment InvokeAzureAgent gère la conversation et l’entrée partagées entre ces étapes. C’est terminé lorsque les deux agents s’exécutent correctement à la suite sans provoquer de Object/Array type mismatch.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- azure, python
- Domaine
- ai, backend-api-design
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 35/100