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
More from alibaba/higress
higress-wasm-go-plugin
Develop Higress WASM plugins using Go 1.24+. Use when creating, modifying, or debugging Higress gateway plugins for HTTP request/response processing, external service calls, Redis integration, or custom gateway logic.
33higress-daily-report
生成 Higress 项目每日报告,追踪 issue/PR 动态,沉淀问题处理经验,驱动社区问题闭环。用于生成日报、跟进 issue、记录解决方案。
16agent-session-monitor
Real-time agent conversation monitoring - monitors Higress access logs, aggregates conversations by session, tracks token usage. Supports web interface for viewing complete conversation history and costs. Use when users ask about current session token consumption, conversation history, or cost statistics.
1nginx-to-higress-migration
Migrate from ingress-nginx to Higress in Kubernetes environments. Use when (1) analyzing existing ingress-nginx setup (2) reading nginx Ingress resources and ConfigMaps (3) installing Higress via helm with proper ingressClass (4) identifying unsupported nginx annotations (5) generating WASM plugins for nginx snippets/advanced features (6) building and deploying custom plugins to image registry. Supports full migration workflow with compatibility analysis and plugin generation.
1