Put policy before
an agent action.
AgentGuard is building a private, last-mile policy boundary for consequential agent actions. The current packages provide policy evaluation and compatibility telemetry; executor-owned firewall proof remains pending.
A narrow control boundary, stated plainly.
AgentGuard separates what exists today from the stronger proof the project is still working to earn.
Local policy contracts
The TypeScript line contains strict v1 contracts for requests, decisions, permits, outcomes, and evidence. They are independently versioned from the Python compatibility package.
Compatibility is not a firewall
The shipped OpenClaw hook and MCP HTTP/in-process adapters can observe policy decisions and return a block result. They can also be disabled or bypassed, so they are telemetry, not capability separation.
Proof before stronger claims
A same-UID configured intercept exists for one GitHub file write. Capability isolation and firewall results are not claimed. See the named-action proof.
Four facts you can verify in the source.
Choose a package
The TypeScript and Python packages have independent release lines and different assurance scope.
pip install agentguard-tech
Evaluate a proposal
The TypeScript package can load a YAML policy and evaluate it in-process — no network call, no API key.
import { PolicyEngine } from "@the-bot-club/agentguard";
const engine = new PolicyEngine();
engine.loadFromYaml(yaml);
engine.evaluate(request, ctx, policy.id);Keep deferred states blocked
V1 can allow or block. A require-approval decision blocks dispatch; human approval is deferred.
id: agent-baseline
name: Agent baseline policy
version: 1.0.0
default: block
rules:
- { id: allow-reads, action: allow, when: [{ tool: { in: [read_file, search] } }] }
- { id: approve-email, action: require_approval, when: [{ tool: { in: [send_email] } }] }
- { id: block-shell, action: block, when: [{ tool: { in: [shell_exec] } }] }Read the limitations
The docs page documents which adapters are compatibility-only and which broker proof is still missing.
agentguard.tech/docs/#limitations
Observe hook events. Keep the limit visible.
The current TypeScript package includes a structural OpenClaw before_tool_call HTTP hook. It can return a block result, but it does not own the raw tool capability and is not firewall proof.
- Current artifact: TypeScript compatibility hook.
- Evaluation failures return a block; there is no fail-open path.
strict: falseis refused at startup, not honoured.- Executor-owned MCP-stdio broker proof is pending.
{
"plugins": {
"entries": {
"agentguard": {
"enabled": true,
"config": {
"apiKey": "${AGENTGUARD_API_KEY}",
"agentId": "my-agent",
"strict": true
}
}
},
"installs": {
"agentguard": {
"source": "npm",
"spec": "@the-bot-club/agentguard@0.15.0"
}
}
}
}One event spec. One policy DSL. One audit log.
AgentGuard and Tribunal are separate projects with separate release lines. AgentGuard currently focuses on policy contracts and compatibility paths for runtime actions; the shared branding does not imply shared proof or complete agent coverage.
Packages are public. Paid terms are not.
TypeScript
- Published package manifest
- Canonical local v1 contracts
- OpenClaw compatibility hook
- BSL 1.1 source licence
Python
- Independent compatibility release
- HTTP policy evaluation
- No TypeScript v1 parity claim
- BSL 1.1 source licence
- Published package manifest
Firewall proof
- Executor-owned broker required
- Raw capability held outside OpenClaw
- Topology evidence not yet complete
- No production assurance claim
- Failure probes are planned
- Host-compromise limits stay explicit
No public prices, paid tiers, retention promises, or SLA are offered. Read why →