openclaw调用免费模型时因技能描述过长导致上下文超限,需精简description至80字内、按需加载技能、禁用author/version/compatibility元数据,并设置maxloaded=3与on-demand策略。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

OpenClaw调用免费模型(如千问3.5-9B、Qwen2.5-7B等本地小模型)时,常因技能(Skills)描述文本过长,叠加用户输入和历史对话,直接触发“Context limit exceeded”错误,任务在第二步就卡死——这不是模型能力不足,而是技能配置没做减法。
确认技能是否正在吃掉上下文
在当前会话中输入:/context,查看返回的 Tokens used 数值。若 Skills 相关字段(如 loaded_skills: 8)占用 token 超过 1200,且总用量已超模型上限 60%,即可判定技能是主因。
注意:免费模型上下文普遍为 8K–32K tokens,而一个未压缩的 Skill 描述平均占 300–900 tokens;加载 5 个技能,光描述就吃掉近 4K,再加对话和系统提示,必然爆仓。
精简技能描述(最有效)
打开项目根目录下的 skills/ 文件夹,找到你要启用的技能文件(如 git_commit.yaml)。
将 description: 字段内容压缩至 1 行,不超过 80 字,仅保留动词+对象+约束条件。例如:
原描述(192 字):
“该技能用于在当前 Git 工作区执行提交操作。支持自动生成符合 Conventional Commits 规范的提交信息,可选跳过暂存区直接提交所有修改,并能根据 .gitignore 排除敏感文件。需确保工作区干净或已暂存变更。”
精简后(63 字):
【description: "git commit -m 自动生成符合 Conventional Commits 的消息,支持跳过暂存、自动忽略.gitignore 文件"】
删掉所有示例代码块、多行说明、版本兼容性备注——这些内容不会被模型读取,但会真实计入 token。
按需加载技能(非全局启用)
方法一:临时启用单个技能
不修改全局配置,在命令前加 @skill_name 显式调用。例如:@file_read cat README.md。此时仅加载 file_read 技能描述,其余全部隔离。
监控一个或多个 GitCode 仓库的 PR,通过 OpenClaw Gateway 自动执行 AI 审查,发布 PR 评论,并发送钉钉和企业微信通知。
方法二:分组定义 + 动态切换
编辑 skills/groups.yaml,把高频技能(如 shell_exec、file_read)归入 core 组,低频技能(如 docker_build、aws_deploy)归入 extra 组。然后用命令切换:/use_group core → 执行日常任务;/use_group extra → 仅当需要部署时才加载额外技能。
这一步不做,所有技能会在每次会话启动时全量载入,不管用不用得上。
禁用冗余技能元数据
打开 skills/_meta.yaml 或各技能 YAML 文件顶部的 metadata: 区块。
删除以下三项(它们对免费模型无实际作用,纯占 token):
• author
• version
• compatibility
保留 name、description、parameters 即可。一个技能节省约 120–180 tokens,10 个技能就是 1.5K+ token 空间。
设置技能加载阈值(防复发)
第一步:打开 openclaw.json 配置文件
第二步:在 "skills" 节点下添加:"maxLoaded": 3,"loadStrategy": "on-demand"
第三步:保存后重启 OpenClaw。此后系统默认最多只加载 3 个技能描述,超出部分仅在显式调用时动态注入。
【必须重启生效,热重载不触发此策略】









