Skip to content

系统提示词(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.x

BOOT.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 可以在不打断主对话流的情况下,深入处理特定子任务。

配置最佳实践

建议

  1. 从 IDENTITY.md + SOUL.md 开始 — 先给 Agent 一张名片和一本员工手册,想清楚它「是谁」
  2. AGENTS.md 是主战场 — 大部分行为调整都应该在这里完成
  3. USER.md 保持结构化 — 用清晰的列表或表格,方便 Agent 解析
  4. TOOLS.md 记录环境 — 让 Agent 了解你的开发环境,避免反复询问
  5. 善用 BOOTSTRAP.md — 为新 Agent 编写入职引导,自动完成初始化
  6. 用 Git 管理工作区 — 所有文件都是纯文本,天然适合版本管理
  7. 不要怕修改 — 除了 SOUL.md 不可变,其他文件都可以随时调整

基于 MIT 协议发布