- 示例工程
【免费下载链接】build-your-own-openclaw
A step-by-step guide to build your own AI agent.
在开源教程build-your-own-openclaw中,AGENTS.md、SOUL.md、BOOTSTRAP.md三个 Markdown 文件构成了 AI Agent 工作区的核心设计:它们分别定义智能体名册、角色性格和工作区地图,并会在运行时自动拼装成系统提示。本文将带你从零看懂这套工作区文件设计,理解为什么纯文本文件就能让 AI 智能体"认识自己、认识队友、认识环境"。
📁 什么是"工作区"?先认识 default_workspace 目录
这套教程用 default_workspace/ 目录模拟一个真实的智能体工作区,所有"配置文件"都是人类可直接编辑的 Markdown 和 YAML:
default_workspace/ ├── AGENTS.md # 智能体名册 + 任务调度规则 ├── BOOTSTRAP.md # 工作区地图(目录结构、路径模板) ├── config.example.yaml # 用户配置模板(模型、API 密钥等) ├── agents/ │ ├── pickle/ │ │ ├── AGENT.md # 智能体配置与操作指令 │ │ └── SOUL.md # 智能体性格 │ └── cookie/ │ ├── AGENT.md │ └── SOUL.md └── skills/ └── cron-ops/SKILL.md # 可复用技能定义这个结构在 default_workspace/BOOTSTRAP.md 中有完整说明,配合 default_workspace/config.example.yaml 使用:复制为config.user.yaml填入 API 密钥即可运行。
⚠️ 注意区分:根目录的
AGENTS.md是"团队名册",而每个智能体文件夹里的AGENT.md(单数)才是该智能体自己的"身份证 + 操作手册"。
🤖 AGENT.md + SOUL.md:身份与性格的"双层设计"
以默认智能体 Pickle 为例,看两个文件如何分工:
1️⃣ AGENT.md —— 配置文件 + 操作手册
default_workspace/agents/pickle/AGENT.md 由两部分组成:
| 部分 | 内容 | 作用 |
|---|---|---|
| YAML Frontmatter | name、description、llm(temperature 等)、allow_skills | 机器可读:程序据此加载配置 |
| Markdown 正文 | 角色设定、Capabilities、行为准则 | 注入系统提示的身份层 |
程序入口是 13-multi-layer-prompts/src/mybot/core/agent_loader.py 中的AgentLoader:扫描agents/目录、解析 Frontmatter、把llm配置与全局默认值合并,得到可运行的AgentDef。
2️⃣ SOUL.md —— 只写"性格"的一层
default_workspace/agents/pickle/SOUL.md 只有一句话:"You are Pickle, a friendly cat assistant... 温暖、真诚,带一点猫的小动作,但不过度卖萌。"
为什么单独拆出来?因为性格是可选层,且需要保持稳定。AgentDef中soul_md字段默认空值,运行时才拼接为## Personality段落。这样你可以随时改性格而不动配置,也让同一个工作区能容纳风格迥异的智能体:
- Pickle(SOUL.md):友好的猫咪助手,temperature 0.7,负责日常对话
- Cookie(AGENT.md、SOUL.md):精确高效的记忆管理员,temperature 0.3,从不直接面对用户,只接收 Pickle 派发的任务
🗺️ BOOTSTRAP.md:智能体的"工作区地图"
default_workspace/BOOTSTRAP.md 回答三个问题:东西放在哪?目录长什么样?每个文件干什么?
- 路径模板:
{{workspace}}、{{skills_path}}、{{memories_path}}、{{agents_path}}等占位符,在加载时由PromptBuilder._substitute_paths()替换为真实路径(见 13-multi-layer-prompts/src/mybot/core/prompt_builder.py) - 目录结构:agents / skills / crons / memories 四大子目录,memories 又分
topics/(永恒事实)、projects/(项目上下文)、daily-notes/(每日事件) - 文件用途速查表:明确写出
AGENT.md管配置、SOUL.md管性格、SKILL.md管技能、config.user.yaml管用户偏好
它就像新员工入职手册——智能体启动时"看一眼地图",就知道去哪里找技能、去哪里读写记忆。
📋 AGENTS.md:智能体名册与调度规则
default_workspace/AGENTS.md 是工作区根目录的"团队公告栏",内容极简但关键:
| 章节 | 内容 |
|---|---|
| Agents 表格 | pickle(默认对话)和 cookie(记忆管理)的职责一览 |
| When to Dispatch | 什么时候该把任务派给专用智能体(存记忆、查记忆、拿不准时先问用户) |
| Syntax & Examples | subagent_dispatch(agent_id, task)的调用方式与典型示例 |
它解决的正是多智能体协作的核心问题:主智能体如何知道"谁存在、谁擅长什么、什么场景该找谁"。配合 15-agent-dispatch/README.zh.md 中的调度实现,Pickle 遇到"记住这件事"就会自动派单给 Cookie,而 Cookie 的完整记忆结构定义则写在 17-memory/README.zh.md 的记忆体系中。
🔥 运行时:三层文件如何变成系统提示
在步骤 13(13-multi-layer-prompts/README.zh.md)中,PromptBuilder.build()把系统提示组装成 5 层,本文的主角全部登场:
| 层 | 来源 | 说明 |
|---|---|---|
| Layer 1 身份 | AGENT.md正文 | "你是谁、能做什么、行为准则" |
| Layer 2 性格 | SOUL.md(可选) | 拼接为## Personality |
| Layer 3 引导上下文 | BOOTSTRAP.md+AGENTS.md+ 定时任务列表 | 工作区地图 + 智能体名册,占位符替换为真实路径 |
| Layer 4 运行时 | 代码生成 | 当前 agent id 与时间戳 |
| Layer 5 渠道提示 | 代码生成 | 来自 Telegram / 后台 cron / 被调度子智能体 |
五层用空行拼接后,就是发给 LLM 的完整 system prompt——这就是"多层提示"设计的精髓:每层文件各司其职,改一处不影响其他层。
💡 设计要点小结
- 纯 Markdown 即可驱动 Agent:Frontmatter 给机器读,正文给 LLM 读,用户改文件无需改代码
- 关注点分离:配置(AGENT.md)、性格(SOUL.md)、环境(BOOTSTRAP.md)、协作(AGENTS.md)互不耦合
- 渐进式加载:
SOUL.md缺失则跳过性格层;BOOTSTRAP.md/AGENTS.md不存在则引导上下文为空,程序依然能跑 - 占位符解耦:
{{memories_path}}让同一份 cookie/AGENT.md 在不同部署路径下无需修改
🧭 相关文件速查
| 文件 | 说明 |
|---|---|
| default_workspace/AGENTS.md | 智能体名册与调度规则 |
| default_workspace/BOOTSTRAP.md | 工作区目录地图与路径模板 |
| default_workspace/agents/pickle/AGENT.md | 默认智能体配置示例 |
| default_workspace/agents/pickle/SOUL.md | 默认智能体性格示例 |
| default_workspace/agents/cookie/AGENT.md | 记忆管理智能体配置 |
| default_workspace/skills/cron-ops/SKILL.md | 同类设计的技能文件参考 |
| 13-multi-layer-prompts/src/mybot/core/prompt_builder.py | 多层提示拼装源码 |
| 13-multi-layer-prompts/src/mybot/core/agent_loader.py | AGENT.md / SOUL.md 加载源码 |
想动手体验?clone 仓库后将default_workspace/config.example.yaml复制为config.user.yaml填入 API 密钥,进入13-multi-layer-prompts目录启动uv run my-bot chat,问一句"我们在哪聊天、现在几点",即可亲眼看到渠道提示层生效;再到17-memory目录说"记住我的名字",就能观察到 AGENTS.md 名册 + Cookie 记忆体系的完整协作。
- 示例工程
【免费下载链接】build-your-own-openclaw
A step-by-step guide to build your own AI agent.
相关推荐
{{ i18n.categories.database.title }}
{{ i18n.categories.database.title }} 3. 翻译工作流实现 推荐使用Git工作流进行翻译协作: mermaid graph
文档教程PyWxDump 删库之后还能用吗:微信聊天记录导出工具现状与替代方案指南
PyWxDump 删库之后还能用吗:微信聊天记录导出工具现状与替代方案指南 PyWxDump 是一款用于微信PC版聊天记录解密与导出的 Python 工具,曾帮
从零到生产级AI智能体:build-your-own-openclaw 18步完整教程全解析
从零到生产级AI智能体:build your own openclaw 18步完整教程全解析 build your own openclaw 是一个开源的 AI
示例工程
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考