- Add copy-on-write (COW) to BaseCallbackManager.copy() — defer
shallow copies of handlers/tags/metadata until first mutation
- Cache inspect.signature() results for BaseChatModel._generate and
_agenerate to avoid repeated introspection per invoke
- Cache signature(self._run) and _get_runnable_config_param in
ChildTool.__init__ to avoid per-invocation introspection
- Convert CONFIG_KEYS and COPIABLE_KEYS from lists to frozensets
for O(1) membership checks
- Fast path in _format_for_tracing when no messages have list content
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>