-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Closed
Labels
pythonv1.0Features being tracked for the version 1.0 GAFeatures being tracked for the version 1.0 GAworkflowsRelated to Workflows in agent-frameworkRelated to Workflows in agent-framework
Description
HI,
Current Setup : i have created multiple agents in AIFoundry with gpt4.1 model, each agent will have list of MCP apis attached to them under actions section
Error Info :
Error 1 :
Coordinator: {"selected_participant":"Agent1","instruction":"<instruction>","finish":false,"final_message":null}executor broke JSON is invalid: Expecting value: line 1 column 1 (char 0)
Error 2 : Coordinator/ manager agent JSON is getting duplicated as shown below
Coordinator: {"selected_participant":"<agentname>","instruction":"<instruction>","finish":false,"final_message":null}{"selected_participant":"<agentname>","instruction":"<instruction>","finish":false,"final_message":null}executor broke 1 validation error for ManagerSelectionResponse
Invalid JSON: trailing characters at line 1 column 208 [type=json_invalid, input_value='{"selected_participant":...e,"final_message":null}', input_type=str]
For further information visit https://errors.pydantic.dev/2.12/v/json_invalid
After which i came across below 2 link and i have tried what ever is suggest in those but the issue still exists.
- Python: agent_framework.exceptions.ServiceResponseException: <class 'agent_framework_azure_ai._client.AzureAIClient'> service failed to complete the prompt: Error code: 400 - {'error': {'message': "Invalid schema for response_format 'ManagerSelectionResponse'.... #2681
- Python: fix: GroupChat ManagerSelectionResponse JSON Schema for OpenAI Structured Outpu… #2750
I have tried to provide strict agent instructions to not generate improper json and also tried providing additional_chat_options as shown below :
response_schema = {
"title": "ManagerSelectionResponse",
"type": "object",
"description": "Response from manager agent with speaker selection decision.",
"properties": {
"selected_participant": {
"anyOf": [{"type": "string"}, {"type": "null"}],
"default": None,
"title": "Selected Participant",
"description": "Name of participant to speak next (None = finish conversation)",
},
"instruction": {
"anyOf": [{"type": "string"}, {"type": "null"}],
"default": None,
"title": "Instruction",
"description": "Optional instruction to provide to the selected participant",
},
"finish": {
"type": "boolean",
"default": False,
"title": "Finish",
"description": "Whether the conversation should be completed",
},
"final_message": {
"anyOf": [{"type": "string"}, {"type": "null"}],
"default": None,
"title": "Final Message",
"description": "Optional text content for final message",
},
},
# OpenAI strict mode requires all properties to be in required array
"required": ["selected_participant", "instruction", "finish", "final_message"],
"additionalProperties": False,
}
managerAgent = ChatAgent(
chat_client= AzureAIAgentClient(
credential=credential,
project_endpoint = os.getenv("AZURE_PROJECT_ENDPOINT"),
model_deployment_name = os.getenv("AZURE_MODEL_DEPLOYMENT"),
agent_id="<agent_id>"
),
name="Coordinator" ,
additional_chat_options={
"response_format": {
"type": "json_schema",
"json_schema": {
"name": response_schema["title"],
"strict": True,
"schema": response_schema,
},
},
}
)
workflow = (
GroupChatBuilder()
.set_manager(managerAgent, display_name="Orchestrator")
.participants([<agent list>])
.build()
)
I also noticed in above issue links they have utilized AzureOpenAIChatClient but in my project i have used AzureAIAgentClient.
Note :
- All the agents which are configured inside the workflow return basic string as output not JSON.
- i am doing
async for event in workflow.run_stream(user_message):to obtain agent streaming output.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
pythonv1.0Features being tracked for the version 1.0 GAFeatures being tracked for the version 1.0 GAworkflowsRelated to Workflows in agent-frameworkRelated to Workflows in agent-framework
Type
Projects
Status
Done