Azure / Azure/azure-sdk-for-python

MCP-enabled agents fail as second step in sequential YAML workflows with "Object/Array type mismatch" error

Ouverte
#44,596 2 commentaires 1 réaction 0 personnes assignées Voir sur GitHub
AI Projects customer-reported needs-team-attention question Service Attention
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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.