higress-openclaw-integration
Higress AI Gateway Integration
Deploy Higress AI Gateway and configure OpenClaw to use it as a unified model provider.
Quick Start
Step 1: Collect Information from User
Ask the user for the following information upfront:
-
Which LLM provider(s) to use? (at least one required)
Commonly Used Providers:
Provider Parameter Notes 智谱 / z.ai --zhipuai-keyModels: glm-*, Code Plan mode enabled by default Claude Code --claude-code-keyRequires OAuth token from claude setup-tokenMoonshot (Kimi) --moonshot-keyModels: moonshot-, kimi- Minimax --minimax-keyModels: abab-* 阿里云通义千问 (Dashscope) --dashscope-keyModels: qwen* OpenAI --openai-keyModels: gpt-, o1-, o3-* DeepSeek --deepseek-keyModels: deepseep-* Grok --grok-keyModels: grok-* Other Providers:
Provider Parameter Notes Claude --claude-keyModels: claude-* Google Gemini --gemini-keyModels: gemini-* OpenRouter --openrouter-keySupports all models (catch-all) Groq --groq-keyFast inference Doubao (豆包) --doubao-keyModels: doubao-* Mistral --mistral-keyModels: mistral-* Baichuan (百川) --baichuan-keyModels: Baichuan* 01.AI (Yi) --yi-keyModels: yi-* Stepfun (阶跃星辰) --stepfun-keyModels: step-* Cohere --cohere-keyModels: command* Fireworks AI --fireworks-key- Together AI --togetherai-key- GitHub Models --github-key- Cloud Providers (require additional config):
- Azure OpenAI:
--azure-key(requires service URL) - AWS Bedrock:
--bedrock-key(requires region and access key) - Google Vertex AI:
--vertex-key(requires project ID and region)
Brand Name Display (z.ai / 智谱):
- If user communicates in Chinese: display as "智谱"
- If user communicates in English: display as "z.ai"
- Azure OpenAI:
-
Enable auto-routing? (recommended)
- If yes:
--auto-routing --auto-routing-default-model <model-name> - Auto-routing allows using
model="higress/auto"to automatically route requests based on message content
- If yes:
-
Custom ports? (optional, defaults: HTTP=8080, HTTPS=8443, Console=8001)
Step 2: Deploy Gateway
Auto-detect region for z.ai / 智谱 domain configuration:
When user selects z.ai / 智谱 provider, detect their region:
# Run region detection script (scripts/detect-region.sh relative to skill directory)
REGION=$(bash scripts/detect-region.sh)
# Output: "china" or "international"
Based on detection result:
- If
REGION="china": use default domainopen.bigmodel.cn, no extra parameter needed - If
REGION="international": automatically add--zhipuai-domain api.z.aito deployment command
After deployment (for international users): Notify user in English: "The z.ai endpoint domain has been set to api.z.ai. If you want to change it, let me know and I can update the configuration."
# Create installation directory
mkdir -p higress-install
cd higress-install
# Download script (if not exists)
curl -fsSL https://higress.ai/ai-gateway/install.sh -o get-ai-gateway.sh
chmod +x get-ai-gateway.sh
# Deploy with user's configuration
# For z.ai / 智谱: always include --zhipuai-code-plan-mode
# For non-China users: include --zhipuai-domain api.z.ai
./get-ai-gateway.sh start --non-interactive \
--<provider>-key <api-key> \
[--auto-routing --auto-routing-default-model <model>]
z.ai / 智谱 Options:
| Option | Description |
|---|---|
--zhipuai-code-plan-mode |
Enable Code Plan mode (enabled by default) |
--zhipuai-domain <domain> |
Custom domain, default: open.bigmodel.cn (China), api.z.ai (international) |
Example (China user):
./get-ai-gateway.sh start --non-interactive \
--zhipuai-key sk-xxx \
--zhipuai-code-plan-mode \
--auto-routing \
--auto-routing-default-model glm-5
Example (International user):
./get-ai-gateway.sh start --non-interactive \
--zhipuai-key sk-xxx \
--zhipuai-domain api.z.ai \
--zhipuai-code-plan-mode \
--auto-routing \
--auto-routing-default-model glm-5
Step 3: Install OpenClaw Plugin
Install the Higress provider plugin for OpenClaw:
# Copy plugin files (PLUGIN_SRC is relative to skill directory: scripts/plugin)
PLUGIN_SRC="scripts/plugin"
PLUGIN_DEST="$HOME/.openclaw/extensions/higress"
mkdir -p "$PLUGIN_DEST"
cp -r "$PLUGIN_SRC"/* "$PLUGIN_DEST/"
Tell user to run the following commands manually in their terminal (interactive commands, cannot be executed by AI agent):
# Step 1: Enable the plugin
openclaw plugins enable higress
# Step 2: Configure provider (interactive - will prompt for Gateway URL, API Key, models, etc.)
openclaw models auth login --provider higress --set-default
# Step 3: Restart OpenClaw gateway to apply changes
openclaw gateway restart
The openclaw models auth login command will interactively prompt for:
- Gateway URL (default:
http://localhost:8080) - Console URL (default:
http://localhost:8001) - API Key (optional for local deployments)
- Model list (auto-detected or manually specified)
- Auto-routing default model (if using
higress/auto)
After configuration and restart, Higress models are available in OpenClaw with higress/ prefix (e.g., higress/glm-5, higress/auto).
Future Configuration Updates (No Restart Needed)
After the initial setup, you can manage your configuration through conversation with OpenClaw:
- Add New Providers: Add new LLM providers (e.g., DeepSeek, OpenAI, Claude) and their models dynamically.
- Update API Keys: Update existing provider API keys without service restart.
- Configure Auto-routing: If you've set up multiple models, ask OpenClaw to configure auto-routing rules. Requests will be intelligently routed based on your message content, using the most suitable model automatically.
All configuration changes are hot-loaded through Higress — no openclaw gateway restart required. Iterate on your model provider setup dynamically without service interruption!
Post-Deployment Management
Add/Update API Keys (Hot-reload)
./get-ai-gateway.sh config add --provider <provider> --key <api-key>
./get-ai-gateway.sh config list
./get-ai-gateway.sh config remove --provider <provider>
Provider aliases: dashscope/qwen, moonshot/kimi, zhipuai/zhipu
Update z.ai Domain (Hot-reload)
If user wants to change the z.ai domain after deployment:
# Update domain configuration
./get-ai-gateway.sh config add --provider zhipuai --extra-config "zhipuDomain=api.z.ai"
# Or revert to China endpoint
./get-ai-gateway.sh config add --provider zhipuai --extra-config "zhipuDomain=open.bigmodel.cn"
Add Routing Rules (for auto-routing)
# Add rule: route to specific model when message starts with trigger
./get-ai-gateway.sh route add --model <model> --trigger "keyword1|keyword2"
# Examples
./get-ai-gateway.sh route add --model glm-4-flash --trigger "quick|fast"
./get-ai-gateway.sh route add --model claude-opus-4 --trigger "think|complex"
./get-ai-gateway.sh route add --model deepseek-coder --trigger "code|debug"
# List/remove rules
./get-ai-gateway.sh route list
./get-ai-gateway.sh route remove --rule-id 0
Stop/Delete Gateway
./get-ai-gateway.sh stop
./get-ai-gateway.sh delete
Endpoints
| Endpoint | URL |
|---|---|
| Chat Completions | http://localhost:8080/v1/chat/completions |
| Console | http://localhost:8001 |
| Logs | ./higress-install/logs/access.log |
Testing
# Test with specific model
curl 'http://localhost:8080/v1/chat/completions' \
-H 'Content-Type: application/json' \
-d '{"model": "<model-name>", "messages": [{"role": "user", "content": "Hello"}]}'
# Test auto-routing (if enabled)
curl 'http://localhost:8080/v1/chat/completions' \
-H 'Content-Type: application/json' \
-d '{"model": "higress/auto", "messages": [{"role": "user", "content": "What is AI?"}]}'
Troubleshooting
| Issue | Solution |
|---|---|
| Container fails to start | Check docker logs higress-ai-gateway |
| Port already in use | Use --http-port, --console-port to change ports |
| API key error | Run ./get-ai-gateway.sh config list to verify keys |
| Auto-routing not working | Ensure --auto-routing was set during deployment |
| Slow image download | Script auto-selects nearest registry based on timezone |
Important Notes
- Claude Code Mode: Requires OAuth token from
claude setup-tokencommand, not a regular API key - z.ai Code Plan Mode: Enabled by default, uses
/api/coding/paas/v4/chat/completionsendpoint, optimized for coding tasks - z.ai Domain Selection:
- China users:
open.bigmodel.cn(default) - International users:
api.z.ai(auto-detected based on timezone) - Users can update domain anytime after deployment
- China users:
- Auto-routing: Must be enabled during initial deployment (
--auto-routing); routing rules can be added later - OpenClaw Integration: The
openclaw models auth loginandopenclaw gateway restartcommands are interactive and must be run by the user manually in their terminal - Hot-reload: API key changes take effect immediately; no container restart needed