Stacksona for Google ADK
Add Stacksona checks before tools in an ADK agent take production, external, customer-facing, or destructive actions.
Add Stacksona checks before ADK tools take production, external, customer-facing, 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 |
|---|---|
| Before tool | Wrap the tool with a decision request. |
| Policy | Send risk details and payload to Stacksona before execution. |
| Audit | Log proposed and executed events back to Stacksona. |
Example
# Conceptual ADK tool wrapper.
def stacksona_gated_tool(tool_name, execute):
def wrapper(args):
decision = stacksona_request_decision({
"taskId": args.get("task_id"),
"workflowName": "Google ADK Agent",
"taskLabel": f"{tool_name} request",
"toolName": tool_name,
"subject": f"Agent wants to run {tool_name}",
"riskLevel": args.get("risk_level", "medium"),
"payload": args,
})
if decision["status"] in ["allow", "approved"]:
return execute(args)
return {"ok": False, "status": decision["status"]}
return wrapperDecision 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 Google ADK 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 Google ADK 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.