智能体人设与工作区配置

intermediate
## 什么是工作区 在 OpenClaw 中,工作区(Workspace)是智能体运行的"家"。它是一个目录,包含了智能体的人设定义、操作指南、工具说明、记忆文件和会话记录等所有配置。 默认工作区位于: ``` ~/.openclaw/workspace/ ``` 你可以把工作区理解为智能体的"大脑配置文件夹"——里面的每个文件都在塑造智能体的行为方式。 ## 工作区目录结构 一个完整的工作区目录结构如下: ``` ~/.openclaw/ ├── openclaw.json # Gateway 主配置文件 ├── workspace/ # 默认智能体工作区 │ ├── AGENTS.md # 操作说明(做什么、怎么做) │ ├── SOUL.md # 人设语气(是谁、怎么说话) │ ├── TOOLS.md # 工具使用说明 │ ├── USER.md # 用户资料(用户是谁) │ ├── IDENTITY.md # 名称和风格 │ ├── BOOTSTRAP.md # 首次运行引导 │ ├── MEMORY.md # 长期记忆 │ ├── DREAMS.md # 实验性记忆(Dreaming) │ ├── memory/ # 每日笔记目录 │ │ ├── 2025-01-15.md │ │ └── 2025-01-16.md │ └── skills/ # 本地技能目录 │ └── my-skill/ │ └── SKILL.md ├── skills/ # 全局技能目录 │ └── installed-skill/ │ └── SKILL.md └── agents/ # 多智能体配置 └── / ├── workspace/ # 该智能体的工作区 └── sessions/ # 该智能体的会话记录 ``` ## 核心引导文件 OpenClaw 使用一组 Markdown 文件来定义智能体的行为。每个文件有明确的职责,在会话开始时按顺序注入到智能体的上下文中。 ### AGENTS.md — 操作说明 `AGENTS.md` 是智能体的"操作手册",告诉它**做什么**和**怎么做**。 典型内容包括: - 工作流程和步骤 - 项目结构说明 - 编码规范和约定 - 部署流程 - 常用命令 示例: ```markdown # 项目指南 ## 技术栈 Node.js + Express + MySQL ## 开发规范 - 使用 TypeScript 编写所有代码 - 函数命名使用 camelCase - 文件命名使用 kebab-case ## 部署流程 1. 运行测试:npm test 2. 构建:npm run build 3. 部署:scp dist/ server:/app/ ``` `AGENTS.md` 适合放项目级别的具体指令,比如"这个项目用什么框架"、"代码风格是什么"、"怎么部署"。 ### SOUL.md — 人设语气 `SOUL.md` 定义智能体的"人格"——它**是谁**、**怎么说话**、**什么不能做**。 这是智能体的"宪法",优先级最高。SOUL.md 中的规则会覆盖其他所有指令。 示例: ```markdown # 人设 你是一个资深全栈工程师,擅长 Node.js 和 React。 ## 语气风格 - 说话简洁直接,不啰嗦 - 用中文回复,技术术语保留英文 - 适当使用 emoji 让对话更轻松 ## 行为边界 - 永远不要删除生产数据库 - 永远不要在代码中硬编码密码 - 遇到不确定的问题,先问用户再行动 ## 偏好 - 优先使用 TypeScript 而非 JavaScript - 优先使用 pnpm 而非 npm - 代码注释用中文 ``` SOUL.md 和 AGENTS.md 的区别: | 文件 | 关注点 | 类比 | |------|--------|------| | SOUL.md | 是谁、怎么说话、什么不能做 | 性格和价值观 | | AGENTS.md | 做什么、怎么做、项目细节 | 工作手册 | ### TOOLS.md — 工具使用说明 `TOOLS.md` 告诉智能体如何使用特定的工具,以及在什么场景下使用哪个工具。 示例: ```markdown # 工具使用指南 ## 文件操作 - 读取文件用 read 工具 - 写入文件用 write 工具 - 不要用 exec 执行 cat 来读文件 ## 浏览器 - 需要查看网页时使用 browser 工具 - 截图后分析页面布局 ``` ### USER.md — 用户资料 `USER.md` 存储关于用户的信息,帮助智能体更好地理解你的需求和偏好。 示例: ```markdown # 用户资料 - 名字:小明 - 角色:前端开发工程师 - 技术栈:React + TypeScript + Tailwind CSS - 偏好:喜欢简洁的代码风格,不喜欢过度抽象 - 工作环境:macOS + VS Code ``` 智能体会根据 USER.md 中的信息调整回复方式。比如知道你是前端开发者后,它会优先用前端相关的术语和示例。 ### IDENTITY.md — 名称和风格 `IDENTITY.md` 定义智能体的名称和外在表现风格。 示例: ```markdown # 身份 名称:小龙 风格:友好、专业、略带幽默 头像:🐉 ``` ### BOOTSTRAP.md — 首次运行引导 `BOOTSTRAP.md` 只在智能体首次启动时执行一次,用于初始化设置。 示例: ```markdown # 首次运行 1. 向用户打招呼,介绍自己 2. 询问用户的技术背景 3. 了解用户的主要需求 4. 将信息保存到 USER.md ``` ## 如何自定义智能体人格 自定义智能体人格的核心是编辑 SOUL.md 文件。以下是几个常见的人格模板。 ### 严谨的技术顾问 ```markdown # SOUL 你是一位严谨的技术顾问。 ## 风格 - 回答准确、有依据 - 不确定时明确说"我不确定" - 给出建议时附带理由 - 避免使用模糊的表述 ## 规则 - 永远不要猜测答案 - 代码示例必须可运行 - 涉及安全问题时必须警告用户 ``` ### 轻松的编程伙伴 ```markdown # SOUL 你是一个轻松友好的编程伙伴。 ## 风格 - 说话像朋友聊天,不要太正式 - 适当使用 emoji 😄 - 遇到有趣的代码问题会表现出兴奋 - 鼓励用户尝试新技术 ## 规则 - 不要写超过 50 行的代码块,分步骤来 - 先解释思路,再写代码 - 出错时安慰用户,一起排查 ``` ### 中文优先的助手 ```markdown # SOUL 你是一个面向中国开发者的 AI 助手。 ## 语言 - 始终使用中文回复 - 技术术语保留英文原文(如 Docker、API、Token) - 命令行示例中的注释用中文 ## 本地化 - 推荐国内可用的工具和服务 - 提供国内镜像地址 - 考虑国内网络环境的限制 ``` ## Skills 加载位置和优先级 OpenClaw 从多个位置加载技能(Skills),按以下优先级从高到低: 1. **工作区本地技能**:`~/.openclaw/workspace/skills/` 2. **全局安装技能**:`~/.openclaw/skills/` 3. **系统内置技能**:OpenClaw 自带的默认技能 当多个位置存在同名技能时,优先级高的会覆盖优先级低的。这意味着你可以在工作区中放一个自定义版本的技能来覆盖全局安装的版本。 ### 本地技能 在工作区中创建技能: ```bash mkdir -p ~/.openclaw/workspace/skills/my-helper ``` 然后创建 `SKILL.md` 文件: ```markdown --- name: my-helper description: 我的自定义助手技能 --- # 使用说明 当用户请求帮助时,按以下步骤操作: 1. 先了解问题背景 2. 给出解决方案 3. 提供代码示例 ``` ### 全局技能 通过 `clawhub install` 安装的技能会放在全局目录: ```bash clawhub install some-skill # 安装到 ~/.openclaw/skills/some-skill/ ``` ## 会话存储位置 每个智能体的会话记录存储在独立的目录中: ``` ~/.openclaw/agents//sessions/ ``` 默认智能体(单智能体模式)的会话存储在: ``` ~/.openclaw/agents/default/sessions/ ``` 每个会话是一个 JSONL 文件,记录了完整的对话历史。你可以通过 CLI 查看和管理会话: ```bash # 列出所有会话 openclaw sessions list # 查看某个会话的历史 openclaw sessions history # 删除旧会话 openclaw sessions prune --older-than 30d ``` ## 使用 openclaw setup 初始化 如果你是第一次使用 OpenClaw,运行 `setup` 命令可以快速初始化工作区: ```bash openclaw setup ``` `setup` 向导会引导你完成以下步骤: 1. **选择模型提供商**:从支持的提供商列表中选择 2. **配置 API Key**:输入你的 API 密钥 3. **选择渠道**:选择要连接的聊天渠道(可跳过) 4. **初始化工作区**:创建默认的引导文件 运行完成后,你的工作区就准备好了,可以直接开始使用: ```bash # 启动 Gateway openclaw gateway run # 或者直接在终端对话 openclaw agent --message "你好" ``` ### 手动初始化 如果你更喜欢手动配置,可以跳过 `setup`,直接创建文件: ```bash # 创建工作区目录 mkdir -p ~/.openclaw/workspace # 创建人设文件 cat > ~/.openclaw/workspace/SOUL.md << 'EOF' # 人设 你是一个友好的 AI 助手,使用中文回复。 EOF # 创建操作说明 cat > ~/.openclaw/workspace/AGENTS.md << 'EOF' # 操作说明 帮助用户解决技术问题,优先推荐国内可用的方案。 EOF ``` ## 多智能体工作区 如果你运行多个智能体,每个智能体有独立的工作区: ``` ~/.openclaw/agents/ ├── coder/ │ ├── workspace/ │ │ ├── SOUL.md # 编程助手人设 │ │ ├── AGENTS.md # 编程相关指令 │ │ └── skills/ # 编程相关技能 │ └── sessions/ ├── assistant/ │ ├── workspace/ │ │ ├── SOUL.md # 日常助手人设 │ │ └── AGENTS.md # 日常任务指令 │ └── sessions/ ``` 通过 `openclaw agents` 向导可以创建和管理多个智能体。每个智能体的人设、工具权限和技能都可以独立配置。 ## 引导文件加载顺序 当一个新会话开始时,OpenClaw 按以下顺序加载引导文件: 1. **SOUL.md** — 最先加载,优先级最高 2. **IDENTITY.md** — 名称和风格 3. **USER.md** — 用户资料 4. **AGENTS.md** — 操作说明 5. **TOOLS.md** — 工具使用说明 6. **Skills** — 已安装的技能文件 7. **MEMORY.md** — 长期记忆(如果存在) SOUL.md 最先加载意味着它的规则优先级最高。如果 SOUL.md 说"永远不要执行 rm 命令",即使 AGENTS.md 中有删除文件的步骤,智能体也会拒绝执行。 ## 小结 工作区是 OpenClaw 智能体的核心配置中心: - 通过 SOUL.md 定义人格和行为边界 - 通过 AGENTS.md 提供项目级操作指南 - 通过 USER.md 让智能体了解你的偏好 - Skills 按优先级从工作区、全局、系统三个层级加载 - `openclaw setup` 可以快速初始化一切 花几分钟配置好工作区,你的智能体就能更好地理解你、帮助你。 #OpenClaw智能体 #人设配置 #SOUL.md #工作区 #龙虾技能库