返回 Skill 列表
extension
分类: 其它需要 API Key

Uncensored AI

将 EternalAI 配置为 OpenClaw 模型提供商。当用户请求配置 EternalAI、添加 EternalAI 模型或设置 EternalAI 提供商时使用。

person作者: roothubclawhub

EternalAI Uncensored Provider & Platform Skills

This skill does two things:

  1. Provider setup Configures EternalAI as an OpenAI-compatible model provider in OpenClaw
  2. Platform interaction Image & video generation via the EternalAI visual effects API

Skill Files

| File | URL | |------|-----| | SKILL.md (uncensored provider & installer, this file) | https://cdn.eternalai.org/openclaw/uncensored-eternalai-provider/SKILL.md | | eternalai/SKILL.md (image & video skill) | https://cdn.eternalai.org/openclaw/eternalai/SKILL.md | | eternalai/scripts/eternalai.sh | https://cdn.eternalai.org/openclaw/eternalai/scripts/eternalai.sh |

Install locally into OpenClaw:

mkdir -p ~/.openclaw/workspace/skills/eternalai/scripts
mkdir -p ~/.openclaw/workspace/skills/uncensored-eternalai-provider

# Provider + installer (this file)
curl -s https://cdn.eternalai.org/openclaw/uncensored-eternalai-provider/SKILL.md \
  > ~/.openclaw/workspace/skills/uncensored-eternalai-provider/SKILL.md

# Image & video generation skill
curl -s https://cdn.eternalai.org/openclaw/eternalai/SKILL.md \
  > ~/.openclaw/workspace/skills/eternalai/SKILL.md

# CLI helper script
curl -s https://cdn.eternalai.org/openclaw/eternalai/scripts/eternalai.sh \
  > ~/.openclaw/workspace/skills/eternalai/scripts/eternalai.sh
chmod +x ~/.openclaw/workspace/skills/eternalai/scripts/eternalai.sh

API Key

The ETERNAL_AI_API_KEY environment variable must be set. If it's missing, ask the user to go to https://eternalai.org/api/keys to get an API key.

This single API key is used for both:

  • Provider uncensored EternalAI text models configured via OpenClaw
  • Media generation image & video generation using the eternalai skill and eternalai.sh script

EternalAI Provider Setup

Configures EternalAI as an OpenAI-compatible model provider in OpenClaw.


Provider

| Key | Label | Base URL | Env Key | API | |-----|-------|----------|---------|-----| | eternalai | EternalAI | https://smart-agent-api.eternalai.org/o-proxy-v3/uncensored-eternalai/v1 | ETERNAL_AI_API_KEY | openai-completions |

Models

| id | name | reasoning | input | contextWindow | maxTokens | compat | |----|------|-----------|-------|---------------|-----------|--------| | uncensored-eternalai | Uncensored EternalAI | true | text | 128000 | 12288 | {"supportsUsageInStreaming": false} |

Agent Workflow

When the user asks to set up this provider, follow these steps exactly. Ask for the API key first.

Step 1: Test API connection

curl -s -w "\n%{http_code}" \
  --location 'https://smart-agent-api.eternalai.org/o-proxy-v3/uncensored-eternalai/v1/chat/completions' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer <API_KEY>' \
  --data '{
    "messages": [{"role": "user", "content": "hi."}],
    "model": "uncensored-eternalai",
    "stream": false
  }'

Warn if not HTTP 200 but continue if user confirms.

Step 2: Store API key in env

openclaw config set "env.ETERNAL_AI_API_KEY" "<API_KEY_VALUE>"

Step 3: Set provider config

The apiKey field must reference the env var using ${VAR} template syntax.

openclaw config set "models.providers.eternalai" '{"baseUrl":"https://smart-agent-api.eternalai.org/o-proxy-v3/uncensored-eternalai/v1","api":"openai-completions","apiKey":"${ETERNAL_AI_API_KEY}","models":[{"id":"uncensored-eternal-ai-1.0","name":"Uncensored EternalAI","reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":128000,"maxTokens":12288,"compat":{"supportsUsageInStreaming":false}}]}' --strict-json

Step 4: Add auth profile

openclaw config set "auth.profiles[eternalai:default]" '{"provider":"eternalai","mode":"api_key"}' --strict-json

Step 5: Add models to allowlist

openclaw config set "agents.defaults.models[eternalai/uncensored-eternal-ai-1.0]" '{"streaming":false}' --strict-json

Step 6: Ask about default model

Ask the user if they want to set one of the EternalAI models as their primary (default) model, or keep their current default. List the models with numbers (0 = keep current):

  1. Keep current default
  2. Uncensored EternalAI (eternalai/uncensored-eternal-ai-1.0)

Only run the command if the user picks a model:

openclaw config set "agents.defaults.model.primary" "eternalai/<model-id>"

If the user confirms, also switch the current session to the new model immediately using the session_status tool with the model parameter set to eternalai/<model-id>.

Step 7: Confirm setup

No gateway restart is needed — OpenClaw hot-reloads config changes automatically.

"✅ EternalAI setup complete! Models are now available. Use /model in chat to switch between models."


Common Issues

| Issue | Fix | |-------|-----| | "model not allowed" | Allowlist key must use eternalai/<model-id> format | | Model not in /models | Need BOTH models.providers.eternalai.models[] AND agents.defaults.models entry | | Wrong model called | Model id must match exactly what the API expects | | Connection errors | Test with curl before writing config | | Streaming errors | Set streaming: false in allowlist for models with supportsUsageInStreaming: false | | Out of credit | Ask user to buy credits at https://eternalai.org/api |