CrewAI Python tool that gates KeeperHub workflow execution through SBO3L's policy boundary. Composable with sbo3l-sdk.
Project description
sbo3l-crewai-keeperhub
CrewAI Python tool that gates KeeperHub workflow execution through SBO3L's policy boundary. Composable with
sbo3l-sdk.
Why this exists alongside langchain-keeperhub (Devendra's PyPI pkg)
langchain-keeperhub (Devendra) |
sbo3l-crewai-keeperhub (this) |
|
|---|---|---|
| Framework | LangChain | CrewAI |
| What it wraps | KH webhook execution | SBO3L policy gate → KH webhook execution |
| Decision step | (agent decides) | (SBO3L decides; signed receipt) |
| Budget enforcement | no | yes |
| Audit chain | no | yes (hash-chained Ed25519 log) |
| Multi-agent crew composition | n/a | one policy boundary across all crew agents |
| ENS / Turnkey TEE / MCP bridge | yes | no (not duplicated) |
Composable: use Devendra's tool for the raw KH binding + ours as the policy gate that decides whether the raw call should fire. Or use ours alone for the full gate-then-execute path. The CrewAI angle adds: one SBO3L policy boundary shared across N specialized crew agents, with a single hash-chained audit log spanning every agent's KH executions.
Install
pip install "sbo3l-crewai-keeperhub[crewai]" sbo3l-sdk
The [crewai] extra pulls in crewai so the typed Sbo3lKeeperHubCrewAITool (a crewai.tools.BaseTool subclass) is importable. Without it, only the framework-agnostic sbo3l_crewai_keeperhub_tool() factory is available.
5-line setup
from sbo3l_sdk import SBO3LClientSync
from sbo3l_crewai_keeperhub import Sbo3lKeeperHubCrewAITool
client = SBO3LClientSync("http://localhost:8730")
tool = Sbo3lKeeperHubCrewAITool(client=client)
# pass `tool` into your CrewAI Agent's tools=[...] list
Or framework-agnostic:
from sbo3l_crewai_keeperhub import sbo3l_crewai_keeperhub_tool
descriptor = sbo3l_crewai_keeperhub_tool(client=client)
# descriptor.name + descriptor.description + descriptor.func
Wire path
Same as the sibling LangChain / TS packages — SBO3L decides, KH adapter executes on allow, tool returns kh_execution_ref. See the LangChain README's "Wire path" section for the full sequence. All packages share the daemon as the policy boundary, so kh_execution_ref matches across SDK languages.
Multi-agent crew composition
CrewAI's strength is N specialized agents collaborating on a shared task. Wire one Sbo3lKeeperHubCrewAITool instance into every agent's tool list and you get:
- One policy boundary for the whole crew
- One KH workflow_id (advisory) tagged across every execution
- One hash-chained audit log spanning researcher → executor → auditor agents
See examples/crewai-keeperhub-demo/agent.py for a runnable 3-agent crew using this pattern.
On kh_workflow_id_advisory
The _advisory suffix is intentional: today the daemon's env-configured webhook URL is the source of truth for actual routing. The per-call workflow_id you pass is surfaced in the envelope for context tagging / audit logs, not as a routing override. See KeeperHub/cli#52 for the proposed contract that would make per-call routing safe.
API
sbo3l_crewai_keeperhub_tool(
*,
client: SBO3LClientLike,
workflow_id: str | None = None, # default: DEFAULT_KH_WORKFLOW_ID
name: str = "sbo3l_keeperhub_payment_request",
description: str = ...,
idempotency_key: Callable[[dict], str] | None = None,
) -> SBO3LKeeperHubToolDescriptor
# Or, with crewai installed:
Sbo3lKeeperHubCrewAITool(
client=..., # required, kw-only
workflow_id=None, # default: DEFAULT_KH_WORKFLOW_ID
name=None, description=None,
)
# Real crewai.tools.BaseTool subclass — drops into Agent(tools=[...]).
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sbo3l_crewai_keeperhub-1.2.0.tar.gz.
File metadata
- Download URL: sbo3l_crewai_keeperhub-1.2.0.tar.gz
- Upload date:
- Size: 8.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d62d82c0765dcc2ebd64befc886bbbb7126e63f84c748a59fde6f3274993fce
|
|
| MD5 |
854e5770c128ef062b7a9c33b4d0f0a6
|
|
| BLAKE2b-256 |
b7effd1c0113c020d3419504861abe2815434661bfd56469e8c6c92f79550de7
|
Provenance
The following attestation bundles were made for sbo3l_crewai_keeperhub-1.2.0.tar.gz:
Publisher:
integrations-publish.yml on B2JK-Industry/SBO3L-ethglobal-openagents-2026
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sbo3l_crewai_keeperhub-1.2.0.tar.gz -
Subject digest:
8d62d82c0765dcc2ebd64befc886bbbb7126e63f84c748a59fde6f3274993fce - Sigstore transparency entry: 1433413555
- Sigstore integration time:
-
Permalink:
B2JK-Industry/SBO3L-ethglobal-openagents-2026@75540196b330efa4e6c9ab638f2d8d9ba8ec1894 -
Branch / Tag:
refs/tags/crewai-keeperhub-py-v1.2.0 - Owner: https://github.com/B2JK-Industry
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
integrations-publish.yml@75540196b330efa4e6c9ab638f2d8d9ba8ec1894 -
Trigger Event:
push
-
Statement type:
File details
Details for the file sbo3l_crewai_keeperhub-1.2.0-py3-none-any.whl.
File metadata
- Download URL: sbo3l_crewai_keeperhub-1.2.0-py3-none-any.whl
- Upload date:
- Size: 9.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32ad42244f93c4d41ff2e568e2b296dccf8c305d5daf42e5ffb07769eb7375a8
|
|
| MD5 |
d4a119610440c3c3a4c56ad7ee20ee5a
|
|
| BLAKE2b-256 |
c588716f70f2a100f223210229d37ead0d06234e51fb46abc9d860db0119464b
|
Provenance
The following attestation bundles were made for sbo3l_crewai_keeperhub-1.2.0-py3-none-any.whl:
Publisher:
integrations-publish.yml on B2JK-Industry/SBO3L-ethglobal-openagents-2026
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sbo3l_crewai_keeperhub-1.2.0-py3-none-any.whl -
Subject digest:
32ad42244f93c4d41ff2e568e2b296dccf8c305d5daf42e5ffb07769eb7375a8 - Sigstore transparency entry: 1433413699
- Sigstore integration time:
-
Permalink:
B2JK-Industry/SBO3L-ethglobal-openagents-2026@75540196b330efa4e6c9ab638f2d8d9ba8ec1894 -
Branch / Tag:
refs/tags/crewai-keeperhub-py-v1.2.0 - Owner: https://github.com/B2JK-Industry
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
integrations-publish.yml@75540196b330efa4e6c9ab638f2d8d9ba8ec1894 -
Trigger Event:
push
-
Statement type: