Przykład hooka: format po edycji
To zdarzenie może wystąpić przy każdym wywołaniu narzędzia w pętli agenta, z wyjątkiem wywołań EndConversation. W scenariuszu formatowania po edycji oznacza to, że hook reaguje dopiero po pomyślnym zakończeniu wywołania narzędzia.
Gdy zdarzenie pasuje do matchera, handler otrzymuje kontekst zdarzenia w JSON-ie. W hooku komendowym dane wejściowe trafiają na standardowe wejście. Handler może przejrzeć te dane, podjąć działanie i opcjonalnie zwrócić decyzję.
Po udanej edycji PostToolUse daje hookowi okazję do działania po wywołaniu narzędzia; sam opisany mechanizm nie narzuca konkretnej operacji formatowania. Dla przekształcania danych wejściowych narzędzia i jego wyników rozróżnij momenty: PreToolUse dotyczy danych wychodzących, a PostToolUse — wyników przychodzących. Przy PostToolUse można zastąpić wynik narzędzia polem updatedToolOutput.
PostToolUse obsługuje też decyzję na najwyższym poziomie JSON-a, a wartością blokującą jest "block". Możesz również przekazać additionalContext, które pojawi się przy wyniku narzędzia. To dobry sposób na dopowiedzenie informacji po operacji, ale nie należy mylić zmiany wyniku narzędzia z formatowaniem pliku.
PostToolUse ten przykład przekazuje Claude'owi dodatkowy kontekst dotyczący pliku.{
"hookSpecificOutput": {
"hookEventName": "PostToolUse",
"additionalContext": "This file is generated. Edit src/schema.ts and run `bun generate` instead."
}
}block, którą obsługuje także PostToolUse.{
"decision": "block",
"reason": "Test suite must pass before proceeding"
}Zastosowanie w praktyce
Użyj PostToolUse, gdy hook ma zareagować po pomyślnym wywołaniu narzędzia, na przykład po operacji edycji. Jeśli po operacji chcesz przekazać informację Claude'owi przy wyniku narzędzia, zwróć additionalContext. Jeśli potrzebujesz przekształcić wynik narzędzia, rozważ updatedToolOutput; pole to zastępuje wynik, a nie stanowi przykładu komendy formatującej plik.
additionalContext; pojawi się ona obok wyniku narzędzia.