Higress AI Gateway Management
Overview
This skill allows you to manage the Higress AI Gateway via its Console API. The Console API runs at http://127.0.0.1:8001 and uses Session Cookie authentication (NOT Basic Auth).
Environment Variables
These environment variables are pre-configured in the Manager container. Access them directly in bash:
CODEBLOCK0
No need to set defaults - these are always available in the container environment.
Authentication
A session cookie file is stored at the path in ${HIGRESS_COOKIE_FILE} environment variable. Use it with curl -b "${HIGRESS_COOKIE_FILE}".
If the cookie expires, re-login:
CODEBLOCK1
Consumer Management
List Consumers
CODEBLOCK2
Create Consumer
CODEBLOCK3
Update Consumer (e.g., replace credential key)
CODEBLOCK4
Delete Consumer
CODEBLOCK5
AI Route Management
AI routes are internal routes managed via a separate API at /v1/ai/routes. They define LLM provider routing with model-level predicates, domain matching, and consumer auth. Do NOT use /v1/routes for AI routes.
List AI Routes
CODEBLOCK6
Get AI Route by Name
CODEBLOCK7
Create AI Route
The system initializes with a default-ai-route that has no modelPredicates — all model requests go through it. When the human asks to add a new provider, create a separate AI route with modelPredicates to distinguish which models go where:
CODEBLOCK8
When adding a new provider route with modelPredicates, also update the default-ai-route to add matching modelPredicates for its own models, so routes are unambiguous.
Key fields:
- - domains: which domain(s) this AI route serves (e.g.
${HICLAW_AI_GATEWAY_DOMAIN}) - upstreams: LLM provider(s) with weight and optional model mapping
- modelPredicates: match models by prefix/exact/regex (e.g.
{"matchType":"PRE","matchValue":"deepseek"} routes all deepseek* models). Omit when only one route exists - authConfig: consumer-level access control
Update AI Route (e.g., grant Worker access)
CODEBLOCK9
Delete AI Route
CODEBLOCK10
LLM Provider Configuration
List AI Providers
CODEBLOCK11
Create Provider
CODEBLOCK12
Update Provider (e.g., rotate API keys)
CODEBLOCK13
MCP Server Management
For creating, updating, listing, and deleting MCP Servers, as well as managing consumer access to MCP tools, see the mcp-server-management skill.
Important Notes
- - Auth Plugin Activation: First configuration takes ~40s, subsequent changes ~10s
- Version field: AI Routes and Providers have a
version field. Always GET before PUT to get the latest version. - Consumer version: Consumers do NOT have a
version field - MCP Server: See
mcp-server-management skill for full details on creating and managing MCP servers
Higress AI 网关管理
概述
此技能允许您通过控制台 API 管理 Higress AI 网关。控制台 API 运行在 http://127.0.0.1:8001,使用会话 Cookie 认证(非基本认证)。
环境变量
以下环境变量已在 Manager 容器中预配置。可在 bash 中直接访问:
bash
核心配置(由 hiclaw-install.sh 设置)
HICLAW
ADMINUSER # Higress 控制台的管理员用户名
HICLAW
ADMINPASSWORD # Higress 控制台的管理员密码
HICLAW
AIGATEWAY_DOMAIN # AI 网关域名(例如 aigw-local.hiclaw.io)
HIGRESS
COOKIEFILE # 会话 Cookie 文件路径
无需设置默认值——这些变量在容器环境中始终可用。
认证
会话 Cookie 文件存储在 ${HIGRESSCOOKIEFILE} 环境变量指定的路径中。使用 curl -b ${HIGRESSCOOKIEFILE} 进行调用。
如果 Cookie 过期,请重新登录:
bash
curl -X POST http://127.0.0.1:8001/session/login \
-H Content-Type: application/json \
-c ${HIGRESSCOOKIEFILE} \
-d {name: ${HICLAWADMINUSER}, password: ${HICLAWADMINPASSWORD}}
消费者管理
列出消费者
bash
curl -s http://127.0.0.1:8001/v1/consumers -b ${HIGRESSCOOKIEFILE} | jq
创建消费者
bash
curl -X POST http://127.0.0.1:8001/v1/consumers \
-b ${HIGRESSCOOKIEFILE} \
-H Content-Type: application/json \
-d {
name: worker-alice,
credentials: [{
type: key-auth,
source: BEARER,
values: []
}]
}
更新消费者(例如替换凭证密钥)
bash
GET-修改-PUT 模式(消费者没有 version 字段)
NEW_KEY=$(openssl rand -hex 32)
CONSUMER=$(curl -s http://127.0.0.1:8001/v1/consumers/worker-alice -b ${HIGRESS
COOKIEFILE})
UPDATED=$(echo $CONSUMER | jq --arg new $NEW_KEY .credentials[0].values = [$new])
curl -X PUT http://127.0.0.1:8001/v1/consumers/worker-alice \
-b ${HIGRESS
COOKIEFILE} \
-H Content-Type: application/json \
-d $UPDATED
删除消费者
bash
curl -X DELETE http://127.0.0.1:8001/v1/consumers/worker-alice -b ${HIGRESSCOOKIEFILE}
AI 路由管理
AI 路由是通过 /v1/ai/routes 的独立 API 管理的内部路由。它们定义了具有模型级谓词、域名匹配和消费者认证的 LLM 提供商路由。请勿对 AI 路由使用 /v1/routes。
列出 AI 路由
bash
curl -s http://127.0.0.1:8001/v1/ai/routes -b ${HIGRESSCOOKIEFILE} | jq
按名称获取 AI 路由
bash
curl -s http://127.0.0.1:8001/v1/ai/routes/default-ai-route -b ${HIGRESSCOOKIEFILE} | jq
创建 AI 路由
系统初始化时带有一个没有 modelPredicates 的 default-ai-route——所有模型请求都通过它。当用户要求添加新提供商时,创建一个带有 modelPredicates 的独立 AI 路由,以区分哪些模型去往何处:
bash
示例:在现有默认路由旁添加一个 DeepSeek 路由
curl -X POST http://127.0.0.1:8001/v1/ai/routes \
-b ${HIGRESS
COOKIEFILE} \
-H Content-Type: application/json \
-d {
name: deepseek-route,
domains: [${HICLAW
AIGATEWAY_DOMAIN}],
pathPredicate: {matchType: PRE, matchValue: /, caseSensitive: false},
upstreams: [{provider: deepseek, weight: 100, modelMapping: {}}],
modelPredicates: [{matchType: PRE, matchValue: deepseek}],
authConfig: {
enabled: true,
allowedCredentialTypes: [key-auth],
allowedConsumers: [manager]
}
}
当添加带有 modelPredicates 的新提供商路由时,同时更新 default-ai-route,为其自身模型添加匹配的 modelPredicates,以确保路由无歧义。
关键字段:
- - domains:此 AI 路由服务的域名(例如 ${HICLAWAIGATEWAY_DOMAIN})
- upstreams:LLM 提供商,带有权重和可选的模型映射
- modelPredicates:通过前缀/精确/正则表达式匹配模型(例如 {matchType:PRE,matchValue:deepseek} 路由所有 deepseek* 模型)。当只有一条路由时省略
- authConfig:消费者级别的访问控制
更新 AI 路由(例如授予 Worker 访问权限)
bash
步骤 1:获取当前 AI 路由
AI
ROUTE=$(curl -s http://127.0.0.1:8001/v1/ai/routes/default-ai-route -b ${HIGRESSCOOKIE_FILE})
步骤 2:将 worker-alice 添加到 allowedConsumers
UPDATED=$(echo $AI_ROUTE | jq .authConfig.allowedConsumers += [worker-alice])
步骤 3:PUT 完整对象(AI 路由有 version 字段,需包含)
curl -X PUT http://127.0.0.1:8001/v1/ai/routes/default-ai-route \
-b ${HIGRESS
COOKIEFILE} \
-H Content-Type: application/json \
-d $UPDATED
删除 AI 路由
bash
curl -X DELETE http://127.0.0.1:8001/v1/ai/routes/ -b ${HIGRESSCOOKIEFILE}
LLM 提供商配置
列出 AI 提供商
bash
curl -s http://127.0.0.1:8001/v1/ai/providers -b ${HIGRESSCOOKIEFILE} | jq
创建提供商
bash
Qwen(原生类型)
curl -X POST http://127.0.0.1:8001/v1/ai/providers \
-b ${HIGRESS
COOKIEFILE} \
-H Content-Type: application/json \
-d {
type: qwen, name: qwen,
tokens: [
], protocol: openai/v1,
tokenFailoverConfig: {enabled: false},
rawConfigs: {qwenEnableSearch: false, qwenEnableCompatible: true, qwenFileIds: []}
}
OpenAI 兼容(通用)
curl -X POST http://127.0.0.1:8001/v1/ai/providers \
-b ${HIGRESSCOOKIEFILE} \
-H Content-Type: application/json \
-d {
type: openai, name: my-provider,
tokens: [], protocol: openai/v1,
modelMapping: {},
rawConfigs: {apiUrl: https://api.example.com/v1}
}
更新提供商(例如轮换 API 密钥)
bash
GET-修改-PUT 模式(提供商有 version 字段)
PROVIDER=$(curl -s http://127.0.0.1:8001/v1/ai/providers/qwen -b ${HIGRESSCOOKIEFILE})
UPDATED=$(echo $PROVIDER | jq .tokens = []