Skip to content

系统提示词(Agent 工作区)

在 OpenClaw 中,传统意义上的「系统提示词」被文件化为一组 Markdown 和 JSON 配置文件,共同构成 Agent 的工作区(Workspace)。所有配置都是纯文本,可以直接用文本编辑器修改。

工作区目录结构

workspace/
├── AGENTS.md          # Agent 定义(身份、行为规则)
├── SOUL.md            # 灵魂/人格指令(不可变核心)
├── USER.md            # 用户信息与偏好
├── MEMORY.md          # 长期记忆存储
├── HEARTBEAT.md       # 心跳配置(定时任务)
├── memory/            # 日志目录
│   └── YYYY-MM-DD.md  # 每日 append-only 日志
├── skills/            # 本地技能目录
└── sessions.json      # 会话存储

核心文件说明

文件用途加载时机可变性
AGENTS.mdAgent 身份定义、行为边界、回复风格每次 Session 启动可修改
SOUL.md不可变人格内核,定义 Agent「是谁」每次 Session 启动不可变
USER.md用户结构化信息:称呼、偏好、关系Main session 启动可修改
MEMORY.md长期记忆,决策与偏好的持久化存储仅 main session可修改
HEARTBEAT.md定时任务和主动行为定义Gateway 启动可修改

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
- 行为:推送今日天气和待办事项摘要

## 定时提醒
- 触发条件:用户设定的提醒时间到达
- 行为:发送提醒消息

设计哲学

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 可以在运行时 写入、重载、测试 自己的扩展:

Agent 发现需要新能力


在 skills/ 目录写入新技能脚本


重载技能列表


测试新技能是否正常工作


在后续对话中使用新技能

技能即代码

skills/ 目录下的每个文件就是一个技能。Agent 可以自己编写新技能、修改现有技能,甚至删除不需要的技能。这种自我进化能力是 OpenClaw 的核心竞争力之一。

Session 树形结构

OpenClaw 支持 side-quest 分支——从主会话中分出子会话处理特定任务,完成后合并回主线:

Main Session
├── Side Quest: 调研竞品方案
│   └── 完成 → 结论合并回 Main
├── Side Quest: 调试部署问题
│   └── 完成 → 结论合并回 Main
└── 继续主线对话...

这种树形结构让 Agent 可以在不打断主对话流的情况下,深入处理特定子任务。

配置最佳实践

建议

  1. 从 SOUL.md 开始 — 先想清楚你的 Agent「是谁」,写好灵魂文件
  2. AGENTS.md 是主战场 — 大部分行为调整都应该在这里完成
  3. USER.md 保持结构化 — 用清晰的列表或表格,方便 Agent 解析
  4. 用 Git 管理工作区 — 所有文件都是纯文本,天然适合版本管理
  5. 不要怕修改 — 除了 SOUL.md 不可变,其他文件都可以随时调整

基于 MIT 协议发布