跳转到内容

Agent Runtime

OpenClaw 运行一个源自 p-mono 的单一嵌入式代理运行时。

OpenClaw 使用单个代理工作区目录 (agents.defaults.workspace) 作为工具和上下文的 唯一 工作目录 (cwd)。

推荐:使用 openclaw setup 创建 ~/.openclaw/openclaw.json(如果缺失)并初始化工作区文件。

完整的工作区布局 + 备份指南:代理工作区 (Agent workspace)

如果启用了 agents.defaults.sandbox,非主会话可以使用 agents.defaults.sandbox.workspaceRoot 下的每会话工作区覆盖此设置(参见 Gateway 配置)。

agents.defaults.workspace 中,OpenClaw 期望这些用户可编辑的文件:

  • AGENTS.md — 操作说明 + “记忆”
  • SOUL.md — 角色、边界、语气
  • TOOLS.md — 用户维护的工具说明(例如 imsg, sag, 约定)
  • BOOTSTRAP.md — 一次性首次运行仪式(完成后删除)
  • IDENTITY.md — 代理名称/氛围/表情符号
  • USER.md — 用户资料 + 首选称呼

在新会话的第一轮,OpenClaw 将这些文件的内容直接注入到代理上下文中。

空白文件将被跳过。大文件会被修剪并用标记截断,以便提示词保持精简(读取文件以获取完整内容)。

如果文件缺失,OpenClaw 会注入单行“缺失文件”标记(openclaw setup 将创建安全的默认模板)。

BOOTSTRAP.md 仅为 全新的工作区 创建(不存在其他引导文件)。如果你在完成仪式后将其删除,它不应在以后的重启中重新创建。

要完全禁用引导文件创建(对于预先设定种子的工作区),请设置:

{ agent: { skipBootstrap: true } }

核心工具(读取/执行/编辑/写入及相关系统工具)始终可用,受工具策略限制。apply_patch 是可选的,并通过 tools.exec.applyPatch 进行控制。TOOLS.md 控制哪些工具存在;它是关于你希望它们如何被使用的指导。

OpenClaw 从三个位置加载技能(名称冲突时工作区优先):

  • 捆绑 (Bundled)(随安装包发布)
  • 托管/本地 (Managed/local):~/.openclaw/skills
  • 工作区 (Workspace):<workspace>/skills

技能可以通过配置/环境变量进行控制(参见 Gateway 配置 中的 skills)。

OpenClaw 重用了 p-mono 代码库的部分内容(模型/工具),但 会话管理、发现和工具连接归 OpenClaw 所有

  • 没有 p-coding 代理运行时。
  • 不会查询 ~/.pi/agent<workspace>/.pi 设置。

会话记录作为 JSONL 存储在:

  • ~/.openclaw/agents/<agentId>/sessions/<SessionId>.jsonl

会话 ID 是稳定的,由 OpenClaw 选择。 旧版 Pi/Tau 会话文件夹 会被读取。

流式传输时的引导 (Steering while streaming)

Section titled “流式传输时的引导 (Steering while streaming)”

当队列模式为 steer 时,入站消息被注入到当前运行中。 队列在 每次工具调用后 检查;如果存在排队的消息,当前助手消息中剩余的工具调用将被跳过(工具结果报错“因排队的用户消息而跳过”),然后排队的用户消息将在下一个助手响应之前注入。

当队列模式为 followupcollect 时,入站消息被保留直到当前轮次结束,然后使用排队的有效载荷开始新的代理轮次。有关模式 + 防抖/上限行为,请参见 队列 (Queue)

块流式传输 (Block streaming) 在完成后立即发送完整的助手块;它 默认关闭 (agents.defaults.blockStreamingDefault: "off")。 通过 agents.defaults.blockStreamingBreak 调整边界(text_end vs message_end;默认为 text_end)。 使用 agents.defaults.blockStreamingChunk 控制软块分块(默认为 800–1200 字符;优先段落中断,然后是换行符;句子最后)。 使用 agents.defaults.blockStreamingCoalesce 合并流式块以减少单行垃圾邮件(发送前基于空闲的合并)。非 Telegram 通道需要显式 *.blockStreaming: true 才能启用块回复。 详细的工具摘要在工具启动时发出(无防抖);控制界面通过代理事件流式传输工具输出(如果可用)。 更多详情:流式传输 + 分块

配置中的模型引用(例如 agents.defaults.modelagents.defaults.models)通过拆分 第一个 / 进行解析。

  • 配置模型时使用 provider/model
  • 如果模型 ID 本身包含 /(OpenRouter 风格),请包含提供商前缀(例如:openrouter/moonshotai/kimi-k2)。
  • 如果省略提供商,OpenClaw 将输入视为 默认提供商 的别名或模型(仅当模型 ID 中没有 / 时有效)。

至少设置:

  • agents.defaults.workspace
  • channels.whatsapp.allowFrom(强烈推荐)

下一步:群聊 (Group Chats) 🦞