跳转到主要内容
OpenClaw 提供一个嵌入式智能体运行时:内置的智能体循环、工具接线和提示词组装,不同于把轮次委托给外部 harness 进程。每个已配置的智能体(如需运行多个,请参见多智能体路由)都有自己的工作区、引导文件和会话存储。本页说明该运行时契约:工作区必须包含什么、会注入哪些文件,以及会话如何基于它引导启动。

工作区(必需)

每个智能体使用单个工作区目录(agents.defaults.workspace,或每个智能体的 agents.list[].workspace)作为工具和上下文的唯一工作目录(cwd)。 建议:使用 openclaw setup 在缺失时创建 ~/.openclaw/openclaw.json,并初始化工作区文件。 完整工作区布局 + 备份指南:Agent 工作区 如果启用了 agents.defaults.sandbox,非主会话可以使用 agents.defaults.sandbox.workspaceRoot 下的按会话工作区覆盖它(参见 Gateway 配置)。

引导文件(注入)

在工作区内,OpenClaw 需要这些用户可编辑文件:
文件用途
AGENTS.md操作指令 + “记忆”
SOUL.md人设、边界、语气
TOOLS.md用户维护的工具说明和约定
IDENTITY.md智能体名称/氛围/emoji
USER.md用户资料 + 首选称呼
HEARTBEAT.mdHeartbeat 专用指令
BOOTSTRAP.md一次性的首次运行仪式(完成后删除)
MEMORY.md根长期记忆文件(如果存在)
在新会话的第一个轮次中,OpenClaw 会把这些文件的内容注入到系统提示词的 Project Context 中。只有当 MEMORY.md 存在于工作区根目录时才会注入。 空白文件会被跳过。大型文件会被修剪并带标记截断,以保持提示词精简(如需完整内容,请读取文件)。缺失文件(MEMORY.md 除外)会改为注入单行“缺失文件”标记;openclaw setup 会为它创建安全的默认模板。 BOOTSTRAP.md 只会为全新的工作区创建(不存在其他引导文件)。当它待处理时,OpenClaw 会把它保留在 Project Context 中,并为初始仪式添加系统提示词引导,而不是把它复制到用户消息中。如果你在完成仪式后删除它,后续重启时不会重新创建。 工作区被观察到后,OpenClaw 还会为工作区路径保留一个状态目录证明标记。如果最近已证明的工作区消失或被清空,启动会拒绝静默重新播种 BOOTSTRAP.md;请恢复工作区,或使用完整的新手引导重置,让工作区和标记一起清除。 如需完全禁用引导文件创建(用于预先播种的工作区),请设置:
{ agents: { defaults: { skipBootstrap: true } } }

内置工具

核心工具(read/exec/edit/write 及相关系统工具)始终可用,但受工具策略约束。apply_patch 对 OpenAI 模型默认开启,并由 tools.exec.applyPatchenabledworkspaceOnlyallowModels)控制。TOOLS.md 控制哪些工具存在;它是关于你希望这些工具如何使用的指导。

Skills

OpenClaw 从这些位置加载 Skills(优先级从高到低):
  • 工作区:<workspace>/skills
  • 项目智能体 Skills:<workspace>/.agents/skills
  • 个人智能体 Skills:~/.agents/skills
  • 托管/本地:~/.openclaw/skills
  • 内置(随安装提供)
  • 额外 Skills 文件夹:skills.load.extraDirs
Skills 根目录可以包含分组文件夹,例如 <workspace>/skills/personal/foo/SKILL.md;该 Skills 仍会按其扁平 frontmatter 名称公开,例如 foo Skills 可以由配置/环境变量控制(参见 Gateway 配置 中的 skills)。

运行时边界

嵌入式智能体运行时由 OpenClaw 拥有:模型发现、工具接线、提示词组装、会话管理和渠道投递共享一个集成的运行时表面。

会话

会话转录以 JSONL 存储在:
  • ~/.openclaw/agents/<agentId>/sessions/<SessionId>.jsonl
会话 ID 稳定,并由 OpenClaw 选择。OpenClaw 不会读取其他工具的会话文件夹。

流式传输期间的 Steer

运行中到达的入站提示词默认会被 Steer 到当前运行中。Steer 会在当前助手轮次完成执行其工具调用之后、下一次 LLM 调用之前投递,并且不再跳过当前助手消息中剩余的工具调用。 /queue steer 是默认的活动运行行为。/queue followup/queue collect 会让消息等待后续轮次,而不是 Steer。 /queue interrupt 则会中止活动运行。有关队列和边界行为,请参见队列Steering queue 分块流式传输会在完成助手块后立即发送;它默认关闭agents.defaults.blockStreamingDefault: "off")。 通过 agents.defaults.blockStreamingBreak 调整边界(text_endmessage_end;默认为 text_end)。 用 agents.defaults.blockStreamingChunk 控制软块分块(默认为 800-1200 个字符;优先段落断点,然后换行,最后句子)。 用 agents.defaults.blockStreamingCoalesce 合并流式块,以减少单行刷屏(发送前基于空闲时间合并)。非 Telegram 渠道需要显式设置 *.blockStreaming: true 才能启用分块回复。 详细工具摘要会在工具启动时发出(无防抖);Control UI 在可用时会通过智能体事件流式传输工具输出。 更多详情:流式传输 + 分块

模型引用

配置中的模型引用(例如 agents.defaults.modelagents.defaults.models)会按第一个 / 分割解析。
  • 配置模型时使用 provider/model
  • 如果模型 ID 本身包含 /(OpenRouter 风格),请包含提供商前缀(示例:openrouter/moonshotai/kimi-k2)。
  • 如果省略提供商,OpenClaw 会先尝试别名,然后为该精确模型 ID 尝试唯一的已配置提供商匹配,最后才回退到已配置的默认提供商。如果该提供商不再公开已配置的默认模型,OpenClaw 会回退到第一个已配置的提供商/模型,而不是暴露过时的已移除提供商默认值。

配置(最小)

至少设置:
  • agents.defaults.workspace
  • channels.whatsapp.allowFrom(强烈建议)

相关