OpenBMB/ChatDev · error · ValueError
skill_name is required
Error message
skill_name is required
What it means
The model called activate_skill with an empty or missing skill_name argument. The executor strips and validates the argument before forwarding to AgentSkillManager.activate_skill.
Source
Thrown at runtime/node/executor/agent_executor.py:891
"Follow its instructions for the current task until they are completed or no longer relevant.\n\n"
f"{instructions}{tool_constraint}"
),
metadata={"source": node_id, "skill_name": skill_name, "skill_activation": True},
)
def _execute_skill_tool(
self,
tool_name: str,
arguments: Dict[str, Any],
skill_manager: AgentSkillManager | None,
) -> Dict[str, Any]:
if skill_manager is None:
raise ValueError("Agent Skills are not enabled for this node")
if tool_name == "activate_skill":
skill_name = str(arguments.get("skill_name", "")).strip()
if not skill_name:
raise ValueError("skill_name is required")
return skill_manager.activate_skill(skill_name)
if tool_name == "read_skill_file":
skill_name = str(arguments.get("skill_name", "")).strip()
relative_path = str(arguments.get("relative_path", "")).strip()
if not skill_name:
raise ValueError("skill_name is required")
if not relative_path:
raise ValueError("relative_path is required")
return skill_manager.read_skill_file(skill_name, relative_path)
raise ValueError(f"Unsupported skill tool '{tool_name}'")
def _build_function_call_output_event(
self,
tool_call: ToolCallPayload,
result: Any,
) -> FunctionCallOutputEvent:View on GitHub (pinned to 4fb2db0ea9)
Solutions
- Ensure the tool-call arguments include a non-empty skill_name
- Improve the tool description/example so the model supplies the parameter
- Wrap execution and feed the error message back to the model to retry with corrected arguments
Example fix
# before
arguments = {}
skill_manager.activate_skill(...)
# after
arguments = {"skill_name": "my-skill"} Defensive patterns
Strategy: validation
Validate before calling
name = str(args.get('skill_name', '')).strip()
if not name:
return {'error': 'skill_name is required'} Prevention
- Mark skill_name required in the tool JSON schema
- Return argument errors as tool output so the model self-corrects
When it happens
Trigger: Tool call to activate_skill whose arguments dict lacks 'skill_name' or contains only whitespace.
Common situations: Weak model emitting malformed tool arguments; prompt template that fails to fill a skill name placeholder; hand-crafted test payloads omitting the field.
Understand the failure class
Background: Missing required parameter errors: what 'X is required' and 'the required X param is missing' mean, and how to fix them — this error's family across 27 libraries.
Related errors
- relative_path is required
- expected list of skill entries
- expected skill entry mapping or string
- No node types registered; cannot validate workflow
- Unsupported node type '{ntype}' for node '{nid}'. Only {allo
AI-assisted analysis of OpenBMB/ChatDev@4fb2db0ea9 (2026-08-27).
Data as JSON: /api/errors/671fe3d50b914d1f.
Report an issue: GitHub.