Service instance deployment and billing

Updated at:

Create an Agent Manager service instance in Alibaba Cloud Compute Nest. Before you deploy, confirm the costs, prerequisites, permissions, and parameters. After the deployment is complete, verify the platform URL and the administrator entry, and manage the Agent access gateway as described in this topic.

Service description

After the deployment is complete, use the administrator URL in the service instance outputs to complete the initialization. Then configure users, models, Agent types, sandbox settings, and token rate limits.

After a user creates an Agent instance, the user uses the access link to work with the Agent page, the terminal, and file upload.

The service is deployed into an existing ACS/ACK Sandbox cluster through Compute Nest and a Resource Orchestration Service (ROS) template.

The deployment creates or connects to Supabase, deploys the Agent Manager workloads, and creates the Agent access gateway, OSS storage, and the optional Alibaba Cloud AI Gateway based on the parameters.

Access path

After the deployment is complete, the access path is as follows:

Browser
  -> Platform public SLB
  -> Agent Manager frontend and API
  -> Supabase / E2B Sandbox / OSS / AI Gateway

If Agent access authentication is enabled, the application access link of a newly created Agent first goes through the Agent access gateway. For details about the verification behavior of the gateway, see Agent access gateway.

Billing

An Agent Manager service instance orchestrates cloud resources through Compute Nest. The actual costs are subject to the real-time prices on the Create Service Instance page and the order confirmation page.

Before you create a service instance, confirm the following cost sources:

ResourceBilling items
ACS/ACK Sandbox clusterThe computing, network, and storage costs of the existing Sandbox cluster.
SupabaseThe costs of the database specification, storage, and public elastic IP addresses (EIPs) when you select Create Alibaba Cloud managed Supabase.
Load balancingThe load balancing resources used by the public entry of the platform and by the Agent access gateway.
OSSThe storage and request costs of the Skill data and backup data after you create an OSS bucket or reuse an existing one.
Alibaba Cloud AI GatewayThe gateway specification and public network traffic costs when you set Configure AI Gateway to Yes.
Logs, monitoring, and network trafficBilled by the corresponding service when you use logs, monitoring, Internet bandwidth, or Cloud Data Transfer (CDT).

Before you submit the order, confirm your account balance, your resource quotas, and resource availability in the target region. When you deploy as a RAM user, make sure that the RAM permissions meet the requirements in this topic.

Prerequisites

Sandbox cluster

Before you deploy Agent Manager, prepare an OpenClaw-ACS-Sandbox Cluster Edition service instance.

Network and vSwitch

If you plan to create Alibaba Cloud managed Supabase, prepare the cluster management vSwitch or a new vSwitch in the corresponding zone. Do not select the OpenClaw dedicated vSwitch. For details, see Step 5: Configure the network settings.

If you use an existing open source Supabase, prepare the browser access URL, the server access URL, the Anon Key, the Service Role Key, and the database connection string in advance.

Model invocation

You can configure models after the deployment. To connect to Alibaba Cloud AI Gateway automatically during the deployment, prepare the DashScope API key, the gateway specification, and the network type in advance.

If you enable AI Gateway during the deployment, get the DashScope API key from the Model Studio console in advance.

Warning

Make sure that the API key is never written into public tickets, chat logs, or code repositories.

RAM permissions

The RAM user or role that creates the service instance must have the permission to create Compute Nest service instances, and the permissions to operate the ROS, CS, VPC, ECS, OSS, and optional AI Gateway resources involved in the template. The required permissions are subject to the verification result on the Compute Nest creation page.

Permission scopePurpose
Compute Nest, ROSCreate and update service instances and stacks.
CS, VPC, ECSSelect the cluster, the VPC, and the vSwitch, and create the network resources that the template requires.
OSSCreate or use an OSS bucket to store Skill data and backup data.
API Gateway (APIG), logs, monitoringRequired only when you enable Alibaba Cloud AI Gateway or the related monitoring capabilities.

The Alibaba Cloud Access Credential Source in the template is used by the platform to access resources such as OSS, SkillHub, and AI Gateway. It is not equivalent to the permissions of the RAM user that creates the service instance. When you select Use Existing AccessKey, grant the permissions to the corresponding RAM user or role based on the Reference Access Policy for Existing AccessKey displayed on the page.

Warning

Never write an AccessKey directly into documents, code repositories, or chat logs.

Deployment procedure

For the default value and the description of each parameter, see Deployment parameters.

Step 1: Go to the service instance creation page

  1. Log on to the Alibaba Cloud Compute Nest console.

  2. Search for and open the Agent Manager service.

  3. Click Start Deployment or Create to go to the Create Service Instance page.

    You can also search for Agent Manager in the service catalog. The service card provides the product page, the deployment documentation, and the entry to create a service instance.

Step 2: Complete the pre-deployment confirmation

Read the whitelist configuration confirmation instructions and select the check box. Instance upgrades and Skill mounting depend on the Agent Sandbox shared storage.

Important

Before you enable the shared storage, make sure that you have evaluated the security responsibilities introduced by privileged containers and hostPath.

Step 3: Configure the Sandbox settings

  1. For Sandbox Cluster ID (ClusterId), select the Kubernetes cluster where the existing ACS Sandbox resides.

  2. For K8s Namespace (PlatformNamespaceName), enter the platform namespace. The default value is openclaw-platform.

Note

If no cluster is available for selection, create an OpenClaw-ACS-Sandbox Cluster Edition service instance first.

Step 4: Configure the Supabase settings

For Supabase Source (SupabaseDeploymentMode), select CreateNew (create Alibaba Cloud managed Supabase) in a production environment. This is the recommended option.

If you select UseExistingOpenSource (use an existing open source Supabase), enter the public URL, the server access URL, the Anon Key, the Service Role Key, and the database connection string of the existing Supabase. This mode applies to compatibility verification, migration, or testing, and is not recommended for a production environment.

Important

If the password in the database connection string contains special characters such as @, #, and %, perform URL encoding first.

Step 5: Configure the network settings

Select the zone where Supabase resides (ZoneId), the VPC (VpcId), and the vSwitch (VSwitchId).

If you select to create Alibaba Cloud managed Supabase, use the cluster management vSwitch or a regular vSwitch in the corresponding zone. Do not select the OpenClaw dedicated vSwitch.

Step 6: Configure Agent access authentication, OSS, AI Gateway, and access credentials

  1. For Enable Agent Access Authentication (EnableAgentGatewayAccess), keep the default enabled state unless you need to continue using the legacy E2B direct address.

  2. For Select an Existing or New OSS Bucket (OssOption), select whether to create an OSS bucket or to reuse an existing one.

  3. To enable Alibaba Cloud AI Gateway during the deployment, set Configure AI Gateway (EnableAIGateway) to Yes, enter the DashScope API key, and select the gateway specification and the network access type.

  4. For Alibaba Cloud Access Credential Source (AccessKeyMode), select automatic creation of an AccessKey or use an existing AccessKey.

    (Recommended) Enable Agent access authentication in a production environment. After you verify that access through the gateway works, tighten the security groups, ACLs, or network policies of the E2B upstream entry.

Step 7: Confirm the order and create the instance

  1. Check the parameter completeness and the pricing details on the right side.

  2. Click Next: Confirm Order.

  3. Select the Compute Nest Terms of Service check box.

  4. Click Create Now.

    The deployment usually takes 5 to 10 minutes. Creating Supabase may take a longer time. During the deployment, view the status, the resources, and the deployment logs on the service instance details page. After the deployment is complete, verify the service instance as described in Verify the result.

Verify the result

View the service instance status

  1. Open the Compute Nest console.

  2. Go to Service Instance Management.

  3. Find the Agent Manager service instance.

  4. Confirm that the status is Deployed.

    If the status stays at Deploying for a long time, first view the deployment logs on the service instance details page.

Get the platform access URLs

After the deployment is complete, view the following URLs in the service instance outputs:

OutputPurpose
Platform public access URL (PlatformUrl)Opens the Agent Manager platform homepage.
Administrator logon URL (AdminLoginUrl)Goes to the administrator logon page.
API health check (ApiHealthUrl)Checks whether the backend API works.
Agent access gateway (AgentGatewayUrl)After Agent access authentication is enabled, the Agent application access links generated by the platform use this gateway.
OAuth App callback URL (SupabaseOAuthCallbackUrl)Used when you configure an OAuth provider.
SAML SP metadata URL (SupabaseSamlMetadataUrl)Used when you configure a SAML identity provider.
SAML ACS URL (SupabaseSamlAcsUrl)Used when you configure a SAML identity provider.

Open the API health check URL. If a healthy status is returned, the platform API has started.

Get the initial administrator account

The service instance outputs contain the initial administrator information. The default values are as follows:

OutputDefault value
Administrator emailadmin@openclaw.local
Administrator passwordadmin123
Warning

Change the administrator password immediately after the first logon.

Post-deployment operations

Agent access gateway

The Agent access gateway protects the Agent web pages. After it is enabled, when a user opens an application access link from the platform, the gateway verifies the logon status and the instance ownership before the user reaches the actual Agent.

Default behavior of the gateway entry

ConfigurationAGENT_GATEWAY_DOMAIN valueApplication access linkDescription
Gateway enabled, no HTTPS domain configuredhttp://<gateway SLB IP>:8080: uses the HTTP/IP gateway.http://<gateway SLB IP>:8080/<instance ID>/The platform logon status is verified, but the segment between the browser and the gateway is not encrypted.
Gateway enabled, HTTPS domain configuredhttps://<gateway domain>: uses the HTTPS domain gateway.https://<gateway domain>/<instance ID>/HTTPS is used between the browser and the gateway.
Gateway disabledEmpty value: falls back to the legacy E2B direct address.Legacy E2B direct addressThe request does not go through the platform gateway. You must protect the E2B upstream entry on your own.
Important

Enabling the gateway only changes the access links that the platform generates. It does not automatically close the E2B upstream entry. In a production environment, the preferred approach is to make the E2B upstream entry reachable only within the VPC, or to restrict the access sources by using security groups, ALB/SLB ACLs, Ingress whitelists, and network policies.

Configure an HTTPS gateway domain

In the following commands, replace the value of NAMESPACE with the platform namespace (PlatformNamespaceName) that you specified during the deployment. The default value is openclaw-platform. Replace <gateway domain> with the HTTPS domain of your gateway.

  1. Get the public IP address of the openclaw-agent-gateway Service and resolve your domain name to this IP address. You can obtain the IP address by using the kubectl get svc command in Manual switchover of the gateway entry.

  2. Create or update the TLS Secret openclaw-agent-gateway-tls in the platform namespace.

    NAMESPACE=openclaw-platform
    kubectl -n "$NAMESPACE" create secret tls openclaw-agent-gateway-tls \
      --cert=/path/to/fullchain.pem \
      --key=/path/to/tls.key \
      --dry-run=client -o yaml | kubectl apply -f -
  3. Restart the gateway so that nginx reads the certificate.

    NAMESPACE=openclaw-platform
    kubectl -n "$NAMESPACE" rollout restart deployment/openclaw-agent-gateway
    kubectl -n "$NAMESPACE" rollout status deployment/openclaw-agent-gateway --timeout=300s
  4. Switch the access links that the platform generates to the HTTPS domain, and then restart the platform Deployment.

    NAMESPACE=openclaw-platform
    GATEWAY_DOMAIN="https://<gateway domain>"
    kubectl -n "$NAMESPACE" patch configmap openclaw-platform-config \
      --type merge \
      -p "{\"data\":{\"AGENT_GATEWAY_DOMAIN\":\"$GATEWAY_DOMAIN\"}}"
    kubectl -n "$NAMESPACE" rollout restart deployment/openclaw-platform
    kubectl -n "$NAMESPACE" rollout status deployment/openclaw-platform --timeout=300s
  5. Open the application access link of an instance, confirm that the address uses HTTPS, and verify that the page, the terminal, and file upload all work.

Important

The external certificate of the gateway only handles HTTPS between the browser and nginx. The verification from nginx to the E2B upstream still uses the e2b-ca-cert of the platform. Do not mix up the two certificates.

Manual switchover of the gateway entry

If the gateway is already deployed, you can use AGENT_GATEWAY_DOMAIN in the platform ConfigMap to temporarily switch the access links that are generated later. For the mapping between each value and the gateway behavior, see Default behavior of the gateway entry.

For a long-term configuration of Agent access authentication, manage the Compute Nest service instance parameter EnableAgentGatewayAccess. This parameter controls only whether Agent access links are verified by the gateway. It does not persist a custom AGENT_GATEWAY_DOMAIN value.

If you only need to temporarily switch the access entry, you can modify the ConfigMap directly. Manual changes to the platform ConfigMap can be overwritten by a later service instance upgrade. After each modification, restart the platform Deployment so that the change takes effect for the access links that are generated later.

# Use the HTTP/IP gateway
NAMESPACE=openclaw-platform
GATEWAY_IP="$(kubectl -n "$NAMESPACE" get svc openclaw-agent-gateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}')"
kubectl -n "$NAMESPACE" patch configmap openclaw-platform-config \
  --type merge \
  -p "{\"data\":{\"AGENT_GATEWAY_DOMAIN\":\"http://$GATEWAY_IP:8080\"}}"
kubectl -n "$NAMESPACE" rollout restart deployment/openclaw-platform
kubectl -n "$NAMESPACE" rollout status deployment/openclaw-platform --timeout=300s
# Use the HTTPS domain gateway
NAMESPACE=openclaw-platform
GATEWAY_DOMAIN="https://<gateway domain>"
kubectl -n "$NAMESPACE" patch configmap openclaw-platform-config \
  --type merge \
  -p "{\"data\":{\"AGENT_GATEWAY_DOMAIN\":\"$GATEWAY_DOMAIN\"}}"
kubectl -n "$NAMESPACE" rollout restart deployment/openclaw-platform
kubectl -n "$NAMESPACE" rollout status deployment/openclaw-platform --timeout=300s
# Disable the gateway entry and fall back to the legacy E2B direct address
NAMESPACE=openclaw-platform
kubectl -n "$NAMESPACE" patch configmap openclaw-platform-config \
  --type merge \
  -p '{"data":{"AGENT_GATEWAY_DOMAIN":""}}'
kubectl -n "$NAMESPACE" rollout restart deployment/openclaw-platform
kubectl -n "$NAMESPACE" rollout status deployment/openclaw-platform --timeout=300s

GlobalTrafficPolicy network policy

If the cluster uses GlobalTrafficPolicy to implement network isolation for Agent pods, make sure that spec.selector.matchLabels matches the pods that SandboxSet creates. After you add an Agent type or modify the SandboxSet labels, check the selector again.

kubectl edit globaltrafficpolicy openclaw-global-policy

For example, if the policy needs to match OpenClaw pods:

spec:
  selector:
    matchLabels:
      app: agent-manager-openclaw

You can extend an existing selector for the same network rules. For different network rules, create a separate GlobalTrafficPolicy. After the policy takes effect, verify that the required paths between the platform, Agent Gateway, and Sandbox are still reachable.

Troubleshooting

Common deployment issues

SymptomSolution
A CIDR block conflict is reportedCheck whether the vSwitch CIDR block of Supabase overlaps with an existing CIDR block in the VPC, and then select a vSwitch that does not conflict.
The deployment does not complete for a long timeView the deployment events and logs on the Compute Nest service instance details page.
The platform page is inaccessibleWait until the ALB or Ingress is ready and try again, and then check the Ingress resources in the cluster.
A database connection failure is reported after logonWait until Supabase enters the Running state, and confirm that the URL, the Service Role Key, and the database connection string belong to the same instance.
Saving the Site URL or the email authentication of an open source Supabase returns 501Use the kubectl set env approach to configure GoTrue.

The gateway returns 502

First check the logs of openclaw-agent-gateway, and then identify the segment where the problem occurs:

Log or symptomWhat to check first
upstream SSL certificate verify errorWhether the e2b-ca-cert contains a CA chain that can verify the E2B upstream and is not a leaf certificate with CA:FALSE.
connection refusedWhether the Sandbox is running and whether the Agent web port is listening.
timed out or host not foundThe network, DNS, and security groups between the gateway and the E2B upstream.

A working direct connection after you disable the gateway does not prove that the e2b-ca-cert is correct, because the legacy direct path bypasses the certificate verification from nginx to the E2B upstream. For detailed troubleshooting, see FAQ and troubleshooting.

Deployment parameters

Pre-deployment confirmation

ParameterTemplate fieldDefault valueDescription
Whitelist configuration confirmationWhitelistConfirmationNot selectedConfirms that you have read the instructions on the Agent Sandbox shared storage, privileged containers, and hostPath. You must select this check box before you can deploy.

Sandbox settings

ParameterTemplate fieldDefault valueDescription
Sandbox Cluster IDClusterIdNoneSelect the Kubernetes cluster where the existing ACS Sandbox resides.
K8s NamespacePlatformNamespaceNameopenclaw-platformThe namespace where the Agent Manager platform resources reside.

Supabase settings

ParameterTemplate fieldDefault valueDescription
Supabase SourceSupabaseDeploymentModeCreateNewUse managed Supabase in production environments. An existing open source Supabase applies only to compatibility verification, migration, or testing.
Supabase Instance SpecificationSupabaseProjectSpec2C2GRequired when you create managed Supabase.
Supabase Storage (GB)SupabaseStorageSize10Required when you create managed Supabase. The minimum value is 1 GB.
Existing Supabase Public URLExistingSupabaseUrlEmptyRequired when you use an existing open source Supabase. It is used for browser access. Do not end the value with /.
Existing Supabase Server Access URLExistingSupabaseInternalUrlEmptyRequired when you use an existing open source Supabase. It is used for backend access. Within the same cluster, you can enter a Kubernetes Service address.
Existing Supabase Anon KeyExistingSupabaseAnonKeyEmptyRequired when you use an existing open source Supabase. It is used by the frontend to call the Auth and REST APIs.
Existing Supabase Service Role KeyExistingSupabaseServiceRoleKeyEmptyRequired when you use an existing open source Supabase. It is used only on the server side.
Existing Supabase Database Connection StringExistingSupabaseDatabaseUrlEmptyRequired when you use an existing open source Supabase. It is used to initialize the table schema and the administrator account.

Network settings

ParameterTemplate fieldDefault valueDescription
Supabase ZoneZoneIdEmptyRequired when you create managed Supabase.
VPC Instance IDVpcIdEmptyRequired when you create managed Supabase. It is usually in the same VPC as the Sandbox cluster.
vSwitch Instance IDVSwitchIdEmptyRequired when you create managed Supabase. Do not select the OpenClaw dedicated vSwitch.

Agent access authentication

ParameterTemplate fieldDefault valueDescription
Enable Agent Access AuthenticationEnableAgentGatewayAccesstrue (authentication enabled)Enables authentication for Agent access links through the Agent access gateway. For details about the gateway behavior, see Agent access gateway.

OSS storage settings

ParameterTemplate fieldDefault valueDescription
Select an Existing or New OSS BucketOssOptionNewOSSStores the internal Skill data and backup data of your enterprise.
OSS Bucket NameExistingBucketNameEmptyRequired when you select an existing OSS bucket.

AI Gateway settings

ParameterTemplate fieldDefault valueDescription
Configure AI GatewayEnableAIGatewayNoIf you select Yes, Alibaba Cloud AI Gateway and the Model Studio model proxy are automatically created.
DashScope API keyDashScopeApiKeyEmptyRequired when you enable AI Gateway. Get the key from the Model Studio console.
AI Gateway SpecificationAIGatewaySpecaigw.small.x1A higher specification supports more concurrent requests.
AI Gateway Network Access TypeAIGatewayNetworkTypeInternetAndIntranetYou can select the public network, the internal network, or both. Public network access incurs public network traffic fees.

Cloud resource access credentials

ParameterTemplate fieldDefault valueDescription
Alibaba Cloud Access Credential SourceAccessKeyModeAutoCreateUsed by the platform to access cloud resources such as OSS and AI Gateway.
Reference Access Policy for Existing AccessKeyExistingAccessKeyRequiredPolicyAutomatically displayedGrant permissions based on this policy when you select an existing AccessKey.
Existing AccessKey IDExistingAccessKeyIdEmptyRequired when you select an existing AccessKey.
Existing AccessKey secretExistingAccessKeySecretEmptyRequired when you select an existing AccessKey.