当前位置:首页 > 技术分享 > 正文内容

AGENTS.md 截断规则深度解析——中文用户如何避免规则丢失

Openclaw2个月前 (06-22)技术分享256
AGENTS.md 截断规则深度解析

2026-06-22 · 技术分享 · #OpenClaw #AGENTS.md

一、问题的由来

很多 OpenClaw 用户发现,自己的 AGENTS.md 文件明明写了不少规则,但跑着跑着就「失忆」了——Agent 的行为开始偏离设定。这不是玄学,而是截断规则在作祟。

OpenClaw 的 bootstrap 文件(AGENTS.mdSOUL.mdMEMORY.md 等)都有总长度 60000 字符、单个文件 20000 字符的上限。一旦超限,就会触发截断。但 AGENTS.md 的截断方式与其他文件完全不同——而且这个差异,对中文用户尤其不友好。

本文将深入分析 AGENTS.md 的截断机制,并给出针对中文用户的优化方案。

二、截断规则对比

其他文件的截断策略

SOUL.md、MEMORY.md、TOOLS.md 等文件的截断规则是简单的「留头留尾」:

  • 头部 45% — 原样保留
  • 尾部 15% — 原样保留
  • 中间 40% — 全部丢弃

这个策略简单粗暴:重要的东西写在开头和结尾,中间的内容可能直接消失。

AGENTS.md 的特殊策略

AGENTS.md 的截断分配比例为:

AGENTS_POLICY_DIGEST_RATIO = 0.35(摘要配额 35%)
AGENTS_POLICY_HEAD_RATIO = 0.45(头部 45%)
AGENTS_POLICY_TAIL_RATIO = 0.15(尾部 15%)
换行预留 ≈ 5%

以 20000 字符上限为例:

  • headChars = 9000 — 头部 9000 字符原样保留
  • digestBudget = 7000 — 中间 7000 字符走摘要提取
  • tailChars = 3000 — 尾部 3000 字符原样保留

关键区别就在这里:其他文件中间部分直接丢弃,但 AGENTS.md 会给中间区域一个「抢救」机会——通过关键字匹配提取重要规则行。

三、240 字符红线

在进入摘要提取流程前,所有行会先经过标准化处理:

  • 删除行首行尾空白
  • 连续空白压缩成一个空格
  • 每行最多 240 字符,超长行保留前 239 字符加「…」

也就是说,如果你的规则行超过 240 字符,截断之后后半部分就没了。中文一个汉字占 2-3 字节,但按 Unicode 字符计数,240 字符大概相当于 80-100 个汉字的行长度。超过这个阈值,内容就会在摘要中被截断。

四、关键字匹配机制

标准化完成后,系统会从完整文件中扫描「候选行」,规则分为两类:

第一类:Markdown 结构行

任何以 Markdown 标题(###)或列表标记(-*1.)开头的行都会被识别为候选。

第二类:含关键字的普通行

包含以下关键字的行会被匹配(大小写不敏感):

高优先级:AGENTS.md scoped required must never do not security secret credential

普通优先级:test validation command commit push github pr

选取顺序

先扫描所有候选行,优先从高优先级关键字匹配行中选取,填满 7000 字符的摘要配额。如果还有剩余配额,再选普通候选行。

五、中文用户的大坑

注意上面的关键字列表——全是英文。这个匹配流程是纯字符串匹配,没有 LLM 参与理解语义。

这意味着:

  • - Never commit secrets — 会被匹配(命中 neversecret
  • - 私事不外传 — 不会匹配(仅命中 Markdown 列表格式)
  • - 必须:最大委派5轮 — 不会匹配(「必须」不是 required
  • ## 安全注意事项 — 仅靠 Markdown 标题格式匹配(##),不会命中 security

如果你完全用中文写 AGENTS.md,中间区域的内容能通过 Markdown 结构被保留一部分,但关键字匹配的优势完全享受不到。高优先级规则标记(如 requiredmust)对中文用户形同虚设。

六、优化建议

1. 核心规则中英双语写

每条重要规则加上英文关键词前缀,确保命中高优先级规则:

- must: 私事不外传。就这一条。
- required: 最大委派5轮,超限让用户拆分
- never: 半成品不往外发。
- scoped: 仅我(可亓)可调子Agent

2. 控制行长度

每行控制在 200 字符以内(约 60-80 个汉字)。长规则拆成多行 Markdown 列表,既保可读性又匹配列表格式。

3. 关键内容放头部或尾部

头部 45%(约 9000 字符)和尾部 15%(约 3000 字符)是原样保留的,最核心的规则放在这两个区域。

4. 善用 Markdown 结构

##- 等 Markdown 语法结构化你的规则,即使关键字没匹配,Markdown 结构行本身也能被保留。

5. 监控文件大小

定期检查 ~/.openclaw/agents/main/agent/AGENTS.md 或 workspace 中的 AGENTS.md 文件大小。超过 15000 字符就要开始精简,留出冗余空间。

总结

AGENTS.md 的截断机制是一把双刃剑。它比普通文件多了一道「摘要提取」,试图保留中间区域的重要规则。但关键字匹配完全基于英文,中文用户如果不了解这套规则,辛苦写下的中文配置随时可能被截断丢弃。

了解规则、适配规则——这是让 OpenClaw 稳定记住你设定的关键。


参见:OpenClaw 官方文档 · GitHub 源码

扫描二维码推送至手机访问。

版权声明:本文由点度点度金讯时代-BLOG发布,如需转载请注明出处。

本文链接:http://www.lmwmm.com/post/2567.html

分享给朋友:

“AGENTS.md 截断规则深度解析——中文用户如何避免规则丢失” 的相关文章

如何用微信小程序,每天给自己赚个鸡腿?

如何用微信小程序,每天给自己赚个鸡腿?

话说:谁不想拥有一个自己的小程序呢?既可以赚点小钱又可以长长见识。不懂小程序的小白能不能做出来呢?那来对了,这个教程就是针对小白的。今天决定把方法开源出来,包括小程序从注册到上架,还有怎么起名能带来自然流量,及收益从哪里来!申请账号百度搜索…

【树莓派基础系列教程】2、远程连接树莓派

【树莓派基础系列教程】2、远程连接树莓派

远程连接树莓派核心思想 在联网的状态下,我们可以通过一个叫做SSH的东西,从本地登陆到任何一台我们已知用户名和密码,并且开放了22端口的Linux主机上。SSH本质是建立在应用层基础上的一种安全协议,有兴趣的可以自行Google一下。所以,…

谷歌全面开放AI 对话机器人Bard,“人人”可用【附教程】

谷歌全面开放AI 对话机器人Bard,“人人”可用【附教程】

自从ChatGPT发布后,微软借助ChatGPT技术升级Bing搜索、office办公软件等一系列操作,给谷歌造成了很大的压力。但是,毕竟瘦死的骆驼比马大,作为早早以“AI First”作为公司战略的搜索巨头,实力不容小觑。这不,在今天凌晨…

bat 批处理-解放双手!

bat 批处理-解放双手!

bat 批处理脚本是 Windows 系统上用于批量执行任务的脚本,其后缀名为 .bat。利用批处理文件与“胶水语言” Python 相结合,能解决很多情况下程序的自动化运行问题,为学习、科研、工作上带来很大的便利。近来做科研项目…

Windows 11 23H2 新增"系统组件"中心

Windows 11 23H2 新增"系统组件"中心

微软正在 Windows 11 23H2 中测试新的"系统组件"页面,这一功能最终也将抵达 22H2。设置"中的"系统组件"页面是一种管理默认应用程序、扩展程序、编解码器和其他被认为与 Wi…

《瘟疫传说:无罪》现已登陆Epic Games Store,尽情畅玩BB电子游戏精彩体验

《瘟疫传说:无罪》现已登陆Epic Games Store,尽情畅玩BB电子游戏精彩体验

Asobo Studio与Focus Home Interactive合作推出的《瘟疫传说:无罪》(A Plague Tale: Innocence)是一部于2019年问世的精彩电子游戏。游戏以14世纪法国黑死病的背景为舞台,讲述了年轻的艾…