23 lines
847 B
Python
23 lines
847 B
Python
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 "<unknown>")
|
|
|
|
|
|
def default_hooks() -> list:
|
|
"""Hooks registered on every agent by default. Add consent/audit hooks here."""
|
|
return [ToolLoggingHook()] |