import logging from typing import Any from strands.hooks import BeforeToolCallEvent, HookProvicer, HookRegistry logger = logging.getLogger("agent_demo.hooks") class ToolLoggingHook(HookProvicer): """A hook that logs tool calls and their results.""" def register(self, registry: HookRegistry, **kwargs: Any) -> None: registry.add_callback(BeforeToolCallEvent, self._on_before_tool) def _on_before_tool(self, event: BeforeToolCallEvent) -> None: tool_use = getattr(event, "tool_use", None) or {} name = tool_use.get("name") if isinstance(tool_use, dict) else None logger.info("[hook] about to call tool: %s", name or "") def default_hooks() -> list: """Hooks registered on every agent by default. Add consent/audit hooks here.""" return [ToolLoggingHook()]