diff --git a/extensions/lobster/README.md b/extensions/lobster/README.md index 13e675b45..6ab119f0d 100644 --- a/extensions/lobster/README.md +++ b/extensions/lobster/README.md @@ -30,6 +30,48 @@ Enable it in an agent allowlist: } ``` +## Using `clawd.invoke` (Lobster → Clawdbot tools) + +Some Lobster pipelines may include a `clawd.invoke` step to call back into Clawdbot tools/plugins (for example: `gog` for Google Workspace, `gh` for GitHub, `message.send`, etc.). + +For this to work, the Clawdbot Gateway must expose the tool bridge endpoint and the target tool must be allowed by policy: + +- Clawdbot provides an HTTP endpoint: `POST /tools/invoke`. +- The request is gated by **gateway auth** (e.g. `Authorization: Bearer …` when token auth is enabled). +- The invoked tool is gated by **tool policy** (global + per-agent + provider + group policy). If the tool is not allowed, Clawdbot returns `404 Tool not available`. + +### Allowlisting recommended + +To avoid letting workflows call arbitrary tools, set a tight allowlist on the agent that will be used by `clawd.invoke`. + +Example (allow only a small set of tools): + +```jsonc +{ + "agents": { + "list": [ + { + "id": "main", + "tools": { + "allow": [ + "lobster", + "web_fetch", + "web_search", + "gog", + "gh" + ], + "deny": ["gateway"] + } + } + ] + } +} +``` + +Notes: +- If `tools.allow` is omitted or empty, it behaves like "allow everything (except denied)". For a real allowlist, set a **non-empty** `allow`. +- Tool names depend on which plugins you have installed/enabled. + ## Security - Runs the `lobster` executable as a local subprocess.