OpenBMB/ChatDev · error · ValueError
Unsupported skill tool '{tool_name}'
Error message
Unsupported skill tool '{tool_name}' What it means
A tool call was routed to the skill-tool dispatcher but tool_name is neither 'activate_skill' nor 'read_skill_file'. The dispatcher raises rather than guessing a handler.
Source
Thrown at runtime/node/executor/agent_executor.py:903
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(
call_id=call_id,
function_name=tool_call.function_name,
output_text=self._stringify_tool_result(result),View on GitHub (pinned to 4fb2db0ea9)
Solutions
- Use only activate_skill and read_skill_file as skill tool names
- If you added a custom skill tool, dispatch it in your own handler instead of the skill dispatcher
- Align executor and skill-manager versions so advertised tools match supported ones
Defensive patterns
Strategy: validation
Validate before calling
SKILL_TOOLS = {'activate_skill', 'read_skill_file'}
assert tool_name in SKILL_TOOLS Prevention
- Pin executor and skill-manager versions together
- Never route custom tools into the skill dispatcher
When it happens
Trigger: Internal routing sends a tool name starting with/associated to skill tools but not matching the two known names, e.g. a new skill tool added by a caller without extending the dispatcher.
Common situations: Extending the skill tool set without updating _execute_skill_tool; version mismatch where a newer manager advertises a tool the executor build doesn't handle; misconfigured tool routing prefix.
Related errors
- missing frontmatter
- missing closing delimiter
- frontmatter must be a mapping
- skill name is required
- expected list of skill entries
AI-assisted analysis of OpenBMB/ChatDev@4fb2db0ea9 (2026-08-27).
Data as JSON: /api/errors/43092b8b2bc4c603.
Report an issue: GitHub.