1. 为什么企业知识库接入 OpenClaw 总是卡在 Key 上
OpenClaw 这类 Agent 框架最吸引人的地方,是它能把「对话」变成「执行」——你问一句,它去调工具、查数据、跑流程。但真把它放进企业环境,第一个撞上的墙往往不是模型能力,而是数据够不着。企业文档躺在 RAGFlow 的知识库里,OpenClaw 却只能干聊,回答全靠模型自己编,业务同事一问细节就露馅。
RAGFlow 正好补上这块。它做的是深度文档解析和精准检索,把 PDF、DOCX、TXT 这些散落的资料切成可召回的片段,再通过 API 暴露出来。OpenClaw 通过 RAGFlow Skill 就能在对话里实时检索企业知识库,从「通用助手」变成「懂业务的助手」。
但这里有个很现实的麻烦:一旦你同时用 OpenClaw、RAGFlow,再加上后面可能接的别的模型服务,Key 就开始满天飞。RAGFlow 一个 Key、模型服务一个 Key、别的工具再来一个 Key,每个都要写进不同的.env、config.toml、settings.json,改一处忘一处,排查起来能耗掉一整个下午。我试过最崩溃的一次,是三个配置文件里同一个 Key 写了两遍不一样的值,Agent 一直报 401,查了四十分钟才发现是复制时少了一位。
这篇要解决的就是这件事:用 TaoToken 做统一的 Key 和 API 通道,把 OpenClaw 对模型侧的调用收敛到一个入口,RAGFlow 只管知识库,两边各司其职。下面会给出可直接复制的config.toml与settings.json骨架、ClawHub Skill 的挂载步骤,以及一次端到端的检索验证,让你确认「龙虾」真的读懂了企业文档。
2. TaoToken 在整条链路里扮演什么角色
先把架构说清楚,不然后面配置容易懵。
整条链路是这样的:用户在飞书或 Discord 里对 OpenClaw 说话,OpenClaw 判断需要查企业知识,就调用 RAGFlow Skill 去检索;同时 OpenClaw 自己作为 Agent,需要调用大模型来做推理、规划、生成回答——这一层模型调用,走的就是 TaoToken 的统一通道。
TaoToken 在这里的价值是「一个 Key 管模型侧」。你不用为每个模型服务单独维护凭证,OpenClaw 的模型调用统一指向 TaoToken 的 API 地址,Key 也只填一个。RAGFlow 那边仍然用它自己的 API Key,因为那是知识库的访问凭证,和模型调用是两回事。这样职责就清晰了:TaoToken 管「脑子怎么想」,RAGFlow 管「资料从哪来」。
对 OpenClaw 来说,它需要的是一个兼容的模型 API 入口。TaoToken 提供的就是这个入口,地址是https://taotoken.net/api,模型对话、Coding Plan、控制台、API Keys 都有对应的 deep link,后面 CTA 会分流。
需要提前准备的东西不多:一个 TaoToken 账号并生成 API Key,一个能访问的 RAGFlow 实例及其 API Key,OpenClaw 已经装好并能启动 Gateway。RAGFlow Skill 从 ClawHub 拿,地址在下一节。
注意:RAGFlow 的 API Key 和 TaoToken 的 API Key 是两个独立凭证,不要混用,也不要互相填错位置。这是最常见的翻车点。
3. 可复制配置:config.toml 与 settings.json 骨架
这一节是核心,配置写对了,后面基本就顺了。OpenClaw 的配置分两块:一块是 Agent 运行时的config.toml,管模型通道;一块是 Skill 相关的settings.json,管工具挂载和参数。
先看config.toml。这个文件通常在 OpenClaw 的工作区根目录,或者~/.openclaw/下,具体看你安装方式。重点是[model]段,把 base_url 指向 TaoToken,api_key 填 TaoToken 生成的 Key:
# ~/.openclaw/config.toml [model] # 模型调用统一走 TaoToken 通道 provider = "openai-compatible" base_url = "https://taotoken.net/api" api_key = "sk-your-taotoken-key" # 按你实际可用的模型名填写 model = "your-model-name" timeout = 120 [agent] name = "openclaw-ragflow" workspace = "~/.openclaw/workspace" # 开启工具调用,RAGFlow Skill 依赖这个 enable_tools = true [gateway] host = "0.0.0.0" port = 8080这里provider用openai-compatible是因为 TaoToken 的接口兼容 OpenAI 风格,OpenClaw 直接按这个协议发请求就行。api_key换成你在 TaoToken 控制台生成的,别把示例值原样留着。
再看settings.json。这个文件一般放在 Skill 目录或工作区配置目录下,管的是 Skill 的启用和参数。RAGFlow Skill 挂载后,需要在这里声明它,并把 RAGFlow 的地址和 Key 传进去:
{ "skills": { "ragflow": { "enabled": true, "entry": "skills/ragflow-skill/index.js", "env": { "RAGFLOW_API_URL": "http://your-ragflow-ip", "RAGFLOW_API_KEY": "ragflow-your-api-key-here" }, "timeout": 60, "retry": 2 } }, "model_channel": { "base_url": "https://taotoken.net/api", "api_key_ref": "config.toml:model.api_key" } }注意api_key_ref这个写法,它的意思是模型 Key 不在 settings.json 里重复写一遍,而是引用 config.toml 里的值。这样你只需要维护一处 Key,改的时候不会漏。这是我踩过坑之后固定下来的做法——之前两个文件各写一份,改了一个忘了另一个,排查半天。
RAGFlow Skill 自己的.env文件也要填,内容就是上面 env 段那两项。如果你更习惯用.env,可以把 settings.json 里的 env 段去掉,改成在 Skill 目录下放.env:
# skills/ragflow-skill/.env RAGFLOW_API_URL=http://your-ragflow-ip RAGFLOW_API_KEY=ragflow-your-api-key-here两种方式选一种就行,别同时写,否则加载顺序不同可能导致覆盖,行为不好预测。
4. ClawHub Skill 挂载与端到端检索验证
配置写完,接下来把 Skill 挂上并验证。
第一步,从 ClawHub 获取 RAGFlow Skill。地址是https://clawhub.ai/yingfeng/ragflow-skill,下载后解压到 OpenClaw 工作区的 skills 目录,默认路径是~/.openclaw/workspace/skills。解压完确认目录结构里有入口文件和.env:
cd ~/.openclaw/workspace/skills # 解压后应看到 ragflow-skill 目录 ls ragflow-skill # 预期输出包含 index.js、.env、package.json 等第二步,填好.env里的 RAGFlow 地址和 Key,也就是上一节说的那两项。RAGFlow 的 Key 在个人主页点 API 就能拿到,URL 填你部署实例的地址,带端口。
第三步,重启 OpenClaw Gateway,让 Skill 初始化并加载:
# 如果 Gateway 是 systemd 管理 systemctl restart openclaw-gateway # 如果是前台进程,先停掉再启动 openclaw gateway stop openclaw gateway start重启后看日志,确认 Skill 加载成功、模型通道连通。日志里应该能看到类似skill ragflow loaded和模型请求返回 200 的记录。如果模型通道报错,多半是 config.toml 里的 base_url 或 api_key 有问题;如果 Skill 报错,多半是.env路径或 RAGFlow 地址不通。
第四步,做一次端到端检索验证。这是最关键的一步,别跳过。在 OpenClaw 的对话入口(比如飞书机器人)里发一句需要查企业文档才能回答的问题,比如「我们产品的退款政策是怎么规定的」。如果 RAGFlow 知识库里确实有这份文档,Agent 应该能检索到并给出有依据的回答,而不是泛泛而谈。
你也可以直接在 OpenClaw 的调试接口里发请求,确认工具调用链:
curl -X POST http://localhost:8080/chat \ -H "Content-Type: application/json" \ -d '{ "message": "查一下我们知识库里关于退款政策的文档", "session_id": "test-001" }'返回里如果包含tool_calls且指向 ragflow 的检索动作,说明 Skill 被正确调用了。再结合回答内容是否引用了具体文档片段,就能判断整条链路是否打通。
5. 本篇常见错排查
配置和验证过程中,几个错误出现频率最高,集中说一下。
401 或 403,模型侧报错。先查 config.toml 里的api_key是不是 TaoToken 的 Key,别把 RAGFlow 的 Key 填进去了。再确认 base_url 是https://taotoken.net/api,末尾不要多加斜杠或路径。如果 Key 确认没错,去 TaoToken 控制台看这个 Key 是否还有效、额度是否用完。
Skill 加载失败,日志提示找不到入口。检查解压路径是不是~/.openclaw/workspace/skills/ragflow-skill,settings.json 里的entry路径要和实际文件对得上。有时候解压多套了一层目录,导致路径变成ragflow-skill/ragflow-skill/index.js,这种要手动调整。
检索返回空,但 RAGFlow 里明明有文档。先确认 RAGFlow 实例的地址和端口能从 OpenClaw 所在机器访问通,用 curl 直接打 RAGFlow 的 API 试试。再确认知识库里的文档已经完成解析,没解析的文档检索不到。还有一种是检索范围没指定对,跨库检索和指定库检索行为不同,检查 Skill 调用时传的参数。
改了配置不生效。OpenClaw 的 Skill 和模型配置大多在启动时加载,改完必须重启 Gateway。只改文件不重启,等于没改。这个坑我踩过不止一次,后来养成习惯:改完配置先重启,再看日志。
Key 重复维护导致不一致。如果 settings.json 和 config.toml 里都写了模型 Key,改的时候容易漏。用前面说的api_key_ref引用方式,只维护一处,能省掉这类问题。
6. 把 Key 收拢之后,Agent 才真正能进业务
走到这里,你应该已经能让 OpenClaw 通过 RAGFlow 检索企业文档,同时模型调用统一走 TaoToken 通道。整条链路里,RAGFlow 负责知识,TaoToken 负责模型入口,OpenClaw 负责编排和执行,三者边界清楚,Key 也不再分散。
如果你还在接入阶段,建议先把模型通道和 API Keys 配好,再去挂 Skill,顺序反了容易在排查时分不清是哪一层的问题。模型对话能力可以先在模型对话入口验证,确认通道通了再往下走。
对于要长期跑编码任务或 Agent 工作流的场景,Coding Plan 会更合适,它面向的就是这种持续调用、多工具协作的用法。接入文档里有完整的参数说明和示例,配置卡住的时候对着查比盲试快得多。
最后留一个实用习惯:每次改完配置,先重启 Gateway,再发一条需要检索的测试问题,看返回里有没有工具调用记录。这个动作花不了一分钟,但能帮你把问题挡在业务同事发现之前。