OpenClaw 生产级结构化提示技巧
OpenClaw 生产级结构化提示技巧
将信息整理为大模型易理解的结构化格式,核心遵循 「标准化框架 + 适配模型认知 + 精简核心信息」 三大原则,同时需匹配模型的输入习惯、格式要求和理解逻辑,以下是具体可落地的方法,既包含通用方法论,也融入 OpenClaw 的生产级实现技巧。
一、先明确核心原则:让模型 “一眼看懂”
结构化优先,避免无序列表 / 大段纯文本:模型对层级清晰、标签明确、字段固定的信息接受度最高,拒绝杂乱的大段描述;
信息去冗余,只保留核心要素:剔除无关修饰、重复内容,按 “重要性排序” 呈现信息,符合模型的注意力分配逻辑;
适配模型格式要求:不同模型(Anthropic/Claude、OpenAI/GPT、Google/Gemini)有专属格式禁忌,需提前适配;
字段语义明确,不使用模糊表述:每个模块 / 字段的命名、含义固定,让模型无需额外推理即可识别信息用途。
二、通用结构化格式:模型最易理解的 6 类模板
OpenClaw 在构建系统提示词、组装上下文时,核心使用这类格式,覆盖 90% 的信息整理场景,按使用优先级排序:
1. 分段式标题目录(核心用于系统提示词 / 背景信息)
按 「一级标题 + 二级标题 + 核心内容」 分层,每个标题明确模块功能,内容简洁成句,是模型最易解析的基础格式,也是 OpenClaw 构建系统提示词的核心方式。
示例(OpenClaw 系统提示词模板):
##基础身份
你是运行在OpenClaw中的个人助手,专注于完成用户指定的工程化任务。
##工具使用规则
- 常规工具(read/write)直接调用,无需向用户解释;
- 敏感工具(exec/delete)调用前必须先告知用户并确认。
##记忆召回要求
回答历史相关问题时,先调用memory_search工具,再获取相关内容。
2. 键值对 / JSON 格式(核心用于参数 / 属性 / 结构化数据)
适用于整理有固定属性的信息(如工具配置、Skill 元数据、用户偏好),模型可直接提取字段值,便于后续工具调用 / 逻辑推理,OpenClaw 在加载工具、Skills 时大量使用。
示例(工具信息结构化):
{
“工具名称”: “memory_search”,
“功能描述”: “语义搜索OpenClaw的每日记忆文件”,
“使用场景”: “查询历史对话/项目决策/临时笔记”,
“参数要求”: {“关键词”: “字符串,必填”, “时间范围”: “可选,格式YYYY-MM-DD”}
}
简化版(无 JSON 要求时):
工具名称:memory_search
功能描述:语义搜索每日记忆文件
使用场景:查询历史项目决策
3. 固定模板化文本(核心用于问题 + 背景的组装)
适用于用户问题 + 检索信息的拼接,是 OpenClaw 上下文工程与提示词工程协作的核心格式,通过占位符 + 固定指令,让模型明确 “该用什么信息、回答什么问题”,避免信息混淆。
示例(OpenClaw 的问答模板):
根据以下背景资料:
{{context}} // 检索到的RAG内容/记忆片段/工具返回结果
请回答用户问题:
{{query}} // 用户的原始输入
要求:1. 答案基于背景资料,不捏造;2. 简洁成句,分点说明。
4. 列表式(核心用于规则 / 步骤 / 选项)
适用于整理有明确顺序 / 多条并列的信息(如操作步骤、行为规则、可选技能),优先用数字有序列表(有先后),次之用短横线无序列表(无先后),每一条只讲一个核心点,避免长句。
示例(OpenClaw 的压缩执行步骤):
计算当前上下文的 Token 总用量,优先使用模型返回的实时数据;
设定压缩目标,默认将 Token 压至预算的 80%;
提取早期消息,调用大模型生成关键摘要;
用摘要替换原始消息,保留最近的未压缩对话;
原子替换会话历史,防止原始文件损坏。
5. 标签包裹式(核心用于区分不同类型信息)
适用于需要明确区分信息类别的场景(如可用 Skills、会话历史、思考过程),通过专属标签将同类信息包裹,让模型快速识别信息边界,OpenClaw 在加载 Skills 时核心使用该格式。
示例(OpenClaw 的 Skills 结构化):
<available_skills>
commit
~/.openclaw/skills/commit/SKILL.md
按项目规范创建git提交
review-pr
~/.openclaw/skills/review-pr/SKILL.md
审核并合并带质量检查的PR
</available_skills>
6. 摘要式(核心用于压缩历史消息 / 长文本)
适用于大段原始信息的精简(如会话历史、文档内容),是 OpenClaw 上下文压缩的核心格式,通过提取关键要素(谁 / 做了什么 / 决策是什么 / 结果如何),将长文本浓缩为短摘要,保留核心信息但大幅减少 Token。
示例(对话历史的摘要化):
原始对话:用户让 Agent 创建一个 Python 项目,Agent 先调用 mkdir 创建文件夹,再调用 write 创建 main.py,用户要求添加注释,Agent 修改了 main.py 并保存。
结构化摘要:2026-03-23,用户要求创建 Python 项目,Agent 执行 mkdir 创建项目文件夹、write 创建 main.py;后续按用户要求为 main.py 添加注释并保存。
三、OpenClaw 的生产级技巧:让结构化更适配工程化场景
以上通用格式可直接使用,而 OpenClaw 为了保证系统稳定性、Token 可控性、模型兼容性,还做了这些细节优化,可直接借鉴:
- 按信息用途 “分块结构化”,不混合不同类型信息
将上下文按 「系统提示词 + 工具列表 + Skills + 记忆内容 + 历史对话 + 用户输入」 分块,每块使用独立的结构化格式,块与块之间用标题分隔,让模型按 “模块” 读取信息,避免信息交叉干扰(如工具列表用键值对,Skills 用标签包裹式)。 - 对大文件 / 长信息 “分片结构化 + 截断保护”
若单条信息过长(如 Bootstrap 文件、大文档),先按固定长度(如 400Token)分片,每片独立结构化,同时设置字符 / Token 上限,超出部分自动截断并标注「内容已截断,核心信息已保留」,避免模型因信息过长注意力分散。 - 针对不同模型做 “格式兼容化处理”
不同模型有格式禁忌,需提前做清理,否则模型会拒绝响应,OpenClaw 的会话清理器做了这些核心适配:
对 Google/Gemini:拒绝以 assistant 消息开头的对话,自动添加引导性用户消息;移除工具参数中不支持的 JSON Schema 关键字(patternProperties/$ref 等);
对 Anthropic/Claude:替换消息中的 “魔法字符串”(模型敏感字符);要求对话必须以 user 消息开头,严格交替 user-assistant 轮次;
对 OpenAI:将推理块()降级为普通文本,适配 Responses API 格式。 - 为结构化信息添加 “使用指令”,引导模型解读
在结构化信息前添加简短的引导指令,明确告诉模型 “该如何使用这些信息”,避免模型忽略或错误解析,这是 OpenClaw 的核心设计思路之一。
示例(Skills 的引导指令):
请先扫描以下可用Skills的描述:
<available_skills>…</available_skills>
规则:若有且仅有一个Skill适配当前任务,调用read工具读取其SKILL.md并按要求执行;若无适配Skill,直接处理用户问题。
四、避坑指南:模型难以理解的 “伪结构化” 行为
避免大段文本中插入零散列表:如在百字纯文本中突然插入 1-2 条分点,模型易混淆信息层级;
避免使用模糊的层级标签:如用 “【备注】”“【注意】” 等无固定含义的标签,替代标准化的标题 / 标签;
避免字段值过长 / 多义:键值对 / JSON 中,每个字段值控制在 1-2 句话,不出现大段描述,字段名不使用缩写(如用 “功能描述” 而非 “功能”);
避免混合多种格式:如在 JSON 中插入无序列表,在标签包裹式中插入大段纯文本,模型易解析失败。
五、落地步骤:快速将任意信息整理为模型易理解的格式
拆解信息:将原始信息按「核心主题 + 子模块 + 关键要素」拆解,剔除冗余内容;
匹配格式:根据信息类型(背景 / 规则 / 参数 / 问答)选择上述 6 类通用格式;
结构化编写:按选定格式整理信息,保证层级清晰、字段明确、语言简洁;
添加引导指令:在信息前添加 1-2 句使用规则,告诉模型该如何解读;
格式兼容检查:根据目标模型,清理格式禁忌,做适配化处理;
Token 校验:控制结构化后信息的 Token 数量,避免超出预算,过长则做分片 / 摘要处理。
综上,模型对结构化格式的 “理解能力”,本质是对 「固定框架 + 明确语义 + 精简信息」 的识别能力,无需追求复杂格式,核心是让信息 “分类清晰、要素明确、符合模型输入习惯”,而 OpenClaw 的实践则让这种结构化更适配工程化的稳定、可控、可扩展需求。
更多推荐



所有评论(0)