1. OpenClaw 说话没风格,先别急着改 SOUL.md
你给 OpenClaw 写了一份挺满意的 SOUL.md,里面明确要求“回答简洁直接、不废话、技术术语保留英文”,结果它今天干练得像资深工程师,明天又啰嗦得像客服机器人。你反复检查人格文件,措辞没变、结构没动,可风格就是稳不住。这种“风格漂移”在 OpenClaw 社群里被讨论得很多,多数人第一反应是 SOUL.md 写得不够细,于是不断加规则、加例子、加底线,最后文件膨胀到两千字,问题依旧。
我试过把同一份 SOUL.md 挂到两个不同的模型通道上跑,一个通道下风格稳定,另一个通道下时好时坏。这说明风格漂移未必是人格文件的问题,而可能是模型请求本身没有走一条稳定的通道。OpenClaw 的模型调用依赖~/.openclaw/openclaw.json里models.providers的配置,如果 baseUrl 指向的端点响应不稳定、返回的模型版本不一致,或者中途被降级到别的模型,那么无论 SOUL.md 写得多好,AI 的“性格”都会跟着通道一起抖。
这篇走排障视角,把“风格漂移”拆成两条排查路径:先确认模型请求走的是不是稳定通道,再回头看人格文件。适合已经装好 OpenClaw、配过 SOUL.md 但发现风格不稳定的用户。核心操作是把模型通道切到 TaoToken 的 API 端点,用openclaw doctor校验配置,再补 SOUL.md 模板。全程命令可复制,不需要重启网关。
2. 前置:TaoToken Key 与通道定位
TaoToken 在这里的角色是模型请求的统一入口。OpenClaw 本身不绑定某一家模型供应商,它通过models.providers里的 baseUrl 和 apiKey 去请求模型。你把 baseUrl 指向 TaoToken 的 API 地址,apiKey 填 TaoToken 的 Key,OpenClaw 发出的每一次模型请求就会经过这条通道。通道稳定,模型返回的版本和风格才稳定,SOUL.md 里定义的沟通风格才有机会被稳定执行。
先去 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 创建一个 Key。创建完成后你会拿到一串以sk-开头的密钥,先复制到剪贴板,后面要填进配置文件。注意这个 Key 只显示一次,建议先存到密码管理器里。
TaoToken 的 API 端点是 https://taotoken.net/api,这个地址后面要填到openclaw.json的baseUrl字段。不要在这个地址后面手动加/v1或/chat/completions,OpenClaw 会根据api字段自动拼接路径。如果你填错路径,openclaw doctor会报 schema 或连接错误,这是后面排障章节要处理的情况。
如果你还想在配置前先验证 Key 是否可用,可以打开模型对话页面发一条测试消息,确认 Key 有额度、能正常返回。这一步不是必须的,但能帮你把“Key 无效”和“配置写错”两类问题提前分开。
3. 可复制配置:把模型通道切到 TaoToken
打开~/.openclaw/openclaw.json,找到models这一段。OpenClaw 的配置是 JSON5 格式,允许写注释和尾逗号,所以你可以直接在文件里加说明。下面是一份最小可用的models.providers配置,把 baseUrl 指向 TaoToken,apiKey 用你的 Key:
{ "models": { "mode": "merge", "providers": { "taotoken": { "baseUrl": "https://taotoken.net/api", "apiKey": "sk-你的TaoToken密钥", "api": "openai-completions", "models": [ { "id": "claude-sonnet-4-5", "name": "Claude Sonnet 4.5" }, { "id": "gpt-5.2", "name": "GPT-5.2" } ] } } } }几个字段说明。mode设为merge表示与默认配置合并,保留其他未指定的供应商;如果你只想用 TaoToken 这一条通道,可以改成replace。api字段填openai-completions,这是 OpenClaw 对 OpenAI 兼容接口的调用方式,TaoToken 的端点兼容这个协议。models数组里列出你打算用的模型 id,id 要和 TaoToken 支持的模型名一致,写错会导致请求返回 404 或模型不存在。
保存文件后,OpenClaw 的 Gateway 会监视openclaw.json并自动应用更改,这就是热重载。你不需要手动重启网关,改完保存即可。如果你不确定热重载有没有触发,可以运行openclaw status看 Gateway 是否在运行,再运行openclaw doctor做一次 schema 校验。
如果你更习惯用命令行改配置,也可以用openclaw config set系列命令,避免手改 JSON 时漏逗号:
openclaw config set models.providers.taotoken.baseUrl "https://taotoken.net/api" openclaw config set models.providers.taotoken.apiKey "sk-你的TaoToken密钥" openclaw config set models.providers.taotoken.api "openai-completions"命令行方式适合脚本化配置,但models数组里的模型条目还是建议手改,因为数组结构用命令行表达比较绕。改完同样跑一次openclaw doctor。
4. 验证请求:确认模型真的走了 TaoToken 通道
配置写完不等于请求走对了。你需要验证两件事:schema 是否通过,以及模型请求是否真的打到 TaoToken 端点。
先跑诊断命令:
openclaw doctor这个命令会检查openclaw.json是否符合 schema。如果输出里没有 error,说明配置结构没问题。如果报错,先看报错指向哪个字段,常见的是 baseUrl 多了斜杠、apiKey 为空、models 数组里 id 重复。修完再跑一次,直到 doctor 通过。
接着验证模型请求。用 OpenClaw 的模型列表命令确认 TaoToken 通道下的模型被识别:
openclaw models list你应该能在输出里看到taotoken/claude-sonnet-4-5这类条目。如果看不到,说明models.providers没被正确加载,回到上一步检查配置。
然后发一条实际请求。你可以直接在 OpenClaw 的对话窗口里发一句“用一句话介绍你自己”,观察返回。更严谨的做法是看 Gateway 日志,确认请求的 baseUrl 是https://taotoken.net/api。日志位置通常在~/.openclaw/logs/下,用tail -f跟踪:
tail -f ~/.openclaw/logs/gateway.log | grep taotoken如果日志里出现taotoken相关的请求记录,并且返回 200,说明通道走通了。这时候你再去看 AI 的回复风格,如果 SOUL.md 里写了“简洁直接”,回复应该明显比之前稳定。如果风格还是漂,那问题就回到 SOUL.md 本身,进入下一步。
5. 补 SOUL.md:通道稳定后再调人格
通道确认稳定后,再按 SOUL.md 模板补充沟通风格。这里给一份精简版模板,重点是把“风格”写成可执行的规则,而不是形容词堆砌:
# 我是谁 我是一个专注、高效的 AI 助理,擅长技术问题和自动化任务。 # 我的沟通风格 - 回答简洁直接,不写客套开场白 - 复杂问题先给结论,再分点展开 - 技术术语保留英文(API、Agent、LLM) - 不确定的事情直说不确定,不编造 # 我的底线 - 不删除 .env、*.key、*.pem 等配置文件 - 不执行 rm -rf 等危险命令 - 高危操作前必须请求确认这份模板和原文的区别在于:它把风格规则放在通道稳定之后才生效。如果通道本身在抖,SOUL.md 写得再细也会被模型返回的不一致行为覆盖。所以排查顺序是“先通道、后人格”,而不是反过来。
改完 SOUL.md 后不需要重启,OpenClaw 会在每次会话加载时读取。你可以连续发三条同类问题,观察回复风格是否一致。如果三条回复的简洁程度、术语使用、结论位置都稳定,说明通道和人格都到位了。
6. 本篇常见错排查
错误一:openclaw doctor报 schema 错误,Gateway 不启动。最常见原因是 JSON5 里漏了逗号或引号不匹配。OpenClaw 只接受完全符合 schema 的配置,校验失败时 Gateway 不会启动。先跑openclaw doctor --fix尝试自动修复,修完再手动检查models.providers那一段。如果自动修复没解决,把openclaw.json贴到 JSON5 校验工具里逐行看。
错误二:模型请求返回 404 或模型不存在。检查models数组里的id是否和 TaoToken 支持的模型名一致。id 写错、大小写不一致、或者写了 TaoToken 不提供的模型,都会导致请求失败。用openclaw models list确认实际可用的模型 id。
错误三:baseUrl 填成https://taotoken.net/api/v1导致路径重复。OpenClaw 会根据api字段自动拼接路径,你只需要填到/api为止。多填/v1会让最终请求路径变成/api/v1/chat/completions之外的东西,返回 404。把 baseUrl 改回https://taotoken.net/api。
错误四:改了配置但风格没变化。先确认热重载有没有触发,跑openclaw status看 Gateway 状态。如果 Gateway 没在运行,配置不会生效。再确认你改的是当前 Agent 使用的 provider,如果你配了多个 Agent,每个 Agent 的model.primary要指向taotoken/开头的模型。
错误五:Key 无效或额度不足。如果日志里返回 401 或 403,检查 apiKey 是否复制完整、有没有多余空格。如果返回额度相关错误,去控制台确认 Key 的余额和权限。这一步和配置无关,但容易被误判成 schema 问题。
7. 下一步:通道稳定后的排查路径
风格漂移的排查路径到这里就清晰了:先确认模型请求走的是https://taotoken.net/api通道,用openclaw doctor校验 schema,用日志确认请求打到 TaoToken,再回头看 SOUL.md 的人格定义。通道稳定是前提,人格文件是上层。两者顺序颠倒,就会陷入反复改 SOUL.md 却不见效的循环。
如果你在接入过程中遇到 Key 或端点问题,可以到 API Keys 页面重新生成密钥,或者查接入文档确认参数格式。想先验证模型返回是否正常,用模型对话页面发一条测试消息最快。如果你打算长期用 OpenClaw 做编码或 Agent 任务,Coding Plan 页面有更完整的通道配置说明,适合把这条排查路径固化下来。