QClaw 定档停运:本地 Agent 用户该如何备份、解耦与迁移

2026-09-24 17 预计阅读时间: 1 分钟
来源: oschina.net AI 摘要 Original link

Disclaimer: This article is an AI-assisted summary. Read it together with the original source when precision matters. The summary may omit context, version differences, or edge cases and is not official documentation.

预计阅读时间:10 分钟

腾讯电脑管家 QClaw 团队宣布,这款基于 OpenClaw 的本地 Agent 产品将在 2026 年 12 月 24 日 00:00 正式停止运营。公告发布后,新用户注册以及订阅购买、续费已经停止;已开启自动续费的用户无需手动取消,后续扣款会自动停止。现有注册用户和已购买订阅的用户,在停运前仍可继续使用。

这给用户留下了一段迁移窗口,但真正需要处理的不只是“换一个聊天工具”。本地 Agent 往往连接模型、提示词、知识库、插件、自动化脚本和工作目录。任何一层被锁在特定产品里,停服时都会变成迁移成本。

先看清停运影响的边界

从已披露的信息看,当前时间线可以拆成两个阶段:

  • 公告发布后:停止新用户注册,停止订阅购买与续费。
  • 2026 年 12 月 24 日 00:00:QClaw 正式停止运营。
  • 停运之前:已注册及已购买订阅的用户仍可正常使用。
  • 自动续费:无需用户手动取消,扣款将自动停止。

至于账号积分的具体有效期、是否支持导出、停运后客户端还能否离线运行,以及云端同步数据如何处理,应以完整公告和产品内提示为准。尤其不要把“现在还能打开”理解为“停运后仍能永久使用”:登录鉴权、模型转发、插件市场和配置同步都可能依赖服务端。

对团队用户而言,还应确认一件事:QClaw 是否进入了内部开发、测试或运营流程。如果某个定时任务、知识库问答入口或者脚本依赖它,停运影响的就不只是个人聊天记录。

被放弃的是产品路线,不等于本地 Agent 没有价值

QClaw 的关停说明这条具体的产品化路线被终止,但不能直接推导出“本地 Agent 不成立”。本地运行仍然有明确价值,例如数据不离开设备、内网工具接入、离线推理,以及对执行环境的精细控制。

问题通常出在产品与基础设施耦合过深。一个可迁移的 Agent 系统至少应该把下面四层分开:

  1. 模型层:本地模型、云端模型或企业模型网关可以替换。
  2. Agent 编排层:提示词、工具定义与工作流不依赖某个桌面客户端。
  3. 数据层:对话、知识库原文件和向量索引能够单独备份或重建。
  4. 执行层:Shell、浏览器、文件系统等高权限工具有独立的授权与审计机制。

迁移时不要急着寻找一个外观完全相同的替代品。更可靠的目标,是让下一套系统即使再次停运,也只需要更换模型地址或前端,而不用重写所有工作流。

现在可以做的备份与资产盘点

第一步是列出真正需要保留的资产:原始文档、提示词、工具配置、Agent 工作流、对话记录、模型参数,以及自动化任务。向量数据库通常可以从原始文档重建,因此原文档和切分规则往往比索引文件更重要。

如果 QClaw 的数据目录能够在本机找到,可以先做一份带校验值的归档。下面的命令不假设 QClaw 使用某个固定路径;运行前必须把 QC_DATA_DIR 改成实际目录,并检查其中是否包含令牌、Cookie 或其他敏感信息。

#!/usr/bin/env bash
set -euo pipefail

export QC_DATA_DIR="$HOME/path/to/qclaw-data"
export BACKUP_DIR="$HOME/qclaw-backups"

if [[ ! -d "$QC_DATA_DIR" ]]; then
  echo "Data directory not found: $QC_DATA_DIR" >&2
  exit 1
fi

mkdir -p "$BACKUP_DIR"
STAMP="$(date +%Y%m%d-%H%M%S)"
ARCHIVE="$BACKUP_DIR/qclaw-$STAMP.tar.gz"

tar \
  --exclude='cache' \
  --exclude='*.log' \
  --exclude='.DS_Store' \
  -czf "$ARCHIVE" \
  -C "$(dirname "$QC_DATA_DIR")" \
  "$(basename "$QC_DATA_DIR")"

sha256sum "$ARCHIVE" > "$ARCHIVE.sha256"
echo "Backup created: $ARCHIVE"
echo "Verify with: sha256sum -c $ARCHIVE.sha256"

归档前应先退出 QClaw,避免数据库文件正在写入。归档后还要实际解压一次,确认文件可读。若目录中包含访问令牌,备份文件应加密保存,不能直接上传到公共网盘或代码仓库。

对于无法直接导出的内容,可以手动保存为 Markdown、JSON 或 CSV,并记录导出日期。截图只能作为补充,不适合作为可搜索、可迁移的数据格式。

用兼容接口降低下一次迁移成本

如果新的本地模型服务或企业网关支持 OpenAI 风格的 Chat Completions 接口,可以把 Agent 调用收敛到一个很薄的适配层。下面是一个仅使用 Python 标准库的最小连通性测试。

这是一个通用迁移示例,不是 QClaw 官方接口,也不代表 QClaw 可以直接使用该 API。运行前需要把地址、模型名和令牌改成目标服务提供的值。

#!/usr/bin/env python3
import json
import os
import urllib.error
import urllib.request

base_url = os.getenv("AGENT_BASE_URL", "http://127.0.0.1:8000/v1").rstrip("/")
model = os.getenv("AGENT_MODEL", "local-model")
api_key = os.getenv("AGENT_API_KEY", "local-dev-key")

payload = {
    "model": model,
    "messages": [
        {
            "role": "system",
            "content": "你是内部开发助手。回答时给出可执行步骤,并明确风险。"
        },
        {
            "role": "user",
            "content": "请用三点说明如何验证本地 Agent 的知识库迁移是否完整。"
        }
    ],
    "temperature": 0.2
}

request = urllib.request.Request(
    f"{base_url}/chat/completions",
    data=json.dumps(payload).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    },
    method="POST"
)

try:
    with urllib.request.urlopen(request, timeout=60) as response:
        result = json.load(response)
        print(result["choices"][0]["message"]["content"])
except urllib.error.HTTPError as exc:
    print(f"HTTP {exc.code}: {exc.read().decode('utf-8', errors='replace')}")
    raise SystemExit(1)
except urllib.error.URLError as exc:
    print(f"Connection failed: {exc.reason}")
    raise SystemExit(1)

保存为 agent_smoke_test.py 后,可以这样运行:

export AGENT_BASE_URL="http://127.0.0.1:8000/v1"
export AGENT_MODEL="your-model-name"
export AGENT_API_KEY="your-token"
python3 agent_smoke_test.py

这种做法的重点不是绑定某一种接口标准,而是把模型地址、模型名和凭据移出业务代码。提示词、测试问题和预期结果也应进入版本控制,但真实密钥不能提交到仓库。

迁移知识库时,还可以建立一组固定测试题,分别覆盖:精确事实、跨文档关联、权限隔离和“文档中没有答案”的情况。只有新旧系统在同一测试集上的结果可对比,迁移才不只是“页面能打开”。

在停运日前完成这份清单

  • 确认订阅、积分及账号数据的官方处理规则。
  • 导出对话、提示词、知识库原文档和工具配置。
  • 识别 QClaw 依赖的云端能力,避免误判为纯离线功能。
  • 盘点团队脚本、定时任务和内部流程中的调用点。
  • 为备份生成校验值,并进行一次恢复演练。
  • 选择替代方案时,验证模型接口、数据格式和工具协议是否可替换。
  • 对文件、Shell、浏览器等高权限工具重新设置最小权限。
  • 在正式切换前并行运行新旧系统,用固定测试集比较结果。

QClaw 的停运窗口足够长,但迁移越晚,可验证的时间就越少。最值得吸取的经验不是押注另一款“永不关停”的 Agent,而是把数据、模型和工作流掌握在自己手里,让任何单一产品都成为可替换部件。


相关推荐