{"record":{"id":"7872af0105f05f96","repo":"OpenBMB/ChatDev","slug":"relative-path-is-required-7872af","errorCode":null,"errorMessage":"relative_path is required","messagePattern":"relative_path is required","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"runtime/node/executor/agent_executor.py","lineNumber":900,"sourceCode":"        arguments: Dict[str, Any],\n        skill_manager: AgentSkillManager | None,\n    ) -> Dict[str, Any]:\n        if skill_manager is None:\n            raise ValueError(\"Agent Skills are not enabled for this node\")\n\n        if tool_name == \"activate_skill\":\n            skill_name = str(arguments.get(\"skill_name\", \"\")).strip()\n            if not skill_name:\n                raise ValueError(\"skill_name is required\")\n            return skill_manager.activate_skill(skill_name)\n\n        if tool_name == \"read_skill_file\":\n            skill_name = str(arguments.get(\"skill_name\", \"\")).strip()\n            relative_path = str(arguments.get(\"relative_path\", \"\")).strip()\n            if not skill_name:\n                raise ValueError(\"skill_name is required\")\n            if not relative_path:\n                raise ValueError(\"relative_path is required\")\n            return skill_manager.read_skill_file(skill_name, relative_path)\n\n        raise ValueError(f\"Unsupported skill tool '{tool_name}'\")\n\n    def _build_function_call_output_event(\n        self,\n        tool_call: ToolCallPayload,\n        result: Any,\n    ) -> FunctionCallOutputEvent:\n        call_id = tool_call.id or tool_call.function_name or \"tool_call\"\n        blocks = self._coerce_tool_result_to_blocks(result)\n        if blocks:\n            return FunctionCallOutputEvent(\n                call_id=call_id,\n                function_name=tool_call.function_name,\n                output_blocks=blocks,\n            )\n        return FunctionCallOutputEvent(","sourceCodeStart":882,"sourceCodeEnd":918,"githubUrl":"https://github.com/OpenBMB/ChatDev/blob/4fb2db0ea90375ce1059f44fe03ffbd191a7a169/runtime/node/executor/agent_executor.py#L882-L918","documentation":"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.","triggerScenarios":"Tool call to read_skill_file where arguments omit 'relative_path' or pass whitespace.","commonSituations":"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.","solutions":["Pass the file path relative to the skill root, e.g. 'SKILL.md' or 'references/api.md'","Make relative_path required in the advertised tool schema","Feed the error back to the model for an automatic retry"],"exampleFix":"# before\n{\"skill_name\": \"my-skill\"}\n\n# after\n{\"skill_name\": \"my-skill\", \"relative_path\": \"SKILL.md\"}","handlingStrategy":"validation","validationCode":"if not str(args.get('relative_path', '')).strip():\n    return {'error': 'relative_path is required'}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Include example values in the tool description"],"tags":["skills","tool-arguments","validation"],"backgroundTag":"missing-required-parameter","analyzedSha":"4fb2db0ea90375ce1059f44fe03ffbd191a7a169","analyzedAt":"2026-08-27T14:35:29.622Z","schemaVersion":2},"datasetVersion":"2026-08-27T19:17:21.184Z"}