Fix null repository agent attributes (#6560)

Repository responses can include null optional fields such as
`reasoning`. Treat them as omitted so Agent defaults apply instead of
failing validation.
This commit is contained in:
Vinicius Brasil
2026-07-16 10:13:45 -03:00
committed by GitHub
parent da9902da4f
commit 985cf52028
2 changed files with 21 additions and 0 deletions

View File

@@ -1150,6 +1150,8 @@ def load_agent_from_repository(from_repository: str) -> dict[str, Any]:
agent = response.json()
for key, value in agent.items():
if value is None:
continue
if key == "tools":
attributes[key] = []
for tool in value:

View File

@@ -2335,6 +2335,25 @@ def test_agent_from_repository_override_attributes(mock_get_agent, mock_get_auth
assert isinstance(agent.tools[0], SerperDevTool)
@patch("crewai.plus_api.PlusAPI.get_agent")
def test_agent_from_repository_ignores_null_attributes(
mock_get_agent, mock_get_auth_token
):
mock_get_response = MagicMock()
mock_get_response.status_code = 200
mock_get_response.json.return_value = {
"role": "test role",
"goal": "test goal",
"backstory": "test backstory",
"reasoning": None,
}
mock_get_agent.return_value = mock_get_response
agent = Agent(from_repository="test_agent")
assert agent.reasoning is False
@patch("crewai.plus_api.PlusAPI.get_agent")
def test_agent_from_repository_ignores_empty_skills(
mock_get_agent, mock_get_auth_token