This skill provides governed wrappers for sensitive operations. It acts as a policy enforcement layer between agents and external systems.
You MUST use governed tools from this skill instead of raw tools when:
governedHttp instead of http)governedShell - future)governedFile - future)governedBrowser - future)governedHttp)allow or block with a reasonMakes HTTP requests through the GovernClaw policy engine.
Parameters:
method (string): HTTP method - "GET", "POST", "PUT", "DELETE"url (string): Target URLbody (object, optional): Request body for POST/PUTheaders (object, optional): Custom headersReturns:
{ ok: false, blocked: true, reason: "..." }Example:
const result = await context.tools.governclawMiddleware.governedHttp({
method: "GET",
url: "https://api.example.com/data"
});
if (result.blocked) {
// Handle policy block
console.log("Blocked:", result.reason);
}
Set the GovernClaw service URL in your environment:
export GOVERNCLAW_URL="http://127.0.0.1:8000"
Or in openclaw.json:
{
"skills": {
"governclaw-middleware": {
"env": {
"GOVERNCLAW_URL": "http://127.0.0.1:8000"
}
}
}
}
The skill automatically forwards these context fields to GovernClaw:
parent_id: The session ID (who owns the request)child_id: The agent ID (who is making the request)source: Where the request originated (agent, control, cron, etc.)channel: The channel ID (if applicable)node_id: The node ID (if applicable)skill: Always "governclaw-middleware"Always check for blocked in responses:
const response = await context.tools.governclawMiddleware.governedHttp({...});
if (!response.ok && response.blocked) {
// Policy violation - do not retry
return { error: response.reason };
}
if (!response.ok) {
// Network or other error - may retry
return { error: "Request failed" };
}
// Success
return response.data;
GovernClaw supports three governance modes:
The skill defaults to governed mode. Future versions may allow per-request mode overrides.
共 1 个版本