# 代理运行时 🤖 OpenClaw 运行一个源自 **p-mono** 的单一嵌入式代理运行时。 ## 工作区(必需) OpenClaw 使用单个代理工作区目录(`agents.defaults.workspace`)作为代理的 **唯一** 工作目录(`cwd`)用于工具和上下文。 推荐:使用 `openclaw-cn setup` 创建 `~/.openclaw-cn/openclaw-cn.json`(如果缺失)并初始化工作区文件。 完整工作区布局 + 备份指南:[代理工作区](/concepts/agent-workspace) 如果启用了 `agents.defaults.sandbox`,非主会话可以通过 `agents.defaults.sandbox.workspaceRoot` 下的每个会话工作区覆盖此设置(参见 [网关配置](/gateway/configuration))。 ## 引导文件(注入) 在 `agents.defaults.workspace` 内部,OpenClaw 期望这些用户可编辑的文件: - `AGENTS.md` — 操作说明 + "记忆" - `SOUL.md` — 人格、边界、语调 - `TOOLS.md` — 用户维护的工具笔记(例如 `imsg`、`sag`、约定) - `BOOTSTRAP.md` — 一次性首次运行仪式(完成后删除) - `IDENTITY.md` — 代理名称/氛围/表情符号 - `USER.md` — 用户资料 + 首选地址 在新会话的第一回合,OpenClaw 将这些文件的内容直接注入到代理上下文中。 空白文件会被跳过。大文件会被修剪和截断并带有标记,以便提示保持精简(阅读文件获取完整内容)。 如果文件缺失,OpenClaw 会注入一行 "missing file" 标记(并且 `openclaw-cn setup` 会创建一个安全的默认模板)。 `BOOTSTRAP.md` 仅为 **全新工作区** 创建(不存在其他引导文件)。如果您在完成仪式后删除它,不应在后续重启时重新创建。 要完全禁用引导文件创建(对于预植入的工作区),请设置: ```json5 { agent: { skipBootstrap: true } } ``` ## 内置工具 核心工具(读取/执行/编辑/写入及相关系统工具)始终可用, 受工具策略约束。`apply_patch` 是可选的,由 `tools.exec.applyPatch` 控制。`TOOLS.md` **不** 控制哪些工具存在;它是 关于 *您* 希望如何使用它们的指导。 ## 技能 OpenClaw 从三个位置加载技能(工作区在名称冲突时获胜): - 捆绑(随安装包提供) - 管理/本地:`~/.openclaw/skills` - 工作区:`\/skills` 技能可以通过配置/环境控制(参见 [网关配置](/gateway/configuration) 中的 `skills`)。 ## p-mono 集成 OpenClaw 重用 p-mono 代码库的部分内容(模型/工具),但 **会话管理、发现和工具连接归 OpenClaw 所有**。 - 没有 p-coding 代理运行时。 - 不参考 `~/.pi/agent` 或 `\/.pi` 设置。 ## 会话 会话转录存储为 JSONL 格式: - `~/.openclaw/agents/\/sessions/\.jsonl` 会话 ID 是稳定的,由 OpenClaw 选择。 不读取旧版 Pi/Tau 会话文件夹。 ## 流式传输时的引导 当队列模式为 `steer` 时,入站消息被注入到当前运行中。 队列在 **每次工具调用后** 检查;如果存在排队消息, 则跳过来自当前助手消息的剩余工具调用(工具错误结果为 "由于排队用户消息而跳过"),然后在下一次助手响应前注入排队的用户消息。 当队列模式为 `followup` 或 `collect` 时,入站消息被保留直到 当前回合结束,然后新的代理回合以排队的有效载荷开始。参见 [队列](/concepts/queue) 了解模式 + 防抖/上限行为。 块流式传输在助手块完成后立即发送;默认 **关闭**(`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` 来启用块回复。 详细的工具摘要在工具启动时发出(无防抖);控制 UI 在可用时通过代理事件流式传输工具输出。 更多详情:[流式传输 + 分块](/concepts/streaming)。 ## 模型引用 配置中的模型引用(例如 `agents.defaults.model` 和 `agents.defaults.models`)通过在 **第一个** `/` 处分割来解析。 - 配置模型时使用 `provider/model`。 - 如果模型 ID 本身包含 `/`(OpenRouter 风格),包含提供商前缀(例如:`openrouter/moonshotai/kimi-k2`)。 - 如果省略提供商,OpenClaw 将输入视为别名或 **默认提供商** 的模型(仅在模型 ID 中没有 `/` 时有效)。 ## 配置(最小) 至少设置: - `agents.defaults.workspace` - `channels.whatsapp.allowFrom`(强烈推荐) --- *下一步:[群聊](/concepts/group-messages)* 🦞