乐于分享
好东西不私藏

OpenClaw 系统提示词解析

OpenClaw 系统提示词解析

OpenClaw 系统提示词解析

文件即认知,文本即记忆,文件即灵魂

📅 2026-02-12  |  ✍️ 陶刚(Timeplus CTO)  |  📖 技术深度

📎 文章来源:
深入研究OpenClaw - 系统提示词解析

核心设计理念

OpenClaw 的核心秘密:一切皆 Markdown。没有模型微调,没有复杂的提示词编译器,没有黑盒——一组精心设计的 Markdown 文件在每次对话时被动态组装成系统提示词。

文件即认知,文本即记忆,文件即灵魂。

七个 Markdown 文件构成的"认知层"

OpenClaw 的提示词系统由一组放置在工作区目录下的 Markdown 文件组成,每个文件承担特定职责,共同构成 Agent 的完整"人格架构"。

文件
职责
SOUL.md
🧠 人格与价值观(最核心),反对"讨好型 AI",允许 Agent 拥有自己的立场
AGENTS.md
最全面的"操作手册",包含会话启动流程、记忆系统规则、安全边界、群聊行为准则
IDENTITY.md
存储 Agent 的自选身份(名称、生物类型、风格、签名 emoji)
USER.md
存储用户信息(姓名、时区、偏好),强调"你在了解一个人,不是在建档案"
TOOLS.md
存放用户特有的环境信息,实现技能定义与环境配置的分离
HEARTBEAT.md
轻量任务清单,控制 Agent 在定期心跳检查时做什么
BOOTSTRAP.md
一次性的"诞生仪式"脚本,引导 Agent 发现身份后自我删除

每个文件有字符上限(默认 20,000),超限时按 70% 头部 + 20% 尾部 + 10% 截断标记 的比例截断。

提示词组装流水线(三阶段)

第一阶段:运行时参数收集

buildSystemPromptParams() 收集主机名、操作系统、CPU 架构、Node 版本、当前模型、频道类型等上下文。

第二阶段:系统提示词组装

buildAgentSystemPrompt() 按严格顺序拼接:

  • 基础身份("You are a personal assistant running inside OpenClaw.")
  • 工具列表(经六层策略过滤)
  • 工具调用风格
  • 安全护栏
  • 技能列表(仅 full 模式)
  • 记忆召回指令
  • 自更新指令、模型别名、工作区路径
  • 沙箱信息、当前日期时间(仅时区,优化缓存命中率)
  • 回复标签、消息路由、语音/TTS
  • 反应指令、静默回复协议、心跳确认协议
  • 运行时信息行、推理模式、项目上下文

第三阶段:注入 Agent 会话

通过 createSystemPromptOverride() 覆盖默认 prompt。

提示词模式与上下文压缩

Prompt 模式分层

模式
用途
特点
full
主 Agent 和用户直接对话
包含所有区段
minimal
子 Agent(通过 sessions_spawn 生成)
省略约 60% 内容
none
特殊场景
-

上下文压缩

  • 触发条件
    :模型返回上下文溢出错误,或已使用 token 超过 contextWindow - reserveTokens(默认预留 20,000 token)
  • 最精妙设计
    :压缩前的记忆刷写——提示 Agent 将重要信息写入 memory/YYYY-MM-DD.md,确保压缩不会造成认知丢失

技能与记忆系统

技能系统

  • 即时加载原则
    :系统提示词仅注入技能元数据(名称、描述、路径),不预加载 SKILL.md
  • 基础 prompt 保持在约 2.7k-10k token
  • ClawHub 已有超过 5,700 个社区构建的技能

记忆系统

  • 单一真相来源
    MEMORY.md + memory/YYYY-MM-DD.md
  • 混合检索
    :BM25 关键词搜索 + 向量语义搜索(text-embedding-3-small / text-embedding-004)
  • 通过 memory_search 和 memory_get 工具按需获取

心跳系统

每 30 分钟触发一次 Agent 回合,读取 HEARTBEAT.md 并执行任务,通过 HEARTBEAT_OK 抑制外发投递。

与其他框架的架构对比

框架
特点
记忆持久化
Claude Code
110+ 个独立 prompt 字符串条件组装,CLAUDE.md 提供项目上下文
有状态会话内、无状态会话间
Cursor
静态系统提示词,.cursor/rules/ 按需加载规则
-
AutoGPT
单体结构化 prompt,目标驱动,固定 JSON 响应格式
-
LangChain/LangGraph
程序化模板系统,图节点编排多 Agent 工作流
-
OpenClaw
文件驱动,一个 Markdown 文件就是一个关注点
始终在线、跨会话持久化

核心差异:其他框架的提示词是代码的一部分,而 OpenClaw 的 prompt 就是工作区里的文件——可以 git diff、可以 grep

文件驱动架构的三大启示

  1. 关注点分离
    :将人格、身份、用户画像、操作手册、环境配置解耦到不同文件
  2. 元数据进提示词、内容按需加载
    :是管理大规模工具和知识库时控制 token 成本的最佳实践
  3. Agent 的自我修改能力
    :更新 SOUL.md、维护 MEMORY.md、清理 HEARTBEAT.md,创造"文件即认知"范式

📋 核心要点总结

  • OpenClaw 用 7 个 Markdown 文件构建 Agent 的完整"人格架构"
  • 提示词组装采用三阶段流水线:参数收集 → 系统提示词组装 → 注入会话
  • 压缩前的记忆刷写机制确保认知不丢失
  • 技能和记忆系统遵循"元数据进提示词、内容按需加载"原则
  • 文件驱动架构让提示词工程从代码领域回归文档领域

本文由 AI 辅助整理,内容来源于知乎专栏"闻数起舞"