Stacksona for CrewAI
Gate CrewAI tool execution. The crew can reason and plan, but risky tools should call Stacksona before they act.
Gate CrewAI tool execution before external, customer-facing, financial, production, or destructive actions. This page shows the recommended integration pattern using HTTP, a wrapper, or a small bridge service.
Start with this decision step
Every recipe should create a Stacksona decision before the platform executes the risky action.
1. Agent prepares a risky action.
2. Platform calls Stacksona with action details.
3. If decision is allow or approved, execute the action.
4. If decision is pending_review, wait, poll, or resume through callback.
5. If decision is reject or rejected, do not execute.Recommended pattern
| Step | Description |
|---|---|
| Wrap tools | Place Stacksona before email, API, CRM, payment, file, and production tools. |
| Return safe result | If rejected, return a structured denial to the agent rather than executing the action. |
| Log context | Use logEvent before and after the tool call so reviewers can see how the crew reached the action. |
Example
# Conceptual CrewAI pattern. Use an HTTP helper or Node sidecar for Stacksona.
def gated_tool_call(task_id, tool_name, payload, execute):
decision = stacksona_request_decision({
"taskId": task_id,
"workflowName": "CrewAI Workflow",
"taskLabel": f"{tool_name} request",
"toolName": tool_name,
"subject": f"Crew wants to run {tool_name}",
"riskLevel": payload.get("risk_level", "medium"),
"payload": payload,
})
if decision["status"] in ["allow", "approved"]:
return execute(payload)
return {"ok": False, "reason": decision["status"]}Decision handling
| Status | Workflow behavior |
|---|---|
allow | Continue immediately. |
reject | Stop the action before execution. |
pending_review | Pause, poll, or wait for callback. Continue only after approved. |
approved | Execute the action. Validate token first when signed approval is required. |
rejected | Do not execute. Route to fallback, manual task, or safe response. |
Integration FAQ
Can I use Stacksona with CrewAI today?
Yes. Use the documented native package when one exists. Otherwise, use the REST API, HTTP module, webhook action, or a small Node sidecar with @stacksona/sdk.
Where should Stacksona sit in a CrewAI workflow?
Place Stacksona immediately before the action that sends, updates, deletes, refunds, posts, deploys, or calls a production API.
What statuses should my workflow allow?
Execute the gated action only on allow or approved. Stop, retry, notify, or route to fallback for every other state.