CrewAI (Python)

Enforce at tool boundaries using CrewAI tool hooks (before/after).

Install

pip install njiraai njiraai-crewai

Tool hooks (v0)

CrewAI tool hooks are the recommended v0 enforcement boundary.

from njiraai import NjiraAI
from njiraai_crewai import NjiraToolHooks

njira = NjiraAI(api_key="...", project_id="...", mode="active")
hooks = NjiraToolHooks(njira)

# Hook usage depends on CrewAI version; you provide:
# - hooks.before_tool_call(tool_name, tool_input, context)
# - hooks.after_tool_call(tool_name, tool_output, context)

Behavior

  • before_tool_call: calls enforce_pre and can block/modify tool input in active mode
  • after_tool_call: calls enforce_post and can block/modify tool output in active mode
  • Creates a tool span around the execution and emits decision metadata events