本地服务器用 OpenClaw + Open WebUI 搭建企业多部门 AI 平台(附 Docker 避坑指南)

本地服务器用 OpenClaw + Open WebUI 搭建企业多部门 AI 平台(附 Docker 避坑指南)

引言:

最近在尝试使用 OpenClaw,发现这个 AI 个人助理框架非常有意思。于是团队里就有人提出:能不能为公司的多个部门,分别搭建专属的 OpenClaw 服务器?

诚然,现在有钉钉、飞书等成熟的办公软件可以接入 AI,但对于一些尚未全面普及此类协作软件的企业(或者需要绝对私有化部署的团队)来说,独立搭建一套内部 AI 门户依然是刚需。

起初,我们考虑直接让大家通过 OpenClaw 自带的 Web 界面进行跨电脑访问。但实操后发现这存在致命缺陷:

  1. 权限越界:自带的 Web 端拥有底层的配置编辑权限,暴露给普通员工极其不安全。
  2. 无法溯源:多终端共用一个 Web 界面,根本无法追溯对话是由谁发起的。
  3. 缺乏隔离:无法按部门精细化分配 API 额度或限制特定部门只能访问特定的 OpenClaw 节点,无法实现业务隔离。

为了解决这些痛点,我们最终确定了这套架构方案:前端使用 Open WebUI 统一接管用户登录与权限分发,后端通过 API 挂载多个互不干扰的 OpenClaw 容器。

部署环境: Ubuntu 系统

核心工具: Docker, Docker Compose

第一步:搭建 Open WebUI 统一前端 (用户控制台)

在这一步,我们需要先拉起 Open WebUI 容器。它将作为整个企业 AI 平台的“门面”,负责员工账号注册、鉴权以及对话界面的展示。

(由于该工具的搭建非常成熟,此处不过多赘述。具体安装步骤与 Docker 运行指令,请参考官方文档:https://docs.openwebui.com/

搭建完成后,你将获得一个支持多用户管理的 ChatGPT 风格界面。接下来,我们为它注入“灵魂”。

第二步:初始化并部署 OpenClaw 多节点网关 (核心后端)

我们需要从官方 GitHub 拉取源码,并使用其提供的 docker-setup.sh 脚本来进行初始化。

但在直接执行脚本前,有几个极易踩坑的细节需要提前优化(特别是国内网络环境和多节点共存问题):

细节 1:解决 Docker 构建时的网络超时 (Connect Timeout)

由于 Docker 构建时处于隔离网络,经常会卡死在 pnpm install 阶段。 在拉取源码后,先打开文件夹内的 Dockerfile,在 USER node 这一行的下方,手动注入淘宝镜像源:

Dockerfile

USER node # 注入国内镜像源加速依赖下载 ENV COREPACK_NPM_REGISTRY=https://registry.npmmirror.com ENV npm_config_registry=https://registry.npmmirror.com RUN pnpm install --frozen-lockfile

同时,打开 docker-setup.sh 脚本,在底部的 docker build \ 后面,加上 --network host \ 参数,让容器构建时借用宿主机网络。

细节 2:物理机目录权限交接 (防止 EACCES 报错)

为了实现部门隔离,我们需要把不同部门的配置挂载到不同的文件夹中。但在挂载前,必须将宿主机文件夹的权限移交给容器内的 node 用户(UID 1000):

Bash

# 假设我们先为研发部 (rd-dept) 创建专属目录 mkdir -p ~/openclaw-cluster/rd-dept sudo chown -R 1000:1000 ~/openclaw-cluster/rd-dept
细节 3:执行终极多节点部署指令 (防冲突防覆盖)

官方默认脚本容易导致网关 (Gateway) 和桥接 (Bridge) 端口冲突,且二次运行会覆盖旧容器。我们需要通过环境变量赋予它独立的“身份证”。

在 OpenClaw 源码目录下,执行以下长命令启动【研发部专属节点】:

Bash

sudo OPENCLAW_GATEWAY_PORT=18776 \ OPENCLAW_BRIDGE_PORT=18777 \ OPENCLAW_CONFIG_DIR=$HOME/openclaw-cluster/rd-dept \ OPENCLAW_WORKSPACE_DIR=$HOME/openclaw-cluster/rd-dept/workspace \ COMPOSE_PROJECT_NAME=openclaw-rd \ ./docker-setup.sh

避坑指南:

  • 交互引导中,遇到 Gateway bind 选项时,务必选择 LAN,否则后续 Open WebUI 无法跨容器连接。
  • 如果需要再给【运营部】建一个节点,只需把上面命令中的端口(例如改为 18770/18771)、目录和 PROJECT_NAME 改掉,再运行一次即可,完美实现物理隔离!

第三步:修改网关配置,开启 OpenAI 兼容接口 (Chat Completions)

部署完节点后,默认情况下 OpenClaw 的网关服务可能并没有显式开启标准的 HTTP API 通道。为了让 Open WebUI 能够顺畅地与它对话,我们需要让 OpenClaw 充当一个“OpenAI 兼容服务器”。

我们需要手动修改各个部门节点下的配置文件(例如我们刚才为研发部创建的 ~/openclaw-cluster/rd-dept/config.json)。

使用文本编辑器(如 nanovim)打开该配置文件,向下滚动找到 "gateway" 属性块。 避坑细节: 在很多默认生成的配置中,gateway 下方是没有 http 这个属性的。我们需要手动把这块代码补进去,开启对话补全端点:

JSON

{ "gateway": { "http": { "endpoints": { "chatCompletions": { "enabled": true } } } // 注意:不要漏掉 json 的逗号和括号层级 } }

(保存并退出后,切记使用 sudo docker compose -p openclaw-rd restart 重启一下该节点的容器,让新配置生效。)

提取部门专属“钥匙” (Token)

配置改完后,我们要把该节点的 API Token 提取出来,这相当于 Open WebUI 敲开该部门大门的“通行证”。

第四步:在 Open WebUI 中接入网关并分配权限 (终极联调)

当我们把各个部门的 OpenClaw 节点都跑起来,并拿到对应的 API Token 后,就到了“万剑归宗”的最后一步:将它们统一接入前端面板。

1. 进入外部连接设置 使用管理员账户登录 Open WebUI,点击右上角头像进入 管理员面板 (Admin Panel),在左侧菜单选择 设置 (Settings),然后点击 外部连接 (Connections)

2. 添加并配置 OpenAI 接口 在“OpenAI 接口”模块,点击“添加连接”(或编辑现有连接),严格按照以下格式进行填写(参考配图):

  • URL (API 地址):填入 http://host.docker.internal:你的端口号/v1
    • 避坑提醒: 这里的端口号必须是你刚才为该部门分配的 Gateway 端口(例如研发部是 18776,配图中演示的是默认的 18789)。切记,URL 结尾只需要到 /v1,绝对不要画蛇添足加上 /chat/completions
  • 认证方式 (密钥/Bearer):将你在第三步中 gateway.json 里提取出的超长 Token 粘贴到这里。
  • HTTP 标头 (可选但极度推荐):填入 {"x-openclaw-agent-id": "main"}。这行代码的作用是精准唤醒 OpenClaw 中名为 "main" 的主智能体。

3. 测试并保存 填写完毕后,点击右下角的保存。如果配置无误,URL 右侧的刷新按钮旁会亮起一个绿色的开关标志,代表打通成功!

4. 部门级隔离与权限分发 (RBAC) 重复上述步骤,你可以把【研发部】、【运营部】等多个节点的 API 全部添加进来。 接着,进入 WebUI 的 工作区 (Workspace) -> 模型 (Models),利用刚接入的不同 API 接口,创建对应的专署大模型。最后,通过系统自带的用户组(Groups)权限管理,设定“研发部模型仅研发员工账号可见”。

至此,一个数据物理隔离、权限精准管控、对话可查可溯源的企业级多部门 AI 平台,就在你的服务器上彻底落成了!

Read more

Web 前端基础:HTML 核心语法和常用标签

HTML部分 * 一、HTML简介 * HTML是什么? * HTML骨架 * 二、HTML 标签语法 * 标签结构 * 标签嵌套关系(父子、兄弟) * HTML 注释和调试 * 三、HTML 文本排版标签 * 标题标签 h1~h6 * 段落标签 p * 换行 br、水平线 h * 文本格式化标签 * 块级元素 div & 行内元素 span * 四、HTML 图像与路径 * 相对路径与绝对路径 * 图像标签 img * 五、HTML 超链接 * 六、HTML 列表 * 无序列表` ul li` * 有序列表 `ol li`

OpenTiny NEXT 前端智能化系列直播征文开启,带你系统学习 AI 前端与 WebAgent

OpenTiny NEXT 前端智能化系列直播征文开启,带你系统学习 AI 前端与 WebAgent

🔥 个人主页:杨利杰YJlio❄️ 个人专栏:《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》《Python》《Kali Linux》《那些年未解决的Windows疑难杂症》🌟 让复杂的事情更简单,让重复的工作自动化 文章目录 * 在这里插入图片描述 1. AI 前端,不该只是“把聊天框接到页面里” * 在这里插入图片描述 2. 这次活动,为什么我觉得值得参加 * 2.1 不只是听概念,而是逼着自己把概念落地 * 2.2 技术范围很新,但切入点并不空泛 * 2.3 对写作者也很友好 * 在这里插入图片描述 3. 我理解的“前端智能化”,到底在变什么 * 3.1 第一层:前端从“固定界面”走向“

前端 + agent 开发学习路线

背景:团队启动Agent项目,从零开始学习工程化AI开发 感谢ai老师写的学习指南。存档! 引言:从困惑到清晰 最近团队要启动Agent项目,我第一次接触这个概念时,只停留在“接入大模型API+优化Prompt”的浅层理解。经过大量学习和实践探索,我才发现工程化Agent开发是系统化的架构设计,而不仅仅是API调用。 这篇文章记录我从前端视角出发,探索Agent工程化开发的学习路径和实践经验。如果你也是前端/全栈开发者,想要在AI时代找到自己的定位,这篇指南应该能帮到你。 一、认知重塑:什么是工程化Agent? 1.1 我的错误认知 vs 现实 我原来的理解: Agent = 大模型API + Prompt优化 实际上的工程化Agent: Agent = 系统架构 + 可控执行 + 安全审查 + 领域适配 + 可观测性 1.2 Agent的分层架构(医疗场景示例) 你的主战场 任务分解器 工具路由器 记忆管理器 状态监控器

OpenClaw接入模型并基于WebUI完成智能操作

OpenClaw接入自定义模型并基于WebUI完成智能操作 背景介绍 OpenClaw(原 Clawdbot)是一个开源的 AI 代理框架,支持通过配置文件或 GUI 界面进行灵活配置。安装 OpenClaw 后,用户可以通过修改工作目录下的配置文件 openclaw.json 来接入不同的 LLM 模型提供商。 OpenClaw 支持众多主流模型提供商,包括 OpenAI、Anthropic、Moonshot AI(Kimi)、OpenRouter、Vercel AI Gateway、Amazon Bedrock 等。完整的提供商目录可参考官方文档 模型提供商快速入门。 要使用自定义的提供商,需要通过 models.providers 配置进行设置。这种方式允许用户接入官方支持列表之外的其他兼容 OpenAI API 或 Anthropic 格式的模型服务。 接入配置说明 核心配置参数解析