Skip to content

Commit af396f4

Browse files
JiaDeclaude
andcommitted
fix: exec-agent openclaw pin + exec build step + AWS_REGION export in README
- exec-agent/Dockerfile: pin openclaw@2026.3.24 (same fix as agent-container — 2026.3.28 breaks Gateway mode stdout capture for all portal/playground sessions) - enterprise/README.md: add Step 1.5 with explicit exec-agent build + push + update-agent-runtime commands (was undocumented, users had no exec tier working) - enterprise/README.md: add `export AWS_REGION=$REGION` in Step 3 seed section (seed_skills_final.py and seed_workspaces.py read AWS_REGION from env, not args) Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
1 parent 418efe8 commit af396f4

File tree

2 files changed

+43
-1
lines changed

2 files changed

+43
-1
lines changed

enterprise/README.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -416,6 +416,45 @@ S3_BUCKET=$(aws cloudformation describe-stacks --stack-name $STACK_NAME --region
416416
--query 'Stacks[0].Outputs[?OutputKey==`TenantWorkspaceBucketName`].OutputValue' --output text)
417417
```
418418

419+
### Step 1.5: Build and Push Exec-Agent Image (Executive Tier)
420+
421+
The Executive Runtime uses a separate Docker image with all skills pre-installed and Claude Sonnet 4.6 as the default model. Build and push it from the repo root:
422+
423+
```bash
424+
ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
425+
ECR_EXEC="${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/openclaw-multitenancy-exec-agent"
426+
427+
aws ecr get-login-password --region $REGION | \
428+
docker login --username AWS --password-stdin "${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com"
429+
430+
docker build --platform linux/arm64 \
431+
-f enterprise/exec-agent/Dockerfile \
432+
-t "${ECR_EXEC}:latest" .
433+
434+
docker push "${ECR_EXEC}:latest"
435+
```
436+
437+
Then update the Exec Runtime to pick up the new image:
438+
439+
```bash
440+
EXEC_RUNTIME_ID=$(aws ssm get-parameter \
441+
--name "/openclaw/${STACK_NAME}/exec-runtime-id" \
442+
--query Parameter.Value --output text --region $REGION 2>/dev/null)
443+
444+
EXEC_ROLE=$(aws cloudformation describe-stacks --stack-name $STACK_NAME --region $REGION \
445+
--query 'Stacks[0].Outputs[?OutputKey==`AgentContainerExecutionRoleArn`].OutputValue' --output text)
446+
447+
aws bedrock-agentcore-control update-agent-runtime \
448+
--agent-runtime-id "$EXEC_RUNTIME_ID" \
449+
--agent-runtime-artifact "{\"containerConfiguration\":{\"containerUri\":\"${ECR_EXEC}:latest\"}}" \
450+
--role-arn "$EXEC_ROLE" \
451+
--network-configuration '{"networkMode":"PUBLIC"}' \
452+
--environment-variables "{\"AWS_REGION\":\"${REGION}\",\"BEDROCK_MODEL_ID\":\"global.anthropic.claude-sonnet-4-6\",\"S3_BUCKET\":\"${S3_BUCKET}\",\"STACK_NAME\":\"${STACK_NAME}\",\"DYNAMODB_TABLE\":\"openclaw-enterprise\",\"DYNAMODB_REGION\":\"${DYNAMODB_REGION}\",\"SYNC_INTERVAL\":\"120\"}" \
453+
--region $REGION
454+
```
455+
456+
> The standard agent image (`openclaw-multitenancy-multitenancy-agent`) is built automatically by `deploy-multitenancy.sh`. You only need this step for the executive tier.
457+
419458
### Step 2: Create DynamoDB Table
420459

421460
```bash
@@ -457,6 +496,7 @@ python3 seed_knowledge.py --region $DYNAMODB_REGION
457496
python3 seed_ssm_tenants.py --region $REGION --stack $STACK_NAME
458497

459498
export S3_BUCKET=$S3_BUCKET
499+
export AWS_REGION=$REGION # seed_skills_final.py and seed_workspaces.py read this
460500
python3 seed_skills_final.py
461501
python3 seed_workspaces.py
462502
python3 seed_all_workspaces.py --bucket $S3_BUCKET

enterprise/exec-agent/Dockerfile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@ RUN if [ "$TARGETARCH" = "arm64" ] || [ "$(uname -m)" = "aarch64" ]; then \
3636
RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
3737
&& apt-get install -y nodejs && rm -rf /var/lib/apt/lists/*
3838

39-
RUN npm install -g openclaw@latest clawhub@latest
39+
# Pin to 2026.3.24 — same as agent-container/Dockerfile.
40+
# 2026.3.28 broke Gateway mode stdout capture (server.py _invoke_openclaw_once).
41+
RUN npm install -g openclaw@2026.3.24 clawhub@latest
4042

4143
# Executive tier: all skills pre-installed (no S3 hot-load needed)
4244
# Full tool set: shell, browser, file, code_execution, all integrations

0 commit comments

Comments
 (0)