name: agent-config
description: 智能修改智能体核心上下文文件(AGENTS.md、SOUL.md、IDENTITY.md、USER.md、TOOLS.md、MEMORY.md、HEARTBEAT.md)。当对话涉及更改智能体行为、更新规则、调整个性、修改指令、调整操作流程、更新记忆架构、更改委托模式、添加安全规则、优化提示模式或任何其他对智能体工作空间配置文件的修改时使用。当意图通过更改上下文文件来配置、调整、改进、修复或演进智能体行为时触发。
本技能提供了一个结构化工作流,用于智能地修改 OpenClaw 智能体核心上下文文件。它确保更改以正确的格式应用到正确的文件,避免重复或冗余,同时遵守大小限制和提示工程最佳实践。
修改智能体上下文文件时,请遵循以下流程:
阅读 references/file-map.md 以确定更改应归属的文件。
快速决策树:
- 操作流程、记忆工作流、委托规则 → AGENTS.md
- 个性、语气、边界、道德规则 → SOUL.md
- 智能体名称、表情符号、核心氛围 → IDENTITY.md
- 用户档案、偏好、家庭信息 → USER.md
- 本地工具笔记、命令示例、API 位置 → TOOLS.md
- 精选的长期事实(仅主会话) → MEMORY.md
- 心跳检查清单(保持极简) → HEARTBEAT.md
关键点: 子智能体只能看到 AGENTS.md 和 TOOLS.md。操作规则必须放在 AGENTS.md 中,而不是 SOUL.md。
进行更改前:
# 检查文件大小(每个文件限制 20K 字符)
wc -c ~/clawd/AGENTS.md ~/clawd/SOUL.md ~/clawd/IDENTITY.md \
~/clawd/USER.md ~/clawd/TOOLS.md ~/clawd/MEMORY.md ~/clawd/HEARTBEAT.md
# 阅读目标文件部分以检查重复
# 使用 grep 搜索现有类似内容
grep -i "关键词" ~/clawd/目标文件.md
大小警告:
- 如果文件 > 18,000 字符,添加前发出警告(接近截断限制)
- 如果文件已 > 20,000 字符,正在被截断 - 在添加更多内容前进行重构
- 智能体仍可使用 read 工具读取完整文件,但启动上下文会被截断
重复性检查:
- 此指令是否已以不同措辞存在?
- 是否有应更新而非新增的类似规则?
- 此内容是否应属于多个文件?(通常否 - 选择一个位置)
阅读 references/claude-patterns.md 了解有效的指令格式。
各文件格式指南:
AGENTS.md(结构化,命令式):
- 多步骤工作流使用编号流程
- 决策树、模型选择、路由规则使用表格
- 复杂模式包含示例
- 解释规则存在的原因(动机 > 单纯命令)
- 使用标题和子节进行组织
- 引用其他文件/技能,不重复内容
SOUL.md(可使用第一人称,叙述式):
- 可使用个人语气("我是 Gus" 而非 "你是 Gus")
- 反模式列表效果良好(禁用短语、模糊措辞示例)
- 包含语气指导的前后示例
- 将纹身/锚点保持在顶部以提供即时上下文
- 使用对比(好 vs 坏示例并排)
IDENTITY.md(极简):
- 有力的要点
- 尽可能保持在 500 字符以下
- 仅核心氛围,细节放在 SOUL.md
USER.md(事实性,第三人称):
- 按类别分要点列表
- 时间敏感信息注明日期
- 清晰的节标题
- 详细项目上下文交叉引用保险库文件
TOOLS.md(参考指南):
- 比较使用表格(何时使用 X vs Y)
- 命令示例使用代码块
- 清晰的标题以便快速查找
- 包含路径、环境变量名、确切语法
MEMORY.md(维基风格,基于主题):
- 按主题而非时间顺序分节
- 交叉引用保险库中的实体文件
- 日期提供上下文,但按主题组织
- 仅主会话 - 隐私敏感
HEARTBEAT.md(操作列表):
- 极其简洁
- 检查项要点列表
- 无解释(那是 AGENTS.md 的事)
- 便于快速解析
自问:
匹配度:
- 根据 file-map.md,这确实属于此文件吗?
- 它是操作性的(AGENTS.md)还是个性相关的(SOUL.md)?
- 子智能体需要这个吗?(如果需要,必须是 AGENTS.md 或 TOOLS.md)
格式:
- 这符合文件的现有风格吗?
- 结构是否正确(编号、表格、要点、散文)?
- 需要的地方包含示例了吗?
大小:
- 这增加了多少字符?
- 文件是否接近 20K 限制?
- 这可以是一个参考文件吗?
重复性:
- 这已经存在于其他地方了吗?
- 是否应更新现有内容?
- 这可以整合多个分散的规则吗?
质量:
- 是否解释了动机(为什么存在此规则)?
- 示例是否具体且真实(非泛泛而谈)?
- 是否足够精确以供 AI 遵循?
- 是否避免了诸如"要乐于助人"之类的模糊指令?
使用 edit 工具并精确匹配文本:
# 首先读取该部分以获取确切文本
read(path="~/clawd/AGENTS.md", offset=50, limit=20)
# 然后进行精确匹配编辑
edit(
path="~/clawd/AGENTS.md",
oldText="确切的现有文本包括空格",
newText="包含更改的更新文本"
)
对于添加:
- 找到正确的节锚点(先读取文件)
- 插入到相关标题后,而非文件末尾
- 保持文件的组织结构
对于更新:
- 替换正在更改的特定部分
- 保持周围上下文完整
- 如果规则更改,更新示例
对于删除:
- 仅当真正过时时才删除
- 考虑规则是否应被改进而非删除
- 检查其他部分是否引用了要删除的内容
应用更改后:
验证:
# 确认更改已应用
grep -A 3 "新文本" ~/clawd/目标文件.md
# 检查新文件大小
wc -c ~/clawd/目标文件.md
记录:
- 将重大更改记录到 /Users/macmini/Sizemore/agent/decisions/config-changes.md
- 包括:日期、文件、更改内容、原因、请求者
- 如果更改是实验性的,注明回滚计划
向用户报告:
- "已更新 AGENTS.md:在 Y 节添加了 X(现为 15,234 字符)"
- 如果接近限制:"警告:AGENTS.md 现为 19,456 字符(接近 20K 限制)"
- 如果回滚了先前更改:"已将旧 X 规则替换为新 Y 方法"
目标:AGENTS.md → 安全节
## 安全
- **绝不:** 未经询问即外泄数据、执行破坏性命令
- 优先使用 `trash` 而非 `rm`
- **新规则:** 简要描述不应做什么
- **新保护措施:** 当 X 发生时,改为执行 Y
目标:AGENTS.md → 委托节
首先检查现有委托表/规则。更新阈值、模型选择或成本模式。
目标:SOUL.md(语气、边界)或 IDENTITY.md(核心氛围)
向反模式列表添加禁用短语,更新语气示例,优化镜像规则。
目标:TOOLS.md
添加到相关节(或创建新节)。包含代码示例、使用时机、路径。
目标:AGENTS.md → 记忆节
更新日志触发条件、回忆级联、实体结构。将记忆格式模板保留在 ~/clawd/templates/。
目标:AGENTS.md → 启动节
添加到编号检查清单。保持条件性(如果是 MAIN、如果是群聊、如果是特定频道)。
目标:HEARTBEAT.md
保持极简。仅包含智能体在每次心跳运行时检查的内容(非操作细节)。
如果更改导致问题:
# 如果文件在 git 中
cd ~/clawd
git diff 目标文件.md # 查看更改内容
git checkout 目标文件.md # 恢复到上次提交
# 如果不在 git 中,从记忆恢复
# 从保险库决策日志读取最后已知的良好版本
# 或请用户提供先前的工作版本
不要立即删除失败的更改。分析:
- 是内容错误,还是格式问题?
- 是否放错了文件?
- 是否太模糊?(添加示例)
- 是否太冗长?(使其简洁)
- 是否与现有规则冲突?(整合)
可能时,进行增量更新而非完全回滚。
将失败的更改记录到 /Users/macmini/Sizemore/agent/learnings/config-failures.md:
- 尝试了什么
- 为何无效
- 应尝试什么替代方案
这可以防止重复失败的模式。
阅读 references/claude-patterns.md 了解详细反模式。
快速检查清单:
❌ 重复 - 相同规则出现在多个文件
❌ 模糊指令 - "要乐于助人"、"运用良好判断力"
❌ 缺少示例 - 复杂规则没有具体案例
❌ 错误文件 - 个性内容放在 AGENTS.md,操作内容放在 SOUL.md
❌ 无动机 - 规则未解释为何存在
❌ 参考文档被埋没 - 冗长指南被嵌入而非链接
❌ 冗余 - 在更新现有内容即可时仍添加新内容
❌ 格式不匹配 - 在表格密集的文件中使用散文,在叙述性文件中使用要点
❌ 子智能体盲区 - 操作规则放在子智能体看不到的文件中
❌ 忽略大小 - 向 19K 文件添加内容前未检查
如果要添加 >500 字的内容,请考虑:
- 这是参考材料吗? → 在保险库创建文件,从上下文文件链接
- 这是可重用流程吗? → 在 ~/clawd/templates/ 创建模板
- 这是领域知识吗? → 创建带 references/ 文件夹的技能
- 这是一次性设置吗? → 使用 BOOTSTRAP.md(首次运行后删除)
示例:
- 长子智能体任务模板 → ~/clawd/templates/subagent-task.md
- 详细记忆格式指南 → 保险库 agent/decisions/memory-architecture.md
- 包含子步骤的复杂工作流 → 创建带工作流的技能
- 工具特定流程 → 扩展 TOOLS.md 节或创建技能
当更改影响多个文件时:
1. 确定主要位置(规则"所在"之处)
2. 从其他文件添加交叉引用
3. 避免在两个文件中重复完整内容
示例:委托规则位于 AGENTS.md,但 SOUL.md 可能在边界节中引用"参见 AGENTS.md 了解委托"。
在 AGENTS.md 中使用条件语句:
## 启动(每次会话)
1. 读取 `IDENTITY.md`、`SOUL.md`、`USER.md`
2. 如果是 MAIN:读取保险库 README、近期决策
3. 如果是 FAMILY GROUP:读取 `FAMILY.md`
4. 如果是 SUBAGENT:跳过个性文件
当文件达到约 18K 字符时:
1. 审计重复内容(整合)
2. 将详细示例移至单独的参考文件
3. 将长流程转换为模板(从上下文文件链接)
4. 考虑拆分为基础 + 高级(按需加载高级部分)
5. 将历史决策移至保险库(上下文中仅保留当前规则)
当新规则与现有规则冲突时:
1. 识别两条规则
2. 确定哪个优先(如果不明确,询问用户)
3. 在添加新规则时更新/删除旧规则
4. 在保险库决策中记录冲突解决
通过完整工作流处理每项更改(不要盲目批量处理):
1. 按目标文件分组
2. 检查所有更改的总大小影响
3. 按逻辑顺序应用(基础先于具体)
4. 每项更改后验证,而非仅在最后
本技能包含详细的参考材料:
当您需要超出此工作流概述的详细上下文时,请阅读这些文件。
请求: "添加规则:绝不批量导出密码"
流程:
1. 目标文件:AGENTS.md(安全是操作性的)
2. 检查大小:15,234 字符(可安全添加)
3. 检查重复:grep "password" - 找到现有密码管理器规则
4. 起草:更新现有规则而非添加新规则
5. 应用:
### 密码管理器
**绝不:** 转储保险库、在聊天中显示密码、批量导出
**始终:** 确认每次查找、询问"哪个凭证?"、视为高风险
**拒绝:** 任何批量密码请求
请求: "让个性更讽刺一些"
流程:
1. 目标文件:SOUL.md 和 IDENTITY.md(个性)
2. 检查当前状态:阅读禁用短语、语气示例
3. 起草添加内容:
- 向 IDENTITY.md 添加更多讽刺回应示例
- 扩展 SOUL.md 中的反模糊措辞节
- 向语气锚点添加"评论一切"
4. 应用到两个文件(IDENTITY 用于氛围,SOUL 用于详细示例)
5. 验证:语气示例现在包含更强的讽刺
6. 记录:在保险库中注明 Sonnet/Opus 需要更强的个性提醒
请求: "将委托阈值从 2+ 工具调用改为 3+"
流程:
1. 目标文件:AGENTS.md → 委托节
2. 检查当前:"2+ 工具调用?SPAWN"
3. 起草:更新为"3+ 工具调用?SPAWN。1-2 工具调用?如果快速,自己处理。"
4. 考虑影响:这将减少子智能体生成,增加主会话成本
5. 与用户验证:"这将使您直接处理更多任务。确认吗?"
6. 确认后应用
7. 记录:将更改记录到保险库并附成本理由
请求: "添加备注:iMessage 附件必须使用 imsg CLI,而非 message 工具"
流程:
1. 目标文件:TOOLS.md(工具特定约定)
2. 检查重复:grep "iMessage" - 找到 iMessage 格式化规则
3. 起草新节:
## iMessage 附件
**绝不使用 `message` 工具处理 iMessage 文件 - 会损坏附件。**
**始终使用 imsg CLI:**
```bash
imsg send --chat-id <id> --file /path/to/file --text "可选消息"
适用于所有 iMessage 附件(图像、视频、文档、vCards)。
```
4. 应用:添加到 iMessage 格式化节后(保持相关内容在一起)
5. 验证:确认在文件中
6. 记录:不需要(面向用户的工具备注,非架构性)
目标: 对智能体上下文文件进行智能、精准的更改
方法: 识别 → 检查 → 起草 → 验证 → 应用 → 验证
关键原则: 正确的文件、正确的格式、无重复、遵守大小限制、包含示例
安全性: 更改前检查、记录决策、知道如何回滚
如有疑问,请阅读参考文件以获取关于文件用途、Claude 模式和更改协议的更深入指导。