
1. 为什么你的 OpenClaw 总是“差点意思”很多人第一次跑 OpenClaw 的时候都会经历一个相似的落差框架装好了模型也接上了但聊起来总觉得它像个刚入职的实习生——你说什么它答什么语气飘忽记不住你的技术栈写代码前不问清楚就动手改文件也不打招呼。问题往往不在模型本身而在于你还没把 SOUL.md、USER.md、AGENTS.md 这三个文件写明白。OpenClaw 是一个开源的、高度可配置的个人 AI 智能体框架它的设计思路是把“通用大模型”拆成三层可配置的人格与行为SOUL.md 决定它是谁、信奉什么USER.md 决定它在为谁服务、对方有什么习惯AGENTS.md 决定它具体怎么干活、哪些动作必须先请示。三者叠加才能把一个只会接话的聊天机器人变成一个懂你、有原则、能按流程执行任务的数字助手。这篇学习笔记聚焦这三个文件的职责边界与协作机制同时把 TaoToken 作为统一的 Key/API 通道接进来交付一份可以直接复制的 config.toml 骨架和 settings.json 片段并给出验证配置是否真正生效的操作步骤。适合已经装好 OpenClaw、准备认真调教智能体的开发者也适合刚接触这套框架、想先搞清楚“这三个 md 到底谁管谁”的新手。下面按“先讲清职责再动手配置最后验证排障”的顺序展开。2. 三个文件到底谁管谁职责边界与协作机制2.1 SOUL.md它是谁信奉什么SOUL.md 回答的是“你是谁”这个问题。它定义智能体的核心人格、语气风格、道德底线和思维模式。无论任务怎么变SOUL.md 里的原则是恒定的保证它在所有交互中保持一致的“人设”。关键内容通常包括四块身份定义名字、角色定位比如严谨的科研助手还是幽默的编程伙伴、核心原则按优先级排列的价值观比如真实性优先、不编造数据、保护隐私、沟通风格正式还是随意、回答简练还是详尽、思维链要求遇到问题是先列方案再推荐还是直接给结果。一个常见的坑是把 SOUL.md 写成“万能许愿池”把所有规则都塞进去。实际上 SOUL.md 只该管“恒定的人格与底线”具体任务流程应该交给 AGENTS.md。比如“不确定的 API 要明说不许编造函数名”属于 SOUL.md“改文件前必须先展示 diff”属于 AGENTS.md。分清楚了后面调起来才不会互相打架。2.2 USER.md它在为谁服务USER.md 是用户的“说明书”让 AI 真正认识你。它记录你的背景、偏好、工作环境、常用工具和禁忌。没有这个文件AI 只能给通用答案有了它回答才会“量身定制”。关键内容分四类个人背景职业、技术栈、经验水平、偏好设置喜欢的语言、编辑器、操作系统、回复长度、当前上下文正在进行的重点项目、特定业务逻辑、禁忌与雷区不喜欢什么回答方式、哪些领域不需要帮助。这里最容易踩的坑是“写得太虚”。像“我喜欢简洁的回答”这种描述模型很难执行而“默认只给代码片段和关键解释不要长篇理论装依赖一律用 pnpm不要用 npm 或 yarn”就可执行得多。USER.md 越具体AI 的个性化就越明显。2.3 AGENTS.md它具体怎么干活AGENTS.md 定义 AI 执行任务的具体规则和流程把 SOUL 的人格和 USER 的需求落地成可操作的动作。它解决“怎么做”尤其是多步骤任务、工具调用和边界控制。关键内容有工作流规则处理某类任务的标准步骤比如写代码前先建分支、部署前必跑测试、工具使用规范何时搜索、何时读本地文件、何时调外部 API、自主性边界哪些能自动执行、哪些必须用户确认比如删文件、发邮件、错误处理报错时的重试或回滚策略。三者协作可以用一个场景说清。你让 AI“优化一下项目的数据库查询”它先读 USER.md知道你用 PostgreSQL 和 TypeScript、偏好 pnpm、是资深开发者不需要基础解释再遵循 SOUL.md保持专业冷静的语气坚持安全至上检查 SQL 注入用长期主义思维考虑索引对写入性能的影响最后执行 AGENTS.md先列出计划分析慢查询日志、提索引建议、重写 ORM 代码、生成迁移脚本在生成可能影响生产数据的迁移脚本前暂停并请求你确认同时自动搜索最新的 PostgreSQL 特性确保建议不过时。文件核心问题类比关键作用SOUL.mdWho它是谁人的价值观与性格决定语气、道德底线、思维模式保持人格一致USER.mdFor Whom为谁服务用户的使用说明书让 AI 懂你的背景、偏好、技术栈AGENTS.mdHow怎么干活岗位 SOP规定流程、工具权限、自动化边界、错误处理3. TaoToken 前置统一 Key 与 API 通道在写配置文件之前先把模型通道准备好。OpenClaw 支持通过 OpenAI 兼容接口接入模型TaoToken 提供统一的 Key 和 API 通道省去在多个供应商之间来回切换的麻烦。你需要先拿到一个可用的 API Key再把它填进 OpenClaw 的配置里。获取 Key 的入口在控制台的 API Keys 页面登录后新建一个 Key 并复制保存。注意 Key 只在创建时完整显示一次关掉页面就看不到了建议直接存进密码管理器。如果你还没注册可以从官网进入注册流程不复杂这里不展开。拿到 Key 之后记住两个地址API 基础地址是https://taotoken.net/api模型对话和 Coding Plan 相关的入口在控制台里都能找到。接下来配置里要用到的就是这两样东西——Key 和 API 地址。注意API Key 属于敏感凭证不要写进会提交到 Git 的配置文件里。建议用环境变量注入或者在本地配置文件里加好.gitignore。4. 可复制配置config.toml 骨架与 settings.json 片段4.1 目录结构先摆好OpenClaw 读取这三个 md 文件时默认会从工作目录或配置指定的路径加载。建议在项目根目录下建一个openclaw/目录把三个文件放进去结构如下your-project/ ├── openclaw/ │ ├── SOUL.md │ ├── USER.md │ └── AGENTS.md ├── config.toml └── settings.json4.2 config.toml 骨架下面这份 config.toml 把模型通道指向 TaoToken并把三个 md 文件的路径显式声明出来。字段名以你实际安装的 OpenClaw 版本为准如果版本更新导致字段变化按报错提示微调即可。# config.toml - OpenClaw 主配置骨架 [model] # 使用 OpenAI 兼容协议接入 TaoToken provider openai-compatible base_url https://taotoken.net/api api_key ${TAOTOKEN_API_KEY} # 从环境变量读取避免明文 model gpt-4o-mini # 按需替换为控制台可用的模型名 [agent] name Atlas # 三个核心配置文件的路径 soul_file openclaw/SOUL.md user_file openclaw/USER.md agents_file openclaw/AGENTS.md [agent.behavior] # 超过该步数的任务先输出计划等待确认 plan_threshold 3 # 高危命令需显式批准 require_approval_for [deploy, rm -rf, drop table]把TAOTOKEN_API_KEY写进环境变量Linux/macOS 下可以这样export TAOTOKEN_API_KEY你的KeyWindows PowerShell$env:TAOTOKEN_API_KEY你的Key4.3 settings.json 片段有些 OpenClaw 版本或插件用 settings.json 管理运行时行为下面这段把三个文件的加载和工具权限补上和 config.toml 配合使用{ agent: { soulPath: openclaw/SOUL.md, userPath: openclaw/USER.md, agentsPath: openclaw/AGENTS.md, tools: { search: { enabled: true, requireConfirmation: false }, fileWrite: { enabled: true, requireConfirmation: false }, fileDelete: { enabled: true, requireConfirmation: true }, terminal: { enabled: true, allow: [lint, test, build], requireConfirmation: [deploy, rm -rf] } } } }4.4 三个 md 的最小可用模板SOUL.md 只保留人格与底线别塞流程# SOUL - 核心人格定义 ## 身份 你叫 Atlas是一位资深的全栈架构师助手关注可扩展性与安全性。 ## 核心原则按优先级 1. 真实性第一不确定的 API 明确说“我不确定”严禁编造函数名。 2. 安全至上提供代码前检查 SQL 注入与 XSS 风险并主动提示。 3. 长期主义优先推荐维护成本低、社区活跃的方案。 ## 沟通风格 - 语气专业、冷静、直接解释复杂概念时用比喻。 - 长回答先给结论TL;DR。 - 不要用“作为一个人工智能……”这类套话。 ## 思维模式 解决复杂问题时先列 3 个方案及优缺点再推荐最佳方案。USER.md 写具体、可执行# USER - 用户画像 ## 基本信息 - 角色初创公司 CTO全栈开发者10 年经验 - 技术栈TypeScript, Node.js, PostgreSQL, React, Docker - 操作系统macOS ## 偏好 - 代码风格函数式编程ESLint strict。 - 回复默认只给代码片段和关键解释不要长篇理论。 - 装依赖一律用 pnpm不要用 npm 或 yarn。 ## 当前项目上下文 - 项目 ASaaS 平台重构认证模块关注多租户隔离。 ## 禁忌 - 不要推荐付费插件除非免费替代明显更差。 - 不要解释基础概念假设我已掌握。AGENTS.md 管流程和边界# AGENTS - 行为准则与工作流 ## 任务执行流程 1. 需求分析复述需求并确认涉及数据修改时必须确认。 2. 规划超过 3 步的任务先输出计划等待确认。 3. 执行写代码同时写单元测试改文件前展示 diff。 4. 验证完成后对照 USER.md 偏好和 SOUL.md 原则自查。 ## 工具使用规范 - 搜索涉及最新库版本或 API 变更时必须联网核实。 - 文件系统允许自动创建/修改代码文件禁止自动删除文件。 - 终端允许 lint/test/builddeploy 或 rm -rf 前必须请求批准。 ## 异常处理 - 命令失败先分析日志尝试修复一次再失败则停止并报告。 - 遇到模糊指令列出 2-3 个澄清问题不要盲目猜测。5. 验证配置生效从启动到确认配置写完不代表生效得实际跑一遍确认。下面这套步骤可以帮你判断三个文件是否真的被加载。第一步启动 OpenClaw 并观察日志。正常加载时日志里会出现类似loaded soul file: openclaw/SOUL.md的行。如果提示文件不存在多半是路径写错或工作目录不对用绝对路径先排除问题。openclaw run --config config.toml --verbose第二步用一句能触发人格的话测试 SOUL.md。比如问“你叫什么你的原则是什么”如果它回答“我叫 Atlas真实性第一……”说明 SOUL.md 生效了。如果它回“我是一个 AI 助手”那就是没读到文件。第三步用一句能触发偏好的话测试 USER.md。比如让它“装个依赖”看它是不是用 pnpm。如果它回npm install说明 USER.md 没生效或写得不够明确。第四步用一句能触发流程的话测试 AGENTS.md。比如让它做一个超过三步的任务看它是否先输出计划并等待确认。如果它直接开干检查plan_threshold和 AGENTS.md 里的流程描述。第五步确认模型通道。发一条普通对话看是否正常返回。如果报 401检查 Key 是否正确、环境变量是否在当前 shell 生效如果报连接错误检查base_url是否为https://taotoken.net/api。# 快速验证 Key 是否可用 curl https://taotoken.net/api/v1/models \ -H Authorization: Bearer $TAOTOKEN_API_KEY返回模型列表就说明通道没问题接下来所有问题都可以聚焦在三个 md 文件本身。6. 本篇常见错排查报错一soul_file not found。最常见的原因是相对路径的基准目录和你以为的不一样。OpenClaw 可能以配置文件所在目录为基准也可能以启动目录为基准。先用绝对路径确认文件能被读到再改回相对路径。报错二配置改了但行为没变。三个 md 文件通常在启动时加载改完不重启不会生效。另外有些版本会缓存改完记得重启进程。如果重启还不行检查是不是有多个配置文件实际加载的不是你改的那份。报错三401 Unauthorized。Key 错误或没传进去。检查环境变量是否在启动 OpenClaw 的同一个 shell 里 export 过如果用 systemd 或 Docker环境变量要在对应配置里注入不是在你本地终端 export 就行。报错四模型名不存在。model字段要填控制台里实际可用的模型名填错会报模型不存在。去控制台确认一下当前可用的模型列表。报错五三个文件互相打架。比如 SOUL.md 说“直接给结果”AGENTS.md 说“先列计划”模型就会犹豫。原则是人格和底线归 SOUL用户偏好归 USER流程和边界归 AGENTS同一件事只在一个文件里定义。报错六高危命令没被拦截。检查require_approval_for里的命令名是否和实际执行的一致大小写和空格都要对上。有些版本用正则匹配写法不同结果也不同按文档调整。排障时如果怀疑是接入层的问题可以去 API Keys 页面重新生成一个 Key 试试接入相关的字段说明在接入文档里能查到如果只是想先验证模型能不能正常对话用模型对话入口发一条消息最快。7. 把三个文件当成会迭代的代码来维护我自己的习惯是把 SOUL.md、USER.md、AGENTS.md 当成代码来管理每次发现 AI 的行为不对先判断是哪一层的问题改对应的文件然后在文件顶部记一行修改原因。时间久了这三个文件会变成你个人工作流的真实映射而不是一次写完就忘的配置。如果你打算长期用 OpenClaw 跑编码和 Agent 任务Coding Plan 会比按次调用更划算适合高频使用只是偶尔验证模型效果用模型对话就够了。Key 和通道都准备好之后剩下的就是慢慢调这三个文件——它们才是让通用模型变成“你的助手”的关键。