主题
系统提示词(Agent 工作区)
在 OpenClaw 中,传统意义上的「系统提示词」被文件化为一组 Markdown 和 JSON 配置文件,共同构成 Agent 的工作区(Workspace)。所有配置都是纯文本,可以直接用文本编辑器修改。
数字员工入职
你可以把配置 Agent 工作区的过程想象成给一位数字员工办入职手续。每个文件就像入职材料中的一份文件——名片、员工手册、岗位说明书……它们共同定义了这位「员工」是谁、怎么工作、为谁服务。
工作区目录结构
text
~/.openclaw/workspace/
├── IDENTITY.md # 助理的"名片":名字、性格标签
├── SOUL.md # 助理的"员工手册":行为准则和价值观
├── USER.md # 关于你的"档案":你是谁、有什么偏好
├── AGENTS.md # 助理的"岗位说明书":工作流程和规则
├── TOOLS.md # 助理的"设备清单":你的环境专属信息
├── MEMORY.md # 助理的"备忘录":长期记忆
├── HEARTBEAT.md # 助理的"巡检清单":定期主动检查的事项
├── BOOT.md # 助理的"开机任务":网关启动时执行
├── BOOTSTRAP.md # 助理的"入职引导":首次运行时的初始化(完成后自动删除)
├── memory/ # 每日工作日志(自动生成)
│ └── YYYY-MM-DD.md
├── skills/ # 本地技能目录
└── sessions.json # 会话存储核心文件说明
| 文件 | 入职类比 | 用途 | 加载时机 | 可变性 |
|---|---|---|---|---|
IDENTITY.md | 名片 | 助理的名字、性格标签、简短自我介绍 | 每次 Session 启动 | 可修改 |
SOUL.md | 员工手册 | 不可变人格内核,行为准则和价值观 | 每次 Session 启动 | 不可变 |
USER.md | 用户档案 | 用户结构化信息:称呼、偏好、关系 | Main session 启动 | 可修改 |
AGENTS.md | 岗位说明书 | Agent 身份定义、行为边界、回复风格 | 每次 Session 启动 | 可修改 |
TOOLS.md | 设备清单 | 用户环境专属信息(系统、工具链等) | 每次 Session 启动 | 可修改 |
MEMORY.md | 备忘录 | 长期记忆,决策与偏好的持久化存储 | 仅 main session | 可修改 |
HEARTBEAT.md | 巡检清单 | 定时任务和主动行为定义 | Gateway 启动 | 可修改 |
BOOT.md | 开机任务 | 网关启动时执行的任务 | Gateway 启动 | 可修改 |
BOOTSTRAP.md | 入职引导 | 首次运行时的初始化流程(完成后自动删除) | 仅首次运行 | 一次性 |
IDENTITY.md — 身份名片
定义 Agent 的基本身份信息,相当于一张「名片」。这是用户对 Agent 的第一印象:
markdown
# 示例 IDENTITY.md
名字:小龙
性格标签:温暖、耐心、务实
一句话介绍:你的私人技术助手,擅长 TypeScript 和全栈开发。与 SOUL.md 的区别
IDENTITY.md 侧重于外在表现——名字、标签、自我介绍;SOUL.md 侧重于内在本质——价值观、行为准则。可以类比为:名片 vs 员工手册。
AGENTS.md — Agent 定义文件
相当于 system prompt 的文件化版本。定义了 Agent 的:
- 身份 — 名字、角色、专长领域
- 行为边界 — 什么该做、什么不该做
- 回复风格 — 语气、长度、格式偏好
- 白名单 —
allowFrom配置(参见会话管理)
与传统 System Prompt 的区别
传统方案将 system prompt 硬编码在代码中或存储在数据库里。OpenClaw 将其存放为工作区中的 Markdown 文件,Agent 自身就可以读取和理解,也方便人类直接编辑和版本管理。
SOUL.md — 灵魂文件
定义 Agent 的核心人格和价值观。这是记忆四层架构中最顶层的 SOUL 层。
markdown
# 示例 SOUL.md
你是小龙,一个温暖、耐心的中文 AI 助手。
## 核心价值观
- 诚实:不知道的事情坦然说不知道
- 尊重:对用户始终保持礼貌和耐心
- 实用:优先提供可执行的建议
## 沟通风格
- 语言简洁,避免冗长
- 适当使用比喻帮助理解
- 遇到技术问题时给出代码示例不可变原则
SOUL.md 创建后不应被修改。它是 Agent 身份的锚点——如果频繁改动,Agent 的人格会变得不一致。需要调整行为时,应该修改 AGENTS.md 而非 SOUL.md。
USER.md — 用户信息文件
存储用户的结构化信息,仅在 main session 启动时加载:
markdown
# 用户信息
- 称呼:Tina
- 职业:全栈工程师
- 技术栈:TypeScript, Vue, Node.js
- 偏好:简洁回复,直接给代码HEARTBEAT.md — 心跳配置
定义 Agent 的定时任务和主动行为。Gateway 启动时加载。
markdown
# 心跳任务
## 每日早报
- 触发时间:每天 08:00
- 行为:推送今日天气和待办事项摘要
## 定时提醒
- 触发条件:用户设定的提醒时间到达
- 行为:发送提醒消息TOOLS.md — 设备清单
记录用户环境的专属信息,让 Agent 了解你的「装备」:
markdown
# 示例 TOOLS.md
- 操作系统:macOS 15.x (Apple Silicon)
- 终端:iTerm2 + zsh
- 包管理器:pnpm
- 编辑器:VS Code / Cursor
- Node.js:v22.xBOOT.md — 开机任务
定义网关启动时需要执行的任务。每次 Gateway 启动都会执行一次:
markdown
# 示例 BOOT.md
## 启动检查
- 检查网络连接状态
- 验证 API Key 是否有效
- 加载最新的记忆摘要BOOTSTRAP.md — 入职引导
首次运行时的初始化流程。这是一次性文件——执行完毕后会自动删除:
markdown
# 示例 BOOTSTRAP.md
## 首次初始化
1. 询问用户基本信息,填充 USER.md
2. 了解用户的技术栈和工作习惯
3. 配置常用工具和偏好
4. 生成初始 MEMORY.md自动删除机制
BOOTSTRAP.md 只在 Agent 首次运行时生效。初始化完成后,该文件会被自动删除,后续启动不再执行。这类似于新员工的「入职引导」——完成入职流程后,引导材料就不再需要了。
设计哲学
OpenClaw 的系统设计深受 Unix 哲学影响,在简洁与可扩展性之间追求平衡。
Unix 哲学:小工具、可组合、文本流
核心理念
一切皆文本。配置是 Markdown,数据是 JSON,通信是文本流。没有私有二进制格式,没有必须通过 GUI 才能修改的设置。
- 小工具 — 每个组件只做一件事,做好一件事
- 可组合 — 组件之间通过标准接口连接,自由组合
- 文本流 — 所有数据和配置都是人类可读的纯文本
极简工具集
Agent 的核心工具只有 4 个:
| 工具 | 功能 |
|---|---|
Read | 读取文件内容 |
Write | 写入文件 |
Edit | 编辑文件(局部修改) |
Bash | 执行 Shell 命令 |
为什么只有 4 个工具?
Peter(OpenClaw 创始人)认为,这四个工具足以覆盖 Agent 的绝大多数需求。通过 Bash 工具,Agent 可以调用系统上的任何 CLI 程序;通过 Read/Write/Edit,Agent 可以操作任何文件。CLI 才是终极接口。
为什么不内置 MCP?
OpenClaw 选择不内置 MCP(Model Context Protocol),而是通过 mcporter 技能桥接方案实现兼容:
- CLI 是更通用、更稳定的接口
- MCP 协议仍在快速演进,直接绑定增加维护负担
- mcporter 允许将 MCP 服务桥接为 Agent 可调用的技能,既兼容又解耦
自我扩展能力
Agent 可以在运行时 写入、重载、测试 自己的扩展:
text
Agent 发现需要新能力
│
▼
在 skills/ 目录写入新技能脚本
│
▼
重载技能列表
│
▼
测试新技能是否正常工作
│
▼
在后续对话中使用新技能技能即代码
skills/ 目录下的每个文件就是一个技能。Agent 可以自己编写新技能、修改现有技能,甚至删除不需要的技能。这种自我进化能力是 OpenClaw 的核心竞争力之一。
Session 树形结构
OpenClaw 支持 side-quest 分支——从主会话中分出子会话处理特定任务,完成后合并回主线:
text
Main Session
├── Side Quest: 调研竞品方案
│ └── 完成 → 结论合并回 Main
├── Side Quest: 调试部署问题
│ └── 完成 → 结论合并回 Main
└── 继续主线对话...这种树形结构让 Agent 可以在不打断主对话流的情况下,深入处理特定子任务。
配置最佳实践
建议
- 从 IDENTITY.md + SOUL.md 开始 — 先给 Agent 一张名片和一本员工手册,想清楚它「是谁」
- AGENTS.md 是主战场 — 大部分行为调整都应该在这里完成
- USER.md 保持结构化 — 用清晰的列表或表格,方便 Agent 解析
- TOOLS.md 记录环境 — 让 Agent 了解你的开发环境,避免反复询问
- 善用 BOOTSTRAP.md — 为新 Agent 编写入职引导,自动完成初始化
- 用 Git 管理工作区 — 所有文件都是纯文本,天然适合版本管理
- 不要怕修改 — 除了
SOUL.md不可变,其他文件都可以随时调整