microsoft/autogen · error · ValueError

Tool override name '{override.name}' is used by multiple too

Error message

Tool override name '{override.name}' is used by multiple tools: '{existing_original}' and '{original_name}'. Override names must be unique.

What it means

Error "Tool override name '{override.name}' is used by multiple tools: '{existing_original}' and '{original_name}'. Override names must be unique." thrown in microsoft/autogen.

Source

Thrown at python/packages/autogen-core/src/autogen_core/tools/_static_workbench.py:62

        self._tools = tools
        self._tool_overrides = tool_overrides or {}

        # Build reverse mapping from override names to original names for call_tool
        self._override_name_to_original: Dict[str, str] = {}
        existing_tool_names = {tool.name for tool in self._tools}

        for original_name, override in self._tool_overrides.items():
            if override.name and override.name != original_name:
                # Check for conflicts with existing tool names
                if override.name in existing_tool_names and override.name != original_name:
                    raise ValueError(
                        f"Tool override name '{override.name}' conflicts with existing tool name. "
                        f"Override names must not conflict with any tool names."
                    )
                # Check for conflicts with other override names
                if override.name in self._override_name_to_original:
                    existing_original = self._override_name_to_original[override.name]
                    raise ValueError(
                        f"Tool override name '{override.name}' is used by multiple tools: "
                        f"'{existing_original}' and '{original_name}'. Override names must be unique."
                    )
                self._override_name_to_original[override.name] = original_name

    async def list_tools(self) -> List[ToolSchema]:
        result_schemas: List[ToolSchema] = []
        for tool in self._tools:
            original_schema = tool.schema

            # Apply overrides if they exist for this tool
            if tool.name in self._tool_overrides:
                override = self._tool_overrides[tool.name]
                # Create a new ToolSchema with overrides applied
                schema: ToolSchema = {
                    "name": override.name if override.name is not None else original_schema["name"],
                    "description": override.description
                    if override.description is not None

View on GitHub (pinned to 027ecf0a37)

Solutions

  1. Give each override a distinct name

Example fix

Make override names unique across the workbench

When it happens

Trigger: Thrown at python/packages/autogen-core/src/autogen_core/tools/_static_workbench.py:62 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of microsoft/autogen@027ecf0a37 (2026-08-15). Data as JSON: /api/errors/753872737849a02a. Report an issue: GitHub.