ClawdBot环境部署:vLLM后端+Web控制台+设备授权全链路解析

ClawdBot环境部署:vLLM后端+Web控制台+设备授权全链路解析

ClawdBot 是一个你可以在自己设备上运行的个人 AI 助手,本应用使用 vLLM 提供后端模型能力。它不是云端服务,也不是需要注册账号的 SaaS 工具,而是一个真正属于你、跑在你本地或私有服务器上的智能体运行时——你可以完全掌控数据流向、模型选择、权限边界和交互逻辑。

它不像传统聊天界面那样只做“问答”,而是以「智能体网关(Agent Gateway)」为核心设计:支持多模型调度、多通道接入(Telegram / Web / CLI)、多工作区隔离、细粒度设备授权,并内置完整的模型管理、日志追踪与配置热更新能力。整个系统由三大部分构成:vLLM 驱动的高性能推理后端、基于 Gradio 构建的轻量级 Web 控制台、以及一套基于设备指纹 + Token 的双向认证授权机制。这三者共同构成了从模型加载到用户访问的完整闭环。


1. 部署前的认知准备:ClawdBot 不是“另一个 Chat UI”

在动手之前,先明确一件事:ClawdBot 的定位,和市面上大多数“一键启动大模型 Web UI”的项目有本质区别。

它不追求炫酷的前端动画,也不主打“开箱即用的对话体验”。它的核心价值在于可控性、可组合性与可审计性——你可以把它看作一个“AI 智能体操作系统”,而不是一个“AI 聊天网页”。

  • 它允许你把多个模型(Qwen、Llama、Phi 等)同时挂载,按任务类型自动路由;
  • 它支持将同一个模型暴露给不同渠道(比如 Web 界面给家人用,Telegram 给同事用),并为每个渠道分配独立权限;
  • 它的设备授权机制不是简单的登录密码,而是类似 SSH Key 的双向信任链:你的浏览器要被 ClawdBot 承认,ClawdBot 也要被你的浏览器确认;
  • 所有配置变更(包括模型切换、API 地址修改、代理设置)都可通过 JSON 文件或 Web 界面实时生效,无需重启服务。

换句话说,ClawdBot 的目标用户,不是想“试试大模型有多聪明”的新手,而是希望把 AI 能力像数据库、缓存、消息队列一样,作为基础设施嵌入自己工作流的技术实践者


2. 全链路部署实操:从容器拉取到 Web 可访问

ClawdBot 的部署流程看似简单,但每一步背后都有明确的设计意图。我们不跳过任何环节,逐层拆解。

2.1 基础环境与镜像获取

ClawdBot 官方提供预构建的 Docker 镜像,适配 x86_64 与 ARM64(含树莓派 4/5)。推荐使用 docker-compose 方式部署,便于后续扩展通道(如 Telegram、Discord)。

# 创建项目目录 mkdir -p ~/clawdbot && cd ~/clawdbot # 下载 docker-compose.yml(官方推荐模板) curl -O https://raw.githubusercontent.com/clawd-bot/clawd/main/docker-compose.yml # 启动(首次会自动拉取镜像,约 1.2GB) docker compose up -d 

镜像内已预装:

  • vLLM 0.6.3(支持 PagedAttention、Continuous Batching)
  • Qwen3-4B-Instruct-2507 模型权重(量化版,显存占用约 3.2GB)
  • Gradio 4.42(Web 控制台)
  • uvicorn + starlette(API 网关)
  • SQLite 数据库存储设备授权记录与会话日志
注意:该镜像默认不开启 GPU 加速。若你使用 NVIDIA 显卡,请确保已安装 nvidia-container-toolkit,并在 docker-compose.yml 中添加 runtime: nvidiaenvironment: NVIDIA_VISIBLE_DEVICES=all

2.2 设备授权:为什么第一次打不开 Web 页面?

这是 ClawdBot 最常被问到的问题——启动成功后访问 http://localhost:7860 显示空白或 403 错误。原因很直接:ClawdBot 默认拒绝所有未经显式授权的设备连接,这是其隐私优先设计的核心体现。

它不采用 Cookie 或 Session 登录,而是通过「设备指纹 + 一次性审批」完成首次信任建立:

  1. 启动后,ClawdBot 会在后台监听 http://localhost:18780(网关)和 http://localhost:7860(Web 控制台);
  2. 当你在浏览器中打开 http://localhost:7860,前端会向网关发起设备注册请求;
  3. 该请求被暂存在待审批队列中,状态为 pending
  4. 你需要通过 CLI 工具手动批准该设备。

执行以下命令查看待审批设备:

clawdbot devices list 

你会看到类似输出:

ID Status Fingerprint (first 16) Created At a1b2c3d4-e5f6-7890-g1h2-i3j4k5l6m7n8 pending 8a3f9c2e1d4b7f6a 2026-01-24 14:22:03 

复制 ID,执行审批:

clawdbot devices approve a1b2c3d4-e5f6-7890-g1h2-i3j4k5l6m7n8 

审批成功后,刷新页面即可正常进入 Web 控制台。

小贴士:如果你在远程服务器(如云主机)上部署,且本地没有 GUI,可使用 clawdbot dashboard 获取带 token 的临时链接:

2.3 vLLM 后端验证:确认模型已就绪

ClawdBot 的推理能力完全依赖 vLLM 提供的 OpenAI 兼容 API。默认配置下,它会启动一个本地 vLLM 服务,监听 http://localhost:8000/v1

你可以用 curl 快速验证:

curl http://localhost:8000/v1/models 

预期返回:

{ "object": "list", "data": [ { "id": "Qwen3-4B-Instruct-2507", "object": "model", "created": 1737728523, "owned_by": "vllm" } ] } 

再通过 ClawdBot CLI 查看模型注册状态:

clawdbot models list 

输出中应包含 vllm/Qwen3-4B-Instruct-2507,且 Local Auth 列为 yes,表示模型已成功挂载并可通过本地认证调用。


3. 模型配置详解:不只是换一个 model_id

ClawdBot 的模型配置分为两层:Provider 层(vLLM)Agent 层(智能体)。理解这两者的分工,是实现灵活调度的关键。

3.1 Provider 层:定义“谁来算”

位于 clawdbot.jsonmodels.providers 节点,描述的是“计算资源”的连接方式。以 vLLM 为例:

"vllm": { "baseUrl": "http://localhost:8000/v1", "apiKey": "sk-local", "api": "openai-responses", "models": [ { "id": "Qwen3-4B-Instruct-2507", "name": "Qwen3-4B-Instruct-2507" } ] } 
  • baseUrl:必须指向一个兼容 OpenAI v1 API 的服务(vLLM、Ollama、AnythingLLM 均可);
  • apiKey:仅用于本地鉴权,无实际安全意义(因服务仅监听 localhost);
  • api:指定响应格式,“openai-responses” 表示返回标准 OpenAI 格式(含 choices[0].message.content);
  • models:声明该 Provider 下可用的具体模型 ID 列表。
实践建议:如果你想接入远程 vLLM(如部署在另一台 GPU 服务器),只需修改 baseUrlhttp://192.168.1.100:8000/v1,并确保网络可达。ClawdBot 会自动复用连接池,无需额外配置。

3.2 Agent 层:定义“怎么用”

位于 clawdbot.jsonagents.defaults.model.primary 字段,决定默认智能体调用哪个模型:

"agents": { "defaults": { "model": { "primary": "vllm/Qwen3-4B-Instruct-2507" } } } 

注意这里的值是 vllm/xxx,而非单纯的 xxx。ClawdBot 使用 provider/model-id 的命名空间格式,实现跨 Provider 调度。你完全可以配置:

"primary": "ollama/llama3:8b", "fallback": "vllm/Qwen3-4B-Instruct-2507" 

当 Ollama 服务不可用时,自动降级到 vLLM。

3.3 Web 界面配置:所见即所得

ClawdBot 的 Web 控制台不仅用于聊天,更是配置中心。进入 Config → Models → Providers,你能直观看到:

  • 当前启用的 Provider 列表;
  • 每个 Provider 下已注册的模型;
  • “Test Connection” 按钮可一键验证 API 连通性;
  • “Edit” 按钮支持在线修改 baseUrlapiKey 等字段,保存后立即生效(无需重启)。

这种“配置即代码 + 配置即界面”的双模态设计,大幅降低了运维门槛。


4. Web 控制台深度体验:不止于聊天框

ClawdBot 的 Web 界面(Gradio 构建)表面简洁,实则功能密集。我们聚焦三个最易被忽略但极具实用价值的功能模块。

4.1 Workspace:你的专属知识沙盒

左侧导航栏点击 Workspace,你会看到一个文件管理器视图。这里不是上传附件的地方,而是智能体的工作上下文根目录

ClawdBot 允许你为每个会话绑定一个 workspace 路径(默认 /app/workspace),该路径下的所有文件(PDF、TXT、Markdown、CSV)都会被自动索引为 RAG 源。你无需手动切分 chunk 或启动向量库——ClawdBot 内置轻量级文本嵌入引擎(基于 sentence-transformers/all-MiniLM-L6-v2),在首次访问时完成静默索引。

例如,你将一份《Python 编程规范.pdf》拖入 workspace,随后在聊天中输入:

“帮我总结这份规范里的函数命名规则”

ClawdBot 会自动检索 PDF 内容,生成结构化回答。整个过程对用户完全透明。

4.2 Logs:可追溯的每一次调用

点击 Logs,你看到的不是滚动日志,而是一张结构化事件表:

TimeSession IDModelInput TokensOutput TokensLatencyStatus
14:32:05s-8a3f...vllm/Qwen3-4B128641.2ssuccess

每一行代表一次完整的 LLM 调用。点击某行,可展开原始请求体(含 system prompt、user message)、响应体(含完整 content)、以及底层 vLLM 的 metrics(prefill time、decode time、kv cache usage)。

这对调试非常关键:当你发现某个提示词响应缓慢,可直接对比 prefill timedecode time,快速判断是 prompt 过长(prefill 占比高),还是生成阶段卡顿(decode 占比高)。

4.3 Config:真正的“零重启配置”

Config 页面是整个系统的中枢。除模型配置外,还支持:

  • System Settings:调整最大并发数(maxConcurrent)、上下文长度上限(maxContextLength)、会话超时时间;
  • Security:开启“阅后即焚”(自动删除会话历史)、设置设备白名单、禁用特定 Provider;
  • Gateway:修改 WebSocket 端口、启用 TLS、配置反向代理头(X-Forwarded-For);
  • Custom CSS/JS:支持注入自定义样式与脚本,适配企业内网主题。

所有修改保存后,ClawdBot 会触发热重载:正在运行的会话不受影响,新请求立即应用新配置。


5. 与 MoltBot 的本质差异:两个开源项目的定位分野

文中提到的 MoltBot,虽同为 Telegram 机器人,但与 ClawdBot 在设计哲学上截然不同。这不是功能多寡的比较,而是问题域与抽象层级的根本差异

维度ClawdBotMoltBot
核心目标提供可嵌入、可编排、可审计的 AI 智能体运行时提供开箱即用、零学习成本的 Telegram 多模态翻译助手
部署形态本地/私有服务器,面向技术用户Docker 一键部署,面向普通 Telegram 用户
能力边界模型无关(支持任意 OpenAI 兼容 API)、通道可扩展(Web/CLI/Telegram/Discord)功能固化(翻译+OCR+天气+汇率),通道仅限 Telegram
配置方式JSON 配置文件 + Web GUI 双模式,支持细粒度参数控制纯环境变量(TG_BOT_TOKEN, WHISPER_MODEL),无运行时配置界面
隐私模型默认不存储消息,所有处理在本地完成,日志可关闭同样强调隐私,但 OCR/Whisper 依赖本地模型,翻译引擎需调用外部 API(LibreTranslate/Google)

简言之:

  • 如果你需要一个“能翻译图片、查汇率、聊天气”的 Telegram 小帮手,MoltBot 是更轻、更快、更省心的选择
  • 如果你需要一个“能把 Qwen 接入内部 Wiki、让销售用自然语言查 CRM、让客服自动归类工单”的可编程 AI 底座,ClawdBot 是目前少有的、真正面向工程落地的方案

它们不是竞品,而是互补——你可以用 MoltBot 快速上线一个对外服务,再用 ClawdBot 构建支撑该服务的后台智能体集群。


6. 常见问题与避坑指南

6.1 为什么 clawdbot devices list 返回空?

可能原因有两个:

  • 你尚未在浏览器中访问过 http://localhost:7860,因此没有触发设备注册请求;
  • 你修改了 clawdbot.json 中的 gateway.bind 地址(如改为 0.0.0.0:18780),但未同步更新 Web 前端的网关地址。此时需检查 /app/clawdbot.json 中的 web.gatewayUrl 字段是否匹配。

6.2 模型切换后,Web 界面仍调用旧模型?

ClawdBot 的模型路由策略是“会话级绑定”。当你在 Web 界面中开始一个新对话时,它会读取当前 agents.defaults.model.primary 的值。但已有会话不会自动切换模型。解决方法:

  • 关闭当前聊天窗口,新建一个;
  • 或在 Config → Agents → Defaults 中修改 model.primary,然后点击右上角“Reload Agents”。

6.3 如何在无显示器的服务器上完成设备授权?

无需图形界面。ClawdBot CLI 支持离线生成设备凭证:

# 在服务器上生成一个新设备凭证(不依赖浏览器) clawdbot devices generate --name "headless-server" # 输出类似: # Device ID: d4e5f6a7-b8c9-0123-d4e5-f6a7b8c90123 # Fingerprint: 9b4c7d2e1f6a8c90 # Approval Token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... # 将 Approval Token 复制到本地浏览器访问: # http://localhost:7860/approve?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... 

7. 总结:ClawdBot 的价值不在“能做什么”,而在“让你决定怎么做”

ClawdBot 的部署过程,本质上是一次对 AI 基础设施自主权的 reclaim。它不承诺“最强性能”或“最多模型”,而是提供一套清晰、稳定、可验证的契约:

  • 你提供硬件,它负责高效调度;
  • 你提供模型,它负责统一接入;
  • 你定义规则,它负责严格执行;
  • 你掌握数据,它绝不越界留存。

docker compose upclawdbot devices approve,再到 clawdbot models list 看到绿色的 yes,这条链路上的每一个环节,都是对你技术主权的一次确认。

它不是一个终点,而是一个起点——当你不再被“能不能用”困扰,才能真正开始思考:“我该让它做什么?”


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 ZEEKLOG星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Read more

小显存福音:LLaMA Factory+QLoRA微调70B模型实测

小显存福音:LLaMA Factory+QLoRA微调70B模型实测 对于许多研究者来说,想要在消费级显卡上实验大参数模型一直是个难题。常规方法往往连模型加载都做不到,更别提进行微调了。本文将介绍如何使用LLaMA Factory框架结合QLoRA技术,在有限显存条件下实现对70B大模型的微调。这类任务通常需要GPU环境,目前ZEEKLOG算力平台提供了包含该镜像的预置环境,可快速部署验证。 为什么需要LLaMA Factory+QLoRA 大模型微调一直是AI研究的热点,但面临两个主要挑战: * 显存需求大:70B参数的模型在FP16精度下就需要140GB显存,远超消费级显卡容量 * 技术门槛高:需要手动实现量化、梯度检查点等优化技术 LLaMA Factory框架通过以下方式解决了这些问题: * 内置QLoRA技术:通过低秩适配器大幅减少可训练参数 * 自动优化:集成量化、梯度检查点等显存优化技术 * 开箱即用:预置多种微调方法和数据集 环境准备与镜像部署 在开始前,我们需要准备一个支持CUDA的GPU环境。以下是具体步骤: 1. 选择包含LLaM

Java在AI时代的崛起:从传统机器学习到AIGC的全栈解决方案

Java在AI时代的崛起:从传统机器学习到AIGC的全栈解决方案

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[[email protected]] 📱个人微信:15279484656 🌐个人导航网站:www.forff.top 💡座右铭:总有人要赢。为什么不能是我呢? * 专栏导航: 码农阿豪系列专栏导航 面试专栏:收集了java相关高频面试题,面试实战总结🍻🎉🖥️ Spring5系列专栏:整理了Spring5重要知识点与实战演练,有案例可直接使用🚀🔧💻 Redis专栏:Redis从零到一学习分享,经验总结,案例实战💐📝💡 全栈系列专栏:海纳百川有容乃大,可能你想要的东西里面都有🤸🌱🚀 目录 * Java在AI时代的崛起:从传统机器学习到AIGC的全栈解决方案 * 一、Java AI生态概览:多样化的技术选择 * 1.1 深度学习框架:接轨主流AI技术 * Deep Java Library

LLaMA Factory全解析:让大模型“改装”像组装电脑一样简单

引言:当每个人都能定制自己的专属AI 朋友们,想象一下这样的场景:你拿到了一台性能强大的通用电脑(好比ChatGPT、LLaMA这样的通用大模型),但它运行的是标准操作系统,装的是通用软件。现在,你需要它变成一台专业的视频剪辑工作站,或者一台金融数据分析服务器——该怎么办? 传统方法是“重装系统”(全量微调):耗时耗力,需要专业团队,而且可能把原来好用的功能搞坏。 现代方法是“加装专业配件”(参数高效微调):不改变核心系统,只增加特定的硬件模块或软件插件。 今天我要介绍的LLaMA Factory,就是大模型领域的“专业改装工具箱”。它让微调百亿参数的大模型,变得像给电脑加内存、装显卡一样简单可控。无论你是只有一张消费级显卡的个人开发者,还是需要定制企业级AI的团队,这个工具都可能改变你的工作方式。 技术原理:理解LLaMA Factory的“增效不增负”哲学 核心理念:为什么我们不需要“重装整个系统”? 要理解LLaMA Factory的价值,首先要明白大模型微调的一个关键发现:当大模型适应新任务时,只需要调整很小一部分参数就够了。 一个生动的类比: 假设你是一位精

QtCreator配置AI辅助编程插件github copilot保姆级教程

QtCreator配置AI辅助编程插件github copilot保姆级教程

文章目录 * 概要 * 配置流程 概要 Free版‌免费使用,每月限额 2000 次代码补全 + 50 次聊天交互‌集成于 VS Code,支持跨文件编辑、终端协助及自定义指令‌ ‌ Pro版‌‌个人用户‌:10 美元/月 或 100 美元/年‌ ‌特殊群体‌:学生/教师/热门开源维护者可免费使用 Pro 版‌ ‌ Business版‌19 美元/月/用户,按月计费‌面向组织或企业中的团队订阅‌ ‌ Enterprise版‌39 美元/月/用户,按月计费‌企业可按需为不同组织分配 Business 或 Enterprise 订阅‌ 官方地址