External KI Integration
Use external AI services via browser automation (ChatGPT, Claude, web‑based LLMs) and APIs (Hugging Face Inference, OpenAI‑compatible endpoints) to augment your capabilities.
When to use this skill
- You need to consult an external AI model (ChatGPT, Claude, Gemini, etc.) for reasoning, analysis, or generation tasks.
- The user has granted access to their chat interfaces (e.g., via Chrome Relay attached tab).
- You want to use Hugging Face Inference API (if token provided) for model inference.
- You need to interact with a free AI demo or Space via browser automation.
- The task benefits from a second opinion or specialized model (coding, creative writing, summarization).
Requirements
- Browser automation – the
browsertool withprofile="chrome"(user must have attached a tab to OpenClaw Browser Relay). - External AI accounts – user must be logged into the target service (ChatGPT, Claude, etc.) in the attached Chrome tab.
- Hugging Face token (optional) – for Inference API access, stored in
~/.openclaw/openclaw.jsonor provided as environment variable. - Other API keys (optional) – e.g., OpenAI, Anthropic, if user provides them.
Setup
Chrome Relay Attachment
The user must click the OpenClaw Browser Relay toolbar icon on the desired tab (badge ON). Verify attachment:
openclaw browser status
Or via browser tool: browser(action=status, profile="chrome").
Hugging Face Token
If token already stored in config, it will be used automatically. Otherwise, ask user to provide it.
Environment Variables (optional)
For API‑based access, you may set:
export OPENAI_API_KEY="sk-..."
export ANTHROPIC_API_KEY="sk-ant-..."
export HF_TOKEN="hf_..."
Browser Automation for Web UIs
General Pattern
- Navigate to the service URL (e.g.,
https://chat.openai.com,https://claude.ai,https://gemini.google.com). - Wait for page load, snapshot with
refs="aria"to locate UI elements. - Find input area (role="textbox", role="textbox" with name "Message", etc.).
- Type your query using
actwithreforselector. - Click send/submit button (role="button", name="Send").
- Wait for response (poll for new text elements, detect loading indicator disappearance).
- Extract response from the output container (role="article", class "markdown", etc.).
- Return the extracted text.
Example: ChatGPT via Chrome Relay
// 1. Navigate
browser(action="open", profile="chrome", targetUrl="https://chat.openai.com");
// 2. Snapshot after load
const snap = browser(action="snapshot", profile="chrome", refs="aria", interactive=true);
// 3. Find textbox (adapt ref based on snapshot)
browser(action="act", profile="chrome", request={ kind: "type", ref: "textbox:Message", text: "Your query here" });
// 4. Click send button
browser(action="act", profile="chrome", request={ kind: "click", ref: "button:Send" });
// 5. Wait for response (poll until new text appears)
// 6. Extract response
Adaptation Notes
- UI changes frequently: Use
refs="aria"for stable references (aria‑role, aria‑name). Fall back toselectorwith CSS classes if needed. - Rate limiting: Be gentle; wait 2–5 seconds between interactions.
- Session persistence: The attached tab retains login state; you can continue conversation in same chat.
API Integration
Hugging Face Inference API
See the dedicated Hugging Face skill for detailed usage.
OpenAI‑compatible endpoints
If user provides an API key, you can call models via curl or exec:
curl -s -X POST https://api.openai.com/v1/chat/completions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4",
"messages": [{"role": "user", "content": "Hello"}]
}'
Anthropic Claude
curl -s -X POST https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-3-opus-20240229",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Hello"}]
}'
Cost & Safety
Browser Automation (free)
- No direct cost, but uses user's existing subscription (if any).
- Respect rate limits; do not spam requests.
- Do not expose user credentials; rely on attached logged‑in session.
API Usage (paid)
- Hugging Face Inference: Track estimated costs via
system/logs/hf-costs.log. Stay within monthly budget (e.g., 33€). Notify user at 50% threshold. - OpenAI/Anthropic: If user provides API key, assume they accept associated costs. Still estimate token usage and log if possible.
- General rule: Prefer browser automation for free services; use paid APIs only when explicitly authorized and task justifies cost.
Safety
- No sensitive data: Avoid sending personal, financial, or confidential information to external services unless user explicitly approves.
- Compliance: Follow external service terms of service.
- Fallback: If external service fails, continue with internal reasoning; do not block task completion.
Integration with OpenClaw Skills
This skill complements:
- Hugging Face skill – for dedicated Hugging Face API/Spaces.
- Browser automation patterns – for generic web interaction.
- Multi‑model orchestration – for delegating sub‑tasks to external models.
Add this skill to skills/index.md:
| External KI Integration | skills/external‑ki‑integration/SKILL.md |
Example Workflow
- Task: Need to generate a complex code snippet.
- Check: User has ChatGPT tab attached via Chrome Relay.
- Open ChatGPT, snapshot, locate input.
- Type: "Write a Python function that validates email addresses with regex and DNS MX check."
- Click Send.
- Wait for response, extract code.
- Return code to user, optionally refine via follow‑up.
- Log the interaction in memory (pattern learned).
Troubleshooting
- Tab not attached: Ask user to click Browser Relay icon on the target tab.
- UI changes: Update refs/selectors based on snapshot.
- Rate limits: Wait longer between requests.
- API errors: Check token permissions, budget, network.