OpenBMB/ChatDev · error · ValueError

relative_path is required

Error message

relative_path is required

What it means

read_skill_file was called with an empty or missing relative_path. Both skill_name and relative_path are required and stripped/validated before the manager reads the file.

Source

Thrown at runtime/node/executor/agent_executor.py:900

        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:
        call_id = tool_call.id or tool_call.function_name or "tool_call"
        blocks = self._coerce_tool_result_to_blocks(result)
        if blocks:
            return FunctionCallOutputEvent(
                call_id=call_id,
                function_name=tool_call.function_name,
                output_blocks=blocks,
            )
        return FunctionCallOutputEvent(

View on GitHub (pinned to 4fb2db0ea9)

Solutions

  1. Pass the file path relative to the skill root, e.g. 'SKILL.md' or 'references/api.md'
  2. Make relative_path required in the advertised tool schema
  3. Feed the error back to the model for an automatic retry

Example fix

# before
{"skill_name": "my-skill"}

# after
{"skill_name": "my-skill", "relative_path": "SKILL.md"}
Defensive patterns

Strategy: validation

Validate before calling

if not str(args.get('relative_path', '')).strip():
    return {'error': 'relative_path is required'}

Prevention

When it happens

Trigger: Tool call to read_skill_file where arguments omit 'relative_path' or pass whitespace.

Common situations: Model attempting to read a whole skill without specifying a file; prompt examples that show relative_path as optional; schema not marking the field required.

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


AI-assisted analysis of OpenBMB/ChatDev@4fb2db0ea9 (2026-08-27). Data as JSON: /api/errors/7872af0105f05f96. Report an issue: GitHub.