Per-tool description replacements keyed by tool name.
Applied only where Deep Agents has a stable description hook: built-in
filesystem tools, the task tool, and user-supplied BaseTool or dict
tools. Plain callable tools are left unchanged.
Once a profile is constructed, its overrides can be read but not
rewritten — for example, profile.tool_description_overrides["ls"] = "new" raises TypeError. The registry stores its own defensive copy,
so mutating the dict you passed into the constructor after the fact
won't affect the registered profile either. To change a registered
profile's overrides, re-register (which merges on top) or construct a
new profile.
Keys are matched by tool name string. If a built-in tool is renamed or removed, stale keys silently become no-ops with no error. Keep overrides minimal and verify against the current tool names.
The task tool's default description contains an {available_agents}
format placeholder that SubAgentMiddleware replaces at build time
with the registered subagent name/description list. If your
override string does not include {available_agents}, the final
description is used as-is and the model will not see which
subagents exist — making the tool much less useful. Include the
placeholder in any "task" override, e.g.
"My custom instructions.\n\n{available_agents}".