ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

OpenClaw + QMD + Azure + TG 安装:TaoToken 统一 Key 配置与验证

OpenClaw + QMD + Azure + TG 安装:TaoToken 统一 Key 配置与验证 1. OpenClaw QMD Azure TG 这套链路到底在解决什么问题OpenClaw 是一个可自托管的 AI Agent 网关它把模型调用、工具执行、记忆检索和消息通道整合到一个进程里QMD 是本地文档索引与语义检索组件负责把工作区里的 Markdown、TXT 变成可被 Agent 引用的记忆库Azure 提供 OpenAI 兼容的模型端点Telegram 则作为远程交互与命令审批的入口。把这四样拼起来你得到的是一个能在服务器上长期运行、通过 TG 对话、带本地记忆、模型走 Azure 的私人助理。适合谁手里有一台 Ubuntu 服务器、希望 Agent 数据不出自己机器、又不想每次手动敲命令的开发者。整套链路的关键难点不在单个组件安装而在“统一 Key 与 API 通道”的配置——模型、记忆、通道三处都要能连通任何一处鉴权或地址写错表现都是 Agent 沉默或报 401。我试过把这套链路拆成两段来调先让 OpenClaw 单独跑通 Azure 模型再挂 QMD 和 TG。这样排障时能快速定位是哪一层断了。下面按“系统准备 → TaoToken 统一 Key → 配置文件骨架 → 验证 → 排错”的顺序走目标是一次性跑通多组件联调。2. TaoToken 统一 Key 与 API 通道前置准备TaoToken 在这里的角色是统一模型接入层你不需要在 OpenClaw 里分别维护 Azure、其他厂商的多套 Key而是通过一个统一 API 通道拿到兼容 OpenAI 协议的 baseUrl 和 Key再在 OpenClaw 的 provider 配置里指向它。官网入口是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 根地址是 https://taotoken.net/api 。操作顺序建议这样先注册并进入控制台创建 API Key再确认你要用的模型 ID最后回到服务器写配置。控制台地址 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite API Keys 管理页 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。如果你打算长期跑编码类 Agent可以顺带看下 Coding Plan 页面 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。注意Key 只在创建时完整显示一次复制后立刻存进服务器的环境变量或配置文件不要贴在聊天记录里。系统初始化部分Ubuntu 22.04 上先补齐基础工具和防火墙apt update apt upgrade -y apt install -y curl wget vim git unzip lrzsz ufw ffmpeg ufw enable ufw allow 22/tcp ufw status再装 fail2ban 防暴力破解编辑/etc/fail2ban/jail.local[sshd] enabled true port ssh logpath %(sshd_log)s maxretry 5 findtime 600 bantime 3600systemctl restart fail2ban systemctl enable fail2ban fail2ban-client status sshd内存小的机器先加 swap否则 QMD 建索引时容易被 OOM 杀掉fallocate -l 4G /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfile echo /swapfile none swap sw 0 0 /etc/fstab free -h3. 安装 OpenClaw 与 QMD 并写 settings.json / config.toml 骨架先装 OpenClaw官方脚本会自动带上 Node.js 和 npm 运行环境curl -fsSL https://openclaw.ai/install.sh | bash openclaw --version openclaw gateway status推荐顺序是先 OpenClaw 再 QMD因为 QMD 的索引路径要指向 OpenClaw 的工作区。装 QMDcd /root git clone https://github.com/tobi/qmd.git cd qmd npm install npm run build ln -s /root/qmd/dist/cli/qmd.js /usr/local/bin/qmd qmd建索引并做一次查询测试node /root/qmd/dist/cli/qmd.js collection add /root/.openclaw/workspace --name workspace-index --mask *.md node /root/qmd/dist/cli/qmd.js embed workspace-index qmd query VPS接下来是核心的配置骨架。OpenClaw 主配置在/root/.openclaw/openclaw.json模型 provider 指向 TaoToken 统一通道时把 baseUrl 写成https://taotoken.net/apiapiKey 填你在控制台创建的 Key{ models: { mode: merge, providers: { taotoken: { baseUrl: https://taotoken.net/api, apiKey: 你的TaoToken_API_KEY, api: openai-responses, authHeader: true, models: [ { id: gpt-5.3-chat, name: GPT-5.3 Chat, reasoning: false, input: [text, image], contextWindow: 128000, maxTokens: 4096 } ] } } }, agents: { defaults: { model: { primary: taotoken/gpt-5.3-chat }, workspace: /root/.openclaw/workspace, compaction: { mode: safeguard }, maxConcurrent: 4 } } }如果你更习惯 TOML 风格管理本地参数可以单独维护一份config.toml作为环境变量与路径的映射再由启动脚本注入[taotoken] base_url https://taotoken.net/api api_key_env TAOTOKEN_API_KEY model gpt-5.3-chat [qmd] command qmd index_path /root/.openclaw/workspace search_mode search [gateway] port 18789 mode local bind loopbackMemory 段挂 QMD{ memory: { backend: qmd, citations: auto, qmd: { command: qmd, searchMode: search, paths: [ { path: /root/.openclaw/workspace, name: workspace, pattern: **/*.{md,txt} } ], update: { interval: 60m, debounceMs: 150000, onBoot: true }, limits: { maxResults: 6, maxSnippetChars: 6000, maxInjectedChars: 36000, timeoutMs: 100000 } } } }Telegram 通道与命令审批{ channels: { telegram: { enabled: true, dmPolicy: allowlist, botToken: 你的Telegram_BOT_TOKEN, allowFrom: [你的Telegram用户ID], groupPolicy: disabled, streaming: partial, execApprovals: { enabled: true, approvers: [你的Telegram用户ID], target: dm } } }, gateway: { port: 18789, mode: local, bind: loopback, auth: { mode: token, token: 你的OpenClaw_GATEWAY_TOKEN } } }Bot Token 在 Telegram 里找 BotFather执行/newbot拿到用户 ID 找 userinfobot 发/start获取。拿到后记得在 BotFather 里执行/setprivacy选中你的机器人并选择 Enable否则群组消息行为会不符合预期。4. CC Switch / Cline 侧配置与连通性验证如果你在本地用 CC Switch 或 Cline 作为客户端连到这套网关思路是一样的把它们的模型端点指向 TaoToken 统一通道Key 用同一个。Cline 的配置项里填 baseUrlhttps://taotoken.net/api、apiKey 用你的 TaoToken Key、模型 ID 与 OpenClaw 里保持一致。CC Switch 侧则把 provider 的 base_url 和 api_key 对齐避免出现“网关能跑、客户端 401”的割裂。验证分三步走。第一步验证模型通道用 curl 直接打 TaoToken 的兼容端点curl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -H Content-Type: application/json \ -d { model: gpt-5.3-chat, messages: [{role: user, content: ping}] }返回带choices字段即通道正常。第二步验证网关openclaw gateway status openclaw gateway restart journalctl -u openclaw -f第三步验证 TG 链路在 Telegram 里给你的机器人发一条消息观察日志里是否出现入站事件以及 Agent 是否回复。如果开了 execApprovals让 Agent 执行一条 shell 命令确认审批请求发到了你的 DM你点确认后才真正执行。5. 本篇常见报错排查401 / invalid api key九成是 Key 复制时带了空格或 baseUrl 写成了带/v1的完整路径导致拼接重复。TaoToken 的 baseUrl 用https://taotoken.net/api让客户端自己拼/v1/chat/completions。QMD 索引为空或 query 无结果先确认qmd query VPS在命令行能出结果再检查 memory.qmd.paths 里的 path 是否真实存在、pattern 是否匹配到文件。索引没 embed 时检索会返回空重新跑一次qmd embed workspace-index。Telegram 机器人不回复检查 botToken 是否完整、allowFrom 里的用户 ID 是否是你当前账号、dmPolicy 是否把你自己挡在外面。日志里如果看到allowlist reject就是 ID 不匹配。Gateway 起不来 / 端口占用bind: loopback表示只监听本机如果你从外部访问会连不上这是预期行为。端口冲突时改 gateway.port并同步改客户端。内存不足被 killQMD 建索引阶段内存峰值高先确认 swap 已生效free -h看 Swap 行再考虑调小 maxInjectedChars 或分批建索引。模型名不匹配provider 里 models[].id 和 agents.defaults.model.primary 必须严格对应写成taotoken/gpt-5.3-chat这种provider/model格式少一段就报 model not found。6. 后续接入与长期使用建议跑通之后日常维护主要盯三件事QMD 索引是否按 interval 自动更新、TG 审批是否只对你开放、以及模型通道的 Key 是否需要轮换。如果你打算把这套网关长期用于编码或 Agent 任务可以走 Coding Plan 通道 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 来统一管理额度需要新增或更换 Key 时到 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 操作接入细节和参数说明查 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。想先在网页里验证模型是否可用用模型对话页 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentchatutm_campaignrewrite 发一条消息即可确认通道没问题再回到服务器调 OpenClaw。最后留一个实用习惯每次改完 openclaw.json先openclaw gateway restart再journalctl -u openclaw -f盯十秒日志确认没有鉴权和路径报错再去 TG 里发消息。这样能把大部分配置问题挡在联调之前。
返回列表