OpenClaw 部署实战测评:Java 8 AI编程助手飞书版

2026-06-23阅读 0热度 0
OpenClaw

OpenClaw 部署实战:Ja va 8 AI 编程助手(飞书)

关键词:OpenClaw、Docker 部署、Ja va 8、Ma ven、飞书集成、AI 编程助手

这篇文章会一步步带你走通如何用 Docker 部署 OpenClaw 开发环境,并让它成为 Ja va 8 应用开发的得力助手。通过飞书或者其他渠道,就能直接跟它交互,相当方便。

安装准备

目录结构

先把整体目录搭建起来,下面这个结构就是我们需要准备的:

openclaw-ja va-docker/
├── .env                    # 环境变量配置
├── docker-compose.yml      # Docker Compose 编排文件
├── config/                 # OpenClaw 配置文件目录
│   └── openclaw.json       # 主配置文件
├── logs/                   # 日志目录
├── ja va/                   # Ja va 环境目录
│   ├── ma ven-3.6.3/        # Ma ven 构建工具
│   │   └── bin/            # Ma ven 可执行文件
│   ├── jdk8/               # JDK 8
│   │   └── bin/            # Ja va 可执行文件
│   └── settings.xml        # Ma ven 仓库配置文件
├── repository/             # Ma ven 本地仓库
└── workspace/              # 工作空间目录
    ├── ja va-projects/      # Ja va 本地项目目录
    │   └── my-app/         # 示例项目
    └── skills/             # OpenClaw 生成的技能目录

下载 JDK 8 和 Ma ven

JDK 8 (OpenJDK)

以 ARM64 版本为例,下载地址如下:

wget https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u422-b05/OpenJDK8U-jdk_aarch64_linux_hotspot_8u422b05.tar.gz

注意:根据你的系统架构选择对应版本(x64 或 aarch64)。

Ma ven 3.6.3

wget https://archive.apache.org/dist/ma ven/ma ven-3/3.6.3/binaries/apache-ma ven-3.6.3-bin.tar.gz

解压并配置

# 创建目录
mkdir -p openclaw-ja va-docker/ja va
# 解压 JDK
tar -xzf OpenJDK8U-jdk_aarch64_linux_hotspot_8u422b05.tar.gz -C openclaw-ja va-docker/ja va/
mv openclaw-ja va-docker/ja va/jdk8u422-b05 openclaw-ja va-docker/ja va/jdk8
# 解压 Ma ven
tar -xzf apache-ma ven-3.6.3-bin.tar.gz -C openclaw-ja va-docker/ja va/
mv openclaw-ja va-docker/ja va/apache-ma ven-3.6.3 openclaw-ja va-docker/ja va/ma ven-3.6.3

创建项目目录

把准备好的相关文件存放到 openclaw-ja va-docker 目录:

mkdir -p openclaw-ja va-docker/{config,logs,workspace/ja va-projects,repository}
cd openclaw-ja va-docker
# settings.xml 存放在 ja va 目录下

Docker 部署

docker-compose.yml 配置

version: "3.9"
services:
  openclaw-gateway:
    image: alpine/openclaw:2026.3.12
    container_name: openclaw-ja va-docker
    restart: unless-stopped
    user: "root"
    ports:
      - "18799:18799"
      - "8866:8866"
      - "5005:5005"
    environment:
      VOLCENGINE_API_KEY: ${VOLCENGINE_API_KEY}
      SILICONFLOW_API_KEY: ${SILICONFLOW_API_KEY}
      OPENCLAW_STATE_DIR: /home/node/.openclaw
      OPENCLAW_GATEWAY_PORT: "18799"
      OPENCLAW_TOKEN: ${OPENCLAW_TOKEN}
      JA VA_HOME: /usr/local/ja va/jdk8
      PATH: /usr/local/ja va/ma ven-3.6.3/bin:/usr/local/ja va/jdk8/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
      MA VEN_HOME: /usr/local/ja va/ma ven-3.6.3
    volumes:
      - ./config:/home/node/.openclaw
      - ./workspace:/home/node/.openclaw/workspace
      - ./workspace/ja va-projects:/home/node/.openclaw/workspace/ja va-projects
      - ./ja va/jdk8:/usr/local/ja va/jdk8:ro
      - ./ja va/ma ven-3.6.3:/usr/local/ja va/ma ven-3.6.3:ro
      - ./ja va/settings.xml:/home/node/.m2/settings.xml:ro
      - ./repository:/home/node/.m2/repository
      - ./logs:/home/node/.openclaw/logs
    command: >
      sh -c "
      echo '=== 验证 Ja va 环境 ===' &&
      /usr/local/ja va/jdk8/bin/ja va -version &&
      /usr/local/ja va/ma ven-3.6.3/bin/mvn -version &&
      echo '' &&
      echo '=== 确保日志目录可写 ===' &&
      mkdir -p /home/node/.openclaw/logs &&
      chmod -R 777 /home/node/.openclaw/logs &&
      echo '' &&
      echo '=== 启动 OpenClaw Gateway ===' &&
      exec openclaw gateway --allow-unconfigured
      "
    healthcheck:
      test: [ "CMD", "curl", "-f", "http://localhost:18799/health" ]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 60s
    deploy:
      resources:
        limits:
          cpus: '2.0'
          memory: 4G
        reservations:
          cpus: '1.0'
          memory: 2G

openclaw 首次启动前配置

.env 环境变量

需要准备以下有效密钥:

  • 有效的 VOLCENGINE_API_KEY(火山引擎,参考官方文档)
  • 有效的 SILICONFLOW_AK(硅基流动,参考官方文档)
# 火山引擎 API Key
VOLCENGINE_API_KEY=xxxxx
# OpenClaw 访问令牌改成自己的
OPENCLAW_TOKEN=2fe7015f25e6d6018983e2875f332b50176070dd029391cj
# 硅基流动 api key
SILICONFLOW_API_KEY=sk-xxxx

docker 启动

# 进入 openclaw-ja va-docker 目录
cd openclaw-ja va-docker
# 启动所有服务
docker compose up -d

openclaw.json 启动后配置

编辑 config/openclaw.json——这一步其实也可以在启动后用命令行配置向导来完成,不过我们先把关键配置列出来。

配置模型

"models": {
  "providers": {
    "volcengine": {
      "baseUrl": "https://ark.cn-beijing.volces.com/api/coding/v3",
      "apiKey": "${VOLCENGINE_API_KEY}",
      "api": "openai-completions",
      "models": [
        { "id": "ark-code-latest", "name": "ark-code-latest", ... },
        { "id": "doubao-seed-2.0-code", ... },
        { "id": "doubao-seed-2.0-pro", ... },
        { "id": "doubao-seed-2.0-lite", ... },
        { "id": "doubao-seed-code", ... },
        { "id": "minimax-m2.5", ... },
        { "id": "glm-4.7", ... },
        { "id": "deepseek-v3.2", ... },
        { "id": "kimi-k2.5", ... }
      ]
    },
    "siliconflow": {
      "baseUrl": "https://api.siliconflow.cn/v1",
      "apiKey": "${SILICONFLOW_API_KEY}",
      "api": "openai-completions",
      "models": [
        { "id": "Pro/zai-org/GLM-5", ... }
      ]
    },
    "ollama": {
      "baseUrl": "http://host.docker.internal:11434/v1",
      "apiKey": "ollama",
      "api": "openai-completions",
      "models": [
        { "id": "qwen2.5:3b", ... }
      ]
    }
  },
  "agents": {
    "defaults": {
      "model": { "primary": "volcengine/ark-code-latest" },
      "models": { ... },
      "workspace": "/home/node/.openclaw/workspace",
      "compaction": { "mode": "safeguard" },
      "maxConcurrent": 4,
      "subagents": { "maxConcurrent": 8 }
    }
  }
}

(上面我省略了每个模型的具体参数,实际使用可以直接复制原文中的完整 JSON)

配置网关

"gateway": {
  "port": 18799,
  "mode": "local",
  "bind": "lan",
  "controlUi": {
    "allowedOrigins": ["http://localhost:18799", "http://127.0.0.1:18799"]
  },
  "auth": {
    "mode": "token",
    "token": "${OPENCLAW_TOKEN}"
  },
  "tailscale": {
    "mode": "off",
    "resetOnExit": false
  }
}

修改配置生效

# 进入 openclaw-ja va-docker 目录
cd openclaw-ja va-docker
# 关闭所有服务
docker compose down
# 启动所有服务
docker compose up -d
# 访问 web ui 页面(默认端口 18789 改成了 18799)token 见 .env
open http://localhost:18799

运行示例

Docker 启动

docker_start

启动成功后,用以下命令查看容器状态:

# 查看容器状态
docker ps | grep openclaw
# 查看日志
docker logs -f openclaw-ja va-docker

WebUI 页面

访问 http://localhost:18799 进入 OpenClaw 管理界面,输入 token(上面 .env 中配置的那个)。

openclaw_login

概览页面

openclaw_home

飞书开放平台创建应用

创建企业自建应用

访问飞书开放平台,创建一个企业自建应用。步骤很简单:

  1. 登录飞书开放平台
  2. 点击“创建企业自建应用”
  3. 填写应用名称和描述
  4. 创建完成后进入应用详情页

添加应用能力

应用能力

权限管理

进入“权限管理”页面,添加需要的权限(建议按照列表全选,避免后续遗漏)。

权限管理

{
  "scopes": {
    "tenant": [
      "cardkit:card:read",
      "cardkit:card:write",
      "cardkit:template:read",
      "contact:contact.base:readonly",
      "contact:user.base:readonly",
      "docx:document",
      "docx:document.block:convert",
      "docx:document:readonly",
      "im:chat",
      "im:chat.access_event.bot_p2p_chat:read",
      "im:chat.announcement:read",
      "im:chat.announcement:write_only",
      "im:chat.managers:write_only",
      "im:chat.members:bot_access",
      "im:chat.members:read",
      "im:chat.members:write_only",
      "im:chat.menu_tree:read",
      "im:chat.menu_tree:write_only",
      "im:chat.moderation:read",
      "im:chat.tabs:read",
      "im:chat.tabs:write_only",
      "im:chat.top_notice:write_only",
      "im:chat.widgets:read",
      "im:chat.widgets:write_only",
      "im:chat:create",
      "im:chat:delete",
      "im:chat:moderation:write_only",
      "im:chat:operate_as_owner",
      "im:chat:read",
      "im:chat:readonly",
      "im:chat:update",
      "im:message",
      "im:message.group_at_msg:readonly",
      "im:message.group_msg",
      "im:message.p2p_msg:readonly",
      "im:message.pins:read",
      "im:message.pins:write_only",
      "im:message.reactions:read",
      "im:message.reactions:write_only",
      "im:message.urgent",
      "im:message.urgent.status:write",
      "im:message:readonly",
      "im:message:send_as_bot",
      "im:message:send_multi_depts",
      "im:message:send_multi_users",
      "im:message:send_sys_msg",
      "im:message:update",
      "wiki:node:read",
      "wiki:wiki",
      "wiki:wiki:readonly"
    ],
    "user": []
  }
}

事件与回调

事件配置

订阅方式建议选择“使用长连接接收回调”,稳定又省心。

事件与回调_事件配置

需要订阅的事件:

  • 撤销拉用户进群 v2.0 im.chat.member.user.withdrawn_v1
  • 消息被 reaction v2.0 im.message.reaction.created_v1
  • 消息被取消 reaction v2.0 im.message.reaction.deleted_v1
  • 接收消息 v2.0 im.message.receive_v1

回调配置

同样使用长连接接收回调。

事件与回调_回调配置

需要添加的回调:

  • card.action.trigger - 卡片回传交互

版本管理与发布

  1. 进入“版本管理与发布”页面
  2. 点击“创建版本”
  3. 填写应用版本号(比如 1.0.0)
  4. 填写更新说明
  5. 保存并发布

凭证与基础信息

进入“凭证与基础信息”页面,获取 App ID 和 App Secret。

凭证与基础配置_masked

需要复制的信息:

  • App ID:cli_xxxxxxxxxxxx(应用唯一标识)
  • App Secret:应用密钥(用于 API 调用认证)

将拿到的 App ID 和 App Secret 配置到 config/openclaw.json 中:

"channels": {
  "feishu": {
    "enabled": true,
    "appId": "cli_xxxxxxxxxxxx",
    "appSecret": "xxxxxxxxxxxxxxxx",
    "connectionMode": "websocket",
    "domain": "feishu",
    "groupPolicy": "allowlist",
    "groupAllowFrom": ["oc_xxxxxxxxxxxxxxxx"],
    "userPolicy": "allowlist",
    "allowFrom": ["ou_xxxxxxxxxxxxxxxx"]
  }
}

配置项说明:

  • enabled:是否启用飞书渠道
  • appId:飞书应用的 App ID
  • appSecret:飞书应用的 App Secret
  • connectionMode:连接模式,可选 websocketwebhook
  • groupPolicy:群组策略,allowlist 表示白名单模式
  • groupAllowFrom:允许的群组 ID 列表(参考飞书组 ID 获取)
  • userPolicy:用户策略,allowlist 表示白名单模式
  • allowFrom:允许的用户 ID 列表(参考验证飞书频道)

项目发布成功

应用发布成功

openclaw 配置飞书频道

# 进入容器命令行
docker exec -it openclaw-ja va-docker /bin/bash
# 开启配置向导
openclaw onboard

启动配置向导

启动配置向导

开始配置

选择 Yes,Enter 下一步。

开始配置

配置模式

按图示,Enter 下一步。

配置模式_quickstart

使用已经存在的配置

按图示,Enter 下一步。

use_exist_val

跳过模型配置

向下选择 Skip for now,Enter 下一步。

model_skip

按提供者筛选模型

按图示,Enter 下一步。

filter_model_by_provider

默认模型

按图示,Enter 下一步。

default_model

选择飞书频道

按图示,Enter 下一步。

feishu_channel

飞书频道插件安装

选择 Use local plugin path,Enter 下一步。

飞书插件

飞书频道应用密钥

复制对应的值,Enter 下一步。

feishu_app_secret

飞书频道应用 ID

复制对应的值,Enter 下一步。

feishu_app_id

飞书频道模式

按图示,直接 Enter 下一步。

feishu_mode

飞书频道域名

按图示,直接 Enter 下一步。

feishu_domain

飞书频道组策略

按图示,直接 Enter 下一步。

feishu_group_allow

飞书频道组 ID

先不填,直接 Enter 下一步。

feishu_group_id

配置完成,打开 config/openclaw.json 文件,会出现这个飞书插件配置:

"plugins": {
  "load": {
    "paths": ["/app/extensions/feishu"]
  },
  "entries": {
    "feishu": {
      "enabled": true
    }
  }
}

验证飞书频道

飞书验证_masked

# 进入容器命令行
docker exec -it openclaw-ja va-docker /bin/bash
# 飞书频道授权
openclaw pairing approve feishu 配对码

ja va8 项目 AI 开发

将项目挂载到 openclaw 工作空间

cd openclaw-ja va-docker/workspace/ja va-projects
# 将项目放到 workspace/ja va-projects 目录下

创建项目模块的编译运行技能

编写模块编译技能_masked

直接在飞书机器人对话框输入类似下面的内容:

项目在 /home/node/.openclaw/workspace/ja va-projects 目录下
## 帮我编写 my-api 编译运行项目技能
cd my-app
mvn package -s=/home/node/.m2/settings.xml -pl my-api -am
cd my-api/target
ja va -jar my-api.jar -Dserver.port=8866 -Dspring.profiles.active=demo -Dnacos.config.server-addr=xx.xx.xx.xx:8848 -Dnacos.config.namespace=bef34f60-7aed-4466-b952-edfaab700888
curl http://localhost:8866/healthz
返回 {"msg": "success", "code": "0", "success": true}
程序启动成功

技能创建完后,进入 openclaw-ja va-docker/workspace/skills 目录,就能看到对应技能文件了。

启动项目模块

直接在飞书里告诉机器人:“帮我编译运行 my-api”

启动模块_masked

备注

飞书配置注意事项

  1. 应用发布:配置完成后必须发布应用版本,否则配置不会生效。
  2. 权限申请:添加权限后需要提交审核,通过后才能使用。
  3. Webhook 地址:如果使用 Webhook 模式,需要配置公网可访问的回调地址。
  4. 白名单配置:建议配置群组和用户白名单,限制机器人的使用范围。
  5. 安全建议:App Secret 等敏感信息建议通过环境变量注入,不要硬编码在配置文件中。

本地访问 pairing required

如果遇到 code=1008 reason=pairing required 错误,用以下步骤处理:

# 进入容器命令行
docker exec -it openclaw-ja va-docker /bin/bash
# 列举访问设备
openclaw devices list
# 复制设备的标识(例如 765ef259-937e-46ce-bbb1-02bcf0c3a7af)
# 授权设备
openclaw devices approve 765ef259-937e-46ce-bbb1-02bcf0c3a7af

飞书组 ID 获取

在创建的群组里添加群机器人,选择你创建的 bot。然后 @bot 打个招呼,比如“你好”。接着查看容器日志:

docker logs -f openclaw-ja va-docker
# 日志中会出现类似 oc_xxxxx 这样的字符串,那就是组 ID

示例输出:Feishu[default] message in group oc_xxxxx: 你好

配置默认模型

如果想使用本地模型,比如 ollama/qwen2.5:3b,编辑 config/openclaw.json,在 agents.defaults.model 里改成:

"agents": {
  "defaults": {
    "model": {
      "primary": "ollama/qwen2.5:3b"
    },
    ...
  }
}
免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策