Skip to content
cccskills
FreePublished on GitHub

higress-gateway-management

Manage consumers, credentials, AI providers, and model routing in Higress AI Gateway through its Console API. The skill explains session authentication, access permissions, and how to update existing settings while preserving required version information.

OriginalShow the original description

Manage the Higress AI Gateway via its Console API (consumers, routes, AI providers, MCP servers). Use when creating consumers, configuring routes, or managing AI gateway settings.

See how to install

Good for

  • Create consumers and replace their authentication keys
  • Route requests to providers by model name
  • Grant workers access to AI routes
  • Add providers and rotate their API keys

Files included (2)

  • SKILL.md6.9 KB
  • references/higress-api-doc.json181.1 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

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:

# Core configuration (set by agentteams-install.sh)
AGENTTEAMS_ADMIN_USER      # Admin username for Higress Console
AGENTTEAMS_ADMIN_PASSWORD  # Admin password for Higress Console
AGENTTEAMS_AI_GATEWAY_DOMAIN  # AI Gateway domain (e.g., aigw-local.agentteams.io)
HIGRESS_COOKIE_FILE    # Path to session cookie file

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:

curl -X POST http://127.0.0.1:8001/session/login \
  -H 'Content-Type: application/json' \
  -c "${HIGRESS_COOKIE_FILE}" \
  -d '{"name": "'"${AGENTTEAMS_ADMIN_USER}"'", "password": "'"${AGENTTEAMS_ADMIN_PASSWORD}"'"}'

Consumer Management

List Consumers

curl -s http://127.0.0.1:8001/v1/consumers -b "${HIGRESS_COOKIE_FILE}" | jq

Create Consumer

curl -X POST http://127.0.0.1:8001/v1/consumers \
  -b "${HIGRESS_COOKIE_FILE}" \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "worker-alice",
    "credentials": [{
      "type": "key-auth",
      "source": "BEARER",
      "values": ["<GENERATED_KEY>"]
    }]
  }'

Update Consumer (e.g., replace credential key)

# GET-modify-PUT pattern (consumers do NOT have a version field)
NEW_KEY=$(openssl rand -hex 32)
CONSUMER=$(curl -s http://127.0.0.1:8001/v1/consumers/worker-alice -b "${HIGRESS_COOKIE_FILE}")
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_COOKIE_FILE}" \
  -H 'Content-Type: application/json' \
  -d "$UPDATED"

Delete Consumer

curl -X DELETE http://127.0.0.1:8001/v1/consumers/worker-alice -b "${HIGRESS_COOKIE_FILE}"

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

curl -s http://127.0.0.1:8001/v1/ai/routes -b "${HIGRESS_COOKIE_FILE}" | jq

Get AI Route by Name

curl -s http://127.0.0.1:8001/v1/ai/routes/default-ai-route -b "${HIGRESS_COOKIE_FILE}" | jq

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:

# Example: add a DeepSeek route alongside the existing default route
curl -X POST http://127.0.0.1:8001/v1/ai/routes \
  -b "${HIGRESS_COOKIE_FILE}" \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "deepseek-route",
    "domains": ["${AGENTTEAMS_AI_GATEWAY_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"]
    }
  }'

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. ${AGENTTEAMS_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)

# Step 1: GET current AI route
AI_ROUTE=$(curl -s http://127.0.0.1:8001/v1/ai/routes/default-ai-route -b "${HIGRESS_COOKIE_FILE}")

# Step 2: Add worker-alice to allowedConsumers
UPDATED=$(echo $AI_ROUTE | jq '.authConfig.allowedConsumers += ["worker-alice"]')

# Step 3: PUT full object (AI Route has "version" field, include it)
curl -X PUT http://127.0.0.1:8001/v1/ai/routes/default-ai-route \
  -b "${HIGRESS_COOKIE_FILE}" \
  -H 'Content-Type: application/json' \
  -d "$UPDATED"

Delete AI Route

curl -X DELETE http://127.0.0.1:8001/v1/ai/routes/<route-name> -b "${HIGRESS_COOKIE_FILE}"

LLM Provider Configuration

List AI Providers

curl -s http://127.0.0.1:8001/v1/ai/providers -b "${HIGRESS_COOKIE_FILE}" | jq

Create Provider

# Qwen (native type)
curl -X POST http://127.0.0.1:8001/v1/ai/providers \
  -b "${HIGRESS_COOKIE_FILE}" \
  -H 'Content-Type: application/json' \
  -d '{
    "type": "qwen", "name": "qwen",
    "tokens": ["<API_KEY>"], "protocol": "openai/v1",
    "tokenFailoverConfig": {"enabled": false},
    "rawConfigs": {"qwenEnableSearch": false, "qwenEnableCompatible": true, "qwenFileIds": []}
  }'

# OpenAI-compatible (generic)
curl -X POST http://127.0.0.1:8001/v1/ai/providers \
  -b "${HIGRESS_COOKIE_FILE}" \
  -H 'Content-Type: application/json' \
  -d '{
    "type": "openai", "name": "my-provider",
    "tokens": ["<API_KEY>"], "protocol": "openai/v1",
    "modelMapping": {},
    "rawConfigs": {"apiUrl": "https://api.example.com/v1"}
  }'

Update Provider (e.g., rotate API keys)

# GET-modify-PUT pattern (provider has "version" field)
PROVIDER=$(curl -s http://127.0.0.1:8001/v1/ai/providers/qwen -b "${HIGRESS_COOKIE_FILE}")
UPDATED=$(echo $PROVIDER | jq '.tokens = ["<NEW_KEY>"]')
curl -X PUT http://127.0.0.1:8001/v1/ai/providers/qwen \
  -b "${HIGRESS_COOKIE_FILE}" \
  -H 'Content-Type: application/json' \
  -d "$UPDATED"

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

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Find worker agents in Nacos that match a task, recommend candidates, and import the administrator's chosen worker. It also supports importing a specified nacos package URI, with worker name confirmation and direct reporting of installation failures.

  • Find a suitable worker for an unassigned task
  • Compare Nacos worker candidates before importing
  • Import a worker from a specified nacos package URI
agentscope-ai/AgentTeams5.9KUpdated Oct 20, 2026

Prepare an existing OpenClaw setup for import as an AgentTeams managed Worker. Analyze tool dependencies, adapt role instructions and scheduled jobs, and build a ZIP package containing the configuration and custom image requirements.

  • Moving standalone OpenClaw into AgentTeams
  • Reviewing required tool dependencies
  • Adapting role instructions for a Worker
agentscope-ai/AgentTeams5.9KUpdated Oct 20, 2026

Manage communication channels by identifying senders, maintaining trusted contacts, and setting the administrator's primary notification destination. It also covers first contact on a new channel and contacting the administrator across channels, with rules for handling unknown senders.

  • Identify who sent a message in a room
  • Add or remove trusted contacts
  • Configure the administrator's primary notification channel
agentscope-ai/AgentTeams5.9KUpdated Oct 20, 2026

coding-cli

FreeSummary

Prepare coding tasks for delegation to an authorized agent’s AI command-line tool. Set up and synchronize the workspace, write precise change requests, then review returned changes and run relevant checks before reporting completion.

  • Delegating code implementation or bug fixes to an AI CLI
  • Writing coding requests with clear acceptance criteria
  • Reviewing and testing changes returned by a CLI
agentscope-ai/AgentTeams5.9KUpdated Oct 20, 2026

Run AI coding command-line tools on behalf of worker agents using their prepared prompts and workspaces. Detect available tools, configure delegation, return results, and apply supported execution controls such as time budgets and permission settings.

  • Running coding tools for worker agents
  • Detecting and selecting available coding CLIs
  • Setting Qwen Code permissions and time budgets
agentscope-ai/AgentTeams5.9KUpdated Oct 20, 2026

communication

FreeSummary

Guides communication in Matrix agent teams by choosing recipients, rooms, and when to mention someone. It covers task notifications and progress reports, helping agents avoid duplicate assignments and send concrete updates to the appropriate requester.

  • Choosing the right Matrix room for a report
  • Avoiding duplicate task assignment notifications
  • Deciding when to mention a team member
agentscope-ai/AgentTeams5.9KUpdated Oct 20, 2026

See all skills by agentscope-ai

Report a problem with this skill